移动应用开发三种方式比较
随着H5标准的发布以及推广,使得移动应用的开发也受到了很大影响,出于效率、成本等等的原因,移动应用的开发不在完全依赖于“原生”。 今天就简单总结一下目前的三大主流移动应用开发类型。 APP,一般认为是 mobile application,也就是移动移动应用程序。
1.Native App:本地应用程序(原生App)
Native App是一种基于智能手机本地操作系统如iOS、Android、WP并使用原生程式编写运行的第三方应用程序,也叫本地app。 常用语言当然就是 iOS:Objective-C swift, Android:JAVA,Windowsphone:C++
优点:1.打造完美的用户体验 2.性能稳定 3.操作速度快,上手流畅 4.访问本地资源(通讯录,相册) 5.设计出色的动效,转场 6.拥有系统级别的贴心通知或提醒 7.用户留存率高
缺点:1.分发成本高(不同平台有不同的开发语言和界面适配) 2.维护成本高(例如一款App已更新至V5版本,但仍有用户在使用V2, V3, V4版本,需要更多的开发人员维护之前的版本) 3.更新缓慢,根据不同平台,提交–审核–上线 等等不同的流程,需要经过的流程较复杂
2.Web App:网页应用程序(移动App)
Web App,顾名思义是指基于Web的应用,基本采用Html5语言写出,不需要下载安装。类似于现在所说的轻应用。基于浏览器运行的应用,基本上可以说是触屏版的网页应用。
优点:1.开发成本低 2.更新快 3.更新无需通知用户,不需要手动升级 4.能够跨多个平台和终端
缺点:1.临时性的入口 2.无法获取系统级别的通知,提醒,动效等等 3.用户留存率低 4.设计受限制诸多 5.体验较差
3.Hybrid App:混合应用程序(混合App)
Hybrid APP指的是半原生半Web的混合类App,兼具“Native App良好用户交互体验的优势”和“Web App跨平台开发的优势”。 需要下载安装,看上去类似Native App,但只有很少的UI Web View,访问的内容是 Web 。 混合式 APP 目前有越来越火的趋势,一大原因是可以进行“热更新”,不再受限于审核、上线等等繁复的流程。
AppStore里的电商类、新闻类APP,视频类APP普遍采取的是Native的框架,Web的内容。如淘宝、腾讯新闻等等。
Hybrid App 极力去打造类似于Native App 的体验,但仍受限于技术,网速,等等很多因素。
目前流行的四种跨平台app打包方式
发展历程:
在国外,最大的是Cordova(PhoneGap,2011年广泛流行),在2012年12月开源。
在国内,按时间顺序,有:2012年AppCan,2013年DCloud,2014年9月APICloud
1.Cordova
Cordova是Apache软件基金会的一个产品。其前身是PhoneGap,由Nitobi开发,2011年10月,Adobe收够了Nitobi,并且PhoneGap项目也被贡献给Apache软件基金会。Apache在2012年12月,发布了Cordova,截止到2015年12月,最新版面是3.0。
该框架的目标用户群体是原生开发者,其设计初衷是希望用户群体能够通过跨平台开发的方法降低原生开发的成本。为此,开发人员需要安装原生开发环境,配置工程,使用HTML5、CSS3、JS和原生SDK生成应用。
Cordova的优势很明显,可以使用的框架、原生接口、支持平台都很多。但是,外国人写的东西,公司使用后,出现的技术问题难以解决。同时,其在使用jQuery Mobile、Sencha Touch等前端框架的时候,有特效启动慢、页面切换慢、数据请求慢的特点。
2.AppCan
AppCan成立于2010年,2011年推出产品并测试,2012年正式推出品牌,2013年商业模式成型,2014年开发者注册约70w。AppCan不是开源平台,同时,企业版和部分插件是收费的。换句话说,AppCan只是一个卖软件的商业公司。我们认为:这会对其市场的占有率有着直接影响,闭源而没有垄断,所以前景不会太好。
3.DCloud
DCloud大部分产品开源,W3C会员单位,HTML5中国产业联盟的发起公司之一,在HTML5这个行业有一定的江湖地位。旗下四款产品:HBuilder、5+ Runtime、MUI、流应用都是弥补并扩展HTML5特性的产品。该公司的理念就是解决HTML5的性能、工具、能力三方面的问题。MUI是一款不错的前端框架,性能比 jQuery Mobile、Bootstrap好很多,主要区别:
- 设计思路不同,MUI坚持用原生JS做,不依赖jQuery或者Angularjs。
- MUI调用了5+ Runtime的底层原生加速,比不带原生加速的框架更快。
但是,DCloud毕竟是个新平台,发展才2年,新产品内部存在的Bug还需要很多的测试。在其官方社区中,不少开发者也在呼吁DCloud尽快完善文档和框架。
4.APICloud
APICloud提供原生应用的功能模块(设备访问,界面布局,开放SDK等),开发者可以通过JS调用。前端工程师负责页面布局,UI展现,及简单的交互,原生模块负责性能方面和功能实现,两者结合形成一个完整的应用。同时APICloud提供了云数据库的功能,前端不必了解PHP,Node.js等后端语言,通过JS接口或Restful API实现数据库的增删改查。
但是APICloud的更新速度很快,版本不太稳定。而且,它是为不懂APP开发的人士准备的,不适合科技公司和程序员。