【51CTO.com快译】现如今,开发一个混合移动应用要比以往轻松了许多。开发者们可以一次性编写,然后无需额外工作量地将移动应用构建到各大主流平台上。一个应用程序的代码不但可以运行在Android和iOS平台上,还可以重复地使用在改进的Web应用、甚至是桌面应用上(通过对Electron的一些调整,你就能够让代码适合于桌面环境)。
我们将在本文中深入介绍十款非常实用的框架,以帮助你构建出各种强大、且酷炫的移动混合应用。
1.Xamarin
Xamarin成立于2011年5月,它是微软在加州旧金山的一家软件子公司。它运用通用语言基础结构(CLI)和通用语言规范(通常称为Microsoft .NET)实现了跨平台的应用。
通过与C#共享代码库,开发者们可以使用Xamarin工具来编写各种原生的Android、iOS和Windows应用。这些应用将具有原生的用户界面,并能够横跨多个平台(包括Windows和MacOS)共享代码。
Xamarin是一款***的混合移动应用开发框架。它可以帮助你节省花费在重用能力、工具集、团队和代码显著部分上的时间。你可以修改Xamarin与Android各个API的数列,以及设计出拥有适合Android SDK和GDK的酷炫体验。
2.PhoneGap
PhoneGap是在移动混合应用开发界中***的跨平台框架。从后端的Apache Cordova团队来看,Adobe的PhoneGap框架属于Cordova框架的一个开源发行版。凭借PhoneGap,你可以通过重用现有的Web开发各种技能,迅速地使用HTML、CSS和JavaScript来构建多平台的混合应用。同时,通过使用单一的代码库,你可以不受限于用户的设备,而轻松与他们交互。
Apache Cordova的内核是使用CSS3和HTML5来实现渲染,而使用JavaScript来实现其自身的逻辑关系。HTML5支持访问诸如加速器、摄像头、和GPS等的底层硬件。然而,不是所有设备上的移动浏览器都能够一致地支持HTML5,尤其是那些旧版本的Android。为了打破这些限制,Apache Cordova在设备的原生WebView上嵌入了HTML5代码,并使用外部函数接口来访问该设备的原生内部资源。
Apache Cordova也可以被各种原生的内部插件予以扩展,并允许开发者添加更多可以被JavaScript所调用的功能,它们能够使内部层和HTML5页面之间进行直接通信。因此,这些插件允许访问到设备的加速器、摄像头、指南针、文件系统、以及麦克风等。
3.英特尔XDK
英特尔XDK允许你为不同的应用“商店”创建出各种跨平台的应用。它包括各类Web服务、内容丰富的插件,交互式的应用、和能够运行在任何设备上并做出迅速响应的应用。
实际上,这个框架是一整套支持开发、仿真、测试、调试和发布的工具集。最近,他们进行了一些重大的变更,提高了你为Android、iOS和Windows 10 UAP开发各种移动类HTML5应用(包括Apache Cordova)的能力。如今,他们也增加了各种基于Node.JS、机载(onboard)和物联网的软件开发能力。
在你使用多种实用工具进行开发的时候,英特尔XDK还能提供所连接设备上的实时预览状况。你可以通过拖拽的方式创建出各种应用,不过这种方法也会产生出许多不必要的代码。
4.Ionic 框架
Ionic框架是一款能够对混合移动应用开发予以完整开源的SDK。Ionic建立在Angular.js和Apache Cordova之上。如果你使用诸如CSS、HTML5和Sass之类Web技术,来开发混合移动应用的话,它能提供各种工具和服务。各种应用可以被这些Web技术所构建,然后通过原生的内部应用程序商店进行分发,***利用Cordova来安装到设备上。
Ionic框架是一个100%免费且开源的项目,它持有MIT许可证(译者注:MIT许可证与BSD许可证的内容近似,但是赋予软件被授权人更大的权利与更少的限制)。大规模的全球性社区使之能够永远被免费使用。它有着超过120个原生的内置设备功能,包括蓝牙、健康组件(HealthKit)、指纹验证和更多与Cordova/PhoneGap有关的插件、以及各种TypeScript的扩展。
你可以在任何平台上,使用CLI来创建、构造、测试和部署自己的Ionic应用。该框架拥有一个Ionicons图标包,里面包含了数百个最常使用的应用程序图标。MIT的许可证让它能够实现开箱即用(OOTB)。由于其编译和重新部署应用的每一步都是“傻瓜式”的,因此你完全可以通过Live Reload(译者注:一个Web开发辅助工具)来开发自己的应用。另外,它还有诸如深度链接、AOT编译等原生且非常实用的功能。
Framework7是一款免费且开源的移动HTML框架。它可以被用于开发混合移动应用,或具有iOS和Android原生外观和感觉的Web应用程序。在你需要让应用程序能够快速成型的时候,Framework7也是一款不可缺少的原型应用工具。
Framework7的主要功能就是让你能够轻松而直接地使用HTML、CSS和JavaScript来构建出各种iOS和Android的应用程序。因此,该框架仅专注于为iOS和谷歌Material design,带来***的体验和实现的简化性。
Framework7所能提供的各种实用功能还包括:自带滚动条,软件库独立,页面过渡动画,多视图支持,通过CSS3硬件加速的动画、以及使用XHR、缓存、浏览器历史记录和预加载的组合来实现页面路由等。
Titanium具有Xamarin和PhoneGap所提供的混合开发环境。由于所有的应用程序都是用JavaScript编写的,因此你必须使用自定义的XML和Appcelerator的API来支持一些原生的内部特性。它是一个跨平台的框架,能够完全支持Android和iOS,可惜它却不能够涵括CSS和HTML。此外,由于其编译之后的代码结合了原生的内部Javascript,因此它很好地改进了对移动混合开发的性能。
Titanium是针对混合移动应用创建的***解决方案。你可以通过下载Titanium studio来体验它。Titanium的SDK配有多个移动平台的API,并将云服务作为其应用的后端。它配有各种独立于平台的API,因此访问手机硬件是比较容易的。
Titanium采用Alloy--这一MVC框架,来实现移动应用的快速开发。那些由Alloy所创建的模块很容易被复用到其他不同的应用程序之上,从而显著减少了开发时间和代码行数。
Mobile Angular UI是为Bootstrap和Angular的爱好者们打造的一款混合移动框架。通过Mobile Angular UI,你可以很好地使用Bootstrap 3和Angular的框架来构建HTML5的移动应用。Angular UI更像是Bootstrap 3的一个扩展,却与Bootstrap js库或者jQuery没有任何依赖关系(这两者与Bootstrap 3有着默认的相关性)。你所需要做的就是使用AngularJS的各种指令,来创建出酷炫的移动用户体验。
为了实现更加流畅的移动体验,该框架提供了fastclick.js和overthrow.js。那些要求能够迅速做出相应的介质查询,被bootstrap剥离出来作为一些单独的文件,所以你只要包括所需部分便可。另外,它所提供的诸如覆盖、开关、侧边栏、滚动区域和绝对定位导航栏等组件,是不会随着拖动操作而弹到他处的。
Mobile Angular UI持有MIT许可证,因此它是开源且能被免费使用。
8.Onsen UI
Onsen UI虽然出现较新,却是Ionic的有力竞争者。它是持有Apache许可证的开源框架。Onsen UI拥有一套独立于框架的UI组件,你可以在Angular、Angular 2、React、Vue.js和Meteor等框架中,进行选择或是自由切换,当然你也可以使用纯粹的JavaScript来构建各种混合应用。
Onsen UI具有功能强大、且能够开箱即用(OOTB)的组件集,可供你构建出自己的移动应用。通过其组件,你可以编写出各种HTML5和JavaScript的应用,并通过PhoneGap和Cordova推送到应用程序之中。
该框架具有语义标记的组件,这些组件非常灵活且容易上手,同时也能够被免费应用到商业项目之中。
Sencha Touch是一款跨平台的企业级产品,它能构建端到端式的HTML5和JavaScript类型的移动Web应用。在商业领域中,它是***的移动应用开发平台。Sencha虽然有着丰富的产品种类,但是其大多数产品的价格也不菲。
对于个人开发者和自由职业者来说,Ionic、Onsen UI和Framework7会是更好的选择,但是对于企业应用来说,Sencha Touch仍然是***。
Sencha Touch所提供的组件有着比它所支持的其他平台更***的、原生的外观和使用体验。
Sencha Touch平台的核心是JavaScript***的一种框架--ExtJS,它能构建出各种接近原生的、高性能的应用程序。Sencha Touch打包集成了包括iOS、Android、Windows Phone和黑莓等主流平台所需的外观工具。Sencha还设有一个可以直接拖拽产成HTML5代码的可视化应用生成器,而且它里面包含了一大堆可以直接被使用的模板。Sencha的各种定制化的组件也能够被构建和加载到各种跨应用的重用库之中。
10.Kendo UI
Kendo UI是一款由Telerik推出的、用于构建跨平台移动应用的HTML5框架。它重度依赖于jQuery,因此包含了70多个可直接被使用的jQuery小工具。当然,你也可以把它与Angular或是Bootstap UI的框架相集成。
由于很多开发人员已经熟悉了jQuery,因此学习Kendo UI并不会很困难。它虽然是一个免费且开源的框架,但它在使用过程中还是略有些功能上的限制。你无法获取专业的技术支持,而且一些常用小工具也会受到商用许可证的限制。
结论
如果你正在打算构建一款移动应用,那么选择混合模式将会节省你的时间和精力,而且你可以将其代码重用到对应的Web版本应用中。虽然,混合模式并不是对所有问题的***解决方案,但混合应用确实是你能够更快地部署自己的应用,并构建出应用原型的一个不错选择。相信上述这些框架一定能够为你提供出一个非常贴近用户体验的、原生的应用程序。
原文标题:10 Frameworks for Mobile Hybrid Apps,作者: Pedro Fortuna
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】