iOS項(xiàng)目搭建學(xué)習(xí)

前言

本文主要介紹一些優(yōu)秀好用的第三方庫成黄,便于快速搭建項(xiàng)目耙蔑。(2018.5.4更新,新增Realm)

架構(gòu)模式

目前主流的架構(gòu):MVC/MVP/MVVM/VIPER

到底 MVVM(Model-View-ViewModel)適不適合用于 iOS 開發(fā)當(dāng)中奕枢?

早之前 MVVM 就引起熱議了腾务,再加上WWDC上的蘋果工程師展示的示例代碼出現(xiàn)的 view-model 捂龄,MVVM便在 iOS 項(xiàng)目中得到實(shí)踐揩慕。

由 MVC 到 MVP 再到 MVVM 漆诽,無論是什么架構(gòu)模式侮攀,都是在 MVC 的基礎(chǔ)上的優(yōu)化。

MVVM+RAC(ReactiveCocoa)?為什么需要結(jié)合RAC厢拭?

RAC是結(jié)合了函數(shù)式編程和響應(yīng)式編程的框架兰英,利用RAC處理事件不需要跳到對應(yīng)方法里。由于iOS開發(fā)中沒有現(xiàn)成的綁定機(jī)制供鸠,因此會使用 MVVM+RAC 結(jié)合的方式進(jìn)行框架搭建再好不過了畦贸。

至于什么是MVVM,什么是RAC楞捂,以及如何使用薄坏,https://www.baidu.com/?你懂的。本文不再敘述寨闹。

關(guān)于VIPER

直接貼地址啦

https://juejin.im/post/599a43035188252432172045

第三方庫的使用

為方便快速開發(fā)胶坠,下面列出了個人收集的一些第三方庫,均可使用?CocoaPods?管理繁堡,本文只是簡單介紹沈善,不再敘述如何使用。

ReactiveCocoa - 現(xiàn)在拆分為ReactiveObjC和ReactiveSwift

YYKit - 一組功能豐富的 iOS 組件帖蔓。強(qiáng)烈推薦,下面會進(jìn)行講述瞳脓。

AFNetworking - 網(wǎng)絡(luò)庫

bugly - 面向移動開發(fā)者提供專業(yè)的 Crash 監(jiān)控塑娇、崩潰分析等質(zhì)量跟蹤服務(wù),快速定位問題劫侧。

Aspects - 面向切面編程

Realm - 跨平臺數(shù)據(jù)庫埋酬,說實(shí)話這個相比FMDB更好用,因?yàn)槲冶容^懶就不作太多解釋烧栋,不過坑也是有的写妥,比如NSArray轉(zhuǎn)到RLMArray

IQKeyboardManager - 非常容易解決彈起鍵盤遮蓋輸入框的問題

Masonry- 一個輕量級的布局框架, Swift 版本為SnapKit,鏈?zhǔn)骄幊趟枷氪怼?/p>

MBProgressHUD - HUD提示框

MJRefresh - 下拉上拉刷數(shù)據(jù)交互效果

UMengAnalytics - 友盟數(shù)據(jù)統(tǒng)計分析审姓。這個看項(xiàng)目類型和規(guī)模而定珍特,比如像電商的項(xiàng)目,需要了解用戶購買了哪些產(chǎn)品魔吐,比較關(guān)注什么類型的產(chǎn)品扎筒,根據(jù)數(shù)據(jù)對產(chǎn)品制作相應(yīng)的營銷方案莱找。

YYKit

很多大廠用過都說好,微信嗜桌、有貨等等都用它奥溺。

YYKit?出自郭曜源大神,他的github地址 https://github.com/ibireme

從中拆分出以下獨(dú)立組件:

YYModel— 高性能的 iOS JSON 模型框架骨宠。

YYCache— 高性能的 iOS 緩存框架浮定。

YYImage— 功能強(qiáng)大的 iOS 圖像框架。

YYWebImage— 高性能的 iOS 異步圖像加載框架层亿。

YYText— 功能強(qiáng)大的 iOS 富文本框架桦卒。

YYKeyboardManager— iOS 鍵盤監(jiān)聽管理工具。

YYDispatchQueuePool— iOS 全局并發(fā)隊列管理工具棕所。

YYAsyncLayer— iOS 異步繪制與顯示的工具闸盔。

YYCategories— 功能豐富的 Category 類型工具庫。

相信很多人使用過 SDWebImage琳省、MJExtension迎吵, YYWebImage和 YYModel 的出現(xiàn),其目的是代替SDWebImage针贬、MJExtension击费。

YYWebImage 和 SDWebImage 的作用相同,YYModel 和 MJExtension 的作用相同桦他,那么是否決定采用就要考慮的性能和使用兩方面蔫巩,這里就不作比較,網(wǎng)上有很多測評快压。

參考文章:

YYKit作者博客


另外還有一些第三方庫:

