首先我們先聊聊目前主流手機(jī)操作系統(tǒng),目前就兩大陣營:安卓與IOS,。在我國,,從市場份額來說安卓的占有率是極高的高達(dá)80%,,而蘋果才20%。(2018年數(shù)據(jù))?,F(xiàn)在開發(fā)手機(jī)APP的技術(shù)現(xiàn)在主要分為原生開發(fā),、前端的方式開發(fā)、原生和前端的混合方式,,還有目前新出的flutter技術(shù)的開發(fā)方式,接下來我們來詳細(xì)聊聊對應(yīng)的相關(guān)技術(shù),。 原生方式開發(fā)如果你選擇安卓陣營,,目前可供你選擇的語言有 JAVA 和 Kotlin,如果你是安卓的初學(xué)者沒有 JAVA 相關(guān)的編程經(jīng)驗(yàn),,建議你先從 JAVA 開始學(xué)起,。如果你是有 JAVA 編程經(jīng)驗(yàn)的開發(fā)人員,你可以開始學(xué) Kotlin,。接下來我來分別進(jìn)行解釋為什么要這樣選擇: 1,、沒有編程經(jīng)驗(yàn)的初學(xué)者,建議先從JAVA語言開始 如果你沒有編程經(jīng)驗(yàn),,建議你還是首選JAVA,,除了Android 系統(tǒng)開發(fā)APP 開始就是首選 JAVA 的原因外,還有如下幾個(gè)原因:
2,、有 JAVA 編程經(jīng)驗(yàn)的,,建議開始學(xué)kotlin 安卓最開始的官方首選語言推薦JAVA,自從隨著甲骨文對JAVA有著相應(yīng)的版權(quán),,安卓官網(wǎng)為了擺脫這個(gè)束縛,,就開始轉(zhuǎn)變編程語言,,建議使用 kotlin。對Java開發(fā)人員來說,,建議開始學(xué)習(xí)Kotlin,,因?yàn)樗_實(shí)提高了開發(fā)效率。有些以前幾十行的 JAVA 代碼,,如過換成了 Kotlin 有可能幾行就實(shí)現(xiàn)了,。facebook, Squre等公司曾經(jīng)公開已經(jīng)切到看Kotlin開發(fā),國內(nèi)使用 JAVA 進(jìn)行開發(fā)還需要持續(xù)一段時(shí)間,,目前還沒有聽說哪個(gè)應(yīng)用是完全用 kotlin 開發(fā)的,。但是不代表未來不會,畢竟安卓官方正在不遺余力的進(jìn)行推,,代表著未來的方向,,因此作為有 JAVA 編程基礎(chǔ)的人,應(yīng)該從現(xiàn)在開始學(xué)習(xí) kotlin,,學(xué)習(xí)這個(gè)你應(yīng)該提前有個(gè)心理準(zhǔn)備,,相關(guān)的學(xué)習(xí)資源比較少,插件少,,大部分資料是外文的,,你還有許多坑要去踩。 如果你選擇 IOS 開發(fā)陣營,,你可以選擇的語言同樣面臨著兩種,,一個(gè)是一開始就使用的object-C 和 現(xiàn)在官方推薦的 swift。由于歷史遺留的問題,,還有比較多用 object-C開發(fā)的APP,,因此我建議在學(xué)好object-C的基礎(chǔ)上,再開始學(xué)習(xí) swift,。因?yàn)樵谖磥淼陌姹局?,官方會越來越? swift 進(jìn)行傾斜。既然是這樣,,你又不得不去學(xué)習(xí) swift,,同時(shí)又不能丟棄object-C,還有一點(diǎn)需要提及到在swift的項(xiàng)目中你還可以使用 object-C,,使用兩者語言可以混合進(jìn)行開發(fā),。如果時(shí)間精力不允許的情況,在使用 object-C 開發(fā)的項(xiàng)目中,,如果有新的功能,,你可以使用 swift 語言,等有時(shí)間了,,條件允許的情況下,,在逐步把以前的功能替換成 swift,。 混合開發(fā)目前也比較流行混合開發(fā),由于原生開發(fā)的成本比較高,,需要有兩個(gè)團(tuán)隊(duì)進(jìn)行維護(hù),,同時(shí)修改一個(gè)功能,都需要進(jìn)行打包發(fā)布提交審核,,為了節(jié)省成本提高開發(fā)速度,,會將精彩有變化的通用的功能,使用內(nèi)嵌網(wǎng)頁的形式進(jìn)行開發(fā),,這時(shí)用到的就是前端相關(guān)的開發(fā)知識,,比如你可以使用前端相關(guān)的開發(fā)框架 vue、react,、angular 其中的任意一種,或者不用任何前端框架,。如果采用這種方式開發(fā),,你就要去學(xué)前端相關(guān)的知識:html,css,,javaScript等,,學(xué)完這些還要去學(xué)習(xí)我剛才提及的三種框架之一。 完全用前端技術(shù)開發(fā)隨著前端技術(shù)的發(fā)展,,現(xiàn)在有一種流行的“大前端”的說法,,你可以用前端做很多的事情,除了用前端可以開發(fā)網(wǎng)站,,我們可以用來做后端(Node),,桌面軟件、手機(jī)端軟件,、VR ,、網(wǎng)頁游戲等等。這里我們來聊聊完全用前端的開發(fā)方式,,剛才我們說的混合開發(fā)其實(shí)使用到的的類似webview的組件訪問網(wǎng)頁而已,,之所以選擇這種方式開發(fā),一是實(shí)現(xiàn)了跨平臺,,同時(shí)又節(jié)省了開發(fā)和管理成本,,用前端的方式編寫一套代碼,就可以多平臺部署,。使用這種方式的優(yōu)勢就是開發(fā)快,,成本低,缺點(diǎn)就是犧牲了原生的性能,。 這里我說的完全用前端開發(fā)有比較多的解決方案:Cordova,、uni-app,、weex, ionic、React Native,、Taro等方式,,由于太多我就不一一介紹了,如果你傾向使用Vue框架,,建議使用 uni-app,,如果你前端傾向?qū)W習(xí) React 框架,你就選擇 React Native,。 接下來我著重介紹下uni-app 和 React Native(如果你感興趣我剛才提及的技術(shù),,建議去搜索引擎查找下)。 1,、uni-app uni-app是一個(gè)使用Vue.js開發(fā)所有前端應(yīng)用的框架,,開發(fā)者編寫一套代碼,可發(fā)布到的iOS,,機(jī)器人,,H5,以及各種小程序(微信/支付寶/百度/頭條/ QQ /釘釘)等多個(gè)平臺,。據(jù)他們說擁有350萬開發(fā)者用戶,,旗下uni-app有5萬+案例,600 +插件,。如果你選擇使用這個(gè)方式開發(fā)開發(fā)APP,,那建議你去學(xué)習(xí) Vue這個(gè)框架 和 前端相關(guān)的基礎(chǔ)知識。以下這張圖羅列了uni-app官網(wǎng)對其框架的詳細(xì)解釋圖,,如下所示: 2,、React Native React Native (簡稱RN)是Facebook于2015年4月開源的跨平臺移動應(yīng)用開發(fā)框架,是Facebook早先開源的JS框架 React 在原生移動應(yīng)用平臺的衍生產(chǎn)物,,目前支持iOS和安卓兩大平臺,。RN使用Javascript語言,類似于 HTML 的JSX,,以及CSS來開發(fā)移動應(yīng)用,,因此熟悉Web前端開發(fā)的技術(shù)人員只需很少的學(xué)習(xí)就可以進(jìn)入移動應(yīng)用開發(fā)領(lǐng)域。 因此你想使用這種方法進(jìn)行開發(fā)APP,,你就要去學(xué)習(xí) React 和前端相關(guān)的基礎(chǔ)知識,。 flutterFlutter是谷歌的移動UI框架,可以快速在iOS和Android上構(gòu)建高質(zhì)量的原生用戶界面,。 Flutter可以與現(xiàn)有的代碼一起工作,。在全世界,F(xiàn)lutter正在被越來越多的開發(fā)者和組織使用,并且Flutter是完全免費(fèi),、開源的,。由于 Flutter 目前還比較新,使用的語言是 Dart,,如果你選擇這種開發(fā)方式做APP,,意味著你要面臨中文學(xué)習(xí)資料少,有更多坑要踩,,下面是一張 Flutter 與 React Native 的對比介紹,,要不要選擇這種方式,你可以考慮下,,從這張圖中,,貌似Flutter的性能會更好。 小節(jié)關(guān)于想進(jìn)入開發(fā)手機(jī)APP的同學(xué)們,,如果你或者公司對性能要求很高,,又不考慮開發(fā)成本,建議選擇原生開發(fā),,如果選擇選擇原生開發(fā),,你需要確定是做 IOS 開發(fā) 還是 安卓 開發(fā),做安卓開發(fā)你可以選擇 Java 或者 kotlin,,選擇 IOS 開發(fā) 你要學(xué)習(xí) object-C 和 swift ,。如果你選擇混合開發(fā)和完全用前端技術(shù)開發(fā),,你需要學(xué)習(xí)前端相關(guān)的基礎(chǔ)知識和相關(guān)框架,。如果你想用時(shí)髦比較前衛(wèi)的技術(shù)實(shí)現(xiàn)跨平臺開發(fā),你需要學(xué)習(xí)Flutter相關(guān)的 Dart 編程,。今天的問題解答就分享到這里,,如果你有其它的補(bǔ)充方案,歡迎到留言區(qū)交流,。 |
|