Compartir código entre plataforms / idiomas (por ejemplo, Swift, Kotlin, JavaScript)

Las aplicaciones a menudo se crean para tres plataforms (Web, iOS, Android).

Actualmente, la stack de tecnología que estamos utilizando son AngularJS (web) e Ionic / Cordova (iOS y Android). Como están basados ​​en JavaScript, podemos escribir las lógicas básicas del negocio (por ejemplo, inicio de session) una vez y luego compartirlas en tres (sé que son dos) plataforms, dejando las implementaciones de UI en las plataforms individuales. Este método es increíble y nos ayuda a ahorrar tanto time y resources humanos: las lógicas básicas del negocio se escriben y testingn una vez y se implementan en todas partes. Google usó un método similar para desarrollar Inbox, lo que les permite compartir el 70% del código usando J2Objc .

Queremos aplicar la misma genialidad a la nueva era: Swift, Kotlin y un marco web basado en JavaScript (por ejemplo, React / VueJs). Estamos abiertos a utilizar cualquiera de estos tres idiomas para escribir el código compartido. Soy nuevo en Swift y Kotlin, pero aquí están mis mejores resultados de investigación hasta el momento:

  • SwiftKotlin convierte Swift a Kotlin
  • KotlinJS convierte Kotlin en Js

Entonces, el process de desarrollo sería Swift -> Kotlin -> JavaScript. Sin embargo, el código convertido no está listo para producción y requiere edición manual. Además, el código escrito debe ser independiente de la biblioteca de idioma / plataforma. Por ejemplo, para escribir un analizador JSON, usamos el protocolo Codable en Swift 4, Moshi (lib externo) en Kotlin y JavaScript puede manipular nativamente JSON.

Me gustaría ver si alguien tiene alguna buena solución para esta pregunta. O tal vez la pregunta es averiguar qué se puede compartir y qué se debe hacer tres veces. O este process lleva más time o es propenso a errores y deberíamos escribir la misma lógica tres veces diferentes.

¡Gracias!