前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个小项目是如何进行跨平台方案选型的

一个小项目是如何进行跨平台方案选型的

原创
作者头像
海岛船长加西亚
修改2022-11-30 21:20:07
9530
修改2022-11-30 21:20:07
举报

作为一个小开发,近期完整的经历了,一个初创项目从搭建到推向市场的过程。实际上在整个过程中,开发只占很小的一个板块,尤其是对于我司这种初创型企业,人少钱少,每一分都得花到刀刃上,因此产品开发的过程要足够快,成本也要足够低!

由于我们项目的特殊性,最初的产品demo通过微信小程序的形式跑通了基本功能,然后就到了正式研发阶段。老板对产品的要求就是需要包含:微信小程序、H5、Android、ios、windows、macos并且尽可能多的覆盖其它平台。本系列文章先站在公司的的角度对产品技术选型进行分析,然后再根据我们项目实际开发经验进行汇总,供大家参考。

目前大前端技术也非常丰富,可以实现,一次开发,打包多个平台。团队针对几个不同技术方案里进行了讨论:有比较老牌的Cordova、Xamarin、NativeScript,也有近几年比较火:React Native、Flutter、FinClip、Election

Cordova

Cordova胜在架构简单,比如一个简单的Activity,上面搭载一个CordovaWebView Component,他是一个改造过的WebView,加装了一些Cordova API,让你借此和Native的部分交互。App基本上就是一个Mobile Web,多了一些跟Native交互的能力。

优点是好上手,写代码快。有丰富的插件去衔接Native平台、社区完善。使用Ionic可以一套代码在安卓端、iOS端、网站端、小程序端通吃。

Cordova(Ionic)缺点也明显,终究是个Web,性能体验太差了!

Xamarin

Xamarin是Cordova的老对手,Xamarin的产品简化了针对多种平台的应用开发,包括iOS和 Android。总体比Cordova复杂多了,大致上分成几个部分:Xamarin.Android、Xamarin.iOS、Xamarin.Mac(后来才出现的)以及Xamarin.Forms。

Xamarin.Mobile有很多优点。在这一框架内,开发 Android 和 iOS 应用可以不用转到 Eclipse 或者额外购买 Mac 并使用 Xcode,而继续在Visual Studio之中使用 C# 与 .NET Framework 进行。而且性能性能接近原生、内置功能丰富(数千个自定义UI控件)。 缺点:稍微延迟支持最新的平台更新、对开源库的访问受限、Xamarin生态系统不大、与第三方库和工具的兼容性问题等等

Flutter

Flutter是近两年风很大的一款开源、跨平台移动端开发框架,由 Google 开发。Flutter 使用 Dart 作为开发语言,这是一门简洁、强类型的编程语言。它允许使用同一个代码库构建高性能、漂亮的 iOS 和 Android 应用,Flutter还提供了两套视觉库,可以针对不同的平台有不同的展示效果。此外,通过自定义的 Flutter 引擎可以将其嵌入到其他平台。

Flutter优点非常多:开源免费;Dart语言简单易学;独立的Skia渲染引擎,高性能高一致性、丰富的组件支持、丰富的社区支持,在混合开发中,是最接近原生开发的框架。

团队没有选择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运行。

小程序运行时方案的高性价比,主要体现在应用体验、应用框架支持以及宿主环境结合等方面。

应用体验方面,小程序技术是前端容器技术的一种应用,其组件及UI都有明确的规范,开发者不用考虑兼容性及类似H5开发时复杂工具及框架的选择。同时,由于组件及UI都是预设的,展示体验也会更佳。 应用框架支持方面,运行时方案不仅支持纯 wxml 微信小程序运行,还支持包括Flutter、Reactive Native、 uniapp等第三方框架集成的小程序。

宿主环境结合方面,小程序是基于App端实现的应用,其获取系统(App)的权限也会多于H5;目前小程序技术的发展已经趋于成熟,市面上小程序以运行时已经开始出现多智能终端设备的适配(基于Andriod系统的多终端屏幕适配)。

目前我们团队选择了FinClip这样一款,灵活性轻量较高的技术方案,并且通过官方IDE里自带的“小程序转APP”功能将前期在微信上跑通的demo转成了APP应用上架到了应用市场。目前还在实现PC端的适配。该技术应用的情况,后续再给大家做分享。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Cordova
  • Xamarin
  • Flutter
  • FinClip
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档