@pockry
2015-09-14T16:39:45.000000Z
字数 1953
阅读 1924
移动
架构
ArchSummit
移动开发经过数年的高速发展,到现在,“大”应用和大团队不断出现,业界也越来越关注移动应用客户端的架构问题。不少移动团队都沉淀
出自己的架构框架和方法论并向外分享,特别是近一年多来,部分移动团队开始将它们的框架开源出来供大家学习使用。如Facebook的React Native,和国内Geek Zoo Studio的Samurai Native,以及360的DroidPlugin、手淘的Atlas(待开源)等等。我们有必要将大家集中起来,来盘点一下到目前为止移动应用架构的发展状况,显然,ArchSummit架构师大会是一个绝好的机会。
在这次12月18日举办的ArchSummit北京上,我们设置了移动应用架构专题,并邀请豌豆荚移动开发负责人范怀宇作为出品人,一起来策划这个专题。
范怀宇是豌豆荚的早期员工,负责过很多项目,从Windows客户端、服务端到Android客户端等等,目前,主要负责新产品和基础技术。
我们在和他的沟通中,也了解了他关于移动应用架构的思考和对此专题的设想。
InfoQ:关于ArchSummit移动应用架构专题的构想,为什么想做这个专题?
范怀宇:移动应用架构是很有意思的话题,在现代的移动平台,诸如Android、iOS都构建了非常高质量的开发框架,对于不少应用而言 ,只需要系统提供的开发框架进行开发即可,越来越多的应用架构会趋同。正因如此,在移动领域如何来构建满足业务需求的应用架构,进而真正提升开发效能和质量,是非常有挑战的事情。
InfoQ:目前移动应用架构的发展有哪些您感兴趣的点?
范怀宇:对于移动应用架构,我最感兴趣的点有三个:
一个是还有没有办法能够进一步提升移动开发的效率,Hybrid? 插件化?还是其他;
第二个是如何解决移动应用兼容性的问题(Android 尤为如此),越来越多的系统版本、屏幕尺寸、设备特性,要建立怎样的架构才能让这样的问题处理起来更得心应手;
第三个问题是如何在流量、电量、空间等受限的情况下,挖掘出更极致的体验,尤其是那些对流量、电量等有重度依赖的应用,会设计怎样的方案来达到更好的平衡。
InfoQ:业界现在比较关注平台化、容器化架构,您对这些有何看法?
范怀宇:平台的价值,一定源自于平台之上有非常多的应用能从中获益,大公司一向是孵化平台的热土,因为出于内部效能的优化,他们就需要构建一个能支撑公司多个团队和项目的平台,维系一定的统一性来提升效率。类似于手淘容器化这样的架构,已经可以显著提升内部效能了,但只有真正的为行业更多的应用来提供平台,才会对整个行业的应用开发起到显著的作用。
InfoQ:Hybrid技术的应用,以及如React Native这样的框架对移动应用架构有哪些影响?
范怀宇:Hybrid这样的技术,是期望通过构建中间层,将不同移动平台开发转移到另一个更熟悉的平台上(比如Web),以此,来提升多个移动平台同时开发的效率。我自己觉得Hybrid是有用的,但局限性较大,只能算是一种比较特型的框架选型,只对于非常特定的产品开发会生效,而并不会进化成对于整个移动应用架构都有影响的方式。这是因为我前面说的,当下主流的移动平台,比如Android、iOS都已然高度的框架化,他们有着自己越来越显著的平台特性和开发模式,企图把这样的模式转移到一个其他概念上,非常的困难,这就使得Hybrid能提供的增值非常有限,并不能解决全部问题。
InfoQ:豌豆荚的Android App架构是怎样的?经历了哪些演变?
范怀宇:豌豆荚Android版的架构变化,主要围绕着内容来更迭。
第一次比较显著的架构变化,是从最早期的应用商店进化到移动内容搜索时,豌豆荚需要容纳更多的应用外的内容,这就使得在应用架构上,需要能够兼容不同内容的处理。为此,我们构建了一个基于MVP的应用框架,期望将不同内容的呈现都能高效的落地。但这个架构并不算是非常成功,所以今年,我们又对这个架构做了一次非常大的调整,提出了"Content Framework"的概念,在产品上构建了统一的UI Language,而在技术上进一步高度抽象出了统一的数据模型和界面框架,并封装了诸如数据统计、内容下载等多种服务,期望将一个内容型移动应用的开发,变成一个搭积木的过程。这个事情至此,我们完成了一大半,但行百里者半九十,剩下的工作还需要比较长的时间来落地,如果构建的非常成功,也希望能有机会开源出来,帮助更多人快速的构建内容型的应用。
以上是范怀宇对移动应用架构专题的想法,目前我们正在招募大会讲师,如果你对这方面有非常值得分享的内容,欢迎联系我们。另外,ArchSummit北京大会正在8折限时优惠售票中,感兴趣的同学欢迎报名。