Как стать автором
Обновить

Комментарии 6

Для тех, кто совсем от всего этого далёк: можно ли перевести полностью на Kotlin MPP систему типа:


  • классический веб-бэкенд, отдающий html для показа в браузере с вкраплениями JS (пускай на JPython)
  • http api веб-бэкенд (пускай тоже на JPython)
  • websocket бэкенд на nodejs
  • SPA веб-фронтенд браузерный (на реакте, например, сейчас)
  • нативное android приложение
  • ios приложение на react native

Из поста пока понятно, что последние два пункта можно, но, похоже, ios приложение надо будет переделывать с нуля, реакт использовать не получится.

Бекенд можно писать так же, как на джаве, андроид приложение пишется на котлине полностью, с реакт нейтив, насколько я знаю, интеропа нет. Нужен ли там именно MPP зависит исключительно от того, сколько кода будет переиспользоваться.
При желании можно. Любую из обозначенных функциональностей можно реализовать на средствах из экосистемы котлина. Часть можно в мультиплатформе делать, часть достаточно обычного котлин на jvm. Насчёт мобилок — есть 2 подхода, либо вынести бизнес логику в мультиплатформу и оставить только ui (который в принципе без разницы как отрисовывать, хоть тем же react native, однако в этом случае придётся писать дополнительный связующий код). Либо перенести и ui слой в мультиплатформу, интероп с платформенными ui-компонентами также присутствует. Но это уже будет полностью новое приложение. Изучать тему можно начать с kotlinlang.org, там есть разводящая по интересующим вопросам.

Просто мне не понятны границы между Kotlin (как я понимаю, все три бэкенда и андроид нативно можно писать, без MPP) и Kotlin MPP. Второе — подмножество первого, надмножество или это пересекающиеся множества?

MPP это про создание проекта сразу под несколько бэкендов. Он добавляет в проект модуль common, в котором можно писать код с зависимостями от других MPP библиотек или своих expect/actual. К примеру ktor от Jetbrains сейчас поддерживает все платформы, и при желании можно написать в common модуле код для общения с HTTP API и использовать его в JS, iOS, Android (всего таргетов примерно 10, включая что-нибудь вроде Apple Watch / Raspberry Pi).
Аж захотелось для iOS что-нибудь написать для анализа трафика в сети )
Зарегистрируйтесь на Хабре, чтобы оставить комментарий