自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在寫一個(gè)iOS應(yīng)用之前必須做的7件事(附相關(guān)資源)

移動(dòng)開(kāi)發(fā)
如果你提前花些時(shí)間正確設(shè)置項(xiàng)目,你將會(huì)為將來(lái)節(jié)省大量的時(shí)間。如果你是一位獨(dú)立開(kāi)發(fā)者,你可能意識(shí)不到下面提到的這些步驟的重要性。大多數(shù)優(yōu)秀的應(yīng)用程序都由團(tuán)隊(duì)開(kāi)發(fā),如果遵循以下步驟,肯定能幫你減少挫敗感并提升應(yīng)用質(zhì)量。

這兩年,我一直在編寫并發(fā)布有質(zhì)量的iOS 應(yīng)用。我發(fā)現(xiàn)大多數(shù)的開(kāi)發(fā)人員有直接跳進(jìn)編碼應(yīng)用程序的核心邏輯的傾向,因?yàn)檫@是樂(lè)趣所在。遵循流程開(kāi)發(fā)是很無(wú)聊的。

我了解到最有效的方式是,如果你提前花些時(shí)間正確設(shè)置項(xiàng)目,你將會(huì)為將來(lái)節(jié)省大量的時(shí)間。如果你是一位獨(dú)立開(kāi)發(fā)者,你可能意識(shí)不到下面提到的這些步驟的重要性。大多數(shù)優(yōu)秀的應(yīng)用程序都由團(tuán)隊(duì)開(kāi)發(fā),如果遵循以下步驟,肯定能幫你減少挫敗感并提升應(yīng)用質(zhì)量。

1.為工程設(shè)置編碼風(fēng)格規(guī)范

編碼風(fēng)格規(guī)范指的是在使用特定語(yǔ)言寫代碼之前要明確遵守的風(fēng)格和慣例,它包括類似于該使用tab鍵還是空格鍵,如何命名變量以及特定語(yǔ)言本身的約定俗成(像swift語(yǔ)言中是否該使用Classes還是Structs)。

編碼規(guī)范本身沒(méi)有孰對(duì)孰錯(cuò)。在項(xiàng)目開(kāi)始前,你可以設(shè)置自己的編碼風(fēng)格,但是必須保證同組的人遵守相同的規(guī)范。編碼規(guī)范能夠保證代碼更加統(tǒng)一和更易于閱讀。

一些公司已經(jīng)開(kāi)源了Objective-C和Swift語(yǔ)言的編碼規(guī)范。

2.在寫代碼之前確定應(yīng)用的架構(gòu)

在寫代碼之前,確定應(yīng)用架構(gòu)是非常重要的。一個(gè)好的架構(gòu)可以提升應(yīng)用的可測(cè)試性,更加易于理解并且能降低維護(hù)成本。你可以使用傳統(tǒng)的MVC架構(gòu),或者使用更加流行的MVVM或VIPER架構(gòu),這里提供了大量的資源來(lái)介紹這些架構(gòu)。

 

Modern application architectures (Reactive programming, MVVM and beyond)

 

3.設(shè)定應(yīng)用的目錄結(jié)構(gòu)

為了使數(shù)以百計(jì)的源代碼文件至始至終保存在相同的目錄中,最好是根據(jù)項(xiàng)目的架構(gòu)制定目錄結(jié)構(gòu),例如,你可以使用以下的目錄結(jié)構(gòu):

首先,在Xcode的Project Navigator中工程名稱分組下面,以group的形式創(chuàng)建它們(小黃色的文件夾),然后,通過(guò)打開(kāi)Xcode右邊的File Inspector,為每個(gè)創(chuàng)建的group鏈接到真實(shí)的項(xiàng)目路徑下對(duì)應(yīng)的目錄,點(diǎn)擊File Inspector中小的灰色的文件夾icon,在工程目錄下創(chuàng)建對(duì)應(yīng)group名稱的子目錄。

這個(gè)看起來(lái)是件小的事情,卻可以使你的項(xiàng)目更加有條理且易于理解。

了解更多目錄結(jié)構(gòu)可以參考以下資源:

4.項(xiàng)目依賴管理

你當(dāng)然會(huì)在項(xiàng)目中使用第三方庫(kù),在項(xiàng)目中,你可以有三種方式可以管理項(xiàng)目依賴。

