WebApp
今天和大家分享的是一种新的开发方式,或者说是一种新的开发模式,WebApp。怎么理解这个名词呢,最终产物是App,但App中的页面是Web,是网页。就是App原生的壳,嵌套着浏览器页面,甚至是App的壳都不要了,所有的开发都是用浏览器的页面组成(事实上安装包还是相应的格式)。
图1是IOS的App,图2是Android的App,图3是IOS上的浏览器,图4是微信端。再加上Android上的浏览器。多个端对同一个App的展示,一模一样,这确实没什么惊奇的,但最surprised的是只有一套代码。
这一套代码里没有让开发的人做各种的判断和兼容。这是WebApp最突出的优点。
当然也需要去做兼容,不过这是框架已经做了的事情,不在我们的研究范围内。这最突出的优点相较于公司带来一系列的好处。
- 开发成本
- 不需要多个端的开发人员,意味着不担心多个端进度不一样……
- 测试成本
- 测试好一个端,其他端也没问题
- 沟通成本
- 没有多个端的开发人员,意味着不管从需求、开发还是测试,不需要各多种性格的人打交道
- 招聘成本
- 没有多个端的开发人员,维护一套代码,招的的人少了,自然招聘成本降低了
不过问题需要辩证来看。真正的使用起来,如果需要App可以回滚到任意版本等要求,外壳里做配置,还是需要原生的开发人员。无论是否有重大的功能发布,测试人员难道真的只测一端就能放心?现在前端的工资较高,招聘成本是否真的降低了?有没有闻到一丝鸡肋的味道。
快速的满足用户,才能占有市场。现在的互联网市场,风向变化莫测(故作高深一下……),开发者面对产品,需求也是肆意妄为的修改(夸张一下……),对于这些快速变化,如何快速做出反应?
大家有没有这种体验,在即将到各种节日的时候,尤其是双11、双12,淘宝App端打开,发现下面按钮都变了风格,但是你并没有升级过淘宝。前端界面变了,软件未升级,这是怎么做到的?
这就是WebApp的一大好处,可以后台升级。
- 看不到升级的过程
- 不会有升级的进度框
- 不影响性能
- 在升级过程中不影响功能正常的使用,当升级完成,页面就像刷新一样,变成了最新版本的页面
- 差异升级
- 可以做到这一点
大家有没有这样一个体验。当你出门了,你只知道在人民广场附近,到了人民广场某个位置路边,内心浅浅一笑,我有导航。打开导航,提示升级,第一感觉是烦恼,用到的时候需要更新,第二感觉是现在又没WIFI。这种心情真的是超级烦。唉,有个自动升级,偷偷升级,体验是不是好很多(づ ̄ 3 ̄)づ
debug快,在于WebApp的本质是浏览器页面,debug的方式是在网页端F12用浏览器的调试器调试。用原生开发,利用IDE调试,必然要有启动、编译的过程,这样的对比,体现了一个“快”字
更容易实现灰度发布和A/B测试。一种带给用户不同体验的模式,这种体验小到对一个按钮、一个界面、一个功能,大到对一款产品,我知道是谷歌的是即时通信产品。这里可以参考这里A/B测试
在这篇文章有个词和大家分享一下:CAT按钮-Call To Action,事实上是有响应交互的按钮
右边的图想表达相较于其他的开发方式,WebApp开发的更快。使用的是脚本语言,上手快,很多功能都已经有了开源,这里有一个故事
有两家公司。A公司有一群人,IOS、Android、后端等各人员。B公司只有2个人,一个前端,一个后端。一个月后A公司的产品还没开发完,B公司产品已经发布了
WebApp其实并不是新鲜出炉的,不过在旧时代,WebApp有切页白屏、转场卡顿等问题,因为无法对硬件操作,被人摒弃
今天推荐的一款框架是HBuilder。提交小,性能接近原生,没有之前的诟病
而且提供了很多的组件…….