Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
平臺開發(fā)的說法由來已久,但卻從未像今天這樣被各大廠商所重視。Google、Facebook、英特爾、微軟相繼推出重大舉措,支持和推動App開發(fā)商開發(fā)兼容Android、iOS、Windows Phone等平臺的應(yīng)用。而面對語言眾多、平臺眾多、終端適配和開發(fā)成本高昂等問題時(shí),App開發(fā)商自身也迫切希望能具備跨平臺開發(fā)的能力,以期達(dá)到降低開發(fā)成本、縮短開發(fā)周期、增多商業(yè)收益的目的。跨平臺開發(fā)時(shí)代已經(jīng)來臨,你做好準(zhǔn)備了嗎?
流行的跨平臺開發(fā)工具
在過去的一年,業(yè)內(nèi)涌現(xiàn)出了一大批優(yōu)秀的跨平臺開發(fā)工具,大致上主要分為三類:Web應(yīng)用、Native應(yīng)用、混合應(yīng)用。
自適應(yīng)網(wǎng)頁設(shè)計(jì)(也稱“響應(yīng)式網(wǎng)頁設(shè)計(jì)”,如圖1所示),是一種時(shí)下比較流行的網(wǎng)頁設(shè)計(jì)技術(shù),也算是一種在線Web應(yīng)用。該設(shè)計(jì)使得網(wǎng)頁可根據(jù)訪問設(shè)備的特點(diǎn)以不同的風(fēng)格樣式進(jìn)行展現(xiàn)。也就是說,可以讓一個網(wǎng)站在手機(jī)上打開后,展現(xiàn)得像個本地應(yīng)用一樣,只要用戶在手機(jī)瀏覽器上輸入網(wǎng)址就可以使用該“應(yīng)用”的功能。這節(jié)省了開發(fā)App的成本,也不必為了在各個應(yīng)用商店上更新發(fā)布App而煩惱——只要網(wǎng)站更新了,用戶的“App”就會隨之更新。時(shí)下比較流行的此類框架有:Bootstrap、Pure、Foundation、Ink、Skeleton、ChocolateChip-UI等。
PhoneGap是一個推出時(shí)間相對較早的開源免費(fèi)的跨平臺移動App開發(fā)框架,一直以來都受到大量開發(fā)者的喜愛,從iOS、Android、Windows Phone到Amazon、Firefox OS等各大小主流移動平臺一應(yīng)俱全,而且也能使用地理位置、加速器、聯(lián)系人等智能手機(jī)常見的核心功能。PhoneGap框架主要使用的還是基本的Web開發(fā)技術(shù)(HTML、JavaScript、CSS),所以它在各平臺上具有優(yōu)越的兼容性,熟悉網(wǎng)頁開發(fā)的開發(fā)者能低成本地快速開發(fā)跨平臺應(yīng)用。應(yīng)用的性能在經(jīng)過分別優(yōu)化后也大多可以接受。
Hybrid(混合)模式應(yīng)用開發(fā),其實(shí)質(zhì)上就是一種中間件機(jī)制的應(yīng)用程序框架,有人形容它是“Native搭臺,HTML5唱戲”,近來受到了大量開發(fā)團(tuán)隊(duì)的追捧,成為一種主流開發(fā)模式。Titanium、AppCan、ionicFramework等都是其中的佼佼者,尤其AppCan作為國產(chǎn)貨,因?yàn)橛休^強(qiáng)的本地化文檔和技術(shù)支持,被大量國內(nèi)開發(fā)者關(guān)注。Web前端開發(fā)工程師幾乎可以零成本介入,快速做出漂亮的UI并滿足大部分跨平臺需求。無論是在什么系統(tǒng)下,混合應(yīng)用可以實(shí)現(xiàn)幾乎完全相同的交互體驗(yàn)。
Xamarin,雖然我們可以通過組織多個團(tuán)隊(duì)或雇用全棧程序員的方式,針對各個平臺使用原生語言和開發(fā)工具分別開發(fā)出同一應(yīng)用的Native版本,實(shí)現(xiàn)跨平臺,但這個做法顯然成本過高,而且應(yīng)用程序生命周期也很難控制。Xamarin則可以通過一種編程語言搞定所有平臺的Native App開發(fā),這個語言就是C#。時(shí)下依然有很多人把C#語言跟.NET做等同認(rèn)知,認(rèn)為C#只能編寫.NET應(yīng)用程序,而且只能在微軟的平臺上跑,這是一種非常錯誤的觀點(diǎn)。C#是一種優(yōu)秀的計(jì)算機(jī)編程語言,支持.NET、Mono,但也可以編寫非托管應(yīng)用,甚至是操作系統(tǒng)。Xamarin是開源項(xiàng)目Mono的商業(yè)化運(yùn)作公司,它的跨平臺開發(fā)工具名也叫Xamarin。Xamarin可以使用C#調(diào)用各個平臺系統(tǒng)的原生UI和底層API,可以極高程度地保證應(yīng)用性能和UI流暢性。用Xamarin開發(fā)跨平臺應(yīng)用程序,可以方便地使用C#語言的很多先進(jìn)特性和第三方類庫,例如LINQ、Lambdas、XDocument、事件與委托、并行運(yùn)算、JSON.NET等。在商業(yè)版訂閱下,還可使用Visual Studio開發(fā),當(dāng)然也可以使用TFS讓團(tuán)隊(duì)協(xié)作更便捷。需要注意的是,時(shí)下最流行的游戲引擎Unity也是主要用C#開發(fā)的。
LiveCode是一種相對比較特殊的跨平臺開發(fā)工具,它使用了近乎人類語言的方式開發(fā)應(yīng)用程序,使得開發(fā)簡單應(yīng)用時(shí)的效率大幅增加,而且相當(dāng)親民。其客戶也不乏類似大型航空公司等極重量級的企業(yè)。
跨平臺開發(fā)工具的對比
Web應(yīng)用可以完全由Web前端工程師開發(fā),只要智能設(shè)備連上網(wǎng)絡(luò)并安裝了合適的瀏覽器就可以通過URL訪問“應(yīng)用”,而Web工程師只要更新服務(wù)器上的文件,就可以實(shí)現(xiàn)對此“應(yīng)用”的更新,無論時(shí)間成本還是維護(hù)成本都非常低廉。但恰恰是Web應(yīng)用的優(yōu)點(diǎn)導(dǎo)致了它的如下缺點(diǎn)。
1. Web應(yīng)用必須連線訪問,在網(wǎng)絡(luò)條件不好的情況下啟動速度會極慢。而且每次啟動都會因?yàn)榫W(wǎng)絡(luò)訪問和UI資源(比如圖片)的下載,造成用戶手機(jī)流量的浪費(fèi),這在2G網(wǎng)絡(luò)條件下就會尤其明顯。優(yōu)化不好的話,還可能造成用戶手機(jī)欠費(fèi)停機(jī)。
2. 各平臺下的瀏覽器多種多樣,頁面渲染效果和JavaScrip的運(yùn)行效率有較大差異,要想保證UI一致性,需要做大量CSS Hack和JavaScript代碼優(yōu)化工作,但很多情況下你的優(yōu)化不一定起到正面作用。
幾乎無法使用設(shè)備本地的API,尤其是底層API,這使得Web應(yīng)用的能力十分有限。
Hybrid(混合)應(yīng)用開發(fā)模式,兼顧了Web和Native。既有Web應(yīng)用的低開發(fā)成本和跨平臺相同UI交互的優(yōu)點(diǎn),又可以通過JavaScript訪問常見的Native API,還可以利用HTML5的Local Storage技術(shù)在本地離線存取數(shù)據(jù)。但既然稱之為混合應(yīng)用,就無法逃避混合技術(shù)的缺點(diǎn)。
1. Web頁面的渲染受限于CSS,雖然可以到達(dá)各種設(shè)備幾乎相同的UI交互,但喪失了平臺默認(rèn)的交互習(xí)慣,與Native App形成體驗(yàn)差別,增加了單平臺用戶的學(xué)習(xí)成本,降低了平臺應(yīng)用認(rèn)同感。
各種智能手機(jī)平臺對其內(nèi)置的瀏覽器內(nèi)核大多做過一些定制化“改進(jìn)”,對于一些事件處理存在差異,尤其是Android系統(tǒng),在全球有幾千款不同的設(shè)備,再加上操作系統(tǒng)版本的差別,Web App很難做到真正意義上的跨平臺。
2. 雖然是混合應(yīng)用,但應(yīng)用界面依然沒有脫離瀏覽器,所以混合應(yīng)用依然無法達(dá)到Native App的性能和流暢性。
3. 對非穩(wěn)定網(wǎng)絡(luò)的運(yùn)行環(huán)境難以細(xì)化控制,復(fù)雜條件下用戶體驗(yàn)可能極差。
4. 在內(nèi)存管理方面近乎無能,常會因此造成應(yīng)用崩潰。
5. 受JavaScript語言的限制,一些相對底層的功能實(shí)現(xiàn)難度明顯增加。
Xamarin可以通過C#這一種語言編寫主流平臺的真正Native App,其通過強(qiáng)大的編譯器平衡了應(yīng)用開發(fā)效率和應(yīng)用執(zhí)行效率,尤其是對使用C#開發(fā)的程序員而言,是莫大誘惑。Google、蘋果、微軟三大巨頭與其都有深層合作關(guān)系,這使得Xamarin總能在第一時(shí)間推出新平臺的SDK。以iOS7為例,iOS7發(fā)布當(dāng)天下午,Xamarin就跟進(jìn)發(fā)布了iOS7 SDK的正式版,這使得App開發(fā)商幾乎可以零滯后地跟進(jìn)新系統(tǒng)平臺的App開發(fā)。在北美市場,Xamarin開發(fā)工具已經(jīng)非常火熱。當(dāng)然,Xamarin目前也存在不少缺點(diǎn)。
1. 相對于HTML、CSS、JavaScript而言,C#的學(xué)習(xí)成本偏高,無法使無編程經(jīng)驗(yàn)者達(dá)到幾天入門的程度。
2. iOS的應(yīng)用開發(fā)雖然可以在Windows上做,但調(diào)試過程依然無法脫離Mac系統(tǒng),團(tuán)隊(duì)內(nèi)至少要有一臺Mac系統(tǒng)的機(jī)器作為Build Host。
3. 對于iOS、Android、Windows Phone系統(tǒng)平臺分別做UI時(shí),尚未推出統(tǒng)一的可視化設(shè)計(jì)工具。不過慶幸的是,目前Xamarin內(nèi)部已開發(fā)了測試版,相信不久便可以正式公開發(fā)布。
4. 對中國個人開發(fā)者而言,商業(yè)授權(quán)版本價(jià)格有些偏高,難以大規(guī)模普及推廣。
5. 中文資料偏少,尚需官方和社區(qū)共同參與完善。
跨平臺開發(fā)工具選型
前面對主流跨平臺開發(fā)方案做了一些對比,大家應(yīng)該有了一些基本概念,那么,如何選擇最適合自己的跨平臺開發(fā)工具,則成為了一個不小的難題。這里我根據(jù)自己的經(jīng)驗(yàn)給出一些建議,供大家參考。
1. 選擇開發(fā)工具就像娶媳婦兒,不要選擇最好的,要選最合適的。
2. 如果開發(fā)團(tuán)隊(duì)成員完全沒有App開發(fā)經(jīng)驗(yàn),客戶應(yīng)用場景也不會受到網(wǎng)絡(luò)影響,功能主要是數(shù)據(jù)的增刪改查,不需要平臺本地API,那么Web App是個不錯的選擇,尤其是響應(yīng)式設(shè)計(jì),客戶接受度會比較高,尤其是企業(yè)應(yīng)用的客戶。
3. 如果需要使用少量平臺本地API,對應(yīng)用程序也沒有較為嚴(yán)苛的性能要求,Hybrid應(yīng)用絕對是最佳選擇,因?yàn)樗男詢r(jià)比極高。
4. 當(dāng)碰到Web性能瓶頸無法逾越;希望使用完善的應(yīng)用程序生命周期;希望縮減Native App開發(fā)團(tuán)隊(duì)成本;希望使用一種開發(fā)語言,卻還希望使用各平臺下特有的第三方類庫時(shí),Xamarin是個不錯的選擇。雖然看起來授權(quán)價(jià)格不低,但從總體成本來看,節(jié)省了不少。
5. 微軟在最近的Build大會上將WinJS開源了,并且承諾將會支持iOS、Android等平臺。一旦目標(biāo)達(dá)成,這也是一種不錯的選擇,尤其是對苦逼的Windows Phone開發(fā)者們而言。
6. LiveCode從某種程度上來說,更應(yīng)該算是一種親民的編程語言,期望讓所有人都能輕松開發(fā)一個App,但作為一種解釋性語言,是否能被專業(yè)開發(fā)者接受是個值得探討的問題。
結(jié)束語
跨平臺開發(fā)即將成為主流趨勢,作為開發(fā)商或開發(fā)者,具備跨平臺開發(fā)能力成為必需。想一想,就連過去最不愿意提及跨平臺和開源的微軟都敞開胸懷,擁抱跨平臺,并且開源和免費(fèi)了,我們還有什么理由原地踏步,固步自封呢?行動起來,一起邁步進(jìn)入跨平臺開發(fā)時(shí)代!
本文來自《程序員》雜志電子刊2014年05期。
大量的應(yīng)用程序構(gòu)建平臺可以創(chuàng)建和開發(fā)應(yīng)用程序,而不會破壞規(guī)則或要求使用者知道如何編碼。相反地,開發(fā)者在使用中可以快速創(chuàng)建移動應(yīng)用程序,并且可以使用教程和豐富的模板,這些模板無疑也會很棒。所謂最佳工具,對開發(fā)者而言無疑是最省時(shí)省力地,對企業(yè)而言,無疑是花錢最少,東西最好地。以下是TOP 23個最佳移動應(yīng)用程序開發(fā)平臺,如果你有更棒的分享,歡迎留言。
1. Appery.io
Appery.io是一個基于云的平臺,具有可視化開發(fā)工具和集成的后端服務(wù),已經(jīng)被AT&T,ESPN和三星等企業(yè)使用,這是一個強(qiáng)大的和可視化的應(yīng)用程序生成器工具。
Appery.io提供了許多有用的模板,并支持響應(yīng)式Web應(yīng)用程序開發(fā)。
2. Appcelerator
Appcelerator的移動平臺在其組件市場提供了預(yù)集成云服務(wù)和廣泛的應(yīng)用程序擴(kuò)展庫。
這非常適合需要利用基于Web技術(shù)進(jìn)行多操作系統(tǒng)應(yīng)用程序開發(fā)的企業(yè)。
它還包含令人印象深刻的應(yīng)用使用情況見解,這意味著監(jiān)視應(yīng)用程序性能將變得非常簡單
3. AppInstitute
基于Nottingham的AppInstitute成立于2011年,為iOS和Android提供了一個無需編碼的應(yīng)用構(gòu)建平臺。
AppInstitute提供了一系列的應(yīng)用程序模板和有用的拖放編輯器——更不用說CRM應(yīng)用程序來監(jiān)視應(yīng)用程序銷售,推送通知和分析等功能了。
4. AppMachine
AppMachine是聲稱使應(yīng)用程序制作變得簡單和為任何人所用的工具。它的工作原理是掃描網(wǎng)站并創(chuàng)建內(nèi)容。然后,AppMachine允許迭代它所謂的“構(gòu)建塊”。
這是獲得最小可行產(chǎn)品的一個既經(jīng)濟(jì)又便宜的方法。
5. AppMakr
AppMakr將幫助開發(fā)者獲取內(nèi)容或服務(wù),并創(chuàng)建本機(jī)iPhone和Android應(yīng)用程序以及HTML5移動網(wǎng)站。
這是一個無代碼的解決方案,只需要幾分鐘的時(shí)間,但要注意所有服務(wù)的使用要求。
借助AppMakr,開發(fā)者將能夠利用內(nèi)置通知,完全自定義和進(jìn)行實(shí)時(shí)應(yīng)用程序更新。
6. AppYourself
AppYourself可以創(chuàng)建一個約50歐元的Android應(yīng)用程序。
用戶可以通過與Open Table和Resmio的合作獲益,電子商務(wù)功能相對比較簡單。AppYourself界面非常易于使用。
它確實(shí)為構(gòu)建應(yīng)用程序提供了一個流暢且可訪問的平臺。
7. Appy Pie
Appy Pie允許編輯應(yīng)用程序,并發(fā)布在幾乎每個可用的平臺。
開發(fā)者能夠創(chuàng)建適用于Windows手機(jī),黑莓和Fire OS(Kindle)以及Android和iOS的應(yīng)用程序,這是非常令人印象深刻的。雖然,需要支付一定費(fèi)用,每個月花費(fèi)50美元。
如果想制作僅限Android應(yīng)用程序,則每個月有15美元的基本費(fèi)用。
8. Bizness Apps
作為面向小型企業(yè)的應(yīng)用程序制造商,Bizness Apps提供了一種簡單方法匯總來自網(wǎng)站和社交媒體的現(xiàn)有內(nèi)容。
開發(fā)者可以實(shí)時(shí)查看更改,絕對不需要任何編程專業(yè)知識。這對現(xiàn)在只需要一個應(yīng)用程序的中小型企業(yè)來說是有用的,對于那些以應(yīng)用程序?yàn)橹行牡娜藖碚f,它們的用處不大。
9. Como
Como用戶可以選擇模板和導(dǎo)航風(fēng)格,甚至添加自己的個性化內(nèi)容,可用于創(chuàng)建的主要應(yīng)用程序以日歷,音樂播放器,點(diǎn)餐等為中心,具備一些例如可添加會員卡方案的功能。
10. GameSalad
GameSalad是一個有區(qū)別的應(yīng)用程序制作工具,Gamesalad聲稱,開發(fā)者可以在一個小時(shí)內(nèi)建立一個游戲。
GameSalad支持所有主流操作系統(tǒng),包括Amazon和Windows。
11. Good Barber
Good Barber是通過簡單的四步來建立漂亮的應(yīng)用程序。與大多數(shù)簡單的應(yīng)用程序制造商不同,它將設(shè)計(jì)放在前面,讓開發(fā)者稍后添加內(nèi)容。
這就是說,它的內(nèi)容管理功能是非??捎^的。同時(shí),Good Barber制作應(yīng)用程序很簡單。
12. iBuildApp
借助簡單的拖放編輯器,內(nèi)置的CMS和超過1,000個應(yīng)用程序模板,iBuildApp在創(chuàng)建設(shè)計(jì)良好的應(yīng)用程序方面看起來就像是全能的,開發(fā)者只需掌握很少的編碼知識。
使用iBuildApp,開發(fā)者可以選擇所工作的部門并篩選相關(guān)模板。根據(jù)iBuildApp的統(tǒng)計(jì),全球超過15,000家企業(yè)正在使用它,積累了超過200萬的用戶。
13. jQuery Mobile
作為非盈利軟件自由保護(hù)協(xié)會jQuery開源項(xiàng)目的一部分,jQuery Mobile非常適合那些需要開源移動web框架的企業(yè),這些框架將允許開發(fā)者利用現(xiàn)有的jQuery技能。
該框架提供了使用HTML,JavaScript和CSS為一系列智能手機(jī)構(gòu)建交互式移動Web應(yīng)用的能力,并且可以與PhoneGap一起使用來構(gòu)建混合移動應(yīng)用程序。
它沒有其他人列出的圓滑感,但它不應(yīng)該被忽視。
14. Kalipso
Kalipso為Windows,Android和Microsoft操作系統(tǒng)提供移動應(yīng)用程序開發(fā),重點(diǎn)關(guān)注流程,而不是代碼。
主要功能包括拖放編輯器,免費(fèi)運(yùn)行時(shí),內(nèi)置GPS,數(shù)據(jù)庫同步,多語言和技術(shù)支持。
Kalipso還提供了很多可愛的主題供開發(fā)者選擇。
15. Kony
Kony于2007年首次推出時(shí),專注于面向消費(fèi)者的應(yīng)用程序,但隨后增加了B2E功能。
Kony平臺非常適合需要在一系列移動設(shè)備上使用原生功能的項(xiàng)目。該環(huán)境可用于為平板電腦,智能手機(jī),功能手機(jī),移動瀏覽器甚至桌面瀏覽器構(gòu)建應(yīng)用程序,然后部署到所有設(shè)備。
16. LiveBlox
Apulus公司的LiveBlox允許用戶通過“Blox”開發(fā)無需編碼的應(yīng)用,這些代碼塊可以鏈接在一起以創(chuàng)建一個有意義的應(yīng)用程序。
主要功能包括:拖放編輯器,GUI構(gòu)建器,視頻,導(dǎo)出應(yīng)用程序,3D引擎和插件系統(tǒng)。
17. Mobile Roadie
Mobile Roadie已經(jīng)相當(dāng)有名氣了。它與眾不同之處在于漂亮的設(shè)計(jì)模板數(shù)量和可用的附加功能。
Mobile Roadie擁有粉絲墻,聊天,音樂播放和定位功能,但是所有這些功能都是有代價(jià)的。
18. NativeScript
作為被Gartner在2017年魔力象限中任命為移動應(yīng)用程序開發(fā)的領(lǐng)導(dǎo)者,開源框架NativeScript是一個相當(dāng)強(qiáng)勁的競爭者。
用戶可以使用JavaScript,Agular和TypeScript創(chuàng)建原生應(yīng)用程序,并且可以輕松地重復(fù)使用代碼,為開發(fā)者節(jié)省大量時(shí)間。NativeScript從一個代碼庫創(chuàng)建iOS和Android應(yīng)用程序,并提供許多有用的指導(dǎo)來幫助縮短學(xué)習(xí)曲線。
19. Outsystems
Outsystems是一個低代碼應(yīng)用程序平臺,旨在創(chuàng)建,部署和管理定制應(yīng)用程序。
所有應(yīng)用程序都是安全集成的,所以對于那些希望構(gòu)建可能包含敏感信息的應(yīng)用程序來說是一個很好的選擇。
20. TheAppBuilder
TheAppBuilder是一個針對企業(yè)的移動開發(fā)工具。憑借包括Heathrow Airport在內(nèi)的令人印象深刻的客戶名單,TheAppBuilder已經(jīng)成為應(yīng)用程序和面向外部的軟件構(gòu)建模式的重要平臺。
21. Viziapps
Viziapps是一個易于使用的平臺,用于創(chuàng)建商業(yè)應(yīng)用程序。用戶可以使用簡單的拖放編輯器來設(shè)計(jì),測試和發(fā)布應(yīng)用程序,因此非常適合缺乏編碼技能的用戶。
Viziapps還提供了大量的第三方插件和ViziApps Studio,使用戶可以在自己的移動設(shè)備上看到他們的應(yīng)用程序。
22. Verivo Software
Verivo軟件專注于輕量級本地客戶端應(yīng)用程序,使其成為企業(yè)需要以有限的開發(fā)資源支持各種設(shè)備類型和平臺的強(qiáng)有力的選擇。
為了幫助跨平臺提供一致的原生用戶體驗(yàn),Verivo提供了可跨平臺共享的視覺/功能元素
23. Xamarin from Microsoft
2016年2月,微軟收購了移動應(yīng)用開發(fā)平臺Xamarin。
開發(fā)人員可以使用C#輕松創(chuàng)建應(yīng)用程序,為iOS,Android和Windows生成原生應(yīng)用程序。 更重要的是,Xamarin提供了一個交互式儀表盤,提供有關(guān)活躍用戶,會話和其他有用指標(biāo)的實(shí)時(shí)數(shù)據(jù)。
據(jù)說這次收購增加了微軟在開放平臺上的軟件創(chuàng)新動力。
者 | 陳峻
審校 | 孫淑娟
眾所周知,根據(jù)使用場景的不同,我們往往需要針對智能手機(jī)、平板電腦以及可穿戴設(shè)備等不同平臺,開發(fā)相應(yīng)的應(yīng)用。如果為每一類應(yīng)用都去編寫?yīng)毺氐某绦虼a的話,不但耗時(shí),而且無法實(shí)現(xiàn)代碼的重用。因此,我們需要引入混合應(yīng)用開發(fā)的機(jī)制。
通常,我們可以使用各種現(xiàn)成的框架,去編寫一個混合應(yīng)用,然后將其存儲在原生的容器中,以實(shí)現(xiàn)在不同的平臺上,部署此類原生應(yīng)用??梢姡线m的平臺框架,能夠給混合應(yīng)用的開發(fā),帶來事半功倍的效果。下面,我將向你介紹目前6種最為實(shí)用的開發(fā)框架。
作為一個JavaScript框架,React Native可以被用于開發(fā)跨平臺的移動應(yīng)用。由于該框架帶有一種可用于開發(fā)用戶界面的獨(dú)特語言—JSX,因此用戶可通過React編寫出HTML和CSS。同時(shí),它的用戶界面組件也被設(shè)計(jì)成為能夠給最終用戶帶來快速且愉快的體驗(yàn)形式。
與其他大多數(shù)需要重新編譯代碼、或重新啟動應(yīng)用,才能見效的開發(fā)框架不同,React Native的誘人之處在于,它能夠快速展示應(yīng)用被更改的效果。
由于React Native在每個平臺上都會使用JavaScript引擎,因此你可以去訪問由庫和開源工具所組成的龐大生態(tài)系統(tǒng)。同時(shí),它也允許用戶無縫地將部分應(yīng)用代碼移植到另一個平臺上。
對于某些具有動態(tài)、復(fù)雜或高級設(shè)計(jì)的接口來說,React Native可能并非完美的框架。由于可供你使用的自定義模型數(shù)量比較有限,因此你往往需要針對應(yīng)用中重要的復(fù)雜性部分,從頭開始開發(fā)與構(gòu)建。初學(xué)者則需要花費(fèi)一段時(shí)間,去掌握該框架的全面功能。
總的說來,React Native不但縮短了開發(fā)時(shí)間,而且能夠與第三方應(yīng)用相兼容,值得大家學(xué)習(xí)。
曾為NHS(英國國家醫(yī)療服務(wù)體系)和西南航空等組織提供數(shù)百萬強(qiáng)大應(yīng)用的Ionic,是業(yè)界領(lǐng)先的混合應(yīng)用工具包。它允許用戶使用單一的代碼庫,為多個平臺開發(fā)出混合移動應(yīng)用。
Ionic擁有一套為移動優(yōu)化了的HTML庫、CSS背景模式以及JavaScript組件。這些基本工具都能夠幫助用戶構(gòu)建出用戶友好的、交互式的多平臺應(yīng)用。
Ionic的另一個優(yōu)勢是,它包含了一套針對攝像頭、GPS以及健康套件的額外功能,以便你增加自己的應(yīng)用功能集。同時(shí),你也可以在編寫代碼時(shí),通過測試每個組件,以盡早地發(fā)現(xiàn)各種錯誤與缺陷。
由于Ionic包含了一組高效的響應(yīng)式部件,因此它在保證了靈活的用戶體驗(yàn)的同時(shí),也節(jié)省了你在開發(fā)過程中花費(fèi)的寶貴時(shí)間和精力。
不過,Ionic最大的局限在于,其開發(fā)出的應(yīng)用程序嚴(yán)重依賴于原生的插件。雖然此類插件旨在達(dá)到與原生應(yīng)用相當(dāng)?shù)男阅埽遣⒎撬袑?shí)例都可以用到它們。也就是說,你可能很難為自己正在開發(fā)的應(yīng)用找到其合適的插件。
作為相對較新的原生編譯框架,Xamarin可以被用來開發(fā)出那些需要保持原有的外觀和用戶體驗(yàn)的高性能應(yīng)用。2016年,微軟收購了Xamarin項(xiàng)目社區(qū),并使之成為微軟生態(tài)系統(tǒng)中,用于開發(fā)應(yīng)用程序的流行工具。
由于Xamarin能夠使用C語言,以及基于.NET層面的其他原生庫,來開發(fā)應(yīng)用程序,因此它可以在不犧牲性能的情況下,將帶有原生庫的高端應(yīng)用,部署到不同平臺的程序中。這與其他流行的混合框架相比,顯然提供了更好的用戶體驗(yàn)。
不過,與原生應(yīng)用相比,Xamarin在性能上存在著一定的局限性。因此,它不一定是某些復(fù)雜應(yīng)用的最佳選擇。同時(shí),由于該框架中也不提供熱重載的相關(guān)功能,因此其某些功能可能無法在特定的平臺上被實(shí)時(shí)更新。
總的說來,作為混合開發(fā)需求的一項(xiàng)不錯的選擇,Xamarin具有強(qiáng)大的支持、全面的資源,并能夠讓你的應(yīng)用具有接近原生的性能。
根據(jù)Google的定義,F(xiàn)lutter通過一個直觀的UI工具箱(其中包括插件庫和創(chuàng)新的用戶界面),讓用戶控制應(yīng)用的組件,進(jìn)而實(shí)現(xiàn)類似原生的性能。例如,F(xiàn)lutter的App Builder就能夠讓你混合和匹配各種功能。而使用其hotloader特性,你可以在調(diào)試代碼時(shí),即時(shí)進(jìn)行更改,進(jìn)而簡化了整個開發(fā)過程。此外,由于Flutter能夠支持開發(fā)出不限于Android或iOS的應(yīng)用,因此它已得到了廣泛的使用。
對于初學(xué)者來說,由于Flutter使用的是Dart,這種并非針對應(yīng)用開發(fā)的流行語言,因此其學(xué)習(xí)曲線較為陡峭。而且,雖然由其提供的內(nèi)置小部件(widgets)對于應(yīng)用而言非常重要,但是一旦缺少了第三方庫,就意味著開發(fā)者需要額外地用自己的代碼去實(shí)現(xiàn)。
總的說來,F(xiàn)lutter仍然是不錯的選擇。它不但能夠通過一流的UI元素來提供字體選項(xiàng),而且可以通過各種小部件,來改善應(yīng)用的整體性能與用戶體驗(yàn)。
作為一個開源的框架,NativeScript可以讓用戶使用JavaScript和CSS等Web技能來構(gòu)建應(yīng)用程序。而憑借著出色的特性和整體性能,NativeScript能夠與最新的移動版本、資源庫以及命令行界面相兼容。
該架構(gòu)的一項(xiàng)實(shí)用特性是它可以實(shí)時(shí)地更新應(yīng)用,而無需手動刷新。當(dāng)然,與大多數(shù)其他混合應(yīng)用框架不同,NativeScript并不使用Web技術(shù)。
總的說來,該框架不僅功能豐富,便于使用,而且性價(jià)比高,能夠給開發(fā)人員帶來流暢的使用體驗(yàn)。
Cordova使用CSS3、JavaScript以及HTML5,來創(chuàng)建跨平臺的應(yīng)用。通過擴(kuò)展其HTML5和CSS3特性,該框架增加了諸如:加速器、指南針、麥克風(fēng)以及文件系統(tǒng)等額外功能,從而能夠與目標(biāo)設(shè)備協(xié)同工作。
同時(shí),憑借著此類額外功能,開發(fā)者既可以快速、靈活地構(gòu)建原生應(yīng)用,又能夠訪問第三方的插件和工具箱。
雖然Cordova自身已包含了大量的平臺插件與功能,但是就算你沒找到合適的插件,也可以輕松地編寫出自己的插件,并通過JavaScript代碼的形式連接到系統(tǒng)級的代碼中,以確保提供原生的性能。
與Ionic類似,該框架也包含了近似原生的小部件、選項(xiàng)卡以及可重排的列表等特性。同時(shí),由于Apache Cordova能夠提供兩種工作流方法以及一種跨平臺的工作流方法(即:CLI),因此由其開發(fā)的應(yīng)用程序可以在不同的移動操作系統(tǒng)上運(yùn)行。
此外,CLI還提供一個獨(dú)特的接口以協(xié)助開發(fā)者將插件植入應(yīng)用之中。也就是說,以平臺為中心的工作流,可以幫助你先構(gòu)建單個平臺應(yīng)用,然后再將其修改為并不復(fù)雜的形式。
綜上所述,不同的混合框架有著適合不同應(yīng)用場景的獨(dú)特賣點(diǎn)。例如,NativeScript的主要吸引力在于,你不需要事先了解應(yīng)用會運(yùn)行在iOS還是Android平臺上。你更應(yīng)該仔細(xì)考慮的是,待開發(fā)應(yīng)用的并發(fā)性、兼容性以及成本等因素,并據(jù)此來選擇適合的框架。
原文鏈接:https://www.makeuseof.com/hybrid-app-development-best-frameworks/
陳峻 (Julian Chen),51CTO社區(qū)編輯,具有十多年的IT項(xiàng)目實(shí)施經(jīng)驗(yàn),善于對內(nèi)外部資源與風(fēng)險(xiǎn)實(shí)施管控,專注傳播網(wǎng)絡(luò)與信息安全知識與經(jīng)驗(yàn)。
來源: 51CTO技術(shù)棧
*請認(rèn)真填寫需求信息,我們會在24小時(shí)內(nèi)與您取得聯(lián)系。