【HELLO WAKA】WAKA iOS客戶端 之一 APP分析篇

因爲後續篇幅比較大,因此調整了內容結構。html

 

全系列數據庫

【HELLO WAKA】WAKA iOS客戶端 之一 APP分析篇後端

【HELLO WAKA】WAKA iOS客戶端 之二 架構設計與實現篇api

【HELLO WAKA】WAKA iOS客戶端 之三 創做模塊分析與實現篇(上)緩存

【HELLO WAKA】WAKA iOS客戶端 之三 創做模塊分析與實現篇(下)服務器

【HELLO WAKA】WAKA iOS客戶端 之四 服務器架構設計網絡

 

MAKA 上週三發佈了iOS客戶端1.0。本着學習的態度,對MAKA客戶端作了分析。數據結構

  1. 功能結構分解
  2. 架構分析
  3. API分析
  4. API數據結構分析

 

1. 功能結構分解架構

工具:iPhone,MindNode。app

下圖是概要的需求分析和功能分解。左邊爲需求,右邊爲根據需求實現的功能。

從需求角度和功能模塊的實現來看,已經知足用戶的最基本需求。

從產品策略來看,先解決有無問題,進而再持續改進。

 

 

 

2. 架構分析

 

完成了對需求和功能的分解後,咱們再來看下APP與服務器的關係。這個時候,神器Charles就上場了。具體使用方式自行搜索。

經過抓取客戶端與服務器通訊數據分析,客戶端與服務器的通訊以下圖。

 

1. API服務器。APP與服務器的主通訊方式。使用RESTful + form風格接口。前置機爲TNginx,後端接口爲PHP。

2. 圖片存儲服務器。用於上傳圖片。能夠注意到的是,採用原圖上傳 + 按需生成的方式。分離做品編輯和做品。好處有:1)圖片數據單獨處理,同時簡化了客戶端邏輯與服務器邏輯。2)方便後續變動。3)按需壓縮裁剪圖片,生成靜態化做品,優化訪問速度。

3. 做品瀏覽服務器。將做品靜態化,優化服務器性能。

4. CDN。使用了七牛的圖片CDN服務。

 

 

 

 

 

 

 

3. API分析

工具:Charles Proxy

如下是主要的API。

模塊

名稱

URL

Method

說明

用戶

註冊

/app/user/register

POST

http://api.maka.im

登錄

/app/user/login

POST

 

忘記密碼

/app/user/forgetpassword

POST

 

用戶信息

/app/user/{$user_id}

GET

 

修改用戶信息

/app/user/{$user_id}

PUT

 

事件

個人事件列表

/app/events

GET

 

建立

/app/event

POST

 

更新

/app/event/{$event_id}

PUT

 

發佈

/app/event/{$event_id}

POST

 

創做

主分類

/app/specialCategories

GET

 

模板分類

/app/templates

GET

 

模板頁

/app/template/{$template_id}

GET

 

圖集分類

/app/pictureIndex

GET

 

圖片列表

/app/pictures

GET

 

熱門

公開事件

/app/publicEvents

GET

 

分類

/app/tagCategories

GET

 

 

 

1. 用戶模塊。基本用戶接口。比較簡單。登錄成功後使用token+uid訪問接口。

2. 事件模塊。 這部分接口頁算簡單。

    1) 值得注意的是,做品列表數據,做品數據都採用了version號,模板與做品版本更新問題。

    2) 模板與做品。 eg. GET /app/template/T_I1629HCW   直接使用在做品ID前加T_ 解決模板與做品的關係。

 1 {
 2             "id": "2BD324I1",
 3             "title": "個人測試項目",
 4             "content": "這是個人測試。",
 5             "thumb": "http:\/\/img1.maka.im\/6IAGSXT4R1S18SV2MP3O",
 6             "version": "1",  7             "firstImg": "http:\/\/img1.maka.im\/575144\/1440766949nikIOQqegbRpr.jpeg",
 8             "template_id": "T_AHER10I9",
 9             "updateTime": "2015-08-28 11:11:11",
10             "functionId": "0",
11             "industryId": "0",
12             "category_id": "10",
13             "functionTag": "",
14             "industryTag": "",
15             "statData": 0,
16             "statUrl": "http:\/\/api.maka.im\/statistics\/show\/2BD324I1",
17             "formData": 0,
18             "hasForm": 0,
19             "formUrl": "",
20             "QRcodeImg": "http:\/\/api.maka.im\/code\/index\/2BD324I1"
21  }

3. 創做模塊。這裏沒有太多好講的。基本數據返回。比較讚的是,返回雲圖冊,手機端能夠訪問PC端上傳的圖片。

4. 熱門模塊。簡單API。

 

4. 總結

1. 服務器架構。分離接口訪問,做品查看,圖片處理,圖片存儲,CDN。各個服務器均可以進行橫向擴展而且單獨優化。

2. 客戶端架構。

   1)第三方庫依賴管理。使用Cocoapods管理第三方庫。

   2)網絡庫。沒有使用AFNetworking,多是直接使用iOS內置類處理。這個比較意外。

 3)數據庫。使用FMDB。   

   4)緩存。SDWebImage。

   5)框架。使用ReactiveCocoa,Masonry。

   6)其餘。其餘的一些UI庫。

   7)不使用Storyboard和xib。

 

以上,是MAKA iOS的需求和功能分析,以及技術分析。

 


 

備註:純屬學習。請勿跨省。

相關文章
相關標籤/搜索