【原】部落格園第三方用戶端-i部落格園App開源,-iapp
【原】部落格園第三方用戶端-i部落格園App開源
本文轉載請註明出處 —— polobymulberry-部落格園
1.前言
目前i部落格園App已經更新到2.0.0版本了,使用了最新的部落格園Web API。相比於第一個版本,添加了很多新的功能,也修改了很多功能。整體來說改動比較大,代碼也比較混亂。所以趁著清明假期,把代碼好好整理了一番。目前基本的架構已成型(當然,後期還需要不斷最佳化),但App準系統方面還有很多需要添加的,後面會集中把App功能完善。
上面簡單介紹了下目前App的情況,回到開源的話題來。開源這個App源碼其實是我從一開始就有的願景,不過當初代碼很混亂,所以一直拖啊拖,中間也有很多實驗室的事情,不過我一直也沒放棄過要開源的這個想法。開源對我來說利大於弊的:
2.新版本i部落格園App效果
之前版本的i部落格園請移步《部落格園第三方用戶端-i部落格園正式發布App Store》。因為換了新的Web API,所以增加了很多新功能,比如文庫、登入等等。
3. i部落格園代碼結構簡介3.1 代碼整體結構
首頁精選ICLog(@"size count : %ld",[[SDImageCache sharedImageCache] getSize]);dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ [[SDImageCache sharedImageCache] clearDiskOnCompletion:^{ ICLog(@"清除成功"); ICLog(@"size count : %ld",[[SDImageCache sharedImageCache] getSize]); cell.textLabel.text = [self getCacheSize]; }];});
②關於部分是使用了CNPPopupController,之所以這個簡單的功能也使用第三方庫,是因為我還沒想好怎麼做這種彈窗後背景模糊的效果,後面會更換成自己的庫。
③評價就很簡單了,不贅述了。
④退出帳號其實就是刪除了本機存放區的帳號資訊檔。
3.2.6 引導頁
請參考我之前的部落格《部落格園第三方用戶端-i部落格園正式發布App Store》,此處就不贅述了。
3.2.7 主要(Main)
這部分內容很多,所以我分開來說,至於這裡Helper和Tool有什麼區別,大家請無視,本人經驗尚淺,還回答不了。
3.2.7.1 Vender
存放的是openssl的rsa加密的演算法。具體可以參見部落格《RSA加密》。
3.2.7.2 Category
這個存放的東西就比較多了。我一直很認同田偉宇的一句話,category是典型的化繼承為組合的方法。而且這裡我盡量不會把強業務放在category中,我覺得category應該放一些弱業務的東西。
3.2.7.3 Helper
將dataSource從ViewController中分離,做到light View Controller。參考文章《更輕量的 View Controllers》。
3.2.7.4 Tool
**ICControllerTool**
主要是解決第一次安裝,或者更新App後,應該先啟動引導介面的問題。
**ICNetworkTool**
在AFNetworking上面分裝了一層,不過此處我覺得設計的不是很好。暫時先這樣,後面嘗試下離散型API調用。
**ICOAuthTool/ICClientCredentialsOAuthTool**
因為網路請求的時候會用到各種access_token,比如grant_type為client credentials和grant_type為password/refresh_token的access token就不一樣。
因此我定義了這兩個Tool來管理相對的請求。對應的Model就是ICOAuth和ICClientCredentialsOAuth。
3.2.7.5 Controller
**ICLeftMenuViewController/ICLeftSideMenu**
因為使用了RESideMenu,所以ICLeftSideMenu其實就是RESideMenu的子類,而ICLeftMenuViewController其實就是RESideMenu的LeftMenuViewController。
3.2.7.6 Other
放AppDelegate和main。
3.2.7.7 View
ICLeftMenuHeaderView其實就是ICLeftSideMenu上的這個:
4.開源的相關事項4.1 開源地址
GitHub:https://github.com/polobymulberry/iCnblogs
4.2 開源後的工作
- 快閃記憶體部分
- 目前其他部分只能查看,還不能評論,刪除
- 搜尋部分
- 分享功能
- refresh token不起作用
- 還有很多,想到了我就加到GitHub頁面上……
4.3 開源注意事項
因為有些地方涉及到隱私,所以我會將代碼進行脫敏(ClientID和ClientSecret)。大家下載以後不一定能直接運行。如果你感興趣的話,可以去部落格園申請一個ClientID和ClientSecret。
5. 感謝
感謝部落格園的管理員的協助和指導。