App&小程序开发方式
附:完整笔记目录~
ps:本人小白,笔记均在个人理解基础上整理,若有错误欢迎指正!
1.2.1 App&小程序开发方式
-
引子:上一篇主要对Web应用所需组件、配置以及不同的部署方式做了介绍,本篇则主要介绍App&小程序不同的开发方式。
-
App的开发方式
-
原生开发(Native App)
-
概念:基于Android&iso官方所所提供工具&语言开发的APP。
优点:与设备兼容性最好,且能最大限度的调用设备性能。缺点:基于不同的操作系统需要分别开发,且所有数据均被存储于用户本地。相较于其他开发方式,内存占用量大且每次新版本发布时均需用户重新下载安装。
-
技术栈
- Android:Java/Kotlin
- Ios:Swift/Objective-C
-
源码展示
-
-
Web App
-
概念:通常来说是指用户基于手机浏览器通过url访问的应用,部分可支持安装为App。说白了就是针对Android&Ios优化后的Web站点。
优点:由于其本质为Web,对于开发人员要求较低、支持跨平台运行等。缺点:该类应用硬件性能调用有限,且由于页面被封装至客户端,因此更新方式与原生开发类似,仍需用户重新下载安装客户端(但部分Web App也可实现动态更新,原理同混合开发)
-
技术栈
- 前端:HTML+CSS+Javascript
- 后端:Java/Php等
-
源码展示
-
-
混合开发(Hybrid App)
-
概念:结合原生开发与Web App优点的一种开发方式。核心业务逻辑由Web技术编写,借助开发框架的桥接技术调用设备原生功能,最终封装至客户端内运行。(注:客户端针对Android&ios端需要分别开发,但仅需开发一个这样的壳即可,壳内也仅封装着需要拉取页面的链接。)
优点:对于开发者而言,开发人员要求低、更好的调用设备性能等。对于用户而言,应用动态更新(即由于所有页面都是以链接的形式从服务器拉取,因此仅需服务端更新而无需用户重新安装)、支持跨平台运行等。缺点:Hybrid App其本质仍为Web App,无法满足需要高性能的项目。
-
技术栈:同Web App。
-
源码展示:同Web App。
-
-
React Native/Weex 开发
- 概念:使用React Native/Weex框架开发分别由Facebook和阿里巴巴研发并开源,(说什么使用原生组件渲染之类的)总之对设备性能的调用更强。开发方式类似于混合开发,只不过在客户端页面封装上略有不同。
- 区别:混合开发客户端内仅存放页面链接,从服务端调用,能够实现动态更新。而使用React Native/Weex开发,又有点像Web App,其页面源码被打包至客户端,因此新版本发布时则仍需用户重新下载安装。
-
-
小程序的开发方式
-
原生开发
- 概念:开发者借助不同小程序平台的语言&框架&IDE,分别开发不同平台的小程序。如通过wx开发者工具开发小程序。
- 技术栈:前端技术栈的变体。(基于前端技术但又有所不同,各厂商之间也有所不同)
-
多端统一框架开发
- 概念:开发者仅需使用跨端开发框架开发一套小程序源码,框架会自动转换为适用于各小程序平台的源码。
- 常见跨端开发框架
- uni-app,技术栈:Vue。
- taro,技术栈:Vue/React。
-
Web转小程序
- 概念:先开发Web系统,后若需要小程序系统,可借助小程序平台/跨端开发框架,将Web项目打包为小程序。
-