網頁

2017年10月30日 星期一

開發APP用Native語言還是Hybrid好?

這是個爭議的問題,通常各自有擁護者,各有自己的立場,無解。

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



Web APP
Web APP是支援平台最多的一種做法,因為每個行動平台一定都有瀏覽器,以Web的形式來開發App是最直接且入門門檻相對較低的做法。但是因為瀏覽器的諸多限制,有很多裝置上的功能(如:拍照、存取通訊錄或相簿)並無法使用,且無法上架到App Store或Google Play,這限制了其應用範圍。
如果只是單純的資訊傳遞,不需要太多與手機的整合性功能,開發行動裝置專用的Mobile Web App或Responsive Web App將能夠橫跨最多的平台。只是要做到暢的用戶體驗,開發者對於HTML5、CSS3的技術掌握必須在水準之上,才能對於各種瀏覽器環境有一定的掌握。
Native APP
各平台手機的原生應用程式,必須要學習多種平台的開發語言,付出相對較大的學習成本,其最大的優勢是可以操作手機內建軟硬體資訊、提供最良好的UI用戶體驗。
Hybrid APP
市場上同時擁有多種平台開發技術的人才短缺,倘若可以使用Web的跨平台開發方式,那滿滿的Web前端工程師就是現有的資源。因此有混合開發模式Hybrid APP出現,使用Web為開發基礎再透過各平台APP平台的SDK建置後,打包成APP,可上架至App Store或Google Play。
Cordova、PhoneGap、Ionic等框架,提供了其強大的JavaScript API介面,讓APP能夠存取手機的功能,打開這盒子後,讓一切變得有無限可能。

該選哪一種?
在決定採用哪一種開發模式之前,有許多因素需要考慮,諸如:要在哪一種平台開發?有無利用手機特有性能?圖形要求高不高?

Native APP針對特定的操作系統開發,用的也是特定操作系統的開發套件(SDK),如 Apple iOS。因此它的性能和工具一向比Hybrid APP優越。

Hybrid APP難道沒出頭的機會,那也不一定,很多APP採用Cordova、PhoneGap、Ionic等框架開發而成,單碼跨平台是它的優點(最後還是要透過框架編譯成各平台APP),但直接使用網頁來制作使用者界面,這是它的優點、同時也是缺點。因為這表示開發者無法直接使用原生的使用者介面,看起來不像該平台的App,要花時間模擬調整到和原生界面相同的視覺效果和流程度。且顯示的部分還得經過瀏覽器引擎,也有跨瀏覽器的相容問題要處理,在整體的功能與流暢度方面,尚難以和Native App相提並論。
不過如果只是單純的資訊呈現,對流暢度和功能的要求較低,Hybrid App還是其生存空間,但性能設計會是主要的重點。

用戶介面設計是一個影響APP性能的重要因素,如果圖形多、漸層、影子效果、仿真度高,就會消耗很多裝置資源,當你以60fps運行,大概需要17 milliseconds per frame去執行程式碼和更新用戶界面。這樣的時間根本不能提供流暢的運行,還很可能會令Frame出現問題,因此隱定性也是Hybrid APP設計該考慮的重點,所以設計前先問問自己,這些資源耗量大的設計真的是必要的嗎?

說真的,Hybrid的開發是非常吸引人,因為能夠採用你熟悉的網頁技術來建造你的APP,但也是一個陷阱,不要把Hybrid APP當成獨立網頁來設計,如果APP體驗不夠原生化,則有可能被App Store拒絕的風險,多研究Native平台和SDK的設計,可以套用在Hybrid APP的開發上。

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



閱讀全文...