開發(fā)一個 APP 準備條件
- app 功能需求
- 頁面設計
- 一個能開發(fā) app 的程序員
開發(fā)方式
寫在前面 安卓和IOS開發(fā)(我不是很了解,只知道有)
區(qū)別
iOS開發(fā)和Android開發(fā)分別是基于蘋果系統(tǒng)和安卓系統(tǒng)的APP開發(fā),根本的區(qū)別在于iOS是封閉,不是開源的,所以無需考慮屏幕適配問題,所以iOS APP的兼容性好,而開發(fā)使用的語言是oc語言。而Android使用的是java語言,由于是開源的,所以要考慮屏幕適配,但是市場占有率卻非常高。
Web App
開發(fā)者: H5工程師; 使用技術:HTML + CSS + JS; 開發(fā)成本:跨平臺,開發(fā)效率高,開發(fā)成本低,維護成本低。 學習成本:低 使用成本:通過設備瀏覽器訪問,使用成本低
用戶體驗:差,性能不高,不流暢,用戶粘度低,太依賴網絡(離線緩存), 瀏覽器安全級別限制,無法跨域訪問,無法調用設備的原生功能
通過https://www.dcloud.io/wap2app.html工具轉成在手機APP,否則只能在瀏覽器查看
Native App(原生 APP)
開發(fā)者: H5工程師|android,ios; 使用技術:HTML + CSS + JS | Java + xml | Objective-C/Swift + xml ; 開發(fā)成本:不能跨平臺,開發(fā)效率低,開發(fā)成本高,維護成本高。 學習成本:高 使用成本:需要下載安裝,安裝包較大,使用成本高
用戶體驗:好,性能高,流暢,用戶粘度高,不太依賴網絡 , 能調用設備的原生功能
RN、Flutter、Weex開發(fā)出來的依然是Nativ App,只是從開發(fā)方式上實現了跨平臺
Hybrid App(混合開發(fā))
HTML頁面 + 原生模塊,說白了,就是在原生應用模塊中利用webview去嵌入H5頁面來承擔應用的需求邏輯
流行的開發(fā)模式有兩種:
-
Native 主導
整體應用的開發(fā)需要原生開發(fā)工程師參與,開發(fā)部分邏輯后,通過嵌入H5頁面來承載另一部分邏輯
一般布局復雜、邏輯較為簡單、更新維護較為頻繁模塊適合H5開發(fā)
開發(fā)嵌入到Native 的app的時候需要掌握兩個小小的技巧:
1. 如何判斷用戶手機系統(tǒng) navigator.userAgent 2. js如何與native交互交互案例:
1. H5列表點擊之后通知Native進行跳轉,并攜帶參數 2. 詳情Webview打開H5詳情頁的時候傳遞參數,H5頁面需要接受傳遞過來的參數 3. H5點擊購票后,通過native來獲取用戶登錄信息總結一下,Native與H5的通信,指的就是類似上面的幾種,互相調用方法、傳參
-
H5主導
整個業(yè)務邏輯都是H5頁面來承載,利用一些開發(fā)工具來進行打包、測試、調用設備原生功能。
市場上流行的開發(fā)工具、模式:
1. phonegap + cordova + ionic 2. Dcloud... 3. Appcan/AppCloud ....
Dcloud產品開發(fā)HybridApp的方式(https://www.dcloud.io/)
Hbuilder 、 mui 、 H5+runtime
Hbuilder是一款編輯器,可以運行調試應用,也可以打包應用
我們可以直接將一個webapp套上原生的殼子,生成一個HybridApp,也可以一步一步的進行開發(fā),創(chuàng)建webview來嵌入H5頁面,調用Native功能
我們可以創(chuàng)建多個H5頁面,每個頁面都有自己承載的Webview窗口對象,通過操作窗口對象,來進行界面間的通信和交互
在開發(fā)中,HTML5+為Webview中嵌入的H5頁面注入了plus對象,通過調用plus對象來進行與native交互
窗口:
plus.webview->create,getWebviewById,getCurrentWebview....show.hide,close,open
創(chuàng)建窗口,給窗口調整樣式,獲取窗口,關閉窗口,顯示窗口,傳參,mui.fire觸發(fā)事件來進行通信,在某個窗口中控制另一個窗口中html頁面執(zhí)行一段js代碼 。。。。
其他系統(tǒng)api:
camera、audio、gallery
借助了mui前端框架進行開發(fā)事半功倍: mui-jqlit,openWindow。。。。。。
https://www.cnblogs.com/yuanyingke/p/6060150.html