小小总结下百度和知乎上看到的关于各类APP实现方式的知识。
扫下盲,以免跟技术GG沟通时太白痴哈~
Native APP、Web APP、Hybrid App
App,指运行在智能的移动终端设备第三方应用程序。
在高端智能手机系统中主要有以下几类应用程序:
Native App是一个原生程序,运行在本地操作系统如IOS、Android、WP上并使用原生程式编写运行,又叫本地APP。在实现上是使用Objecttive-c和cocoaTouch Framework撰写的IOS程序,或者选择java+Android Framework撰写android应用程序等。
Web App是基于高端机的浏览器运行的应用,宿主是浏览器不再是操作系统,其实也就是一个针对手机操作系统优化后的web站点,是一个触屏版的网站。它使用的技术一般是HTML或HTML5、CSS3、JavaScript,服务端技术JAVA、PHP、ASP。不过,现在由于高端智能手机(Iphone、Android)的内置浏览器都是基于webkit内核的,所以在开发WEBAPP时,多数都是使用HTML5和CSS3技术做UI布局。
Hybrid App是介于上面二者之间的一种半原生程序,伪造了一个浏览器的apk/ipa原生程序,把地址写死了,然后里面运行了一个webapp。里面是WebView UI 。但是还是运行在机器的操作系统上,交互较弱,资源在本地或者网络都可以。
Hybrid App是同时使用网页语言与程序语言开发,通过应用商店区分移动操作系统分发,用户需要安装使用的移动应用。总体特性更接近Native App但是和Web App区别较大。只是因为同时使用了网页语言编码,所以开发成本和难度比Native App要小很多。因此说,Hybrid App兼具了Native App的所有优势,也兼具了Web App使用HTML5跨平台开发低成本的优势。
Native APP与Web APP的优劣势
Native APP的优势
- 提供最佳的用户体验,最优质的用户界面,最华丽的交互。
- 可以针对不同平台提供不同体验。
- 可支持离线操作,节省带宽成本。(这点随着WebKit或者说HTML5引入了数据库机制允许离线操作,优势会有所减弱)
- 因为位于平台层上方,向下访问和兼容的能力会比较好,可支持消息推送或访问本地资源,可调取摄像拨号等功能。
- App store培养了一种比较好的用户付费模式,所以在Apple的生态圈里,开发者的盈利模式很明朗,其他market也在往这条路上靠拢。
- 打开速度更快,而Web App受限于网速和手机解析html5的速度。
Native APP的劣势
- 开发成本高。
- 由于设备碎片化,移植到不同平台上的成本高。
- 需要用户自动下载才能更新,用户更新成本高,相应的维持多个版本的更新升级的成本也都比较高。
- 用户的安装门槛比较高。
- 需要通过store或market的确认。
- 盈利需要与第三方分成。
当然,优劣势都是对比出来的,Web APP的优势和劣势就对应着Native APP的劣势和优势哈~
另外,由于Web App从实现角度上还可以分为几种,优劣势也不同:
- 直接使用移动设备浏览器使用。
- 使用本地封装Embed Browser来调用Web接口。
- 使用Web技术(HTML,JavaScript,CSS)直接构建本地应用。
当使用2、3两种实现方式时,用户很难分清Web APP和Native APP的区别。
过去移动OS内置浏览器控件性能低下,但目前三大系统来看,iOS很早就具备了优秀的内置浏览器,WP从8开始内置的IE10以及8.1内置的IE11都非常棒,Android 4.4开始内置浏览器控件将直接使用Chromium较新的版本,相比原来也上了一个台阶。另外再加之HTML5的支持以及现在JavaScript/CSS/DOM等性能和稳定程度越来越高,现在对于很多常规应用,Web App可以做到体验跟Native App非常接近或者一样好。
而Web App开发的便捷性,以及跨平台是Native App不能靠拢的。所以现在,对于开发商/者来讲,更少的成本,同样的产出,可能会比以往更多倾向于Web App。
Native APP与Web APP如何抉择
对于核心功能,采用Native APP,因为速度和稳定性都有保证,UI和交互体验也比较流畅,是高品质产品的首选。
交互简单,对热部署(即在应用正在运行时升级软件却不需要重新启动应用)有较强依赖,要求跨平台,需要经常调整的辅助功能,可以采用Web APP。
而如果采用html5来实现的话,可以在体验上接近Native APP,同时开发上也具备更多的灵活性和跨平台性。所以也是不错的选择。