前言
我曾想, 有没有一款引擎可以实现PC端, 移动端, Web端和小程序的应用开发
那么对于大型应用而言, 我最先想到的就是使用游戏开发引擎, 即实现了跨平台又保证了程序性能, 生产效率大幅提高
比如目前有一些跨平台的桌面程序就是用Godot
游戏引擎开发的
但是面对日常的展示类应用, 使用游戏引擎就有种牛刀杀鸡的感觉, 由于游戏引擎设计的初衷不同, 导致了使用游戏引擎开发日常应用会存在一些难点, 比如:
- UI组件的不完善 需要自己造轮子
- 第三方SDK的支持度不够, 同样需要自己造轮子
- 游戏引擎默认的UI自刷新机制和日常应用的响应式刷新不同, 开发者需要具备对引擎修改调优的能力
除非有现成的框架能直接上手使用, 否则 前期开发的时间成本会比较大, 不过后期轮子造出来了这一部分的问题会得到有效解决
接下来咱们列举一下目前市面上主流的跨平台开发引擎:
跨平台开发框架
日常应用引擎:
引擎名称 | Web端 | 移动端 | PC端 | 小程序 |
---|---|---|---|---|
flutter | √ | √ | √ | |
uni-app | √ | √ | √ | √ |
uni-app
官方默认支持Web
, 移动, 小程序三端, 和Electron
结合后可实现桌面程序的开发, 具体文章参考: 《Uniapp+Vite+Vue3+Electron 快速构建桌面应用》flutter
很强 性能媲美原生, 唯一不足是不支持小程序, 目前有团队在研究小程序+flutter
容器的方案, 也就是将开发小程序嵌入到flutter
应用中,从而实现跨全平台, 对于企业而言只需开发和维护一套小程序即可, 具体参见:《FinClip 实现小程序反向生成 App》这种方案能方便现有的前端开发者快速上手, 不过感觉和
uni-app
有点类似, 可能内部交互原理不太一样, 这一块有兴趣的可自行研究MPFlutter :是基于
Flutter
延伸出来的一个支持小程序的框架, 从而实现全平台开发, 不过仅适合展示类应用的开发, 而且得掌握Dart语言, 对于纯前端开发者来说有一定的学习成本,MPFlutter
未来发展如何 咱们拭目以待
游戏引擎:
引擎名称 | Web端 | 移动端 | PC端 | 小程序 |
---|---|---|---|---|
cocos | √ | √ | √ | √ |
godot | √ | √ | √ | |
unity | √ | √ | √ | √ |
关于游戏引擎开发日常应用的方案, 由于本人并未实操过, 暂不做评价, 等后续体验过了再来补充
关于其他游戏引擎可参考文章《常用游戏开发引擎汇总》
总结
展示类应用推荐uniapp
和MPFlutter
, 高性能应用的开发推荐原生flutter
游戏和大型桌面程序的开发使用游戏引擎进行开发
本文为作者原创转载时请注明出处 谢谢