APP development technology analysis

APP development technology analysis


App here is an application, application, not the mobile app we usually talk about.

1. Vertical comparison


Native App

The traditional native App development model has two major systems: iOS and Android, which require their own languages ​​to develop their own apps.

Advantages: Both performance and experience are the best 
Disadvantages: High development and release costs 
Application technologies: Swift, Objective-C, Java

WebApp

Mobile websites, often referred to as H5 applications, are specific website applications running on mobile browsers. Generally refers to the website developed by SPA (Single Page Application) mode, corresponding to MPA (Multi-page Application).

Advantages: The lowest cost of development and release 
Disadvantages: The performance and experience cannot be said to be the worst, but it is also limited by the processing capacity of the browser. Multiple downloads will also occupy a certain amount of user traffic 
Application technologies: ReactJS, RegularJS, VueJS, etc.

Hybrid App

Mixed mode mobile application, the App development technology between Web App and Native App, has both the "advantages of good interactive experience of Native App" and "the advantages of cross-platform development of Web App" (Baidu Encyclopedia explained) 
. The principle is that Native provides a unified API through JSBridge and other methods, and then uses Html+Css to implement the interface, JS to write the logic, call the API, and the final page is displayed in the Webview. In this mode, the APIs of Android and iOS generally have Consistency, Hybrid App has cross-platform effect.

Advantages: It is convenient to develop and publish, and the efficiency is between Native App and Web App. 
Disadvantages: The scope of learning is wide, and it needs to cooperate with the 
application technology: Cordova, APPCan, DCloud, APICloud, Wex5, etc.

React Native App

Facebook发现HybridApp存在很多缺陷和不足,于是发起开源的一套新的App开发方案RN。使用JSX语言写原生界面,js通过JSBridge调用原生API渲染UI交互通信。

优点:效率体验接近Native App,发布和开发成本低于Native App 
缺点:学习有一定成本,且文档较少,免不了踩坑

Weex App

阿里巴巴开发团队在RN的成功案例上,重新设计出的一套开发模式,站在了巨人肩膀上并有淘宝团队项目做养料,广受关注,2016年4月正式开源,并在v2.0版本官方支持Vue.js,与RN分庭抗礼。

优点:单页开发模式效率极高,热更新发包体积小,并且跨平台性更强 
缺点:刚刚起步,文档欠缺;社区没有RN活跃,功能尚不健全,暂不适合完全使用Weex开发App

二、深入剖析


Native App

Native App是一种基于智能手机本地操作系统如iOS、Android、WP并使用原生程式编写运行的第三方应用程序,也叫本地app。一般使用的开发语言为Java、C++、Objective-C。

自iOS和Android这两个的手机操作系统发布以来,在互联网界从此就多了一个新的名词:App意为运行在智能的移动终端设备第三方应用程序)。

Native App因为位于平台层上方,向下访问和兼容的能力会比较好一些,可以支持在线或离线,消息推送或本地资源访问,摄像拨号功能的调取。但是由于设备碎片化,App的开发成本要高很多,维持多个版本的更新升级比较麻烦,用户的安装门槛也比较高。但是比较乐观的是,AppStore培养了一种比较好的用户付费模式,所以在Apple的生态圈里,开发者的盈利模式是一种明朗状态,其他market也在往这条路上靠拢。

优势 
1、相比于其它模式,提供最佳的用户体验,最优质的用户界面,最华丽的交互。 
2、针对不同平台提供不同体验。 
3、可节省带宽成本,打开速度更快。 
4、功能最为强大,特别是在与系统交互中,几乎所有功能都能实现。

劣势

  1. 门槛高,原生开发人才稀缺,至少比前端和后端少,开发环境昂贵
  2. 无法跨平台,开发的成本比较大,各个系统独立开发
  3. 发布成本高,需要通过store或market的审核,导致更新缓慢
  4. 维持多个版本、多个系统的成本比较高,而且必须做兼容
  5. 应用市场逐渐饱和,怎么样抢占用户时间需要投入大量时间和金钱,这也导致“僵尸”App的增多

WebApp

