我知道这已经被问过很多次了,但是在现有的SO答案中我找不到任何接近我想要的东西 .

基本上,我们即将创建具有以下功能的复杂移动应用程序:

  • 使用OpenGL进行3D图形渲染

  • 与摄像头,加速度计,陀螺仪等硬件功能集成

  • 使用网络(HTTP)

  • 本地数据库(SQLite)

  • 硬盘使用情况

  • zip文件和加密(OpenSSL)

  • 使用自己的SDK与第三方硬件(例如连接到平板电脑的第三方传感器)集成

我们希望此应用在iOS,Android和Windows环境中运行 . 考虑了许多解决方案,包括Qt,Xamarin和其他解决方案,但在如此复杂的用例中使用这些框架似乎风险很大 .

我们现在想到的是本机构建每个应用程序,但在共享C库中维护尽可能多的共享代码 .

例如,我们想为各种功能制作C组件,例如:

  • 与服务器的HTTP通信

  • 文件加密

  • 业务逻辑

  • ......

但是,存在一定的问题 . 目前尚不清楚,我们如何在库中连接原生UI层和C代码 . 从Java或Obj-C代码调用库函数很容易,但是其中许多函数会调用一些异步任务(调用HTTP url,将文件转储到磁盘) . 目前尚不清楚如何将此类异步任务的结果传播回UI代码 .

我们理想的是一些MvvM架构,其中Views完全是特定于平台的,但是Models和部分ViewModel是用C语言编写的 . 此外,这种架构通常使用“服务” - 那些也可以具有特定于平台的接口,但是C核心 .

有没有已知的方法来提供这种集成?也许有一些库在UI代码和库之间提供“中间层”?

或许我们的方法根本不可行,在这种情况下你会建议什么?