APP后臺(tái)開源框架概覽
====================
一、Framework 7

來自iDangero.us的Framework 7自版本1.0發(fā)布以來,一直是開發(fā)iOS應(yīng)用程序的首選之一。它不僅支持iOS風(fēng)格開發(fā),還為安卓提供了強(qiáng)有力的支持。這意味著開發(fā)者可以輕松地創(chuàng)建具有類似iOS外觀感覺的安卓應(yīng)用。Framework 7的特點(diǎn)包括Material Design用戶界面、原生滾動(dòng)效果、精致的頁面動(dòng)畫、自定義DOM庫,以及強(qiáng)大的XHR緩存和預(yù)裝載功能。
二、jQuery Mobile
這是由jQuery基金會(huì)推出的成熟輕量級(jí)框架。盡管相較于其他框架,它缺少一些高級(jí)功能,但依然擁有一大批忠實(shí)用戶。jQuery Mobile提供了語義標(biāo)記、漸進(jìn)式改進(jìn)、主題化設(shè)計(jì)等功能,同時(shí)支持PhoneGap/Cordova。在原生系統(tǒng)的功能和性能或者高級(jí)用戶界面方面,它可能無法完全滿足需求。盡管如此,其簡單性使得“編寫一次,到處運(yùn)行”成為可能,對(duì)于需要在Windows Phone和黑莓上運(yùn)行的簡單應(yīng)用來說,它是一個(gè)不錯(cuò)的選擇。
三、Ionic
Ionic是一個(gè)流行的跨平臺(tái)框架,基于Sass CSS擴(kuò)展語言,使用極其方便。它集成了AngularJS,可用于構(gòu)建更高級(jí)的應(yīng)用程序。Ionic提供了一個(gè)豐富的庫,包括針對(duì)移動(dòng)設(shè)備優(yōu)化的HTML、CSS和JS組件、手勢(shì)及工具。其命令行接口提供了仿真器、實(shí)時(shí)重裝和日志等功能,還有一個(gè)基于Cordova的應(yīng)用程序包裝器。

四、Kendo UI
Telerik公司的Kendo UI是一個(gè)基于jQuery的HTML5/Java框架,有開源版和商業(yè)版兩種。它對(duì)企業(yè)用戶非常友好,提供了豐富的用戶界面組件和插件。其最吸引人的特點(diǎn)之一是擁有眾多Material Design風(fēng)格的預(yù)構(gòu)建主題,還有一個(gè)主題構(gòu)建器,用于創(chuàng)建自定義主題。它支持Angular和Bootstrap UI集成,并進(jìn)行性能優(yōu)化。
五、NativeScript
NativeScript專注于原生用戶體驗(yàn)開發(fā),提供跨安卓和iOS的跨平臺(tái)代碼共享支持。它使用現(xiàn)有的原生用戶界面庫,用戶界面通過Java、XML或Angular來描述。盡管使用起來可能不如Telerik的更傳統(tǒng)跨平臺(tái)Kendo UI框架容易,但它依然是一個(gè)值得關(guān)注的工具。
六、Mobile Angular UI

這是一個(gè)由Maurizio Casimirri開發(fā)的開源項(xiàng)目,它將AngularJS和修改過的推特Bootstrap合并成一個(gè)移動(dòng)用戶界面框架。它保留了Bootstrap 3的大部分語法,使得從Web應(yīng)用向移動(dòng)應(yīng)用的移植更加容易。它增加了Bootstrap缺失的多個(gè)組件,如開關(guān)、覆蓋層、側(cè)邊欄等。庫還包括fastclick.js和overthrow.js等實(shí)用工具。
七、Onsen UI
Onsen UI由Asial Corp開發(fā),基于HTML和CSS構(gòu)建。它與PhoneGap和Cordova協(xié)同運(yùn)行,同時(shí)支持Angular和jQuery。該程序強(qiáng)調(diào)用戶界面開發(fā),提供了一系列廣泛的基于Web的用戶界面組件和特性。盡管它缺少M(fèi)aterial Design,但對(duì)于需要易用性、額外功能、高性能和豐富用戶界面特性的開發(fā)者來說,Onsen UI是一個(gè)不錯(cuò)的選擇。Asial Corp總部位于東京,該公司正在開發(fā)一種拖放式GUI工具,并維護(hù)和開發(fā)Monaca。
Sencha Touch
來自Sencha的成熟企業(yè)級(jí)HTML5/Java框架,既提供開源版本又推出商業(yè)版?;贓xtJS構(gòu)建,Sencha Touch能帶來近乎原生的性能表現(xiàn)。它配備了可視化應(yīng)用程序構(gòu)建器,讓開發(fā)者能輕松創(chuàng)建富有吸引力的界面,并重復(fù)使用自定義組件。借助原生包裝器,開發(fā)者能簡化在Google Play等應(yīng)用商店的發(fā)布流程。
React Native

