APP开发技术浅析
注:此处App为应⽤,application,并⾮我们通常讲的⼿机App。
⼀、纵向对⽐
Native App
传统的原⽣App开发模式,有iOS和Android两⼤系统,需要各⾃语⾔开发各⾃App。
优点:性能和体验都是最好的
缺点:开发和发布成本⾼
应⽤技术:Swift,OC,Java
WebApp
移动端的⽹站,常被称为H5应⽤,说⽩了就是特定运⾏在移动端浏览器上的⽹站应⽤。⼀般泛指 SPA(Single Page Application)模式开发出的⽹站,与MPA(Multi-page Application)对应。
优点:开发和发布成本最低
缺点:性能和体验不能讲是最差的,但也受到浏览器处理能⼒的限制,多次下载同样会占⽤⽤户⼀定的流量 应⽤技术:ReactJS,RegularJS,VueJS等等
Hybrid App
混合模式移动应⽤,介于Web App、Native App这两者之间的App开发技术,兼具“Native App良好交互体验的优势”和“Web App跨平台开发的优势”(百度百科解释)
主要的原理是,由Native通过JSBridge等⽅法提供统⼀的API,然后⽤Html+Css实现界⾯,JS来写逻辑,调⽤API,最终的页⾯在Webview中显⽰,这种模式下,Android、iOS的API⼀般有⼀致性,Hybrid App所以有跨平台效果。
优点:开发和发布都⽐较⽅便,效率介于Native App、Web App之间
缺点:学习范围较⼴,需要原⽣配合
手机上可以打html与css的app应⽤技术:Cordova,APPCan,DCloud,APICloud,Wex5等
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上还是以原⽣开发为主。
我们到底使⽤什么技术可以从以下⼏个点进⾏业务分析。
不同的页⾯情况选择不同的开发⽅式。总结来说就是:不同的页⾯情况选择不同的开发⽅式

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。