[Android] 噗浪姬Project - Day1 - 設定 Github 並透過 Git 進行版本控管

最近突然覺得再這樣怠惰下去不行,為了充實我自己的知識,也為了充實 blog 的文章
就想著規劃自己開始回家花兩個小時自學沒學過的領域,並試著撰寫相對應的文章

因為我學程式比較不習慣看著書從頭來,並不是這樣不好
而是我習慣給自己定一個專題,然後試著去實作他,並學習實作那專題的所有技術
這次我給自己訂下的題目就是我曾經用 C# 實作過的噗浪姬
該程式的功能有驗證Plurk 程式登入、顯示用戶的基本資料、好友名單的紀錄及確認共同好友清單,程式是 C# 撰寫而成,採用 OAuth 驗證帳號(Plurk API v2.0),紀錄全都存在 sqlite 上

這樣的專案比 Hello World 好玩太多了,而且曾實作過,我也知道我需要哪些的知識
那我想透過這樣的專案學到什麼呢?我初步預估是:
.Github 的使用(我這次的檔案版本控管打算透過 github)
.於 Android 中使用 OAuth 驗證帳號及呼叫 API
.於 Android 中使用 sqlite 儲存資料
.於 Android 中顯示好友清單資料
因為我的檔案版本控管一直都習慣用 Subversion ,而目前的工作因素,我改用 Team Foundation Server 作檔案版本控管,這次換改學習使用 Git 來作檔案版本控管
所以先從申請 Github 開始,這步其實只要懂一點點英文就可以很順利申請完成,所以就不多作介紹,然後介紹的是如何讓 Eclipse 搭配 Github 作版本控管,這次的專案我亦有分享到我自己的 Github - wctplurk 上

Git 環境安裝及設定
首先我們要裝 Git 相關的 plugin ,讓我們可以上傳專案到 Github 上面,點選主畫面中的 Help -> Marketplace ,然後搜尋 EGit 並安裝他
如上圖,我已經安裝好 EGit 了,接下來點 File -> Import
展開 Git ,點選 Projects from Git
接下來輸入 Git Repository 的資訊
然後選擇指定的 Branches ,一開始應該都只有 master ,選好後就再 Next ,再來則是設定要把 Github 上的檔案放到哪裡,可以理解成 Subversion 的取出
設定路徑,由於原本的路徑我已經有取出了,所以會出現這樣的訊息,修改路徑或把該目錄清空後就能取出了,為了示範我在目錄上加個 2
再下一步
設定要把哪個專案加進去,這時我們的 git 設定就初步完成了。
然後在 Package Explore 上專案的目錄上按右鍵,點選 ShareProject。
選擇 Git 來進行 Share
再下一步
Evd 是我以前開發的測試專案,但那次其實也就新建專案後就什麼都沒作了
因為我還不知該作些怎樣的專案才好,而現在我想真的把他學好,所以自己創了一個小專案,然後重寫以前自己寫過的 Project ,只是語言換了,介面換了,但學習的熱情不變!
至此, Github 的設定告一段落了,就用後面的章節稍微聊一下 噗浪姬 的架構

架構

其實我很不會取名,就只是想要把他擬人(公主)化,所以他就獲得了 噗浪姬 這個名字
而我在 C# 時創造的 噗浪姬 的功能如何移植到 Android 上也很有趣
我覺得從中會獲得的知識在前言也都有描述了

而目前版面其實還沒定出來,所以我也不知我會如何設計那個版面,那就讓我們來聊聊他的資料庫結構吧,我資料庫結構是整個從 C# 那邊的程式 Copy 過來的,只是增加了 _id 這個主鍵(在 C# 上的主鍵並不限制一定要整數且自動遞增名字為 _id 的欄位)

其實他很簡單只有三張資料表,第一張表是 Config :

  • _id INTEGER PRIMARY KEY AUTOINCREMENT
  • Name TEXT
  • Value TEXT

這張資料表主要是存放組態設定,其中 Consumer key 及 Consumer secret 資料也將放在這張資料表。
第二張表是 Friends :

  • _id INTEGER PRIMARY KEY AUTOINCREMENT
  • nick_name TEXT
  • full_name TEXT
  • display_name TEXT
  • CreateTime TEXT
  • ModifiedTime TEXT
  • RemoveTime TEXT

這張資料表是存放好友清單的,透過這張表可以作出類似噗浪機器人 - 機器梟的程式
用以判斷是否被移除好友。
第三張表是 NameHistory:

  • _id INTEGER PRIMARY KEY AUTOINCREMENT
  • nick_name TEXT
  • full_name TEXT
  • display_name TEXT
  • CreateTime TEXT

這張表用來紀錄該使用者曾經的暱稱,這個功能其實是我記憶力不太好,所以經常會搞不清楚這暱稱是哪個好友的,所以特別作個功能來紀錄,透過這樣的功能我可以很快追溯他的暱稱為何。

後記
我本來是想規劃七天來講解噗浪姬,但想想我沒完全實作完成,其實我也不知會花多少天
像今天光設定好 git 的環境加上截圖來講解,其實就耗完兩個多小時的時間了,那每天兩個小時我覺得一定不夠的,光打文章和截圖就不走了吧,更何況寫程式。
但我仍會努力的把這系列完成!

然後如果有疑問或對我的程式有什麼更好的想法,都歡迎再跟我討論。

Reference:
github - wktsai - wctplurk
Git version control with Eclipse (EGit)
[ Eclipse Plugin ] EGit : 從 Github Import 專案到本地端


留言

這個網誌中的熱門文章

DB 資料庫呈現復原中

Outlook 刪除大量重覆信件

[VB.Net] If vs IIf ,兩者的差異