[关闭]
@liuruicai 2017-06-28T11:07:19.000000Z 字数 2109 阅读 531

跨平台移动开发

移动开发, Learn

以下参考:InfoQ:跨平台移动应用开发的优势与不足

两种类型的跨平台应用:

  1. 原生跨平台应用
  2. 混合(hybrid)HTML 5跨平台应用

移动端的主要任务

  • 如今,创建跨平台的原生应用尽管是可行的,但是当前的实现状况离完成还差的很远。大多数移动应用的重心都是GUI(图形化用户界面)的实现。几乎所有的关键业务应用逻辑都位于服务端,移动端会通过Web服务访问服务端的业务逻辑。
  • 大致来讲,在移动应用中,尤其是在业务流程自动化领域,大约60%的代码都是在处理GUI的创建和管理

原生跨平台

问题

因为iOS和Android在用户界面(User Interface,UI)和用户体验设计(User Experience Design,UXD)上有着很大的差异,所以为其创建一个统一的GUI包装器并不是一项简单的任务。尽管Xamarin和其他的厂商在这方面已经做了很多超前的工作,但是离完美还差得很远。如果你能够在框架的限制下设计应用的话,那么它能运行良好,如果你所需要的内容不匹配框架的愿景的话,那么就需要很多额外的工作,并且要编写平台相关的代码。

实践

在原生跨平台开发中,一种很流行的方式就是使用跨平台库来编写业务逻辑和Web服务,而GUI相关的代码使用平台特定的库来编写。根据应用的不同,这样能够实现30%到60%的代码重用

列表

名称 发布时间 主要语言 特点
Xamarin 2011 c# M$的支持,使用现有C#开发人员
Appcelerator Titanium 2012 javascript Web开发范式, 收费的MBaaS(移动后端即服务),很多问题
NativeScript 2014 Javascript 很新,但是很有潜力
QT 1995, 2013iOS和Android C++与QML 历史最悠久, C++难掌握
RubyMotion 2012,2014iOS和Android Ruby 需要为iOS和Android编写独立的GUI代码,但是业务逻辑可以跨平台重用

混合HTML5跨平台

方式和特点

  • 不管iOS、Android,还是Windows Phone,在它们的SDK中都包含了一个非常高级的浏览器组件。借助这个WebView组件,程序员能够使用标准的HTML5 Web技术实现对应用的设计和编码。最终,在应用的组成中,至少会有一个原生frame还会有在WebView中执行的HTML/JavaScript——这也是为什么它们被称为“混合”应用。
  • 在需要传感器输入的特性中,比如地理位置、摄像头,以及像访问文件系统这样的底层的功能,通常会使用混合应用框架所提供的JavaScript-to-native桥

混合应用的架构/Cordova/PhoneGap

image_1bjm1jsp216j8kh3jfj1o31qlr9.png-157.4kB
1. 借助像framework7(http://framework7.io/)这样的库,我们甚至有可能使用基于CSS的主题来支持底层操作系统的默认外观
2. 打包到应用内(在混合应用中,HTML、CSS和JavaScript代码是随着应用一起发布的。因此,加载UI相关的代码并没有延迟,这与通过网络加载Web站点是不同的。)
3. 在现代功能强大的手机上,我们可以使用HTML 5技术创建出很炫酷的UI
4. 尤其是对于B2B应用,通过使用Cordova,有可能实现85-90%的跨平台代码重用

总结

应用开发的所有可选方案
应用开发的所有可选方案

跨平台移动应用优势与不足

不足 原因
1 H5混合在中低手机反应迟钝 硬件能力来执行流畅的HTML5动画
2 H5混合更耗电 渲染现代的HTML和CSS会用到像渐变这样的高级特性,它会使用大量的CPU和GPU资源
3 代码更复杂 HTML5混合应用依赖于回调风格的编程
4 难于实现特定平台的外观和体验 原生跨平台应用的SDK还不成熟
5 很多成功的应用都是原生应用 设计和构建一款针对多种平台的应用实在是很困难,这些平台都有特定的用户体验方式。所有的平台都定义了自己的人机界面指南
6 跟不上移动操作系统的升级 移动操作系统正在以很快的速度演进。每年会有越来越多的特性添加进来,这为跨平台SDK厂商带来了很多的工作,因为他们需要在操作系统新版本发布之后的很短的时间内,就拿出SDK的新版本。
优势 原因
1 更快和降低成本 50%-80%的代码重用
2 好维护 如果在通用代码库中发现了bug,我们只需修正一次即可。
3 易于单元测试 通用的代码,只需编写一次单元测试
4 学习成本低 我们可以使用已有的编程技能
5 更好的上线时间和资源利用率 B2B应用和业务流程自动化应用来说,它比外观和体验更为重要

评论

* H5的跨平台方案,基本认为是失败的

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注