React Native是Facebook開源的跨平臺(tái)框架,脫胎于Facebook的React Java框架,逐漸取代了早期的HTML5基礎(chǔ)。它更像是一個(gè)原生程序包裝器,只需用Java編寫一次代碼,即可輕松移植到iOS和安卓兩個(gè)平臺(tái)。盡管目前只有OS X桌面得到全面支持,但已有實(shí)驗(yàn)性的Linux和Windows版本面向安卓開發(fā),其前景廣闊。
Titanium
Titanium由Appcelerator推出。不同于偏向Web的框架,Titanium利用Java構(gòu)建原生代碼,承諾提升性能。這個(gè)基于Node.js的軟件開發(fā)工具包(SDK)為iOS、安卓、Windows、黑莓和HTML5提供了5000多個(gè)API。雖然其性能強(qiáng)大、功能豐富,但易用性可能不是其最突出的特點(diǎn)。軟件是開源的,但如果你選擇不發(fā)布應(yīng)用程序,你可以免費(fèi)使用功能齊全的版本。對(duì)于希望使用此框架的開發(fā)者來說,每月需支付至少39美元的費(fèi)用。
為什么會(huì)有App跨平臺(tái)框架
大部分開發(fā)者都有網(wǎng)站開發(fā)的背景,因此許多跨平臺(tái)開發(fā)解決方案選擇以HTML、Javascript和CSS為基礎(chǔ)。移動(dòng)Web應(yīng)用程序框架是支持平臺(tái)最多的開發(fā)方式之一?,F(xiàn)代移動(dòng)設(shè)備都配備瀏覽器,因此以Web形式開發(fā)App變得直接且入門門檻較低。由于瀏覽器的限制,許多設(shè)備功能無法使用,并且沒有與系統(tǒng)間的數(shù)據(jù)交換機(jī)制。無法上架到App Store或Google Play等銷售平臺(tái),限制了其應(yīng)用范圍。但對(duì)于單純的信息傳遞,不需要太多與手機(jī)整合的功能,開發(fā)移動(dòng)裝置專用的Mobile Web App或適用于多種裝置的Responsive Web App能橫跨最多的平臺(tái)。要實(shí)現(xiàn)流暢的用戶體驗(yàn),開發(fā)者需熟練掌握HTML5、CSS3技術(shù),以應(yīng)對(duì)各種瀏覽器環(huán)境。針對(duì)Mobile Web的框架如Sencha Touch等,而Responsive Web相關(guān)框架如Bootstrap等。

Hybrid App框架
以PhoneGap為代表的Hybrid App框架是另一種解決方案。它允許開發(fā)者將網(wǎng)頁直接打包成App并上架銷售。對(duì)于需要使用設(shè)備功能的需求,這類框架提供Javascript API,使App能夠訪問手機(jī)功能(如拍照)。Hybrid App直接使用網(wǎng)頁來創(chuàng)建用戶界面,這既是其優(yōu)點(diǎn)也是缺點(diǎn)。優(yōu)點(diǎn)是開發(fā)難度相對(duì)較低,但缺點(diǎn)是難以直接使用平臺(tái)的原生用戶界面,需要花費(fèi)時(shí)間和努力調(diào)整以達(dá)到與原生界面相似的視覺效果和流暢度。通常會(huì)借助使用Mobile Web App框架來降低開發(fā)難度。但由于顯示部分仍需要經(jīng)過瀏覽器引擎,存在跨瀏覽器的兼容性問題,整體功能和流暢度尚難以與Native App相抗衡。移動(dòng)應(yīng)用開發(fā)框架概覽
一、跨平臺(tái)Native App框架
跨平臺(tái)Native App框架允許開發(fā)者使用熟悉的編程語言如Javascript、C、Lua來開發(fā)App,并在發(fā)布時(shí)將其轉(zhuǎn)換為Native App。這類框架在流暢度和功能性方面表現(xiàn)不俗,與單純的Hybrid App相比更具優(yōu)勢(shì)。其中,Titanium和Unity等框架因其特性和適用場景而受到廣泛關(guān)注。雖然它們?cè)谀承┓矫嫒鐧n案大小和平臺(tái)新功能支持上可能有所不足,但它們?yōu)殚_發(fā)者提供了較低的學(xué)習(xí)門檻和跨平臺(tái)開發(fā)的時(shí)間優(yōu)勢(shì)。
二、移動(dòng)app開發(fā)框架介紹

