带你快速了解如何进行移动端开发
本文于965天之前发表,文中内容可能已经过时。
图片来自网络
正如上图所示,得益于
JavaScript
语言的强大和流行,前端工程师思维广度不断提升,这是要抢了IOS
、Android
工程师饭碗的节奏啊(当然也不可能完全替代,毕竟人家是原生开发)。
为什么混合型移动开发受欢迎👏
- 目前主流的框架都是一套代码多端适配,只需维护一套代码,降低用人成本
- 相比与传统的
IOS
、Android
开发,每次发版都要经过应用市场的审核,一些经常需要更新的活动页H5就显得得心应手 - 相比与WebApp(即H5应用,只运行在移动端
WebView浏览器
上),调用了设备API,交互体验和性能都得到了提升
NativeApp(传统的原生App开发模式)
WebApp(H5应用)
- 运行在
WebView浏览器
上,只需要进行移动端的适配即可 - 开发框架:
VueJS
HybridApp(混合型应用开发模式)
正如下图所示:在原生的App中,使用
WebView
作为容器直接承载Web页面,相比直接运行在WebView浏览器
上的H5应用,HybridApp就能调用原生API和组件实现相机、通讯录、短信等功能
图片引用自《Hybrid App技术解析 -- 原理篇》简单原理:H5中的
JS
代码通过JSBridge
(核心桥梁)与Native
进行数据互相通信,页面还是在Webview浏览器
引擎中显示
图片引用自《Hybrid App技术解析 -- 原理篇》
图片引用自《Hybrid APP架构设计思路》开发框架:PhoneGap,Wex5,APICloud,Ionic,quickhybrid
- JSBridge深度剖析
- Hybrid App开发设计与实现
- Hybrid APP架构设计思路
- Hybrid App技术解析 -- 原理篇
PerformanceHybridApp(高性能混合型应用开发模式)
- 相比于采用
WebView
渲染的HybridApp,PerformanceHybridApp改成调用原生API渲染UI进行交互通信,自然在性能和体验上更加接近NativeApp当然也额外保留了WebView
容器功能 - 开发框架:ReactNative、Weex、Weex Ui、Flutter、BindingX、Rax、NativeScript
- 移动端跨平台开发的深度解析
- 全网最全 Flutter 与 React Native 深入对比分析
- 网易严选 App 感受 Weex 开发
- ReactNative 快速入门笔记
- Weex BindingX 尝鲜
小程序
小程序的主要开发语言是 JavaScript ,小程序的开发同普通的网页开发相比有很大的相似性。对于前端开发者而言,从网页开发迁移到小程序的开发成本并不高,但是二者还是有些许区别的。
网页开发渲染线程和脚本线程是互斥的,这也是为什么长时间的脚本运行可能会导致页面失去响应,而在小程序中,二者是分开的,分别运行在不同的线程中。网页开发者可以使用到各种浏览器暴露出来的 DOM API,进行 DOM 选中和操作。而如上文所述,小程序的逻辑层和渲染层是分开的,逻辑层运行在 JSCore 中,并没有一个完整浏览器对象,因而缺少相关的DOM API和BOM API。这一区别导致了前端开发非常熟悉的一些库,例如 jQuery、 Zepto 等,在小程序中是无法运行的。同时 JSCore 的环境同 NodeJS 环境也是不尽相同,所以一些 NPM 的包在小程序中也是无法运行的。
网页开发者需要面对的环境是各式各样的浏览器,PC 端需要面对 IE、Chrome、QQ浏览器等,在移动端需要面对Safari、Chrome以及 iOS、Android 系统中的各式 WebView 。而小程序开发过程中需要面对的是两大操作系统 iOS 和 Android 的微信客户端,以及用于辅助开发的小程序开发者工具,
参考文章:
赞赏是不耍流氓的鼓励