混合应用程序增长的最大原因是,您只需编写一次混合移动应用程序,即可在每个平台上运行它,而无需付出任何额外的努力。通过使用移动html5 UI框架提供的组件,将应用程序设计为常规Web应用程序,即适合不同屏幕尺寸的自适应Web应用程序。通过诸如Cordova(PhoneGap)提供的原生JAVAScript API可以访问诸如Camera或Accelerometer之类的原生硬件组件。然后,您的应用程序可以编译到特定于平台的版本包并发布到应用商店。
在过去的几年中,ionic确立了自己在混合移动应用程序开发领域的领导者的地位。Ionic团队通过适应最新趋势,在竞争对手中一直保持着快速稳定的更新。Ionic是免费使用和开源的,其生态系统已经变得相当庞大,您可以轻松地从社区中找到大量的开发资源,以立即开始使用。
Ionic框架集成了Angular,这让它的开发可以非常高效。与大多数其他混合应用程序框架一样,Ionic也利用Cordova将其本地化为IOS,Android,windows Phone和其他平台。
Ionic框架是可维护和可伸缩的,使用简洁易读的标记,并随附高度移动优化的css(由Sass提供支持),HTML和js组件库。它还具有丰富的工具和手势,以确保轻松开发交互式应用程序。
Onsen UI相对较新,但却给Ionic带来了激烈的竞争。它是开源的。Onsen UI的大多数UI组件也使用Angular指令和Topcoat框架。
对于jQuery爱好者,它附带了基于jQuery的组件。可以选择不使用Angular而是使用jquery来构建混合应用程序。Onsen UI具有大量现成可用的组件,开箱即用的响应能力使您可以构建应用程序的移动,平板和桌面版本,允许您使用HTML5和JavaScript编写应用程序并通过Phonegap和Cordova推送到本地化。
Onsen UI带来的易用性,灵活性,语义标记和性能给我个人留下了深刻的印象。
Sencha Touch是企业级产品,用于使用HTML5和JavaScript构建跨平台的端到端移动Web应用程序。您可以将其称为商业领域(主要是企业)中移动应用程序开发平台的老大哥。Sencha有与Sencha Touch紧密配合的多种产品,其中大多数产品价格不菲。
对于个人开发人员和自由职业者而言,Onsen UI将是一个更好的选择,但对于企业而言,Sencha Touch可以轻松带路。
ExtJS是流行的JavaScript框架之一,它是Sencha touch平台的核心,该平台可帮助创建具有接近本机体验的高性能应用程序。Sencha Touch可以打包用于所有主要平台(包括iOS,android,Windows Phone和Blackberry)的具有原生外观的小部件。Sencha还具有可拖放的HTML5可视化应用程序构建器,其中包含大量随时可用的模板。还可以构建自定义组件并将其添加到库中,以在各个应用程序之间重用。
Kendo UI是用于使用HTML5,JavaScript和CSS构建任何类型的Web应用程序或混合移动应用程序的另一个框架。它高度依赖jQuery,并附带了70多种随时可以使用的jQuery小部件。Kendo UI也允许与Angular集成,并支持Bootstrap UI框架。
Kendo UI还包含内置的即用型主题包,包括具有材质设计外观和感觉的主题。还有一个主题生成器可用于创建自定义主题,这是Kendo UI框架的最大优势之一。
Kendo UI由Telerik维护和支持,并带有开源和商业许可选项。当然,开放源代码在功能上会受到一些限制,并且您不会获得专门的技术支持。
像Sencha一样,Kendo UI在企业中也很受欢迎。它拥有庞大的客户群,包括索尼,美国航空航天局,微软,沃尔沃和东芝等公司。
Framework 7在iOS混合应用和移动应用程序开发中处于领先地位。虽然Framework 7不提供对构建跨平台混合应用程序的支持。但这绝对是iOS混合应用程序开发的最佳,功能最丰富的框架。
Framework 7的主要优点在于,它使开发人员能够仅使用CSS,JavaScript和HTML来构建iOS应用程序,这是Web开发人员已经知道的技术。Framework 7非常接近本机iOS应用程序,甚至提供了开箱即用后退等功能。还有许多其他可供使用的UI元素,包括列表视图,媒体列表,侧面板,模式等,这些元素可以按原样使用,而无需使用JavaScript。
Famo.us是另一个强大的html5应用程序开发框架,目标是在混合应用程序中提供近乎本机的体验。famo.us和其他混合html5框架之间的主要区别在于,它更多地关注图形渲染,2d和3d,因此更适合游戏开发。
Trigger.io有自己的平台,可以弥补html5开发与本机访问之间的差距。他们声称它产生的混合应用程序的性能要比基于Cordova的应用程序好得多。
Trigger.io使用伪造的JavaScript API访问像加速度计和摄像机等本地函数。
从Github上来看,目前Flutter活跃用户正在高速增长。Flutter的文档、资源也越来越丰富,开发过程中遇到的很多问题都可以在Stackoverflow或其github issue中找到答案。
现在google正在大力推广Flutter,Flutter的作者中很多人都是来自Chromium团队,并且github上活跃度很高。另一个角度,从今年上半年Flutter频繁的版本发布也可以看出Google对Flutter的投入的资源不小,所以在官方技术支持这方面,大可不必担心。
Flutter的热重载可帮助开发者快速地进行测试、构建UI、添加功能并更快地修复错误。在iOS和Android模拟器或真机上可以实现毫秒级热重载,并且不会丢失状态。这真的很棒,相信我,如果你是一名原生开发者,体验了Flutter开发流后,很可能就不想重新回去做原生了,毕竟很少有人不吐槽原生开发的编译速度。
React Native产出的并不是“网页应用”, 或者说“HTML5应用”,又或者“混合应用”。 最终产品是一个真正的移动应用,从使用感受上和用Objective-C或Java编写的应用相比几乎是无法区分的。 React Native所使用的基础UI组件和原生应用完全一致。 你要做的就是把这些基础组件使用JavaScript和React的方式组合起来。
React Native完美兼容使用Objective-C、Java或是Swift编写的组件。 如果你需要针对应用的某一部分特别优化,中途换用原生代码编写也很容易。 想要应用的一部分用原生,一部分用React Native也完全没问题 —— Facebook的应用就是这么做的。
uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台。
案例多,插件丰富,App端支持weex原生渲染,可支撑更流畅的用户体验。
混生道路千万条,条条都是不归路。虽然混生在开发效率和便捷性上有着超乎想象的能力,但是亲生的就是亲生的,这个是永远不会改变的。
我这里并不是说混生就不行,而是说各有各的好,有舍才有得,你舍弃了一些东西,必然上天会给你一些东西作为补偿,有些东西只有亲身经历过才知道究竟好不好,否则道听途说和亲眼所见未必都是真的。