C0-PhoneGap之移动开发策略的选择(翻译)

英文原文地址:http://phonegap.com/blog/2015/03/12/mobile-choices-post1/

移动App开发策略选择

这篇文章是,选择移动App开发策略时面对不同选择如何综合考虑之系列文章的第一篇。通过各方面的比较,让开发者明白什么时候什么地方在自己的app里面使用Adobe PhoneGap。

当我们搭建一个native,mobile web或者hybrid移动app时,最常考虑的选择如下。

1、Native Mobile App

  • 运行在特定的设备和系统上面
  • 跑在本地的app
  • 多种语言编写,Objective-C/Swift (iOS) Java (Android) or C# (Windows)
  • 需要安装到设备上
  • 必须通过app分发市场审核
  • 不依赖容器(webview or the like)
  • 离线依然可以使用

Native App Example

2、Mobile Web App

  • 跑在任何设备的移动浏览器
  • 很少调用设备API(Camera)
  • 使用统一的web技术标准编写-HTML5/javaScript/CSS
  • 不需要通过某个app store的提交、审核、发布流程
  • 自适应多种屏幕尺寸
  • 由一个web服务器支撑
  • 离线状态无法使用

Mobile Web App Example

3、Hybrid Mobile App

当说到hybrid的时候,一个很重要的概念要进一步澄清,将hybrid mobile apps分成Web Hybrid和Native Hybrid两种更有意义,也是本篇文章的依照的定义。

Web hybrid mobile apps

Web hybrid mobile apps主要被包裹在一个webview里面,和一个简单的native容器用来桥接native的API。UI控件也不需要native提供,它只是对native和webview交互的一个简单封装。

Native hybrid mobile apps

Native hybrid mobile apps混合了native控件和一个或多个webview。常见的方案是,native创建navigation和tabbar,主要内容放在各个被包裹的webview里。

Hybrid App Characteristics

  • 作为一个需要本地安装的app跑在设备上
  • 使用统一的web技术标准编写-HTML5/javaScript/CSS
  • 跑在一个webview上(嵌入的web浏览器)
  • 多数情况下,多种平台只需要一套base代码
  • 可以调用native API(摄像头,联系人,加速计,CPS等)
  • 需要通过app分发市场的提交,审核,发布流程(iOS App Store,Google Play)
  • 需要运行在特定的设备
  • 自适应多尺寸屏幕
  • 离线状态可以使用

PhoneGap可以用来创建上面两种类型的hybrid app,并且提供了很强的灵活性去结合native元素来裁剪用户体验,在拥有web的好处的同时尽力获得一个更native的视觉效果和体验。已经非常清楚了,为什么越来越多的公司选择混合native和web,就是为了以混合的方式同时获得他们两者的好处。

Hybrid Sweet Spot

很多开发者选择native创建navigation和tabbar,将主要的内容放在各个被包裹的webview里,以在保证大范围的用户能够快速使用它们的app的同时,节省大量的时间和成本。此方式也提供了避开App Store审批的麻烦以快速更新的能力。以这种模式,每个平台只需要一小部分的native基础代码需要维护,而且这小部分代码代表的是app里的固定部分,而不是主要内容,从而更容易管理。

一个很受欢迎的项目管理app,Basecamp的创始人,也采用混合开发的方案。他们写过很多质量很高的文章来讲解他们的移动app的架构,以及它是如何不断演进出最好的native和hybrid的混合方案。

Basecamp的多设备运行

JavaScript SDK Frameworks

另一种移动app,同样用JavaScript来渲染视图,并用native来实现平台适配,也应该被当作hybrid讨论。一些框架罗列如下:

React Native一直是闭源的,而NativeScript刚刚发布开源后的beta版本,所以均无法提供更多的信息去完全的理解如何在app中使用他们的框架。

Stay tuned

现在你应该已经有办法去做出有效的选择了,系列文章的下一篇将特别聚焦在PhoneGap在native中嵌入webview的混合开发中如何使用。很快更新,及时查看。

posted @ 2015-12-25 12:07  朱亚男  阅读(227)  评论(0编辑  收藏  举报