CocoaPods是適用于Swift和Objective-C Cocoa項(xiàng)目的依賴管理庫(kù),它有將近10000個(gè)開(kāi)源庫(kù),可以優(yōu)雅地幫你管理項(xiàng)目的規(guī)模。它是最有效的方式做依賴管理,就像Ruby中的Gems。

Youtube上有一個(gè)google開(kāi)發(fā)者創(chuàng)建的滑稽的視頻(地址,需翻墻)來(lái)解釋為什么必須在項(xiàng)目中使用CocoaPods。

  • Github Submodules

你也可以使用Github Submodules管理你的項(xiàng)目依賴作為子庫(kù),相比CocoaPods,Github Submodules的優(yōu)點(diǎn)在于它是sub-repos- 這不僅意味著git和git GUIs能夠隱式識(shí)別他們,并且也可以獲得更多支持,同時(shí)意味著你的工程依賴能夠更加緊密的聯(lián)系到他們的git倉(cāng)庫(kù),而Cocoapods則不能。

submodules的問(wèn)題是:你的工程不擁有你依賴庫(kù)的源代碼,僅僅是擁有一個(gè)引用到submodule的倉(cāng)庫(kù)。大多數(shù)情況你控制不了這些代碼倉(cāng)庫(kù)。

Carthage被認(rèn)為是往Cocoa應(yīng)用中添加框架的最簡(jiǎn)單的方法。Carthage使用xcodebuild編譯framework二進(jìn)制,但是把集成的任務(wù)留給了用戶。CocoaPods的目的是對(duì)用戶簡(jiǎn)單,但是Carthage對(duì)用戶來(lái)說(shuō)是靈活的、不干涉的。

不幸的是,Carthage的最大的缺點(diǎn)是----只支持iOS8及以后版本。

這三個(gè)當(dāng)中,我最常用并且我個(gè)人最喜歡的是CocoaPods,因?yàn)樗O(shè)置超級(jí)簡(jiǎn)單,并且提供了數(shù)以千計(jì)的第三方庫(kù)供你訪問(wèn)。

5.為應(yīng)用設(shè)置合適的Scheme

當(dāng)你點(diǎn)擊了Run、Test、Profile、Analyze或者Archive 操作后,Schemes告訴Xcode什么會(huì)發(fā)生。通常,每個(gè)操作對(duì)應(yīng)一個(gè)target和一個(gè)編譯配置。你也可以傳遞啟動(dòng)參數(shù),比如應(yīng)用運(yùn)行的語(yǔ)言(測(cè)試本地化很有用)或者debug時(shí)設(shè)置一些判斷的標(biāo)識(shí)位。

建議Scheme的命名規(guī)則采用MyApp () [Environment]:

 

你也可以使用Target制作不同的發(fā)布、測(cè)試以及開(kāi)發(fā)來(lái)編譯程序,如以下描述:

6.設(shè)置合適的Certificates和Provisioning Profiles

在測(cè)試和發(fā)布應(yīng)用過(guò)程中,這個(gè)是開(kāi)發(fā)者最頭疼且重要的步驟。證書對(duì)代碼簽名來(lái)說(shuō)是必須的,你可以在真機(jī)上運(yùn)行應(yīng)用程序。

有兩種類型的證書:

  • 開(kāi)發(fā)證書:每個(gè)團(tuán)隊(duì)的開(kāi)發(fā)者都有自己的證書,需要請(qǐng)求生成。Xcode會(huì)為你做這些,但是最好不要點(diǎn)擊“Fix issue”按鈕,并且能夠理解點(diǎn)擊這個(gè)按鈕會(huì)真正執(zhí)行什么。開(kāi)發(fā)證書是發(fā)布應(yīng)用的開(kāi)發(fā)版本到設(shè)備上。

  • 發(fā)布證書:可以有多個(gè),但是最好保持一個(gè)公司一個(gè)發(fā)布證

    書,通過(guò)內(nèi)部渠道分享相關(guān)的秘鑰。發(fā)布應(yīng)用到App Store時(shí)需要這個(gè)證書,或者是公司內(nèi)部的企業(yè)級(jí)應(yīng)用分發(fā)。

  • Provisioning Profiles

