一、说明
手机App的开发方式进入跨平台时代,但目前跨平台的开发方式很多,以至于App开发爱好者在进行技术选型时感到很迷茫,在此对App开发常见的几种方案做一个分析,包括原生开发、混合App、ReactNative、Weex、Flutter、uniapp等,希望能通过此文找到最适合我们项目的开发语言。
内容仅为自己学习过程中的浅薄心得,欢迎指正。
本文主要从“原生开发”和“跨平台技术”两种方式介绍,具体内容请见下文。
二、原生开发
原生应用程序是指某一个移动平台(比如iOS或安卓)所特有的应用,使用相应平台支持的开发工具和语言,并直接调用系统提供的SDK API。比如Android原生应用就是指使用Java或Kotlin语言直接调用Android SDK开发的应用程序;而iOS原生应用就是指通过Objective-C或Swift语言直接调用iOS SDK开发的应用程序。
技术类型 |
优势 |
缺陷 |
代表平台 |
原生开发 |
可访问平台全部功能(GPS、摄像头); 第三方SDK直接支持;可通过webView与网页交互; 速度快、性能高、可以实现复杂动画及绘制,整体用户体验好。 |
平台特定,开发成本高; 不同平台必须维护不同代码,人力成本随之变大; 内容固定,动态化弱,大多数情况下,有新功能更新时只能发版。 |
Android、iOS |
三、跨平台技术
传统的纯原生开发已经不能满足需求。主要表现在如下两个方面:
- 业务需求变化快,开发成本变大。由于原生开发一般都要维护 Android、iOS两个
开发团队,版本迭代时,无论人力成本还是测试成本都会变大。
- 动态化内容需求增大。当需求发生变化时,纯原生应用需要通过版本升级来更新内容,但应用上架、审核是需要周期的,这个周期对高速变化的互联网时代来说是很难接受的,所以,对应用动态化(不发版也可以更新应用内容)的需求就变得迫在眉睫了。
3.1 跨平台技术演进
3.2 跨平台技术的分类
根据跨平台技术的原理,主要可分为如下三类:
- H5 + 原生( Cordova、 Tonic、微信小程序);
- Javascript开发+原生渲染( React Native、Weex);
- 自绘UI+原生(Flutter、 QT Mobile)。
3.3 H5 + 原生混合开发
这类框架的主要原理是将APP需要动态变动的一部分内容通过H5来实现,通过原生的网页加载控件 Webview