Обменный код между платформами / языками (например, Swift, Kotlin, JavaScript)

Приложения часто создаются для трех платформ (Web, iOS, Android).

В настоящее время технический стек, который мы используем, – AngularJS (web) и Ionic / Cordova (iOS и Android). Поскольку они основаны на JavaScript, мы можем написать основные бизнес-логики (например, логин) один раз, а затем поделиться им через три (я знаю, это две) платформы, оставив реализации пользовательского интерфейса на отдельных платформах. Этот метод является удивительным, что помогает нам экономить так много времени и человеческих ресурсов – основные бизнес-логики пишутся и тестируются один раз и развертываются повсюду. Google использовал аналогичный метод для разработки Inbox, который позволяет им делиться 70% кода с помощью J2Objc .

Мы хотим применить такую ​​же удивительность к новой эре – Swift, Kotlin и веб-инфраструктуру на основе JavaScript (например, React / VueJs). Мы можем использовать любой из этих трех языков для написания общего кода. Я новичок в Swift и Kotlin, но вот мои лучшие результаты исследований:

  • SwiftKotlin конвертирует Swift в Kotlin
  • KotlinJS конвертирует Kotlin в Js

Таким образом, процесс разработки будет Swift -> Kotlin -> JavaScript. Однако преобразованный код не готов к производству и требует ручного редактирования. Кроме того, написанный код должен быть независимым от языковой / платформенной библиотеки. Например, чтобы написать парсер JSON, мы используем протокол Codable в Swift 4, Moshi (внешняя библиотека) в Kotlin, и JavaScript может изначально управлять JSON.

Я хотел бы посмотреть, есть ли у кого-нибудь хорошее решение этого вопроса. Или, может быть, вопрос заключается в том, чтобы выяснить, что можно использовать и что нужно делать три раза. Или этот процесс занимает больше времени или подвержен ошибкам, и мы должны написать одну и ту же логику три раза.

Благодаря!