新浪微博筆記
iPhone 項目目標(biāo)
- 熟悉公司開發(fā)流程
- 提升代碼熟練度
- 常用工具的使用
- 建立框架思想
工作相關(guān)
- 產(chǎn)品經(jīng)理
- UI設(shè)計
- 開發(fā)工程師
- 測試
- bug管理系統(tǒng): jira,bugfree
項目管理 --> 敏捷板
新浪微博接口地址
微博開放平臺地址
http://open.weibo.com微博接口文檔地址
http://open.weibo.com/wiki/微博API
項目主體框架
走向工作崗位之后臂容,一般會遇到兩種工作情況:
-
新項目開發(fā)
- 通常在項目開始之前猛铅,公司的產(chǎn)品經(jīng)理會提供完整的產(chǎn)品原型圖烁涌,或功能設(shè)計文檔
- 通過對這些文檔的解讀歉胶,能夠梳理出目標(biāo)項目的整體架構(gòu)台谢,從而協(xié)助項目框架的搭建
-
舊項目維護(hù)
- 很多老項目是缺乏文檔的豌骏,這種情況在一些小公司中表現(xiàn)的尤為突出
- 要想快速上手一個老項目,首先運行項目,并且整理項目整體框架結(jié)構(gòu)
- 然后用整理出的框架結(jié)構(gòu)與代碼結(jié)構(gòu)相互印證悴能,無疑可以對了解項目的整體架構(gòu)起到重要的輔助
綜上所述,無論是新項目杜耙,還是老項目搜骡,在開發(fā)之前確定項目的主體架構(gòu)都是非常重要拂盯,也是十分必要的佑女!
項目準(zhǔn)備
- 項目部署
- 目標(biāo):將項目部署到遠(yuǎn)程服務(wù)器,這是團隊開發(fā)必須的
- 項目設(shè)置
- 目的:設(shè)置項目基本信息谈竿,準(zhǔn)備初始項目
- 內(nèi)容
- 圖標(biāo)
- 啟動圖片
- 旋轉(zhuǎn)方向
- 項目名稱
- 類前綴
- 確定新浪微博系統(tǒng)架構(gòu)
開源中國社區(qū)
官方網(wǎng)站
- 開源中國社區(qū)成立于2008年8月团驱,其目的是為中國的IT技術(shù)人員提供一個全面的、快捷更新的用來檢索開源軟件以及交流使用開源經(jīng)驗的平臺
- 目前國內(nèi)有很多公司會將公司的項目部署在
OSChina
與 GitHUB
的對比
- 服務(wù)器在國內(nèi)空凸,速度更快
- 免費賬戶同樣可以建立
私有
項目嚎花,而GitHUB
上要建立私有項目必須付費
使用
-
注冊賬號
- 建議使用網(wǎng)易的郵箱,使用其他免費郵箱可能會收不到驗證郵件
添加 SSH 公鑰
SSHKey示意圖.png
開源中國幫助文檔地址:https://git.oschina.net/oschina/git-osc/wikis/幫助#ssh-keys
進(jìn)入終端呀洲,并輸入以下命令
# 切換目錄紊选,MAC中目錄的第一個字符如果是 `.` 表示改文件夾是隱藏文件夾
$ cd ~/.ssh
# 查看當(dāng)前目錄文件
$ ls
# 生成 RSA 密鑰對
# 1> "" 中輸入個人郵箱
# 2> 提示輸入私鑰文件名稱,直接回車
# 3> 提示輸入密碼道逗,可以隨便輸入兵罢,只要本次能夠記住即可
$ ssh-keygen -t rsa -C "xxx@126.com"
# 查看公鑰內(nèi)容
$ cat id_rsa.pub
將公鑰內(nèi)容復(fù)制并粘貼至 https://git.oschina.net/profile/sshkeys
測試公鑰
# 測試 SSH 連接
$ ssh -T git@git.oschina.net
# 終端提示 `Welcome to Git@OSC, xxx!` 說明連接成功
- 新建項目
- 克隆項目
# 切換至項目目錄
$ cd 項目目錄
# 克隆項目,地址可以在項目首頁復(fù)制
$ git clone git@git.oschina.net:xxx/ProjectName.git
- 添加
gitignore
# ~/dev/github/gitignore/ 是保存 gitignore 的目錄
$ cp ~/dev/github/gitignore/Swift.gitignore .gitignore
-
提示:
- 可以從
https://github.com/github/gitignore
獲取最新版本的gitignore
文件 - 添加
.gitignore
文件之后滓窍,每次提交時不會將個人的項目設(shè)置信息(例如:末次打開的文件卖词,調(diào)試斷點等)提交到服務(wù)器,在團隊開發(fā)中非常重要
- 可以從
常見命令
# 將項目克隆到本地
$ git clone xxx
# 添加到代碼區(qū)
$ git add .
# 添加到版本庫
$ git commit -m "注釋"
# 推送到服務(wù)器
$ git push
項目設(shè)置
設(shè)置最低支持iOS版本&橫豎屏
version.png
設(shè)置應(yīng)用顯示名稱
appicons.png
- 提示
- 此處修改的內(nèi)容是
Info.plist
中CFBundleName
對應(yīng)的內(nèi)容 - 注意不要超過6個中文吏夯,否則會影響用戶體驗
- 此處修改的內(nèi)容是
設(shè)置類前綴
classprefix.png
基本架構(gòu)
在開發(fā)之前此蜈,確定項目的整體架構(gòu),明確開發(fā)的主體功能非常重要噪生!新浪微博符合經(jīng)典應(yīng)用程序架構(gòu)設(shè)計:
- 主視圖控制器是一個
UITabbarController
- 包含四個
UINavigationController
裆赵,分別是- 首頁
- 消息
- 發(fā)現(xiàn)
- 我
特殊之處:
-
UITabbarController
中間有一個 "+" 按鈕,點擊該按鈕能夠 Modal 顯示微博類型選擇
界面跺嗽,方便用戶選擇自己需要的微博類型 - 四個
UINavigationController
在用戶登錄前后顯示的界面格式是不一樣的
與原版新浪微博的區(qū)別
由于必須使用新浪微博官方的 API 才能夠正常開發(fā)顾瞪,換言之,如果沒有登錄系統(tǒng)是無法使用新浪微博提供的接口的抛蚁!
基于上述原因陈醒,在實際開發(fā)中對未登錄之前的界面設(shè)計進(jìn)行簡化
MVVM
MVVM 是 Model-View-ViewModel 的簡寫,MVVM 模式和 MVC 模式一樣瞧甩,主要目的是分離視圖(View)和模型(Model)
MVC 回顧
- MVC 結(jié)構(gòu)圖
MVC示意圖.png
- MVC 存在的問題
- 模型的代碼很少
- 控制器的代碼一不小心就越來越多
- 不好測試
MVVM
- MVVM 結(jié)構(gòu)圖
MVVM示意圖.png
-
MVVM 概念
- 在 MVVM 中钉跷,
view
和view controller
正式聯(lián)系在一起,我們把它們視為一個組件 -
view
和view controller
都不能直接引用 model肚逸,而是引用視圖模型 -
view model
是一個放置用戶輸入驗證邏輯爷辙,視圖顯示邏輯彬坏,發(fā)起網(wǎng)絡(luò)請求和其他代碼
- 在 MVVM 中钉跷,
-
MVVM 使用注意事項
-
view
引用view model
,但反過來不行 -
view model
引用了model
膝晾,但反過來不行 - 如果我們破壞了這些規(guī)則栓始,便無法正確地使用 MVVM
-
MVVM 的優(yōu)點
- 低耦合:
View
可以獨立于Model
變化和修改,一個ViewModel
可以綁定到不同的View
上 - 可重用性:可以把一些視圖邏輯放在一個
ViewModel
里面血当,讓很多view
重用這段視圖邏輯 - 獨立開發(fā):開發(fā)人員可以專注于業(yè)務(wù)邏輯和數(shù)據(jù)的開發(fā)
ViewModel
幻赚,設(shè)計人員可以專注于頁面設(shè)計 - 可測試:通常界面是比較難于測試的,而 MVVM 模式可以針對
ViewModel
來進(jìn)行測試