回覆列表
  • 1 # 好先生最好

    Native、Web App、Hybrid、React Native(後面以RN簡稱)、Weex 間的異同點,後期同步 小程式PWA

    App常用開發模式【簡介】

    此處App為應用,application,並非我們通常講的手機App常用的幾種APP開發模式-腦圖

    Native App

    傳統的原生App開發模式,有iOS和aOS兩大系統,需要各自語言開發各自App。

    優點:效能和體驗都是最好的缺點:開發和釋出成本高舉個栗子:網易管家App (Tab1,Tab2)應用技術:Swift,OC,Java

    WebApp

    移動端的網站,常被稱為H5應用,說白了就是特定執行在移動端瀏覽器上的網站應用。一般泛指 SPA(Single Page Application)模式開發出的網站,與MPA(Multi-page Application)對應。

    優點:開發和釋出成本最低缺點:效能和體驗不能講是最差的,但也受到瀏覽器處理能力的限制,多次下載同樣會佔用使用者一定的流量舉個栗子:網易管家APP(Tab3)應用技術:ReactJS,RegularJS,VueJS等等

    Hybrid App

    混合模式移動應用,介於Web App、Native App這兩者之間的App開發技術,兼具“Native App良好互動體驗的優勢”和“Web App跨平臺開發的優勢”(百度百科解釋)

    主要的原理是,由Native透過JSBridge等方法提供統一的API,然後用Html+Css實現介面,JS來寫邏輯,呼叫API,最終的頁面在Webview中顯示,這種模式下,Android、iOS的API一般有一致性,Hybrid App所以有跨平臺效果。

    優點:開發和釋出都比較方便,效率介於Native App、Web App之間缺點:學習範圍較廣,需要原生配合舉個栗子:FanReact,我愛我家App,東方航空App,富國基金-富國錢包App應用技術:PhoneGap,AppCan,Wex5,APICloud等

    React Native App

    Facebook發現Hybrid App存在很多缺陷和不足,於是發起開源的一套新的App開發方案RN。使用JSX語言寫原生介面,js透過JSBridge呼叫原生API渲染UI互動通訊。

    優點:效率體驗接近Native App,釋出和開發成本低於Native App缺點:學習有一定成本,且文件較少,免不了踩坑舉個栗子:Facebook、Youtube、Discord、QQ、百度等等

    Weex App

    阿里巴巴開發團隊在RN的成功案例上,重新設計出的一套開發模式,站在了巨人肩膀上並有淘寶團隊專案做養料,廣受關注,2016年4月正式開源,並在v2.0版本官方支援Vue.js,與RN分庭抗禮。

    優點:單頁開發模式效率極高,熱更新發包體積小,並且跨平臺性更強缺點:剛剛起步,文件欠缺;社群沒有RN活躍,功能尚不健全,暫不適合完全使用Weex開發App舉個栗子:淘寶、天貓、阿里雲、優酷、閒魚、餓了麼等

    繼續剖析

    Native App

    Native App是一種基於智慧手機本地作業系統如iOS、Android、WP並使用原生程式編寫執行的第三方應用程式,也叫本地app。一般使用的開發語言為Java、C++、Objective-C。

    自iOS和Android這兩個的手機作業系統釋出以來,在網際網路界從此就多了一個新的名詞:App意為執行在智慧的移動終端裝置第三方應用程式)。

    Native App因為位於平臺層上方,向下訪問和相容的能力會比較好一些,可以支援線上或離線,訊息推送或本地資源訪問,攝像撥號功能的調取。但是由於裝置碎片化,App的開發成本要高很多,維持多個版本的更新升級比較麻煩,使用者的安裝門檻也比較高。但是比較樂觀的是,AppStore培養了一種比較好的使用者付費模式,所以在Apple的生態圈裡,開發者的盈利模式是一種明朗狀態,其他market也在往這條路上靠攏。

    優勢

    1、相比於其它模式,提供最佳的使用者體驗,最優質的使用者介面,最華麗的互動2、針對不同平臺提供不同體驗3、可節省頻寬成本,開啟速度更快4、功能最為強大,特別是在與系統互動中,幾乎所有功能都能實現

    劣勢

    1、門檻高,原生開發人才稀缺,至少比前端和後端少,開發環境昂貴2、無法跨平臺,開發的成本比較大,各個系統獨立開發3、釋出成本高,需要透過store或market的稽核,導致更新緩慢4、維持多個版本、多個系統的成本比較高,而且必須做相容5、應用市場逐漸飽和,怎麼樣搶佔使用者時間需要投入大量時間和金錢,這也導致“殭屍”App的增多

    WebApp

    說到Web App 不少人會聯想到 WAP,或者有人認為,WAP就是WebApp,其實不然。

    WebApp 與 WAP 最直接的區別就是功能層面。WAP更側重使用網頁技術在移動端做展示,包括文字、媒體檔案等。而Web App更側重“功能”,是使用網頁技術實現的App。總的來說,Web App就是運行於網路和標準瀏覽器上,基於網頁技術開發實現特定功能的應用。

    響應式的大部分技術都是為實現WebApp能適配多類客戶端而設計的。

    Web網站一般分兩種,MPA(Multi-page Application)和SPA(Single-page Application)。而WebApp一般泛指SPA形式開發出的網站。這樣更像是一個App。

    優勢

    1、可以跨平臺,除錯方便2、無需安裝,不會佔用手機記憶體,而且更新速度最快3、不存在多版本問題,維護成本低4、臨時入口,可以隨意嵌入

    劣勢

    1、依賴於網路,第一次訪問頁面速度慢,耗費流量2、受限於手機和瀏覽器效能,使用者體驗相較於其他模式最差3、功能受限,大量移動端功能無法實現4、入口強依賴於第三方瀏覽器,且只能以URL地址的形式存在,導致使用者留存率低(優點即缺點)

    Hybird App

    混合開發,也就是半原生半Web的開發模式,由原生提供統一的API給JS呼叫,實際的主要邏輯有Html和JS來完成,最終是放在webview中顯示的,所以只需要寫一套程式碼即可達到跨平臺效果,另外也可以直接在瀏覽器中除錯,很方便。最重要的是隻需要一個前端人員稍微學習下JS api的呼叫即可。

    Hybird App 的較早實踐者是PhoneGap,隨後遍地開花,如Titanium、Salama、WeX5、Kerkee和國內的AppCan,專案各有各的實現方式,大致的原理基本相同。有幸在AppCan上海總部參與過一段時間的學習研究,如下大致簡介:

    AppCan是基於HTML5技術的Hybird跨平臺移動應用開發工具。開發者利用Html5+Css3+JavaScript技術,透過AppCan IDE整合開發系統、雲端打包器等,快速開發出Android、iOS、WP平臺上的移動應用。

    AppCan的平臺構成

  • 中秋節和大豐收的關聯?
  • 一萬怎麼創業?