翻译者 | 陈峻
Damazan | 孙淑娟
不可否认,根据采用情景的相同,他们常常须要特别针对智能机、智能手机笔记本电脑以及可佩戴电子设备等相同网络平台,合作开发适当的应用领域。如果为每两类应用领域都去撰写独有的程序标识符不然,不仅费时,而且难以实现标识符的宠信。因而,他们须要导入混和应用领域合作开发的监督机制。
一般来说,他们能采用各种整套的架构,去撰写两个混和应用领域,接着将其储存在原生植物的罐子中,以与此同时实现在相同的网络平台上,布署这类原生植物应用领域。由此可见,最合适的网络平台架构,能给混和应用领域的合作开发,增添四两拨千斤的效用。上面,我将向你如是说目前6种最新颖的合作开发架构。
1、React Native
作为两个JavaScript架构,React Native能被用作合作开发跨网络平台的终端应用领域。虽然该架构暗含一种可用作合作开发界面的独有词汇—JSX,因而采用者可通过React撰写出HTML和CSS。与此同时,它的界面模块也被结构设计成为能给最终采用者增添加速且融洽的新体验方式。
与其他绝大多数须要再次校对标识符、或再启动应用领域,就可以取得成效的合作开发架构相同,React Native的吸睛之处是,它能加速展现应用领域被更动的效用。
虽然React Native在每一网络平台上单厢采用JavaScript发动机,因而你能去出访由库和开放源码辅助工具所共同组成的巨大生态系。与此同时,它也容许采用者点对点地将部分应用领域标识符移殖到另两个网络平台上。
对于某些具有动态、复杂或高级结构设计的接口来说,React Native可能并非完美的架构。虽然可供你采用的自定义模型数量比较有限,因而你常常须要特别针对应用领域中重要的复杂性部分,从头开始合作开发与构建。初学者则须要花费一段时间,去掌握该架构的全面功能。
总的说来,React Native不仅缩短了合作开发时间,而且能与第三方应用领域相兼容,值得大家学习。
2、Ionic
曾为NHS(英国国家医疗服务体系)和西南航空等组织提供数百万强大应用领域的Ionic,是业界领先的混和应用领域辅助工具包。它容许采用者采用单一的标识符库,为多个网络平台合作开发出混和终端应用领域。
Ionic拥有一套为终端优化了的HTML库、CSS背景模式以及JavaScript模块。这些基本辅助工具都能帮助采用者构建出采用者友好的、交互式的多网络平台应用领域。
Ionic的另两个优势是,它包含了一套特别针对摄像头、GPS以及健康套件的额外功能,以便你增加自己的应用领域功能集。与此同时,你也能在撰写标识符时,通过测试每一模块,以尽早地发现各种错误与缺陷。
虽然Ionic包含了一组高效的响应式部件,因而它在保证了灵活的采用者新体验的与此同时,也节省了你在合作开发过程中花费的宝贵时间和精力。
不过,Ionic最大的局限是,其合作开发出的应用领域程序严重依赖于原生植物的插件。虽然这类插件旨在达到与原生植物应用领域相当的性能,但是并非所有实例都能用到它们。也就是说,你可能很难为自己正在合作开发的应用领域找到其最合适的插件。
3、Xamarin
作为相对较新的原生植物校对架构,Xamarin能被用来合作开发出那些须要保持原有的外观和采用者新体验的高性能应用领域。2016年,微软收购了Xamarin项目社区,并使之成为微软生态系中,用作合作开发应用领域程序的流行辅助工具。
虽然Xamarin能采用C词汇,以及基于.NET层面的其他原生植物库,来合作开发应用领域程序,因而它能在不牺牲性能的情况下,将暗含原生植物库的高端应用领域,布署到相同网络平台的程序中。这与其他流行的混和架构相比,显然提供了更好的采用者新体验。
不过,与原生植物应用领域相比,Xamarin在性能上存在着一定的局限性。因而,它不一定是某些复杂应用领域的最佳选择。与此同时,虽然该架构中也不提供热重载的相关功能,因而其某些功能可能难以在特定的网络平台上被实时更新。
总的说来,作为混和合作开发需求的一项不错的选择,Xamarin具有强大的支持、全面的资源,并能让你的应用领域具有接近原生植物的性能。
4、Flutter
根据Google的定义,Flutter通过两个直观的UI辅助工具箱(其中包括插件库和创新的界面),让采用者控制应用领域的模块,进而与此同时实现类似原生植物的性能。例如,Flutter的App Builder就能让你混和和匹配各种功能。而采用其hotloader特性,你能在调试标识符时,即时进行更动,进而简化了整个合作开发过程。此外,虽然Flutter能支持合作开发出不限于Android或iOS的应用领域,因而它已得到了广泛的采用。
对于初学者来说,虽然Flutter采用的是Dart,这种并非特别针对应用领域合作开发的流行词汇,因而其学习曲线较为陡峭。而且,虽然由其提供的内置小部件(widgets)对于应用领域而言非常重要,但是一旦缺少了第三方库,就意味着合作开发者须要额外地用自己的标识符去与此同时实现。
总的说来,Flutter仍然是不错的选择。它不仅能通过一流的UI元素来提供字体选项,而且能通过各种小部件,来改善应用领域的整体性能与采用者新体验。
5、NativeScript
作为两个开放源码的架构,NativeScript能让采用者采用JavaScript和CSS等Web技能来构建应用领域程序。而凭借着出色的特性和整体性能,NativeScript能与最新的终端版本、资源库以及命令行界面相兼容。
该架构的一项新颖特性是它能实时地更新应用领域,而无需手动刷新。当然,与绝大多数其他混和应用领域架构相同,NativeScript并不采用Web技术。
总的说来,该架构不仅功能丰富,便于采用,而且性价比高,能给合作开发人员增添流畅的采用新体验。
6、Apache Cordova
Cordova采用CSS3、JavaScript以及HTML5,来创建跨网络平台的应用领域。通过扩展其HTML5和CSS3特性,该架构增加了诸如:加速器、指南针、麦克风以及文件系统等额外功能,从而能与目标电子设备协同工作。
与此同时,凭借着这类额外功能,合作开发者既能加速、灵活地构建原生植物应用领域,又能出访第三方的插件和辅助工具箱。
虽然Cordova自身已包含了大量的网络平台插件与功能,但是就算你没找到最合适的插件,也能轻松地撰写出自己的插件,并通过JavaScript标识符的方式连接到系统级的标识符中,以确保提供原生植物的性能。
与Ionic类似,该架构也包含了近似原生植物的小部件、选项卡以及可重排的列表等特性。与此同时,虽然Apache Cordova能提供两种工作流方法以及一种跨网络平台的工作流方法(即:CLI),因而由其合作开发的应用领域程序能在相同的终端操作系统上运行。
此外,CLI还提供两个独有的接口以协助合作开发者将插件植入应用领域之中。也就是说,以网络平台为中心的工作流,能帮助你先构建单个网络平台应用领域,接着再将其修改为并不复杂的方式。
7、选择最合适的架构
综上所述,相同的混和架构有着适合相同应用领域情景的独有卖点。例如,NativeScript的主要吸引力是,你不须要事先了解应用领域会运行在iOS还是Android网络平台上。你更应该仔细考虑的是,待合作开发应用领域的并发性、兼容性以及成本等因素,并据此来选择适合的架构。
原文链接:
https://www.makeuseof.com/hybrid-app-development-best-frameworks/翻译者如是说
陈峻 (Julian Chen),51CTO社区编辑,具有十多年的IT项目实施经验,善于对内外部资源与风险实施管控,专注传播网络与信息安全知识与经验。