写点什么

一个小而美的项目如何进行跨端选型

作者:Onegun
  • 2022-11-30
    四川
  • 本文字数:1786 字

    阅读完需:约 6 分钟

一个小而美的项目如何进行跨端选型

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

由于我们项目的特殊性,最初的产品 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 端的适配。该技术应用的情况,后续再给大家做分享。


发布于: 刚刚阅读数: 2
用户头像

Onegun

关注

这个Coder不太Cold 2021-08-25 加入

前端划水第一名🥇

评论

发布
暂无评论
一个小而美的项目如何进行跨端选型_移动端_Onegun_InfoQ写作社区