移動(dòng)app開發(fā)框架主要包括以下幾種:
React Native
React Native是一種構(gòu)建原生應(yīng)用程序的框架,通過JavaScript和React進(jìn)行開發(fā)。它簡化了開發(fā)過程,并允許開發(fā)者輕松創(chuàng)建用戶界面并部署到不同的移動(dòng)平臺(tái)上。React Native框架通過構(gòu)建可重用的原生組件庫,提高了跨平臺(tái)開發(fā)效率和應(yīng)用的性能。社區(qū)提供了豐富的資源和組件供開發(fā)者使用。
Flutter
Flutter是谷歌開發(fā)的移動(dòng)UI框架,用于構(gòu)建美觀、流暢的應(yīng)用程序。它具有快速的開發(fā)周期和跨平臺(tái)的特性,使用單一代碼庫可以構(gòu)建iOS和Android應(yīng)用。Flutter簡化了開發(fā)過程,提供了豐富的組件庫、強(qiáng)大的布局系統(tǒng)、動(dòng)畫和性能優(yōu)化工具。熱重載功能使開發(fā)者能夠快速迭代代碼,提升開發(fā)效率。

Ionic
Ionic是一個(gè)混合移動(dòng)應(yīng)用開發(fā)框架,基于Web技術(shù)。它允許開發(fā)者創(chuàng)建跨平臺(tái)的移動(dòng)應(yīng)用,并提供原生外觀和性能。Ionic通過集成前端框架如Angular簡化了開發(fā)過程。開發(fā)者可以在Web瀏覽器中進(jìn)行開發(fā)調(diào)試,并輕松地將應(yīng)用打包成原生應(yīng)用發(fā)布到不同的移動(dòng)平臺(tái)上。社區(qū)提供了豐富的插件和模板供開發(fā)者使用。
三、原生開發(fā)框架
除了跨平臺(tái)的開發(fā)框架外,還有針對(duì)特定平臺(tái)的原生開發(fā)框架。例如,在Android開發(fā)中常用的Java或Kotlin結(jié)合Android SDK進(jìn)行開發(fā);在iOS開發(fā)中常用的Objective-C或Swift結(jié)合Xcode進(jìn)行開發(fā)。這些原生框架充分利用了特定平臺(tái)的特性和性能優(yōu)勢(shì),為開發(fā)者提供了豐富的API和工具。原生開發(fā)的缺點(diǎn)是開發(fā)和維護(hù)成本較高,需要在不同的平臺(tái)上進(jìn)行適配和維護(hù)工作。開發(fā)者應(yīng)根據(jù)具體需求和資源選擇合適的移動(dòng)app開發(fā)框架進(jìn)行開發(fā)。
四、技術(shù)抉擇

在選擇移動(dòng)應(yīng)用開發(fā)框架時(shí),應(yīng)綜合考慮應(yīng)用類型、公司資源和策略。如果團(tuán)隊(duì)技術(shù)實(shí)力和資源足夠,原廠開發(fā)平臺(tái)可能是最佳選擇,能夠完全發(fā)揮軟硬件效能。如果需要橫跨多個(gè)平臺(tái)且無需上架銷售,Mobile Web可能是理想選擇。對(duì)于只需要基本裝置功能且掌握Mobile Web開發(fā)技術(shù)的團(tuán)隊(duì),Hybrid App值得考慮。若追求與原廠開發(fā)工具相近的用戶體驗(yàn)且不需要平臺(tái)最新技術(shù),跨平臺(tái)Native App框架可能是合適的選擇。