Skip to content

跨平台框架

更新: 6/2/2025 字数: 0 字 时长: 0 分钟

除了后端以外,我个人还会一点Vue开发,再加上对前端技术的喜爱,我有时会去研究一下前端技术,其中一个我很好奇的点就是,Vue只能开发网页,那app和其他的程序是如何开发出来的呢?

前端由于需要大量的和操作系统进行交互,因此不同平台都有着自己的写法

常见的平台:

  • web(网页)——Vue,React
  • Android——Kotlin
  • ios——swift
  • Windows
  • Linux
  • 微信小程序(国内特供)
  • 鸿蒙(半国内特供?)

而公司为了降低成本,大概率是不会一个端请一个人来进行开发和维护的

那么最后就产生了两个结果:

  1. 开发人员掌握多端开发技术(多语言多框架)
  2. 某个技术团队或个人提供一套可以多端开发的方案

很明显,第二种方案是开发者甚至公司都想要的

那么目前市面上常见的方案有什么呢?

大致其实也就两种:

  1. 使用浏览器进行套壳:可以使用web开发来完成多端开发,但性能会降低
  2. 使用一种语言去转译成其他端的语言:使用某种特定语言/框架开发,性能更好,但开发成本过大

这里说一下我体验过的框架

浏览器套壳方案:

  • uniapp:国内框架,支持了小程序和鸿蒙,开发体验谁用谁知道
  • quasar:国外框架,并非自己解决了跨平台问题,而是对现有的跨平台方案做了集成。不支持小程序和鸿蒙,体验感较好(我个人感觉甚至可以说是很好)

原生方案:

  • react-native:国外框架,使用react,因此是使用web的方式开发多端
  • native-script:国外框架,基于react-native,支持vue写法,本身还是使用web的方式开发多端
  • kmp:国外框架,使用kotlin,由jetbrain支持,因此是使用Android的方式开发多端
  • flutter:国外框架,Google开源,使用Dart语言进行开发,写法上感觉和JetpackCompose很像
  • uniappx:国内框架,支持较全面,但是由于uniapp给人的开发体验不佳,而且一直没有正式版发布,因此不报太大希望

上面的框架我都大概的体验过,目前给我体验感最好的就是quasar(可能也是我比较熟悉Vue的原因),但是整体上都是不大尽人意,我目前比较看好kmm和kuikly,希望在一段时间后能够给我们一些亮眼的体验

原生

这个或许是在选择跨平台方案时第一个考虑的问题,原生的优势是高性能,而套壳的优势是低成本。

对于小公司来说低成本肯定更加重要,毕竟要活着嘛,但是作为大公司,性能就会显得更加重要了。

目前上面的开源方案比较成熟的是Flutter和Reactive-native,我相对了解Flutter一点,这里就简单的提一下Flutter。

Flutter的主要想法就是让各端的代码统一使用Dart编写,然后再由Dart通过渲染的方式再在其CPU或GPU上绘制出UI

除此之外,KMM也是一个不错的选择,但是KMM的关注点并非一套代码全部实现,而是共享逻辑代码

简单地说就是KMM希望使用Kotlin语言在一个共享的模块下写一些共享的代码(比如网络请求,逻辑计算等),然后再由各端去自己绘制UI,调用共享逻辑。

虽然Jetbrain也有推出自己的跨平台UI解决方案——ComposeMutlplatform,但是目前来看还是差些火候

(有趣的是,Flutter的Logo和Kotlin经常使用的一个将K的竖线由阴影藏住的Logo很像,不知道是不是有什么说法)

本站访客数 人次      本站总访问量