前提: 有一个项目,Android 客户端使用 Java 开发,iOS 客户端使用 OC 开发,目前这个项目想打包成系统提供给多个不同客户使用,同时根据客户需求定制开发一些个性化功能,由我们来维护。API 层面对接后端系统基本一致,但是 UI 层面根据客户需求可能有所不同。 目前我的想法是:客户端分离成 UI 层 + API 数据层,API 数据层可以封装成一个库,不管维护多少个客户、多少套系统都可以统一维护,减少维护成本。 有考虑过使用 Rust 、Go 等开发成 so 库,可以同时给到 Android 、iOS 两端使用,有没有人有过类似经验可以分享? Rust 好些还是 Go 好些?
1
yanheR 146 天前
感觉 c++比较多,或者 Kotlin Multiplatform?
|
2
bruce0 146 天前
之前看过高德分享的一篇文章, 他们好像用 C++写的底层公用库, 然后在不同的平台编译成.so, 然后让上层调用
|
3
SilentOrFight OP @yanheR #1 确实是 C++多一些,但是 C++要求也高一些,所以想找个好上手的语言。
KMM 的问题是 java 老项目兼容性可能不太好,我已经调研尝试过了,用了 kmm+ktor 请求库,java 调用协程的一些转化类又需要 Android 7.0 以上,目前项目是 Android 5.0 打底。 KMM 很适合用在 kotlin 、swift 的新项目上去做数据层的跨平台库。 |
4
SilentOrFight OP @bruce0 #2 目前也是考虑 rust 、go 编译成 so 库,性能强,维护一个 Api 库也简单些,也正在看 goMobile ,可以直接编译成 Android AAR 、iOS framework 。
goMobile 相当于帮你多做了一层胶水层对接 so 库。 |