幫你加速應(yīng)用開發(fā)的五種工具
譯文【51CTO.com快譯】通常而言,構(gòu)建一款應(yīng)用是一項(xiàng)既費(fèi)時(shí)又費(fèi)力的過程,而且往往您需要在沒有足夠預(yù)算的情況下,將“造價(jià)昂貴”的應(yīng)用盡快地投入市場(chǎng),以搶占商機(jī)。那么,您會(huì)為此“砍掉”應(yīng)用程序的部分功能,或四處尋找加快應(yīng)用開發(fā)過程的“獨(dú)門秘籍”嗎?
讓我們通過本文來看看,您可以用來加快應(yīng)用開發(fā)過程的五種不同工具。它們主要體現(xiàn)在兩個(gè)方面:既可以減少您構(gòu)建應(yīng)用的成本,又能夠加速應(yīng)用的發(fā)布。
同時(shí),下列的大多數(shù)工具也能夠幫助您加快項(xiàng)目的迭代。例如:Fastlane就能夠自動(dòng)化原有手工部署應(yīng)用的過程,因此您既可以縮短發(fā)布周期,又能夠?qū)r(shí)間更多地轉(zhuǎn)移到修復(fù)bug和實(shí)現(xiàn)功能特性上。
下面讓我們開始吧!
1. Parse Server(解析服務(wù)器)
***款工具是Parse Server。它擁有一個(gè)開源的后端云,并提供諸如:數(shù)據(jù)庫、推送通知、文件存儲(chǔ)、以及用戶管理等增值服務(wù)。
其工作原理為:
- 在某個(gè)普通的平臺(tái)即服務(wù)(PaaS)的環(huán)境中(如:Heroku)創(chuàng)建一個(gè)Parse Server的實(shí)例。
- 將您的Parse Server實(shí)例連接到某個(gè)普通的數(shù)據(jù)庫即服務(wù)(DaaS)環(huán)境中,如:mLab,https://mlab.com/。
- 將您的應(yīng)用與新生成的Parse Server實(shí)例相結(jié)合,并開始使用它所提供的各種工具。
- 至此,您手上就有了一套全面的、基于后端云的服務(wù)。
Parse Server是2017年初關(guān)停的parse.com的“轉(zhuǎn)世”產(chǎn)品。不同于以前parse.com為您提供的成品服務(wù),Parse Server讓您能夠自行定制基于云的后端服務(wù)。
由于它是開源的,您可以在包括:AWS、Heroku、Google App Engine、Azure和Digital Ocean在內(nèi)的許多基礎(chǔ)設(shè)施提供商上,配置自己的Parse Server實(shí)例。
Parse Server還能夠連接到諸如推送通知、和文件存儲(chǔ)等各種后端工具上,這對(duì)于應(yīng)用開發(fā)人員是非常有用的。當(dāng)然,您可能需要每一種服務(wù)對(duì)接到另一種服務(wù)提供商處,如:Amazon S3或OneSignal。因此,雖然這些工具可能很酷炫,但是您需要為了多家服務(wù)提供商,而進(jìn)行相對(duì)復(fù)雜的安裝和維護(hù)。畢竟Parse Server不像其他平臺(tái)那樣“大而全”。
Parse Server的各種云相關(guān)功能特別亮眼。通過JavaScript,您可以對(duì)任務(wù)進(jìn)行簡(jiǎn)單編碼,以觸發(fā)并執(zhí)行Parse Server上的某個(gè)事件,如:上傳文件或存儲(chǔ)數(shù)據(jù)庫對(duì)象。
比如說,您有一個(gè)電影推薦類型的應(yīng)用,如IMDB,那么當(dāng)某個(gè)用戶產(chǎn)生了一條電影評(píng)論的時(shí)候,您可以通過服務(wù)器端腳本“鉤住(hook)”該事件,并推送通知到已關(guān)注了用戶的其他會(huì)員處,通知他們此條新的評(píng)論。
通過Parse Server,應(yīng)用開發(fā)人員將節(jié)省花費(fèi)在構(gòu)建后端服務(wù)和維護(hù)Web服務(wù)器上的時(shí)間,從而有更多的時(shí)間去專注于應(yīng)用本身及其功能。它的特點(diǎn)還包括:可擴(kuò)展、價(jià)格實(shí)惠、易于維護(hù)、可定制,并配有大量實(shí)用的內(nèi)置工具。
優(yōu)勢(shì):
- 支持大量的平臺(tái)類型,包括物聯(lián)網(wǎng)
- 優(yōu)秀的聯(lián)機(jī)文檔和代碼示例
- 活躍的開源社區(qū)
劣勢(shì):
- 需要一個(gè)獨(dú)立運(yùn)行的平臺(tái),如Heroku
- 縮放程度取決于基礎(chǔ)設(shè)施
- 并非一站式工具
定價(jià):
開源且免費(fèi),但您需要類似Heroku的基礎(chǔ)設(shè)施來運(yùn)行Parse Server。當(dāng)然,一些簡(jiǎn)單的入門級(jí)的設(shè)置需要20美元/月。
平臺(tái):
iOS、MacOS、tvOS、Android、JavaScript、React、.NET、Unity、PHP、Arduino和Embedded C
2. Fastlane(快速通道)
Fastlane是一款主要適用于持續(xù)集成和連續(xù)部署(CI/CD)的工具。也就是說:當(dāng)您為某個(gè)應(yīng)用創(chuàng)建新的版本時(shí),它會(huì)自動(dòng)推送或發(fā)布給最終用戶或beta版測(cè)試用戶。Fastlane能夠支持您的各種自動(dòng)化工具與工作流。
比如說,您創(chuàng)建了一個(gè)應(yīng)用,并在App Store里發(fā)布了其1.0版本。幾周后,您發(fā)現(xiàn)并修復(fù)了一些bug、也實(shí)現(xiàn)了某個(gè)新的應(yīng)用功能。那么您想向beta版測(cè)試用戶發(fā)布該1.1的改進(jìn)版,并且隨后要向每一位用戶全面鋪開。那么您可以進(jìn)行如下操作:
- 創(chuàng)建一個(gè)新的版本,并發(fā)布到App Store Connect中
- 手工為每一種設(shè)備型號(hào)創(chuàng)建該新應(yīng)用的屏幕截圖
- 更新您的應(yīng)用元數(shù)據(jù)、和相關(guān)截圖等
- 使用TestFlight為測(cè)試用戶構(gòu)建并推送beta版
就單獨(dú)的開發(fā)者而言,上述流程是完全可控的。但是如果您處于一個(gè)分布式的團(tuán)隊(duì)之中,而且同時(shí)開發(fā)著多個(gè)應(yīng)用程序的版本的話,那么情況就不一樣了。您需要將某些修復(fù)和新功能,以每一到兩周的頻率推送并發(fā)布到其2.0版本上??梢?,在您的應(yīng)用部署過程中,一些手動(dòng)任務(wù)是相當(dāng)耗時(shí)的。因此,我們需要加速該過程,并實(shí)現(xiàn)自動(dòng)化的方法。
Fastlane也就應(yīng)運(yùn)而生了,下面我們來看它是如何加速應(yīng)用的進(jìn)程與發(fā)布的:
- 為多種設(shè)備型號(hào)和語言,自動(dòng)化生成相應(yīng)的程序截圖
- 自動(dòng)分發(fā)應(yīng)用的beta版本,包括設(shè)置編譯版本號(hào)、管理代碼簽名、上傳應(yīng)用、和記錄應(yīng)用的變更
- 自動(dòng)化該應(yīng)用的發(fā)布工作流,包括設(shè)置元數(shù)據(jù)、上傳截圖、提交應(yīng)用以供審查
- 在團(tuán)隊(duì)中自動(dòng)化代碼簽名,包括在團(tuán)隊(duì)內(nèi)部的開發(fā)者之間共享各種開發(fā)私鑰和證書
實(shí)際上,F(xiàn)astlane由一系列“動(dòng)作”所組成,包括:上傳需要編譯的應(yīng)用、和將不同的工作流程與多種操作相關(guān)聯(lián)。對(duì)于這些動(dòng)作,您完全可以通過自定義腳本來實(shí)現(xiàn)。同時(shí)Fastlane集成了時(shí)下流行的CI/CD的工具,包括:CircleCI、Jenkins和Travis CI。
而且它是開源的,這就意味著各個(gè)開發(fā)者可以貢獻(xiàn)自己的工具、定義自己的動(dòng)作和插件。同時(shí),F(xiàn)astlane的每一款工具都有配套的聯(lián)機(jī)文檔,包括:各種示例和***實(shí)踐,這些都是應(yīng)用開發(fā)者所必備的工具。
優(yōu)勢(shì):
- 能夠節(jié)省您大量的時(shí)間
- 自動(dòng)化各種繁瑣的任務(wù)
- 手動(dòng)操作越少,出錯(cuò)幾率越低
劣勢(shì):
- 需要花精力進(jìn)行設(shè)置
- 對(duì)于單獨(dú)的開發(fā)者和偶爾編譯的工作量,并無改善
定價(jià):
免費(fèi)且開源!
平臺(tái):
iOS和Android
3. App Design Templates(應(yīng)用設(shè)計(jì)模板)
如今,用戶更關(guān)心的是應(yīng)用程序能否給他們帶來很好的用戶體驗(yàn)。畢竟,我們安裝自己所熟悉的應(yīng)用耗時(shí)會(huì)更少。因此,一方面是用戶不愿冒風(fēng)險(xiǎn)安裝自己不熟悉的應(yīng)用;另一方面,應(yīng)用開發(fā)人員則希望通過新奇、且無可挑剔的UI/UX設(shè)計(jì)得以“出位”。
一般而言,從頭開始設(shè)計(jì)一個(gè)應(yīng)用,往往需要大量的時(shí)間、資金和資源。也許您的設(shè)計(jì)師并無太多在移動(dòng)應(yīng)用方面的經(jīng)驗(yàn),或者您的預(yù)算不足以支撐精益的應(yīng)用原型、而只夠設(shè)計(jì)出平實(shí)的產(chǎn)品平面。
實(shí)際上,我們需要用一種設(shè)計(jì)模板,來預(yù)先為您的應(yīng)用準(zhǔn)備好成品的圖形界面。您既可以選取自己喜歡的組件與風(fēng)格,也可以直接復(fù)制與粘貼其整個(gè)圖形設(shè)計(jì)。
下面是我最喜歡一些設(shè)計(jì)模板:
- NOW、TETHR和InVision的DO
- Facebook的iOS 11 iPhone GUI
- Baianat的Stark UI kit
- Lina Seleznyova的Stitch
- Adrian Chiran的Phoenix
- Michael Flarup的Apply Pixels
其中的許多模板都是專門為應(yīng)用類型所設(shè)計(jì)的,如:社交、生產(chǎn)效率和電子商務(wù)。當(dāng)然,您也可以用它們來創(chuàng)建出自己的應(yīng)用程序模型。
例如,您可以使用Facebook的iOS GUI模板來根據(jù)iOS的默認(rèn)布局和組件,“一比一”地創(chuàng)建自己的應(yīng)用。而Apply Pixels的各種模板也能幫助您設(shè)計(jì)出應(yīng)用的圖標(biāo)和截圖,以及達(dá)到App Store的展示效果。
值得注意的是:當(dāng)您在使用某個(gè)設(shè)計(jì)模板時(shí),請(qǐng)務(wù)必檢查它的許可證和使用條款。雖然它們可以被免費(fèi)獲取,但是并不意味著您可以任意使用、改變或用它們?nèi)ビK鼈兊陌鏅?quán)永遠(yuǎn)屬于模板的創(chuàng)造者,如有疑問,請(qǐng)勿擅用。
優(yōu)勢(shì):
- 節(jié)省了大量的時(shí)間和資金
- 價(jià)格上可接受,且往往質(zhì)量高
- 大多數(shù)模板可被定制
劣勢(shì):
- 需花時(shí)間定制
- 需花時(shí)間找到自己需要的
- 許可證條款不一定清晰
定價(jià):
免費(fèi)/付費(fèi)
平臺(tái):
任意
4. PaintCode
PaintCode是一款簡(jiǎn)單高效的工具,它最善長(zhǎng)為可視化設(shè)計(jì)的UI組件生成程序代碼。
其工作原理如下:
- 在PaintCode的可視化界面中,您先設(shè)計(jì)出UI組件,如一個(gè)按鈕
- PaintCode迅速生成其相應(yīng)的Objective-C、Java、C#、JavaScript或SVG代碼
- 您將該代碼運(yùn)用到自己的應(yīng)用程序中,使其UI組件出現(xiàn)在屏幕上
過去的傳統(tǒng)方式是:開發(fā)人員通過手工編寫代碼,在應(yīng)用中創(chuàng)建一個(gè)按鈕,包括其顏色、文字、邊界設(shè)置、以及按鈕顯示。隨著UI組件越來越復(fù)雜,時(shí)間開銷也越來越大。而設(shè)計(jì)人員則可以通過PaintCode創(chuàng)造出***的UI組件和生動(dòng)的應(yīng)用。同時(shí),開發(fā)人員也不會(huì)再抱怨自己“辦不到”了。
PaintCode能夠?qū)⑵?ldquo;草圖”導(dǎo)出為一個(gè)文件,從而方便您在UI組件被更新時(shí),直接重新載入便可。當(dāng)然,您也可以使用各種參數(shù)變量和表達(dá)式,例如:將某種顏色陰影更新到一個(gè)新的配色方案之中。
另外,PaintCode也為Sketch(UI設(shè)計(jì)工具)準(zhǔn)備了一個(gè)插件式的圖形設(shè)計(jì)工具。通過該插件,您可以直接將Sketch草圖輸出到Swift或Objective-C。所以您不必在PaintCode中重新創(chuàng)建草圖,直接從Sketch中導(dǎo)出便可!
PaintCode擁有大量的教程、優(yōu)秀的聯(lián)機(jī)文檔、和及時(shí)的響應(yīng)支持。
優(yōu)勢(shì):
- 節(jié)省了開發(fā)人員與設(shè)計(jì)人員之間“扯皮”的時(shí)間
- 靈活、可定制
- 支持四大主流應(yīng)用平臺(tái)
劣勢(shì):
- 需要具有設(shè)計(jì)和開發(fā)的能力
- 某些開發(fā)者不喜歡自動(dòng)生成代碼的方式
- 對(duì)于面向界面生成器的工作流的支持能力有限
定價(jià):
免費(fèi)試用,1–3人團(tuán)隊(duì)收取99美元/年
平臺(tái):
iOS、MacOS、Android和Web
5. Awesome iOS and Android
準(zhǔn)確地說,Awesome并非一個(gè)工具,而是一種資源,而且是一種值得分享的資源!
Awesome是一張資源的列表,它包括:框架、庫、課程、書籍、博客、播客、應(yīng)用程序的開發(fā)工具和模板。如果您在GitHub上做一個(gè)簡(jiǎn)單的搜索,如:https://github.com/search?q=awesome,就能發(fā)現(xiàn)從iOS到Swift、到Android、再到JavaScript,幾乎所有資源的列表。
下面是我最喜歡的一些:
擴(kuò)展閱讀
只要站在巨人的肩膀上,您就能更快地構(gòu)建出更好的、且更有益的應(yīng)用程序。所以說,有了現(xiàn)成的工具,我們還需要重新“發(fā)明輪子”嗎?
基于后端云服務(wù)的應(yīng)用構(gòu)建雖然很方便,但是在某些情況下,您還是應(yīng)該自行建立Web服務(wù)。因此聰明的開發(fā)人員,會(huì)知道何時(shí)去使用其工具包里的哪些工具。當(dāng)然無論如何,快速且智能的開發(fā)進(jìn)程總會(huì)讓您受益的!
原文標(biāo)題:5 Tools to Speed Up Your App Development ,作者:Reinder de Vries
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】