GKNavigationBarViewController - 導(dǎo)航欄聯(lián)動實(shí)現(xiàn)

pop - Facebook 開源的實(shí)現(xiàn) Paper 應(yīng)用平滑動畫和轉(zhuǎn)場效果的動畫引擎

BlocksKit - block工具包圆仔。將很多需要用delegate實(shí)現(xiàn)的方法整合成了block的形式

JHChainableAnimations - 鏈?zhǔn)絼赢?/p>

對于第三方庫,還有很多很多蔫劣,可參考:

iOS 中 常用的第三方庫


維護(hù)中遇到的問題

對第三方框架封裝

在開發(fā)中坪郭,我們有必要對一些第三方框架根據(jù)項(xiàng)目需求進(jìn)行二次封裝。比如說第三方庫更新時脉幢,時常伴隨著一些api更新歪沃,如AFNetworking2.0更新到3.0后的差別,若沒有進(jìn)行二次封裝這樣會導(dǎo)致我們不得不修改大量代碼嫌松,維護(hù)難度增加沪曙。

是否使用?Interface Builder?

我們都知道萎羔,使用 Interface Builder 可以非骋鹤撸快速地完成UI頁面的制作,但是如果在團(tuán)隊開發(fā)中,需要對代碼進(jìn)行評審育灸,規(guī)范便成為重中之重腻窒。對于使用純代碼還是 Interface Builder,各有優(yōu)缺點(diǎn)磅崭,需要視公司情況和需求而定儿子。

第三方框架不再更新

還有一點(diǎn),第三方開源庫很多砸喻,一旦不再更新了柔逼,維護(hù)便成為一個重大的問題,我們需要深入學(xué)習(xí)其編程思想割岛,正所謂授人以魚不如授人以漁愉适。

最后說幾句

我們在寫代碼時,都必須遵循高聚合癣漆、低耦合的前提维咸,一份漂亮的代碼便于日后的維護(hù)和擴(kuò)展。對于有沒有必要使用 Swift 開發(fā)或者說使用 RAC 惠爽,個人認(rèn)為還是要視公司實(shí)際情況和項(xiàng)目需求而定癌蓖,畢竟學(xué)習(xí)和維護(hù)成本也是一個重要因素。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末婚肆,一起剝皮案震驚了整個濱河市租副,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌较性,老刑警劉巖用僧,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異赞咙,居然都是意外死亡责循,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進(jìn)店門攀操,熙熙樓的掌柜王于貴愁眉苦臉地迎上來院仿,“玉大人,你說我怎么就攤上這事崔赌∫庵” “怎么了耸别?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵健芭,是天一觀的道長。 經(jīng)常有香客問我秀姐,道長慈迈,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮痒留,結(jié)果婚禮上谴麦,老公的妹妹穿的比我還像新娘。我一直安慰自己伸头,他們只是感情好匾效,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著恤磷,像睡著了一般面哼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上扫步,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天魔策,我揣著相機(jī)與錄音,去河邊找鬼河胎。 笑死闯袒,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的游岳。 我是一名探鬼主播政敢,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼吭历!你這毒婦竟也來了堕仔?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤晌区,失蹤者是張志新(化名)和其女友劉穎摩骨,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體朗若,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡恼五,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了哭懈。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片灾馒。...
    茶點(diǎn)故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖遣总,靈堂內(nèi)的尸體忽然破棺而出睬罗,到底是詐尸還是另有隱情,我是刑警寧澤旭斥,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布容达,位于F島的核電站,受9級特大地震影響垂券,放射性物質(zhì)發(fā)生泄漏花盐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望算芯。 院中可真熱鬧柒昏,春花似錦、人聲如沸熙揍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽届囚。三九已至堪旧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間奖亚,已是汗流浹背淳梦。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留昔字,地道東北人爆袍。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像作郭,于是被迫代替她去往敵國和親陨囊。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容

  • When I was little, I liked talking back when my parents c...
    葛小婷閱讀 304評論 1 2
  • 為什么要學(xué)習(xí)函數(shù)式編程 函數(shù)式編程是編程范式中的一種夹攒,是一種典型的編程思想和方法蜘醋。其他的編程范式還包括面向?qū)ο缶幊?..
    八汰閱讀 19,676評論 15 173
  • 今天兒子快心算考了100分,回來很開心跟我說咏尝。我說不錯压语,但是考100分要謝謝誰呢?兒子愣了一下编检,然后回答:“要謝謝...
    上善若水_4064閱讀 97評論 0 0
  • 《寫給海淀法院的詩》 人生第一次進(jìn)法庭是在海淀法院胎食。 第一次那么近地看看到那國徽懸掛在大堂中央: 如此震撼,威嚴(yán)允懂,...
    鶯歌兒閱讀 488評論 0 2
  • 【百日寫作第六期-隨筆1組】 4.17號打卡 201-nina 202-夏薪 203-nicole 204-云在高...
    轉(zhuǎn)念館閱讀 186評論 0 0