1703952137
1703952138
1703952139
1703952140
图8-2 移动开发人员拆散到技术研发部
1703952141
1703952142
以上介绍的是大型技术团队,搭建移动开发团队的方法,如果是从零开始的移动应用创业团队,情况就不一样了。
1703952143
1703952144
对于创业型移动开发团队,如30人以内的移动开发团队,只要配备齐产品设计、运营、移动开发、测试、UED、架构师、Leader等角色,进行简单的分工就可以了。移动开发人员可根据项目的要求临时组成项目小组,进行协同开发,项目结束即可释放开发资源。
1703952145
1703952146
在大型技术团队,几十个开发团队协同进行开发,其中包括PC端Web应用、移动应用、底层接口等,在这样的“多屏”时代,我们的技术架构又该如何搭建呢?
1703952147
1703952148
带着这个问题,我们进入下一节,一起来探讨“多屏”时代移动应用的技术架构如何搭建。
1703952149
1703952151
8.1.2 移动应用的技术架构
1703952152
1703952153
移动互联网时代的来临,使我们在技术架构上要考虑“多屏”的需求。在软件开发的过程中,底层要稳固、健壮、具备高可用性;接口层要丰富、兼容、保持相对稳定;业务逻辑层要兼顾灵活性、可扩展性,以支持灵活多变的业务发展;展示层要能适应每个终端的特点,设计良好的用户体验。
1703952154
1703952155
下面我们主要介绍一些比较有特色的技术框架:SOA构架在移动中的应用、MVVM框架、Facebook的ReactsNative框架。
1703952156
1703952157
SOA架构,使得应用的服务器端各模块间解耦,在应用部署的时候从业务维度进行分组,在极端情况下可以舍弃非核心模块,以保证主业务不受到影响,体现出了SOA架构的优雅和高可用性。从图8-3的移动应用整体架构中,可以看到SOA在其中起到的至关重要的作用。
1703952158
1703952159
1703952160
1703952161
1703952162
图8-3 移动技术框架
1703952163
1703952164
从图8-3中可以看到,无线服务平台是独立存在的,可以整合所有的后端服务和数据,针对无线的特点,优化后提供给APP,真正做到根据无线规则出牌,针对不同的设备类型,如Android、iPhone、iPad、Windows Phone等,提供不同类型的数据和内容。基础服务平台,提供底层通用的数据接口,并对这些接口被调用的情况进行监控,做到实时预警,还可以集中进行技术数据统计和业务数据统计。
1703952165
1703952166
MVVM是Model-View-ViewModel的简写。微软的WPF(Windows Presentation Foundation,微软推出的基于Windows Vista的用户界面框架)带来了新的技术体验,如Silverlight、音频、视频、3D、动画……这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性柔和进去,以应对客户日益复杂的需求变化,如图8-4所示。
1703952167
1703952168
1703952169
1703952170
1703952171
图8-4 MVVM模式
1703952172
1703952173
MVVM,让视图逻辑和业务逻辑完全分离,View层专注展示,ViewModel层专注业务,容易并行开发,优点是业务逻辑集中、模块结构相对统一、好维护、好上手,单元测试可以做到ViewModel层,不再跟UI纠缠不清,模块的复用度也更高。跟传统的MVC模式相比,MVC中的C不可避免地越来越胖,视图逻辑和业务逻辑混杂,导致各种问题,如单元测试不好做、开发不容易并行、模块结构不统一,导致维护成本高、新人上手困难,比如视图上几个控件联动,有用通知实现的,有用观察者实现的,也有手写联动代码的,比较混乱。
1703952174
1703952175
React Native,是Facebook在“React.js Conf 2015”大会上,推出的基于JavaScript的开源框架。它解决的问题是,只要学习一种框架,就能够在iOS、Android等平台上进行应用开发,真正做到“Learning once, write anywhere”,大家厌烦了各种各样的编程语言,如果有一种语言真的能够统一移动开发领域,对于所有人都是好事。
1703952176
1703952177
React Native结合了Web应用和Native应用的优势,可以使用JavaScript来开发iOS和Android原生应用。在JavaScript中用React抽象操作系统原生的UI组件,代替DOM元素来渲染等。
1703952178
1703952179
React Native使你能够使用基于JavaScript和React一致的开发体验在本地平台上构建世界一流的应用程序体验。React Native把重点放在所有开发人员关心的平台的开发效率上,开发者只需学习一种语言就能轻易为任何平台高效地编写代码。Facebook在多个应用程序产品中使用了React Native,并将继续为React Native投资。
1703952180
1703952181
国内多家互联网公司,也跟进了这一技术,将它应用到App开发当中,如图8-5所示,天猫移动端,就在多个应用模块中,采用了React Native。
1703952182
1703952183
1703952184
1703952185
1703952186
图8-5 天猫移动端ReactsNative应用
[
上一页 ]
[ :1.703952137e+09 ]
[
下一页 ]