今天就站在一个小开发的视角分享一下一个小项目是如何进行跨平台方案选型的
本系列文章先站在公司的的角度对产品技术选型进行分析,然后再根据我们项目实际开发经验进行汇总,供大家参考。
目前大前端技术也非常丰富,可以实现,一次开发,打包多个平台。团队针对几个不同技术方案里进行了讨论:有比较老牌的Cordova、Xamarin、NativeScript,也有近几年比较火:React Native、Flutter、FinClip、Election
Xamarin
Xamarin是一个支持跨平台的框架,包括Web,iOS和Android。 它与单一编程语言c#集成在一起。 它有助于减少移动应用程序开发的时间和成本。 因此,简单来说,使用.NET和C#构建Android和iOS应用也是众所周知的。
amarin.Mobile有很多优点。在这一框架内,开发 Android 和 iOS 应用可以不用转到 Eclipse 或者额外购买 Mac 并使用 Xcode,而继续在Visual Studio之中使用 C# 与 .NET Framework 进行。
而且性能性能接近原生、内置功能丰富(数千个自定义UI控件)。 缺点:稍微延迟支持最新的平台更新、对开源库的访问受限、Xamarin生态系统不大、与第三方库和工具的兼容性问题等等
Cordova
是使用HTML,CSS和JavaScript构建混合移动应用程序的平台。
官方文档给了我们Cordova的定义:
“Apache Cordova是一个开源移动开发框架,它允许您使用标准的Web技术,如HTML5,CSS3和JavaScript进行跨平台开发,避免每个移动平台本机开发语言。应用程序在针对每个平台的包装内执行,并依靠符合标准的API绑定来访问每个设备的传感器,数据和网络状态。"
Cordova的优势
Cordova为构建混合移动应用程序提供了一个平台,因此我们可以开发一个应用程序,将在不同的移动平台IOS,Android,Windows Phone,Amazon-fireos,黑莓,Firefox OS,Ubuntu和tizien上使用。
开发混合应用程序然后原生应用程序更快,所以Cordova可以节省大量的开发时间
由于我们在使用Cordova时使用JavaScript,我们不需要学习平台特定的编程语言。
Cordova(Ionic)缺点也明显,终究是个Web,性能体验太差了!
Flutter
Flutter由Google开发,它是一个牛逼的开源平台,可用于跨平台应用程序开发。
它具有吸引力的原因是:快速的开发,富有表现力的精美UI和类似本机的性能。
使用Flutter的一些公司是Google,eBay,宝马等。
选择Flutter框架进行跨平台应用程序开发的主要原因:
- 高度稳定、平稳的开发周期、强大的热加载功能、DART,AOT编译语言、满足各种需求的UI套件
团队没有选择Flutter 的主要原因是Flutter on desktop也还是beta版本。
Windows PC和linux平台的兼容支持官方正在持续研发中。
FinClip
与上面Flutter、Cordova、Xamarin这些框架技术比起来 FinClip实在是一款轻便简洁的小工具,我们惊叹于它的灵活性!整体灵活又体积小巧(大概3M)。
FinClip 是一套小程序容器技术,也可以说是小程序SDK Runtime/Engine,提供 Runtime 基于浏览器内核,采用动态语言(JS)和声明式 View 构建(XML),并且兼容互联网主流小程序技术,可采用 vue、react 基础上的 DSL 框架。
这种容器技术与上述的跨端技术不仅不冲突,还可以兼容。不管是通过Flutter、Reactive Native、uni 、Taro等开发出来的小程序都可以通过FinClip运行。
小程序运行时方案的高性价比,主要体现在应用框架支持、应用体验以及宿主环境结合等方面。
应用框架支持方面 运行时方案不仅支持纯 wxml 微信小程序运行,还支持包括Flutter、Reactive Native、 uniapp等第三方框架集成的小程序。 应用体验方面 小程序技术是前端容器技术的一种应用,其组件及UI都有明确的规范,开发者不用考虑兼容性及类似H5开发时复杂工具及框架的选择。同时,由于组件及UI都是预设的,展示体验也会更佳。 宿主环境结合方面 小程序是基于App端实现的应用,其获取系统(App)的权限也会多于H5;目前小程序技术的发展已经趋于成熟,市面上小程序以运行时已经开始出现多智能终端设备的适配(基于Andriod系统的多终端屏幕适配)。
FinClip 的技术方案,目的就是要让任何行业的任何企业,均可以拥有自主打造小程序生态、发布管理小程序内容、在自己的各终端App中运行小程序的能力。
相信随着互联网浪潮的不断向前,会有越来越多的解决方案、框架会被提出,让我们拭目以待!