Provisioning Profiles 可能是系統(tǒng)中最容易引起混淆的部分了,如果你訪問(wèn)蘋果開(kāi)發(fā)者網(wǎng)站,你會(huì)注意到你可以創(chuàng)建兩種類型的Provisioning Profiles(開(kāi)發(fā)和發(fā)布)。Provisioning Profiles是“以這個(gè)證書的私鑰作為簽名的應(yīng)用可以在這些設(shè)備上正常運(yùn)行: https://www.quora.com/What-are-the-differences-between-certificates-provisioning-profiles-and-identifiers

你可以閱讀更多相關(guān)資源:

7.設(shè)置應(yīng)用持續(xù)集成和交付過(guò)程

建立一個(gè)持續(xù)集成和交付過(guò)程已成為關(guān)鍵,因?yàn)楝F(xiàn)在它可以幫助您在開(kāi)發(fā)早期發(fā)現(xiàn)bug和節(jié)省大量的開(kāi)發(fā)人員的時(shí)間。

持續(xù)集成 (CI) 是一種開(kāi)發(fā)實(shí)踐,要求開(kāi)發(fā)人員一天將代碼同步到共享存儲(chǔ)庫(kù)幾次。每次提交都會(huì)用自動(dòng)腳本進(jìn)行驗(yàn)證,可以使團(tuán)隊(duì)盡早的發(fā)現(xiàn)問(wèn)題。

很多工具可以幫你做iOS應(yīng)用程序的持續(xù)集成,比如 Xcode Server、Jenkins和Travis CI。

 

持續(xù)交付 (CD) 是一個(gè)軟件工程的方式,可以使團(tuán)隊(duì)在短周期內(nèi)開(kāi)發(fā)軟件,確保軟件可以在任何時(shí)間可靠地發(fā)布。它旨在更快、更頻繁地構(gòu)建、測(cè)試和發(fā)布的軟件。

為什么使用持續(xù)交付?

  • 可以在準(zhǔn)備應(yīng)用提交、上傳截圖以及發(fā)布應(yīng)用上節(jié)省數(shù)天時(shí)間。

  • 如果在同事休假期間,但你發(fā)現(xiàn)一個(gè)嚴(yán)重問(wèn)題需要修復(fù)并發(fā)布怎么辦?在發(fā)布更新版本時(shí)不需要依賴某一個(gè)人。

  • 通過(guò)更頻繁和小版本的更新,提高軟件質(zhì)量和反應(yīng)時(shí)間。

雖然有大量的工具供持續(xù)交付,我個(gè)人最喜歡的是Fastlane。它非常容易安裝,并提供了一些強(qiáng)大的功能,可以使你整個(gè)的編譯和發(fā)布過(guò)程自動(dòng)化。

如果你喜歡這篇文章,歡迎推薦,以便其他人也可以看到。

責(zé)任編輯:倪明 來(lái)源: CocoaChina
相關(guān)推薦

2015-08-05 09:31:42

開(kāi)發(fā)六件事

2013-12-12 10:37:52

2020-12-30 12:43:09

JavaScript開(kāi)發(fā)編程語(yǔ)言

2017-11-14 07:05:26

物聯(lián)網(wǎng)IT高管數(shù)字化

2015-06-15 12:39:20

程序開(kāi)發(fā)者注意件事

2017-04-26 16:24:49

路由器5GHz頻段

2020-09-11 14:28:59

智能

2015-04-09 09:53:08

CA TechnoloDevOps

2013-08-13 09:44:42

iOS 7開(kāi)發(fā)者

2021-11-18 22:33:25

Windows 11Windows微軟

2022-04-19 07:48:16

JavascriptCSS

2020-07-01 23:17:13

物聯(lián)網(wǎng)設(shè)備物聯(lián)網(wǎng)IOT

2013-01-06 10:51:56

2010-11-01 11:23:16

2022-02-23 11:19:14

開(kāi)源軟件軟件開(kāi)發(fā)

2022-02-28 15:28:43

開(kāi)源云時(shí)代軟件

2017-08-14 15:34:14

廣州

2020-05-27 10:46:49

Kubernetes容器云計(jì)算

2022-09-29 08:03:20

?Kubernete容器共享池

2022-11-21 10:43:55

首席信息官IT 領(lǐng)導(dǎo)者
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)