我知道这已经被问过很多次了,但是在现有的SO答案中我找不到任何我想要的东西。
基本上,我们即将创建具有以下功能的复杂移动应用程序:
我们希望此应用在iOS,Android和Windows环境中运行。考虑了许多解决方案,包括Qt,Xamarin和其他解决方案,但在如此复杂的用例中使用这些框架似乎风险很大。
我们现在要考虑的是本机构建每个应用程序,但在共享C ++库中维护尽可能多的共享代码。
例如,我们希望为各种功能制作C ++组件,例如:
然而,存在一定的问题。目前尚不清楚,我们如何在库中连接原生UI层和C ++代码。 从Java或Obj-C代码调用库函数很容易,但是其中许多函数会调用一些异步任务(调用HTTP url,将文件转储到磁盘)。目前尚不清楚如何将此类异步任务的结果传播回UI代码。
我们理想的是一些MvvM架构,其中Views完全是特定于平台的,但是Models和部分ViewModel是用C ++编写的。此外,这种架构通常使用"服务" - 那些也可以有特定于平台的界面,但是C ++核心。
是否有一种已知的方法来提供此类集成?也许有图书馆提供"中间层" UI代码和库之间?
或许我们的方法根本不可行,在这种情况下你会建议什么?