对当前主流hybrid app、web app与native app工具的初步比较与分析

随着移动互联网元年—2011年,已过去4年了。一大批互联网的站长正面临的流量减少的困境,不少技术能力稍强的站长转型iOSAndroid开发者。跟得上市场的站长继续成长,跟不上的小部分站长正在面临被淘汰的处境。

笔者大学时期也是曾经的站长群体的一员,擅长单打独斗,技术、设计、营销样样都来,但2012年免不了走上了找工作的道路,索性后来有幸进入百度公司学习。

在这个“大众创业、万众创新”的年代,创业仿佛又好像点燃了你心中埋藏已久的热情。这时作为互联网时代的人,必须转型开发者。然而问题来了,只会网站的前后端能力如何去迎合移动互联网的技术需求,所以才有了一段不断踩坑、不断填坑的历程。

在寻找工具、体验工具、使用工具的这段时间,积累了一点个人经验,在这里浅谈下对这些工具的使用体验。

1.使用过哪些工具?

Webapp:ThinkPHP Mobile(TPM)、Ionic Framework、JingleUI

Hybridapp:Apicloud、Phonegap(稍了解Hbuilder、Appcan、Wex5)

Nativeapp:CrossApp、React-Native、Xcode、Eclipse-ADT/android Studio

2. 以上工具各自的编程语言是?

Webapp:主要使用H5(HTML5CSS3js)语言规范来编写,对JS语言掌握要求较高

Hybridapp:同Webapp使用H5作为主要编程语言,JS将作为主力连接原生SDK模块

Nativeapp:

1)Xcode、Eclipse-ADT/Android Studio:使用Objective-C/SwiftJava

2)CrossApp:主要使用C++来进行跨平台编写,JS(已经支持,不过仍处于测试阶段)

3)react-Native:主要使用JS编写,语法规则JSX

3.以上工具的上手难度、开发周期、打包平台、跨平台属性是?

1)上手难度:

Hybridapp/Webapp:写一次,运行任何平台。简单

React-Native:学一次,写任何平台。中等

Nativeapp:学一次,只限运行特定平台。较难

2)开发周期:

Webapp:2~3周

Hybridapp:由于第三方工具兼容性、bug处理问题、调用js-原生模块(熟悉文档),开发周期在2个月左右

React-Native:1个半月~2个月

Nativeapp:各1个半月~2个月

3)打包平台

Webapp:无,可借助微信开放/公众平台分发。成本低;自由度高

Hybridapp:第三方工具的在线打包。成本低;自由度低

React-Native:原生Xcode、Eclipse-ADT。Xcode需购买支持OSX操作系统的主机,成本略高;自由度高

Nativeapp:原生Xcode、Eclipse-ADT/Android Studio。Xcode需购买支持OSX操作系统的主机,成本略高;自由度高

4)跨平台

Webapp:H5分发平台

Hybridapp:跨ios、Android、Wp(PhoneGap支持)多平台

React-Native:跨iOS、Android双平台

Nativeapp:不跨平台

4.Hybridapp与Native app相比,性价比如何?

时代在发展,html5规范也在完善,尤其是W3C敲定Html5标准之后,但是现实真的有那么美好吗?

笔者使用Apicloud,从发布到今天已有一年多,apicloud相对其他混合式app工具,是同类较好的,但这并不能掩饰h5作为app 开发的局限性。

1)混合式app的用户体验

页面与页面之间的切换,也称转场动画。随着手机硬件系统的更新换代,webview已有很大程度的提升,但即使是在iphone 6/6s plus上仍然是假性生硬切换,即使无卡顿。那么要做到诸如微信般切换已然无可能。

iOS系统如此,安卓系统情况亦不明朗。而由于混合式app依赖模块实现原生交互,在没有大量模块实现的情况下,需要使用html5-js来代替,体验更是大打折扣。

2)UI开发受限

许多创业公司由于产品交互需求,需要将app ui做到配色一致或更个性化(如带卡通下拉刷新),而混合式app的模块UI已写固定,自由化UI定制难。

3)集成第三方sdk

混合式app想要使用第三方sdk,首先要使用的工具平台支持,如果平台不支持,要么你请人写iOS/android模块,要么就是等。倘若新集成的sdk出现bug,你所能做的也是等,并没有其他好的办法。

5.针对这些工具,学习路线是?

我在一些混合app 开发群里,看到过很多web开发新转行的同学,问题没有看明白,就直接提问,我觉得这种做法会影响自身的开发效率。以下讲讲学习混合式app的学习路线:

1)搭建IDE环境

针对Win/OS X选取不同的开发环境工具包,并生成第一个示例app,hello world!

2)看教程

Html5教程推荐:www.w3school.com.cn

在第三方工具的开发者社区看置顶教程帖子或视频教程,文字的教程可以多看,视频的教程看看就好,毕竟每个人的思路都是不同的

3)看技术文档

到这个阶段,你要正式开发app了。文档里的方法不用记得太详细,建议边写边看边调试。混合式app的调试需要同步到手机,这点可能有点麻烦。推荐使用海马玩模拟器进行在线调试。

4)看开源代码

任何编程语言都有互通性,而看开源代码就是必修课了。好的开源代码能让你进步神速。

6.对web开发者转型的建议

同为多年web开发,转型不易,一要考虑工具要像脚本语言如此便捷效率;二要考虑能否媲美原生app。

我的建议是:

以hybrid app为基础,观望crossapp-js部分,条件允许使用react-native(来自facebook,一直在更新)。

hybrid app、web app、native app之间的比较分析就到这里,如果还有补充,会继续更新。

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: