为什么要写这篇文章?
一直从事PC端开发,对移动端知之甚少,经常看到前端文章中的很多术语,不明白其中的差别,因此特意整理了一下,希望能对您有帮助^_^

移动端开发分类
- 原生APP(NativeApp)
- 开发技术:使用和手机系统一致的开发语言,因此可以调用手机操作系统的任何功能。
- 优点:使用流畅。
- 缺点:针对IOS、Android要两个开发团队,精力太大;每次更新时,用户都要重新下载APP。
- WebApp
- 嵌入在手机浏览器中的网页,常用技术是HTML5+JS+CSS3
- 优点:每次更新时,用户无感知。
- 缺点:不能离线使用,无法使用推送消息,必须用浏览器才能查看。
- 对比:用户在WebApp中,浏览的网站较多,但停留时间较短。在原生APP中,浏览次数较少,但停留时间长。
- PWA:渐进式APP
- chrome团队为了解决Web APP提出的一个解决方案,但目前还没有特别好的实例。
- 支持离线、支持发送消息,可以在桌面生成图标(但用户必须先用浏览器访问一次该网站才能生成图标,且IOS系统的支持还不理想)
- 混合应用
- 由容器、网页引擎、H5页面构成
- 容器提供 底层和H5之间的
API Bridge,可以让H5页面直接调用操作系统的API。 - 不同的容器,支持的
API Bridge不同。如果有新的系统更新,那需要 推出新版本的API Bridge - 优点:跨平台,一次开发,多个平台使用;很容易加载外部的H5页面;Web页面可以方便地调用外部的Web服务。
- 缺点:不够流畅
移动端开发--技术解释
- 原生APP
- IOS端:Object-C、Swift
- X-Code开发工具
- Android:Java
- 调试时,必须连接真机,或安装安卓虚拟机
- WebView控件:需要开发者自己把WebView控件,放到页面上
- IOS端:Object-C、Swift
- 混合APP:Hybrid APP
- 原理:把Web网页放在不同的容器中,然后再打包成各个平台的原生APP。即容器+Web。
- 有多种容器可供选择,不同容器提供的API Bridge不同。
- PhoneGap、Codova、Ionic
- WebView控件:页面本身就是网页,默认在WebView中显示
- PhoneGap(发行版)—>Cordova(内核)
- 基于Cordova的框架:Ionic、Monaca、Framework7等
- 跨站(windows和Mac OS)APP
- 不使用Web技术,有自己的语言体系,如Flutter用的是Dart语言,ReactNative用的和JS类似。
- 原理:使用自己的语法写UI层,然后编译时,将其转换成原生控件,或者使用自己的底层控件生成原生APP。
- 开发技术:Flutter、ReactNative、Xamarin
- ReactNative:JS语法
- 所有的控件都是自己定义的,编译时再一一翻译为对应的原生控件。
- 但UI抽象层,翻译为适用IOS、安卓系统时的原生页面,做不到完全一致,尤其是复杂页面,会导致有各种小毛病,所以最好舍弃。
- Xamarin:C#
- 微软公司做的,原理和React Native类似
- Flutter:Dart语法
- 自己实现一套控件,打包时,将整个控件直接打包进APP,不存在兼容性问题,不管什么平台都调用自己内嵌的那套控件,这样IOS和Android下的体验一致。
- WebView控件:提供一个WebView的语法,编译的时候,将其换成原生的WebView