Готов ли Kotlin Multiplatform к проду на iOS?
Kotlin Multiplatform уже несколько лет широко используется в продакшен приложениях. Насколько готов Kotlin Multiplatform к проду на iOS? Несмотря на сложности с отладкой, отсутствие поддержки аргументов по умолчанию, исчерпывающих перечислений (enum'ов), Codable и некоторые другие проблемы, KMP можно разворачивать со следующими условиями:
👉 Используйте его с осторожностью: нет необходимости идти ва-банк с KMP. Можно попробовать обкатать на небольшом модуле
👉 Общие компоненты: скорее всего, ваша цель использования KMP состоит в том, чтобы обмениваться компонентами между платформами, поэтому начните с них
👉 Помните о версиях: JetBrains поддерживает сайт со стабильностью Kotlin Components, некоторые компоненты Kotlin/Native являются бета-версиями. Определите, достаточно ли стабильности KMP для вашей организации
#crossplatform
Kotlin Multiplatform уже несколько лет широко используется в продакшен приложениях. Насколько готов Kotlin Multiplatform к проду на iOS? Несмотря на сложности с отладкой, отсутствие поддержки аргументов по умолчанию, исчерпывающих перечислений (enum'ов), Codable и некоторые другие проблемы, KMP можно разворачивать со следующими условиями:
👉 Используйте его с осторожностью: нет необходимости идти ва-банк с KMP. Можно попробовать обкатать на небольшом модуле
👉 Общие компоненты: скорее всего, ваша цель использования KMP состоит в том, чтобы обмениваться компонентами между платформами, поэтому начните с них
👉 Помните о версиях: JetBrains поддерживает сайт со стабильностью Kotlin Components, некоторые компоненты Kotlin/Native являются бета-версиями. Определите, достаточно ли стабильности KMP для вашей организации
#crossplatform
👍7👎2
An iOS Engineer learns about Android’s Jetpack Compose and loves it (7 мин)
Cамое время серьезно подумать о том, чтобы стать горизонтальным мобильным разработчиком и вот почему:
👉 объединение экспертизы между разработчиками Android и iOS позволяет писать лучшие приложения
👉 Jetpack Compose и SwiftUI - обновление своих императивных предшественников. Оба декларативны, являются state-driven и реактивны
👉 Kotlin несложно освоить для разработчиков Swift
Кривые обучения ускорились, и, поскольку обе платформы имеют схожие принципы, их легче освоить. Это отличный способ закрепить свой набор навыков в будущем, потому что давайте посмотрим правде в глаза: популярность любой из доминирующих мобильных платформ не гарантируется навсегда.
#crossplatform
Cамое время серьезно подумать о том, чтобы стать горизонтальным мобильным разработчиком и вот почему:
👉 объединение экспертизы между разработчиками Android и iOS позволяет писать лучшие приложения
👉 Jetpack Compose и SwiftUI - обновление своих императивных предшественников. Оба декларативны, являются state-driven и реактивны
👉 Kotlin несложно освоить для разработчиков Swift
Кривые обучения ускорились, и, поскольку обе платформы имеют схожие принципы, их легче освоить. Это отличный способ закрепить свой набор навыков в будущем, потому что давайте посмотрим правде в глаза: популярность любой из доминирующих мобильных платформ не гарантируется навсегда.
#crossplatform
👍6👎1
KMM глазами iOS-разработчика
В KMM есть свои нюансы, которые описаны в статье. Но нет блокеров, которые заставили задуматься об отказе от KMM. Зато вот какие профиты для бизнеса были получены:
👉 Экономия времени разработки (зависит от проекта).
Экономия будет больше, если в проектах много бизнес-логики находится на мобильном клиенте: офлайн-first решения
👉 Экономия времени переделок при изменении только бэкенда/логики без изменения UI — почти 50%
👉 Время погружения разработчиков iOS в KMM с 0 до реализации комплексных фичей — около 4 месяцев
👉 Bus factor — доработать KMM-логику могут не только iOS-разработчики, но и Android
#crossplatform
В KMM есть свои нюансы, которые описаны в статье. Но нет блокеров, которые заставили задуматься об отказе от KMM. Зато вот какие профиты для бизнеса были получены:
👉 Экономия времени разработки (зависит от проекта).
Экономия будет больше, если в проектах много бизнес-логики находится на мобильном клиенте: офлайн-first решения
👉 Экономия времени переделок при изменении только бэкенда/логики без изменения UI — почти 50%
👉 Время погружения разработчиков iOS в KMM с 0 до реализации комплексных фичей — около 4 месяцев
👉 Bus factor — доработать KMM-логику могут не только iOS-разработчики, но и Android
#crossplatform
🔥6👍2👎1
Болевые точки Dart и Flutter (24 мин)
Глобально все «раздражение» автор разделил на 3 основные части:
👉 проблемный дизайн Dart как современного ЯП;
👉 средства разработки (IDE и tooling), которые иногда не только не помогают, но и немножечко вредят;
👉 ограничения Flutter, которых могло и не быть.
а также он выделил...
👉 не нативные UI виджеты;
👉 уровень производительности (особенно в вебе);
👉 отсутствие динамического обновления с бека;
👉 state management ecosystem is a mess;
👉 нет возможности подгружать динамические библиотеки в run-time;
👉 нет официальной поддержки аудио (только ограниченные сторонние пакеты);
Пробовали ли вы flutter? Как вам? 🙋
#crossplatform
Глобально все «раздражение» автор разделил на 3 основные части:
👉 проблемный дизайн Dart как современного ЯП;
👉 средства разработки (IDE и tooling), которые иногда не только не помогают, но и немножечко вредят;
👉 ограничения Flutter, которых могло и не быть.
а также он выделил...
👉 не нативные UI виджеты;
👉 уровень производительности (особенно в вебе);
👉 отсутствие динамического обновления с бека;
👉 state management ecosystem is a mess;
👉 нет возможности подгружать динамические библиотеки в run-time;
👉 нет официальной поддержки аудио (только ограниченные сторонние пакеты);
Пробовали ли вы flutter? Как вам? 🙋
#crossplatform
🤯5
Переходим на Flutter: за и против (8 мин)
Резюмируя:
👉 Виджеты Flutter позволяют быстро и гибко реализовывать сложные пользовательские представления, а сам Dart легче освоить, чем Kotlin, Swift или Java
👉 Flutter имеет активное сообщество разработчиков, различные пакеты, а также программы для повышения качества этих пакетов. Инструментарий старается идти в ногу со временем
👉 Реальная производительность может отличаться от платформы к платформе, поэтому необходимо определиться с целевым предназначением
👉 Пользовательское взаимодействие на некоторых платформах может отличаться от нативного
#crossplatform
Резюмируя:
👉 Виджеты Flutter позволяют быстро и гибко реализовывать сложные пользовательские представления, а сам Dart легче освоить, чем Kotlin, Swift или Java
👉 Flutter имеет активное сообщество разработчиков, различные пакеты, а также программы для повышения качества этих пакетов. Инструментарий старается идти в ногу со временем
👉 Реальная производительность может отличаться от платформы к платформе, поэтому необходимо определиться с целевым предназначением
👉 Пользовательское взаимодействие на некоторых платформах может отличаться от нативного
#crossplatform
👎12👍6