開發APP用Native語言還是Hybrid好? - Free學習札記

文章推薦指數: 80 %
投票人數:10人

開發APP用Native語言還是Hybrid好? ... 撇開各自喜好,先來說明目前三種常見的手機開發模式:Web APP、Hybrid APP及Native APP。

網頁 首頁 2017年10月30日星期一 開發APP用Native語言還是Hybrid好? 這是個爭議的問題,通常各自有擁護者,各有自己的立場,無解。

撇開各自喜好,先來說明目前三種常見的手機開發模式:WebAPP、HybridAPP及NativeAPP。

WebAPP WebAPP是支援平台最多的一種做法,因為每個行動平台一定都有瀏覽器,以Web的形式來開發App是最直接且入門門檻相對較低的做法。

但是因為瀏覽器的諸多限制,有很多裝置上的功能(如:拍照、存取通訊錄或相簿)並無法使用,且無法上架到AppStore或GooglePlay,這限制了其應用範圍。

如果只是單純的資訊傳遞,不需要太多與手機的整合性功能,開發行動裝置專用的MobileWebApp或ResponsiveWebApp將能夠橫跨最多的平台。

只是要做到暢的用戶體驗,開發者對於HTML5、CSS3的技術掌握必須在水準之上,才能對於各種瀏覽器環境有一定的掌握。

NativeAPP 各平台手機的原生應用程式,必須要學習多種平台的開發語言,付出相對較大的學習成本,其最大的優勢是可以操作手機內建軟硬體資訊、提供最良好的UI用戶體驗。

HybridAPP 市場上同時擁有多種平台開發技術的人才短缺,倘若可以使用Web的跨平台開發方式,那滿滿的Web前端工程師就是現有的資源。

因此有混合開發模式HybridAPP出現,使用Web為開發基礎再透過各平台APP平台的SDK建置後,打包成APP,可上架至AppStore或GooglePlay。

Cordova、PhoneGap、Ionic等框架,提供了其強大的JavaScriptAPI介面,讓APP能夠存取手機的功能,打開這盒子後,讓一切變得有無限可能。

該選哪一種? 在決定採用哪一種開發模式之前,有許多因素需要考慮,諸如:要在哪一種平台開發?有無利用手機特有性能?圖形要求高不高? NativeAPP針對特定的操作系統開發,用的也是特定操作系統的開發套件(SDK),如AppleiOS。

因此它的性能和工具一向比HybridAPP優越。

HybridAPP難道沒出頭的機會,那也不一定,很多APP採用Cordova、PhoneGap、Ionic等框架開發而成,單碼跨平台是它的優點(最後還是要透過框架編譯成各平台APP),但直接使用網頁來制作使用者界面,這是它的優點、同時也是缺點。

因為這表示開發者無法直接使用原生的使用者介面,看起來不像該平台的App,要花時間模擬調整到和原生界面相同的視覺效果和流程度。

且顯示的部分還得經過瀏覽器引擎,也有跨瀏覽器的相容問題要處理,在整體的功能與流暢度方面,尚難以和NativeApp相提並論。

不過如果只是單純的資訊呈現,對流暢度和功能的要求較低,HybridApp還是其生存空間,但性能設計會是主要的重點。

用戶介面設計是一個影響APP性能的重要因素,如果圖形多、漸層、影子效果、仿真度高,就會消耗很多裝置資源,當你以60fps運行,大概需要17millisecondsperframe去執行程式碼和更新用戶界面。

這樣的時間根本不能提供流暢的運行,還很可能會令Frame出現問題,因此隱定性也是HybridAPP設計該考慮的重點,所以設計前先問問自己,這些資源耗量大的設計真的是必要的嗎? 說真的,Hybrid的開發是非常吸引人,因為能夠採用你熟悉的網頁技術來建造你的APP,但也是一個陷阱,不要把HybridAPP當成獨立網頁來設計,如果APP體驗不夠原生化,則有可能被AppStore拒絕的風險,多研究Native平台和SDK的設計,可以套用在HybridAPP的開發上。

如果只是單純的顯示動態網頁內容,或許根本不需要動用到HybridAPP框架,將網頁放置到伺服器上,NativeAPP建立個WebView調用網址顯示,快速又方便維護。

張貼者: Mark 於 下午3:45 沒有留言: 張貼留言 較新的文章 較舊的文章 首頁 訂閱: 張貼留言(Atom) 文章搜尋 專業認證 網誌存檔 ►  2018 (2) 六月 (1) 五月 (1) ▼  2017 (3) 十月 (1) 六月 (1) 五月 (1) ►  2016 (2) 十二月 (1) 一月 (1) ►  2015 (2) 九月 (1) 八月 (1) ►  2014 (33) 十二月 (4) 十月 (1) 九月 (4) 八月 (3) 七月 (2) 四月 (6) 三月 (1) 二月 (12) ►  2013 (42) 十一月 (2) 九月 (8) 八月 (1) 六月 (5) 五月 (3) 四月 (4) 三月 (1) 二月 (7) 一月 (11) ►  2012 (142) 十二月 (2) 十一月 (19) 十月 (17) 九月 (8) 八月 (11) 七月 (3) 六月 (14) 五月 (4) 四月 (14) 三月 (16) 二月 (11) 一月 (23) ►  2011 (198) 十二月 (31) 十一月 (30) 十月 (31) 九月 (30) 八月 (37) 七月 (28) 五月 (1) 四月 (7) 三月 (2) 一月 (1) ►  2010 (30) 十二月 (2) 十月 (4) 九月 (7) 八月 (1) 六月 (2) 五月 (12) 四月 (2) 標籤 程式開發 (144) PaperCraft (113) 雜記 (63) 資料庫 (32) iphone (27) Java (25) 模型 (25) papercraftexpressnews (20) Microsoft (19) 學習心得 (19) Oracle (13) Software (10) C# (9) MySQL (9) Android (7) CentOS (7) Perl (7) PostgreSQL (7) SQL (7) excel (7) Objective-C (6) PHP (6) SQLite (6) Linux (5) Web (5) 景點 (5) ASP.NET (4) SQLServer (4) VS2005 (4) JSP (3) ShellScript (3) 手帳 (3) 手環 (3) Smarty (2) WindowsScriptingHost (2) app (2) IIS (1) PMP (1) VisualWebDeveloper2010Express (1) WebPI (1) ssh (1) wxWidgets (1) 總網頁瀏覽量



請為這篇文章評分?