Hybrid App初探,开发移动端App也没那么难

前端圈子里非常流行的Hybrid App,大家可能都听到过,那么到底是什么意思呢?Hybrid原意是杂种的、混合的。App这里主要是指移动端应用,比如运行在android、ios端的原生应用(Native App)。

Hybrid App初探,开发移动端App也没那么难

随着移动端浏览器越来越牛逼,伴随着性能的提示和接口的开放,JS/HTML/CSS也大放异彩,那么我们包装一个壳,这个壳的核心就是浏览器,然后把JS/HTML/CSS打包好放到这个壳里生成一个Native App,看起来Perfect,对终端用户来说,很难感知到具体是用的Hybrid还是Native。

那如果有一些JS搞不定的改怎么办呢,第一是通过Hybrid JS bridge开放的接口,第二也就是最关键的可以唤起一个Native View来弥补一些不足,这才是Hybrid的核心,能用JS这些搞定的就尽量用JS,有些搞不定的则可以混搭Native调用,实际开发中,混搭Native的场景不是太多,是极少数的。

现在市面上Hybrid App的方案有很多,像PhoneGapAppCanAppMobiTitanium等,这些大多都提供了IDE来辅助开发,一份代码,可同时编译生成多终端的app。而很多大公司其实这些都不用,会自己实现一套Hybrid方案,比如微信就是中国最成功的Hybrid案例,甚至是全球。。。毕竟运行在微信浏览器的App、小游戏、界面数量太惊人了,也有一套比较完善的接入体系。

那么其实不管什么方案,有一些点是都需要考虑的,就算是业余研究,也要把下面的问题想清楚:

1.浏览器内核选型?到底是用系统自带的原生浏览器,还是打包一个更高效内核。也有一些是会根据机型自动适配的。
2.JS bridge完备性,毕竟没有这个得话,原生JS一旦遇到瓶颈,就束手无策了,唤起Native View是最后的选择。
3.资源缓存,JS/HTML/CSS这些都是缓存在本地的,这样不管是第几次访问,都能快速的得到渲染,而不是现加载。
4.开发效率,其实前端er更希望是零成本介入,不希望去折腾Native的东西,但实际上是很难的,首先环境的搭建是必须的,方案要尽可能的简单。
5.App以及静态资源更新机制,有时候是需要更新App,有时候则只需要更新里面的前端静态资源即可,那么这套机制必须得有,静默更新,或者是提示用户等。

相关阅读