移动端开发大混战--术语解释

1,350 阅读3分钟

为什么要写这篇文章?

一直从事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控件,放到页面上
  • 混合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

参考链接

1.阮一峰--H5手机开发入门-概念篇

2.阮一峰--H5手机开发入门-技术篇

3.webapp 和 WAP的区别1

4.webapp 和 WAP的区别2