开发一个 APP 准备条件
- app 功能需求
- 页面设计
- 一个能开发 app 的程序员
开发方式
写在前面 安卓和IOS开发(我不是很了解,只知道有)
区别
iOS开发和Android开发分别是基于苹果系统和安卓系统的APP开发,根本的区别在于iOS是封闭,不是开源的,所以无需考虑屏幕适配问题,所以iOS APP的兼容性好,而开发使用的语言是oc语言。而Android使用的是java语言,由于是开源的,所以要考虑屏幕适配,但是市场占有率却非常高。
Web App
开发者: H5工程师; 使用技术:HTML + CSS + JS; 开发成本:跨平台,开发效率高,开发成本低,维护成本低。 学习成本:低 使用成本:通过设备浏览器访问,使用成本低
用户体验:差,性能不高,不流畅,用户粘度低,太依赖网络(离线缓存), 浏览器安全级别限制,无法跨域访问,无法调用设备的原生功能
通过https://www.dcloud.io/wap2app.html工具转成在手机APP,否则只能在浏览器查看
Native App(原生 APP)
开发者: H5工程师|android,ios; 使用技术:HTML + CSS + JS | Java + xml | Objective-C/Swift + xml ; 开发成本:不能跨平台,开发效率低,开发成本高,维护成本高。 学习成本:高 使用成本:需要下载安装,安装包较大,使用成本高
用户体验:好,性能高,流畅,用户粘度高,不太依赖网络 , 能调用设备的原生功能
RN、Flutter、Weex开发出来的依然是Nativ App,只是从开发方式上实现了跨平台
Hybrid App(混合开发)
HTML页面 + 原生模块,说白了,就是在原生应用模块中利用webview去嵌入H5页面来承担应用的需求逻辑
流行的开发模式有两种:
-
Native 主导
整体应用的开发需要原生开发工程师参与,开发部分逻辑后,通过嵌入H5页面来承载另一部分逻辑
一般布局复杂、逻辑较为简单、更新维护较为频繁模块适合H5开发
开发嵌入到Native 的app的时候需要掌握两个小小的技巧:
1. 如何判断用户手机系统 navigator.userAgent 2. js如何与native交互
交互案例:
1. H5列表点击之后通知Native进行跳转,并携带参数 2. 详情Webview打开H5详情页的时候传递参数,H5页面需要接受传递过来的参数 3. H5点击购票后,通过native来获取用户登录信息
总结一下,Native与H5的通信,指的就是类似上面的几种,互相调用方法、传参
-
H5主导
整个业务逻辑都是H5页面来承载,利用一些开发工具来进行打包、测试、调用设备原生功能。
市场上流行的开发工具、模式:
1. phonegap + cordova + ionic 2. Dcloud... 3. Appcan/AppCloud ....
Dcloud产品开发HybridApp的方式(https://www.dcloud.io/)
Hbuilder 、 mui 、 H5+runtime
Hbuilder是一款编辑器,可以运行调试应用,也可以打包应用
我们可以直接将一个webapp套上原生的壳子,生成一个HybridApp,也可以一步一步的进行开发,创建webview来嵌入H5页面,调用Native功能
我们可以创建多个H5页面,每个页面都有自己承载的Webview窗口对象,通过操作窗口对象,来进行界面间的通信和交互
在开发中,HTML5+为Webview中嵌入的H5页面注入了plus对象,通过调用plus对象来进行与native交互
窗口:
plus.webview->create,getWebviewById,getCurrentWebview....show.hide,close,open
创建窗口,给窗口调整样式,获取窗口,关闭窗口,显示窗口,传参,mui.fire触发事件来进行通信,在某个窗口中控制另一个窗口中html页面执行一段js代码 。。。。
其他系统api:
camera、audio、gallery
借助了mui前端框架进行开发事半功倍: mui-jqlit,openWindow。。。。。。
https://www.cnblogs.com/yuanyingke/p/6060150.html