開發(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ā)成本低乱顾,維護成本低。 學習成本:低 使用成本:通過設備瀏覽器訪問宫静,使用成本低
用戶體驗:差走净,性能不高,不流暢孤里,用戶粘度低伏伯,太依賴網(wǎng)絡(離線緩存), 瀏覽器安全級別限制,無法跨域訪問捌袜,無法調(diào)用設備的原生功能
通過https://www.dcloud.io/wap2app.html工具轉(zhuǎn)成在手機APP说搅,否則只能在瀏覽器查看
Native App(原生 APP)
開發(fā)者: H5工程師|android,ios; 使用技術:HTML + CSS + JS | Java + xml | Objective-C/Swift + xml 虏等; 開發(fā)成本:不能跨平臺弄唧,開發(fā)效率低,開發(fā)成本高霍衫,維護成本高候引。 學習成本:高 使用成本:需要下載安裝,安裝包較大敦跌,使用成本高
用戶體驗:好澄干,性能高,流暢柠傍,用戶粘度高麸俘,不太依賴網(wǎng)絡 , 能調(diào)用設備的原生功能
RN、Flutter携兵、Weex開發(fā)出來的依然是Nativ App疾掰,只是從開發(fā)方式上實現(xiàn)了跨平臺
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進行跳轉(zhuǎn),并攜帶參數(shù) 2. 詳情Webview打開H5詳情頁的時候傳遞參數(shù)嘲碧,H5頁面需要接受傳遞過來的參數(shù) 3. H5點擊購票后稻励,通過native來獲取用戶登錄信息
總結(jié)一下,Native與H5的通信,指的就是類似上面的幾種望抽,互相調(diào)用方法加矛、傳參
-
H5主導
整個業(yè)務邏輯都是H5頁面來承載,利用一些開發(fā)工具來進行打包煤篙、測試斟览、調(diào)用設備原生功能。
市場上流行的開發(fā)工具辑奈、模式:
1. phonegap + cordova + ionic 2. Dcloud... 3. Appcan/AppCloud ....
Dcloud產(chǎn)品開發(fā)HybridApp的方式(https://www.dcloud.io/)
Hbuilder 苛茂、 mui 、 H5+runtime
Hbuilder是一款編輯器鸠窗,可以運行調(diào)試應用妓羊,也可以打包應用
我們可以直接將一個webapp套上原生的殼子,生成一個HybridApp稍计,也可以一步一步的進行開發(fā)躁绸,創(chuàng)建webview來嵌入H5頁面,調(diào)用Native功能
我們可以創(chuàng)建多個H5頁面丙猬,每個頁面都有自己承載的Webview窗口對象涨颜,通過操作窗口對象,來進行界面間的通信和交互
在開發(fā)中茧球,HTML5+為Webview中嵌入的H5頁面注入了plus對象庭瑰,通過調(diào)用plus對象來進行與native交互
窗口:
plus.webview->create,getWebviewById,getCurrentWebview....show.hide,close,open
創(chuàng)建窗口,給窗口調(diào)整樣式抢埋,獲取窗口弹灭,關閉窗口,顯示窗口揪垄,傳參穷吮,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