说到Web App 不少人会联想到WAP,或者有人认为,WAP就是WebApp,其实不然。WebApp 与 WAP 最直接的区别就是功能层面。WAP更侧重使用网页技术在移动端做展示,包括文字、媒体文件等。而Web App更侧重“功能”,是使用网页技术实现的App。总的来说,Web App就是运行于网络和标准浏览器上,基于网页技术开发实现特定功能的应用。 
响应式的大部分技术都是为实现WebApp能适配多类客户端而设计的。 
Web网站一般分两种,MPA和SPA。而WebApp一般泛指SPA形式开发出的网站。这样更像是一个App。小程序和PWA也属于此类。

优势

  1. 可以跨平台,调试方便
  2. 无需安装,不会占用手机内存,而且更新速度最快
  3. 不存在多版本问题,维护成本低
  4. 临时入口,可以随意嵌入

劣势

  1. 依赖于网络,第一次访问页面速度慢,耗费流量
  2. 受限于手机和浏览器性能,用户体验相较于其他模式最差
  3. 功能受限,大量移动端功能无法实现
  4. 入口强依赖于第三方浏览器,且只能以URL地址的形式存在,导致用户留存率低(优点即缺点)

Hybird App

混合开发,也就是半原生半Web的开发模式,由原生提供统一的API给JS调用,实际的主要逻辑有Html和JS来完成,最终是放在webview中显示的,所以只需要写一套代码即可达到跨平台效果,另外也可以直接在浏览器中调试,很方便。最重要的是只需要一个前端人员学习下JS api的调用即可。

Hybird App 的较早实践者是PhoneGap,如今改名为Cordova。随后遍地开花,如Titanium、Salama、WeX5、Kerkee和国内的AppCan等.现在流行的Hybrid开发模式的主要有以下几个大平台:Cordova,APPCan,DCloud,APICloud。这些平台各有各的实现方式,但大致的原理基本相同。

在Hybird概念盛行的时候,国内外各大公司也参与了探索,国外代表有Facebook、google、亚马逊,国内的有腾讯、阿里巴巴、网易等,慢慢的他们发现Hybird严重受限于WebView的解析渲染效率,于是Facebook开始了他的类原生的研究探索,淘宝紧跟其后。于是React Native和Weex诞生了。

三、思考与实践


具体开发过程中,到底该采用哪种类型的app,原生还是H5?

这两年多以来,因为市场的不同,也出现了不一样的需求,各个技术都有了新的发展。为了解决问题其实最终思想都会被还原成以下几个点上:

  • 根据需求,选择工具;
  • 用适当的工具做适当的事情,有针对性地解决问题;
  • 世界是平衡的,对于开发者来说,做的有用功越多,用户体验就越好,反之越差;
  • 跨平台是一个"幌子",什么都做得到不代表什么都做得好

通过以上分析你会发现Hybrid技术的发展基本也在跟随这几个点来走。所以个人认为HybridAPP开发将成为移动开发的一种趋势,尤其是在电商方面HybridApp将会成为主流,但是在资讯类,电子读物阅读类的APP上还是以原生开发为主。

我们到底使用什么技术可以从以下几个点进行业务分析。

  • 如果APP中出现大段文字(如新闻、攻略等),且格式比较丰富(如加粗,字体多样),那么用H5会比较方便。原因是原生开发解析json对字符串格式处理不算很好。
  • 如果讲究APP反应速度(含页面切换流畅性),则选用原生开发,因为H5其本质是网页,换页时,基本要加载整个页面,就像是浏览器打开一个新页面一样,显得较慢,而原生系统则只加载变化部分。
  • 如果APP对有无网络、网络优劣敏感(譬如有离线操作,在线操作),那么,基本选用原生开发,虽然H5可以做到,但是很复杂。
  • 如果APP需要频繁调用硬件(摄像头、麦克风、未来的湿度检测仪等等)那么,基本选用原生开发,这样支持硬件更多,更容易扩展,且调用速度更快,H5就望尘莫及了。
  • 如果APP用户常见页面频换,如(淘宝首页各种不同活动),那么用H5,维护起来更容易。
  • 如果预算有限(H5开发一套可跨平台覆盖安卓、ios,黑莓、塞班),不是很讲究用户体验,不在乎加载速度,那非H5不可。

总结来说就是:不同的页面情况选择不同的开发方式

+
  2018-04-24 14:15  字数 3325  阅读 0

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324777998&siteId=291194637