筋斗云框架前端:做优雅的全平台移动应用

做过移动应用开发的人,都会了解到以下痛点:

痛点一:支持多平台的开发和维护代价极高。要做一个移动应用,至少需要支持目前市场占有最大的苹果和安卓两家平台;此外,还有像微信公众号这样的轻应用平台也不容忽视。这样,我们一般要在前端提供安卓版、苹果版和微站版应用。遗憾的是,这三者的开发环境完全不同,开发团队需要具备技能完全不同的三组选手才能完成工作。

痛点二:频繁的版本更新,使得兼容旧版本的工作非常复杂且易出问题。移动应用一般一两周就会发布一个新版本,在设计和开发时,必需考虑用户都还在用各种旧版本,新的功能要么兼容旧版本,要么强制用户升级。另一方面,从用户的角度来看,几乎每次在打开你的应用时,都提示要升级,甚至必须升级才能用,是不是很闹心?特别是不在Wifi环境下,面对下载几十兆的流量,用户会怎么做呢。

痛点三:不可控的应用平台发布审核。当你做好新版本后,想什么时候发布自己说了竟然不算,发布的控制权掌握在各大应用市场手中。假如你刚发布的版本发现一个紧急bug,程序猿立即加班解决,做出了新版本,结果苹果应用市场审批,至少让你等上一周,会不会欲哭无泪呢。倒也有些同学很励志,觉得这样也好,可以督促我们更好的做版本计划和实行更完善的持续更新流程。你觉得呢?

如何解决这些问题,是个不小的挑战。筋斗云倡导做优雅的全平台移动应用,提出以下观点:

  • 使用混合应用技术,一次开发,多平台使用。称为优雅的开发(graceful development)。
  • 制作壳版本给用户安装,做到尽量少更新或不更新,避免兼容性处理工作和不可控的发布审核。壳中只有原生插件等,不包含实际应用,真正的应用永远控制在自己手上,永远是最新版本。这称为优雅的发布(graceful release)。
  • 全平台应用必须在各平台上都有一致的良好的用户体验,即提供优雅的使用体验(graceful user experience)。

筋斗云的设计思想认为,未来的移动应用开发一定也和桌面应用的发展类似,会不断的有跨平台的开发语言和库出现。在制作桌面应用时,如果要考虑跨平台(支持Windows平台、Linux平台等都能运行),设计时就会选择跨平台的开发语言或库,基本不再会去每个平台单独做一套。在移动开发领域,目前最成熟的跨平台技术是制作以Html5为基础的混合应用,即先做好移动Web应用,经过对各平台(安卓、苹果、微信)的适配工作,再借助Cordova等框架,把Web应用生成原生应用(这种原生应用一般称为混合应用,Hibird App),具有和原生的安卓App或苹果App类似的操作体验。这样,开发者就只需开发维护一套基础的移动Web应用,就能打造全平台移动应用,在各平台一致运行。

然而,成功使用混合应用架构的案例并不多,很多尝试者都落马于不佳的用户体验,操作不流畅,切换页面时有明显的网页刷新痕迹等等。要制作具有类原生应用的体验的移动Web应用,需要很多技巧。于是便诞生了像jQuery Mobile这样的移动UI框架,尽管仍有诸多问题,但为后来者开创了一个方向。

筋斗云的设计思想认为,移动前端框架应提供以下特性:

  • 支持“多页面应用”,提供某种页面路由方式。应用程序在逻辑上是由多个应用页面(Page)构成的。在移动端,一次显示一个页面,页面间可流畅地相互切换,提供与原生应用页面类似的体验。
  • 本质上,它应该是“单网页应用”。单网页应用,简称SPA,有时也译成“单页应用”,这里的“页”指的是网页(Web Page),与应用中的每个逻辑页(Page)是两个概念。它强调无刷新的体验,即只有一个网页,在打开应用后,每次只会更新网页的局部显示,不会像传统网站那样每次打开另一个网页时整体刷新。
  • MVC架构。数据与界面元素一定是分离的,前端与后端应用服务器间只会传输动态业务数据,不会混合数据与界面。框架提供C(Controller,控制器),开发者操控界面元素V(View,视图),与后端服务间只会传输业务数据M(Modal),和原生一样节省流量。
  • 支持与原生壳交互,从而实现尽量少的用户版本更新。例如,应用被原生壳加载后,可以调用壳支持的原生功能;壳会升级,会有多版本并行存在,框架必须提供机制让应用可以区分和兼容不同版本的壳。
  • 支持一些常见的对原生应用的适配。例如,如果壳中设置了启动画面,则当Web应用加载完成后,应自动隐藏启动画面;支持原生应用使用的页面栈机制,像在后退时可以跳过(pop)某些页面;安卓平台上可以退出应用;苹果平台上页面顶端应留出部分空间给系统状态栏等等。

只有具备这些特性,开发者才有可能优雅地创作自己的移动应用,是的,编程也可以是一种艺术。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值