移动端架构分析目录移动端架构分析 (1)1移动端常见开发模式 (5)1.1纯N ATIVE A PP (5)1.1.1主流框架 (5)1.1.2优势 (6)1.1.3劣势 (6)1.1.4主流应用 (6)1.2H YBRID A PP (6)1.2.1多View混合型 (7)1.2.1.1主流框架 (7)1.2.1.2优势 (7)1.2.1.3劣势 (7)1.2.1.4主流应用 (7)1.2.1.5发展趋势 (7)1.2.2Web主体型 (8)1.2.2.1主流框架平台 (8)1.2.2.2优势 (9)1.2.2.3劣势 (9)1.2.2.5发展趋势 (10)1.2.3单View混合型 (10)1.2.3.1主流框架 (10)1.2.3.2优势 (10)1.2.3.3劣势 (10)1.2.3.4主流应用 (10)1.3W EB A PP (10)1.3.1主流框架 (11)1.3.2优势 (11)1.3.3劣势 (11)1.3.4主流应用 (11)1.4四种主要开发模式对比 (11)2移动前端主流框架分析 (12)2.1W EB和N ATIVE混合 (12)2.1.1WindVane+Hybrid+Native (12)2.1.1.1简介 (12)2.1.1.2框架实现 (12)2.1.1.3架构图 (13)2.1.2AppCan (13)2.1.2.1简介 (13)2.1.2.2框架实现 (13)2.2跨平台原生应用 (15)2.2.1BeeFramework (15)2.2.1.1简介 (15)2.2.1.2框架实现 (15)2.2.1.3架构图 (16)2.2.2Native Script (17)2.2.2.1简介 (17)2.2.2.2框架实现 (17)2.2.2.3结构图 (18)2.2.3React Native (18)2.2.3.1简介 (18)2.2.3.2框架实现 (18)2.2.3.3架构图 (20)3数梦移动端开发框架选择...................................... 错误!未定义书签。
3.1开发模式选择 (20)3.1.1为什么不选择Native (20)3.1.2玩什么不选择WebApp或Web主体型Hybird (21)3.1.3选择多页面混合型Hybird (21)3.2选择类W IND V ANE框架 (21)3.2.1玩什么不选择React Native (21)3.2.2玩什么选择类WindVane框架 (21)1移动端常见开发模式目前主流应用程序大体分为三类:Native App 、Hybrid App、Web App。
1.1纯Native AppNative APP 指的是使用原生程式编写运行的第三方应用程序,一般依托于操作系统如iOS、Android、WP,有很强的交互,是一个完整的App,可拓展性强。
需要用户下载安装使用。
也叫本地app。
Native App因为位于平台层上方,向下访问和兼容的能力会比较好一些,可以支持在线或离线,消息推送或本地资源访问,摄像拨号功能的调取。
但是由于设备碎片化,App 的开发成本要高很多,维持多个版本的更新升级比较麻烦,用户的安装门槛也比较高。
但是比较乐观的是,AppStore培养了一种比较好的用户付费模式,所以在Apple的生态圈里,开发者的盈利模式是一种明朗状态,其他market也在往这条路上靠拢。
1.1.1主流框架iOS:(1)、Cocoa 环境+Foundation 和UIKit 框架(2)、使用Objective-C 和Swift 做为主要开发语言(兼容C/C++)Android:(1)、Java虚拟机环境(2)、使用Java 作为主要开发语言(支持C/C++)WindowsPhone:(1)、Windows RunTime 框架(WP10)(2)、使用原生C++、C# 和Silverlight 做为主要开发语言1.1.2优势(1)、打造完美的用户体验(2)、性能稳定(3)、操作速度快,上手流畅(4)、访问本地资源(通讯录,相册)(5)、设计出色的动效,转场(6)、拥有系统级别的贴心通知或提醒(7)、用户留存率高1.1.3劣势(1)、开发成本高,可移植性差,需要维护iOS、Android、WP等多个平台(不同平台有不同的开发语言和界面适配)(2)、维护成本高(例如一款App已更新至V5版本,但仍有用户在使用V2,V3,V4版本,需要更多的开发人员维护之前的版本)(3)、更新缓慢,根据不同平台,提交–审核–上线等等不同的流程,需要经过的流程较复杂1.1.4主流应用够快云库、微信电话本、美图秀秀等中量级应用。
1.2Hybrid AppHybrid APP指的是半原生半Web的混合类App。
需要下载安装,部分页面看上去类似Native App,但只有很少的UI Web View,访问的内容是Web 。
Hybrid App主要以JS+Native两者相互调用为主,从开发层面实现“一次开发,多处运行”的机制,成为真正适合跨平台的开发。
Hybrid App同时使用网页语言与程序语言开发,通过应用商店区分移动操作系统分发,用户需要安装使用的移动应用。
总体特性更接近Native App但是和Web App区别较大。
只是因为同时使用了网页语言编码,所以开发成本和难度比Native App要小很多。
因此说,Hybrid App兼具了Native App的所有优势,也兼具了Web App使用HTML5跨平台开发低成本的优势。
Hybrid App按网页语言与程序语言的混合,通常分为三种类型:多View混合型,单View混合型,Web主体型。
1.2.1多View混合型即Native View 和Web View 独立展示,Native View 与WebView 交替的场景出现。
这种应用混合逻辑相对简单。
即在需要的时候,将WebView 当成一个独立的View(Activity) 运行起来,在WebView 内完成相关的展示操作。
这种移动应用主体通常是Native App,Web 技术只是起到补充作用。
开发难度和Native App 基本相当。
1.2.1.1主流框架Native部分使用操作系统原生框架+JSBridge。
Web融合部分国内阿里系使用最广的框架WindVane+HybridAPI等(后续章节详细介绍)。
1.2.1.2优势(1)、高效、扩展性强、支持多团队并行开发(2)、衔接Android/iOS原生导航交互,完美的用户体验(3)、业务实现更灵活,复杂业务可通过Native 实现,频繁变化或简单业务通过Web 实现,更好的满足移动端业务多样性、快速迭代要求(4)、轻量级的框架,框架侵入性弱,各个业务高度独立,第三方业务快速接入(5)、使用JS Bridge 来实现HTML5页面与原生框架的数据交互:JS<->Native,性能和安全性更佳(6)、扩展丰富,能实现超级App1.2.1.3劣势(1)、技术要求高,需要开发人员同时懂Native和WebApp开发(2)、重量级架构,架构搭建需要较长时间(3)、开源社区相关框架少,成熟框架如WindVane等不开源1.2.1.4主流应用目前使用最常用的开发模式,市场上能见到的超级App 基本都是用这种开发模式,如微信、支付宝、淘宝等;其他如钉钉、新闻客户端等移动端App1.2.1.5发展趋势2014-2015最新发展趋势,同时在Web和Native融合的基础上加入ReactNative或NativeScript等跨平台构建原生应用框架(见后续介绍)。
1.2.2Web主体型即移动应用的主体是Web View,主要以网页语言编写,穿插Native功能的Hybrid App开发类型。
这种类型开发的移动应用体验相对而言存在缺陷,但整体开发难度大幅降低,并且基本可以实现跨平台。
Web主体型的移动应用用户体验的好坏,主要取决于底层中间件的交互与跨平台的能力。
国外的appMobi、PhoneGap和国内的WeX5、AppCan 和Rexsee都属于Web主体型移动应用中间件。
其中Rexsee不支持跨平台开发。
appMobi 和PhoneGap除基础的底层能力更多是通过插件(Plugins)扩展的机制实现Hybrid。
AppCan除了插件机制,还提供了大量的单View混合型的接口来完善和弥补Web主体型Hybrid App体验差的问题,接近Native App的体验。
而WeX5则在揉合PhoneGap和Bootstrap等主流技术的基础上,对性能进一步做了深度优化,不但完全具备Native App 对本地资源的调用能力,性能体验也不输原生;WeX5所开发出来的app具备完全的跨端运行能力,可以无需任何修改直接运行在各种前端环境上。
1.2.2.1主流框架平台1、AppceleratorAppcelerator的Titanium开发平台使开发者可以通过HTML、PHP、JavaScript、Ruby、Python等Web编程语言开发手机、平板和桌面的原生App。
其优势在于它可以让用户轻松地访问超过300个API以及定位信息。
此外,Appcelerator提供针对特定行为或事件定制的统计。
App的数据既可储存在云端,也可储存在设备上。
2、APICloudAPICloud是一款“云端一体”的移动开发平台,信仰“云端一体”的理念,重新定义了移动应用开发。
APICloud为开发者从“云”和“端”两个方向提供API,简化移动应用开发技术,让移动应用的开发周期从一个月缩短到7天。
APICloud由“云API”和“端API”两部分组成,可以帮助开发者快速实现移动应用的开发、测试、发布、管理和运营的全生命周期管理。
3、PhoneGapPhoneGap是一个免费且开源的开发环境,使开发者可以开发出在Android、Palm、黑莓、iPhone、iTouch及iPad等设备上运行的App。
其使用的是HTML和JavaScript 等标准的Web开发语言。
开发者使用PhoneGap进行开发,可调用加速计、GPS/定位、照相机、声音等功能。
PhoneGap还提供Adobe AIR App以及在线的培训课程,帮助开发者了解原生API 并在他们自己的平台上开发移动App。
4、KinveyKinvey同样是一个为移动应用开发者提供后台创建服务的平台。
Kinvey强调加速移动应用开发与销售的“即取即用”理念。
Kinvey的中间层与数据层均托管在多个云服务提供商处,包括Rackspace、Amazon与Microsoft。
所有通过Kinvey存储的数据都会有四种方式备份:Amazon EC2、Windows Azure、Rackspace以及Kinvey自己的服务器,假如其中一两个出现了故障,用户的数据依然安然无恙。