在平台/语言之间共享代码(例如Swift,Kotlin,JavaScript)

应用程序通常是为三个平台(Web,iOS,Android)创建的。

目前我们使用的技术堆栈是AngularJS(web)和Ionic / Cordova(iOS和Android)。 由于它们是基于JavaScript的,因此我们可以编写一次核心业务逻辑(例如登录),然后在三个平台(我知道,这是两个平台)上共享,从而将UI实现留给各个平台。 这种方法非常棒,可以帮助我们节省大量的时间和人力资源 – 核心业务逻辑被编写和测试一次,并随处部署。 Google使用类似的方法来开发收件箱,允许他们使用J2Objc共享70%的代码。

我们希望在新时代应用同样的精彩 – Swift,Kotlin和基于JavaScript的Web框架(例如React / VueJs)。 我们愿意使用这三种语言中的任何一种来编写共享代码。 我是Swift和Kotlin的新手,但这是迄今为止我最好的研究成果:

  • SwiftKotlin将Swift转换成Kotlin
  • KotlinJS将Kotlin转换为Js

所以开发过程将是Swift – > Kotlin – > JavaScript。 但是,转换后的代码不能生产,需要手动编辑。 而且,编写的代码必须是语言/平台库独立的。 例如,要编写JSON解析器,我们在Swift 4中使用Codable协议,在Kotlin中使用Moshi (external lib),JavaScript可以本地操作JSON。

我想看看有没有人有这个问题的一些很好的解决方案。 或者,也许问题是要弄清楚什么可以共享,以及要做三次。 或者这个过程需要更多的时间或者更容易出错,我们应该在三个不同的时间写同样的逻辑。

谢谢!

Interesting Posts