Готов ли Kotlin Multiplatform Mobile для кроссплатформенной разработки?
Для кроссплатформенных приложений на рынке используют уже проверенные фреймворки Flutter и React Native. Но у них есть минус — общий пользовательский интерфейс, который сложно поддерживать с учётом особенностей Android и iOS.
Однако существует фреймворк Kotlin Multiplatform Mobile, с помощью которого общая логика приложений пишется на Kotlin, а интерфейс уже разрабатывается нативно. Пока он находится в альфа-версии, но некоторые компании уже применяют его в реальных проектах.
В статье технический архитектор «Леруа Мерлен» рассказал о своём опыте работы с KMM:
https://tprg.ru/aSV6
#android #ios #kmm #react_native
Для кроссплатформенных приложений на рынке используют уже проверенные фреймворки Flutter и React Native. Но у них есть минус — общий пользовательский интерфейс, который сложно поддерживать с учётом особенностей Android и iOS.
Однако существует фреймворк Kotlin Multiplatform Mobile, с помощью которого общая логика приложений пишется на Kotlin, а интерфейс уже разрабатывается нативно. Пока он находится в альфа-версии, но некоторые компании уже применяют его в реальных проектах.
В статье технический архитектор «Леруа Мерлен» рассказал о своём опыте работы с KMM:
https://tprg.ru/aSV6
#android #ios #kmm #react_native
Приложение для управления финансами MoneyFlow
MoneyFlow создано в рамках AndroidDevChallenge, который Google проводила в начале года.
Под капотом: Kotlin Multiplatform для объединения логики iOS- и Android-приложения, Jetpack Compose и SwiftUI для создания интерфейса.
Посмотреть: https://github.com/prof18/MoneyFlow
#ui #kmm #compose #swiftui #android #ios
MoneyFlow создано в рамках AndroidDevChallenge, который Google проводила в начале года.
Под капотом: Kotlin Multiplatform для объединения логики iOS- и Android-приложения, Jetpack Compose и SwiftUI для создания интерфейса.
Посмотреть: https://github.com/prof18/MoneyFlow
#ui #kmm #compose #swiftui #android #ios
Многопоточность в Kotlin Multiplatform на примере Яндекс.Карт
Команда Яндекс.Карт вынесла в KMM много общей логики Android- и iOS-приложения, и затем стала внедрять в общий код многопоточность на Kotlin. Однако то, что идеально работает на Android, может постоянно падать на iOS.
В статье рассказано, как им удалось решить появившиеся проблемы и запустить многопоточность:
https://tprg.ru/SjTG
#kmm #ios
Команда Яндекс.Карт вынесла в KMM много общей логики Android- и iOS-приложения, и затем стала внедрять в общий код многопоточность на Kotlin. Однако то, что идеально работает на Android, может постоянно падать на iOS.
В статье рассказано, как им удалось решить появившиеся проблемы и запустить многопоточность:
https://tprg.ru/SjTG
#kmm #ios
Работа с памятью в Kotlin/Native
При использовании Kotlin Mobile Multiplatform необходимо учитывать специфику управления памятью в Android и iOS. В первую очередь проблема затрагивала работу с потоками, и разработчик был вынужден писать кусок отдельного кода для поддержки платформы.
Однако в конце августа JetBrains представила новый способ управления памятью в Kotlin/Native, который призван сделать бизнес-логику действительно общей между платформами.
Разобраться в управлении памятью в Kotlin/Native поможет серия статей:
1. Работа с потоками с корутинами и без (первая часть).
2. Работа с потоками с корутинами и без (вторая часть).
3. Работа с новой моделью памяти.
#kmm #kotlin #ios
При использовании Kotlin Mobile Multiplatform необходимо учитывать специфику управления памятью в Android и iOS. В первую очередь проблема затрагивала работу с потоками, и разработчик был вынужден писать кусок отдельного кода для поддержки платформы.
Однако в конце августа JetBrains представила новый способ управления памятью в Kotlin/Native, который призван сделать бизнес-логику действительно общей между платформами.
Разобраться в управлении памятью в Kotlin/Native поможет серия статей:
1. Работа с потоками с корутинами и без (первая часть).
2. Работа с потоками с корутинами и без (вторая часть).
3. Работа с новой моделью памяти.
#kmm #kotlin #ios
Архитектура MVI в Kotlin Multiplatform
MVI состоит из двух основных компонентов: Model (слой логики и данных) и View (слой UI). Model хранит состояние state и передаёт его View, в View в свою очередь отвечает за выдачу намерений (intents).
Благодаря разделению бизнес-логики и интерфейса архитектура MVI хорошо подходит для использования в KMM-проекте. А разобраться в реализации MVI поможет цикл из трёх статей:
1. Краткое описание шаблона MVI, постановка задачи и создание общего модуля с использованием Kotlin Multiplatform.
2. Интеграция общего модуля в iOS- и Android-приложения.
3. Модульное и интеграционное тестирование.
#android #ios #kmm #архитектура
MVI состоит из двух основных компонентов: Model (слой логики и данных) и View (слой UI). Model хранит состояние state и передаёт его View, в View в свою очередь отвечает за выдачу намерений (intents).
Благодаря разделению бизнес-логики и интерфейса архитектура MVI хорошо подходит для использования в KMM-проекте. А разобраться в реализации MVI поможет цикл из трёх статей:
1. Краткое описание шаблона MVI, постановка задачи и создание общего модуля с использованием Kotlin Multiplatform.
2. Интеграция общего модуля в iOS- и Android-приложения.
3. Модульное и интеграционное тестирование.
#android #ios #kmm #архитектура
Приложение для официантов на KMM и Flutter: особенности нестандартного стека
Перед разработчиками из r_keeper стояла непростая задача — переписать порядком устаревшее приложение для обработки заказов в ресторанах.
Поскольку требовалось создать приложение для iOS и Android, команда стала смотреть в сторону кроссплатформы и выбрала необычный стек на Kotlin Multiplatform и Flutter. В статье они объяснили свой выбор: https://tprg.ru/YP58
Решение дошло до стадии продакшна, однако в процессе ребята столкнулись со множеством трудностей. Подробнее о проблемах рассказано в статье: https://tprg.ru/JxEK
#flutter #kmm
Перед разработчиками из r_keeper стояла непростая задача — переписать порядком устаревшее приложение для обработки заказов в ресторанах.
Поскольку требовалось создать приложение для iOS и Android, команда стала смотреть в сторону кроссплатформы и выбрала необычный стек на Kotlin Multiplatform и Flutter. В статье они объяснили свой выбор: https://tprg.ru/YP58
Решение дошло до стадии продакшна, однако в процессе ребята столкнулись со множеством трудностей. Подробнее о проблемах рассказано в статье: https://tprg.ru/JxEK
#flutter #kmm
Доклады с Mobius 2021 Piter
Вчера стали доступны записи докладов с конференции по мобильной разработке Mobius 2021 Piter. Делимся частью интересных выступлений:
1. «Оптимизация сборок Android-приложений» Валерия Петрова.
2. «Введение в Apple Metal» от Георгия Остроброда.
3. Воркшоп по созданию мессенджера на Flutter.
4. «Kotlin Multiplatform Advanced. Делаем общий DI для iOS и Android» Анны Жарковой.
Все доклады собраны в плейлисте на YouTube: https://tprg.ru/tUpV
#android #ios #flutter #kmm #доклады
Вчера стали доступны записи докладов с конференции по мобильной разработке Mobius 2021 Piter. Делимся частью интересных выступлений:
1. «Оптимизация сборок Android-приложений» Валерия Петрова.
2. «Введение в Apple Metal» от Георгия Остроброда.
3. Воркшоп по созданию мессенджера на Flutter.
4. «Kotlin Multiplatform Advanced. Делаем общий DI для iOS и Android» Анны Жарковой.
Все доклады собраны в плейлисте на YouTube: https://tprg.ru/tUpV
#android #ios #flutter #kmm #доклады
Создание общего SDK чата на KMM
Kotlin Mobile Multiplatform дал возможность разработчикам переиспользовать бизнес-логику в приложениях для Android и iOS.
В последнее время появляется всё больше успешных кейсов, и один из них — реализация кроссплатформенного SDK чата. Ребятам понадобилось создать удобный канал связи, который охватывает Android, iOS и веб.
Вот, что у них получилось: https://tprg.ru/os8a
#kmm #android #ios
Kotlin Mobile Multiplatform дал возможность разработчикам переиспользовать бизнес-логику в приложениях для Android и iOS.
В последнее время появляется всё больше успешных кейсов, и один из них — реализация кроссплатформенного SDK чата. Ребятам понадобилось создать удобный канал связи, который охватывает Android, iOS и веб.
Вот, что у них получилось: https://tprg.ru/os8a
#kmm #android #ios
Оптимизация времени CI-сборки проекта на Kotlin Multiplatform
Сборка проекта на KMM вызывает затруднения, когда требуется создать билды для нескольких target-платформ (Android и iOS, например). К тому же, хостинг машины на macOS обходится существенно дороже, чем на Windows и тем более на Linux.
К счастью, сборку можно оптимизировать: на macOS и Windows собирать только необходимые части, а остальное — на хостинге с Linux. И дешевле, и быстрее, ведь происходит параллельная сборка.
Подробнее: https://tprg.ru/mKGO
#ios #kmm #android
Сборка проекта на KMM вызывает затруднения, когда требуется создать билды для нескольких target-платформ (Android и iOS, например). К тому же, хостинг машины на macOS обходится существенно дороже, чем на Windows и тем более на Linux.
К счастью, сборку можно оптимизировать: на macOS и Windows собирать только необходимые части, а остальное — на хостинге с Linux. И дешевле, и быстрее, ведь происходит параллельная сборка.
Подробнее: https://tprg.ru/mKGO
#ios #kmm #android
Kotlin for everything: доклад с Omsk DevFest
В 2021 году пользователи имеют такое большое количество устройств, что создание кроссплатформенных приложений уже стало необходимостью. И инструмент Kotlin Multiplatform может стать решением проблемы.
KMM объединяет всю бизнес-логику в единые модули, которые вы можете использовать на различных платформах (Android, iOS, веб) и при этом писать логику только на Kotlin.
Мобильная команда из Leroy Merlin уже использует KMM в своих проектах. И разработчик Алексей Гладков рассказал, как им удалось переехать с Android, с какими сложностями с KMM они столкнулись и оправдал ли результат ожиданий:
https://youtu.be/9u37zatFYgM
#android #ios #kmm
В 2021 году пользователи имеют такое большое количество устройств, что создание кроссплатформенных приложений уже стало необходимостью. И инструмент Kotlin Multiplatform может стать решением проблемы.
KMM объединяет всю бизнес-логику в единые модули, которые вы можете использовать на различных платформах (Android, iOS, веб) и при этом писать логику только на Kotlin.
Мобильная команда из Leroy Merlin уже использует KMM в своих проектах. И разработчик Алексей Гладков рассказал, как им удалось переехать с Android, с какими сложностями с KMM они столкнулись и оправдал ли результат ожиданий:
https://youtu.be/9u37zatFYgM
#android #ios #kmm
YouTube
Kotlin for everything. Omsk DevFest / Мобильный разработчик [Live, Ru]
Запись доклада с Omsk DevFest, где я рассказывал о том, как мы переехали из Android в Kotlin Multiplatform, поэтому доклад называется Kotlin for everything
Напоминаю, что видео вначале выходят для моих патронов и спонсоров. Стать им можно по ссылке ниже…
Напоминаю, что видео вначале выходят для моих патронов и спонсоров. Стать им можно по ссылке ниже…
Теперь можно быстро сгенерировать проект на Kotlin Multiplatform (KMM)
Тимлид команды Kotlin Multiplatform Mobile в JetBrains подготовил небольшое веб-приложение Kotlin Multiplatform Wizard. В нём вы можете выставить все необходимые настройки нового проекта, а затем скачать готовый проект одной кнопкой.
Пользуйтесь: https://terrakok.github.io/kmp-web-wizard/
#kmm #android #ios #kotlin
Тимлид команды Kotlin Multiplatform Mobile в JetBrains подготовил небольшое веб-приложение Kotlin Multiplatform Wizard. В нём вы можете выставить все необходимые настройки нового проекта, а затем скачать готовый проект одной кнопкой.
Пользуйтесь: https://terrakok.github.io/kmp-web-wizard/
#kmm #android #ios #kotlin
Тренды мобильной разработки в 2022 году: что изучать и к чему готовиться
Наш коллега Алексей Гладков подготовил видео, где поделился своими наблюдениями по развитию мобильной разработки. В ролике затронуты не только обновления Android и iOS в 2021 году, но и тенденции российского IT-рынка и психологическое здоровье разработчика.
Можно включить на фоне как подкаст: https://youtu.be/5abMzaGMen4
#android #kmm #ios #flutter
Наш коллега Алексей Гладков подготовил видео, где поделился своими наблюдениями по развитию мобильной разработки. В ролике затронуты не только обновления Android и iOS в 2021 году, но и тенденции российского IT-рынка и психологическое здоровье разработчика.
Можно включить на фоне как подкаст: https://youtu.be/5abMzaGMen4
#android #kmm #ios #flutter
YouTube
Что изучать в 2022 году? Тренды мобильной разработки
Итак, наступил новый 2022 год и это видео - это мои размышления о том, что нам ждать в новом году, к чему готовиться, на что обратить внимание
Тайм коды
00:00:00 — Введение
00:00:19 — KMM
00:03:50 — Android и Flutter
00:07:58 — Мобильная разработка
00:13:42…
Тайм коды
00:00:00 — Введение
00:00:19 — KMM
00:03:50 — Android и Flutter
00:07:58 — Мобильная разработка
00:13:42…
Внедрение Kotlin Multiplatform Mobile: опыт QIWI
Мы не раз писали про KMM. Платформа позволяет написать бизнес-логику приложения на Kotlin и затем использовать ее на разных платформах. При этом UI-слой пишется отдельно под каждую из них.
Разработчики из QIWI попробовали технологию в деле и поделились своим опытом. Если вкратце, то технология им показалась многообещающей, но без проблем не обошлось.
Подробнее: https://habr.com/ru/company/qiwi/blog/658275/
#kmm #android #ios
Мы не раз писали про KMM. Платформа позволяет написать бизнес-логику приложения на Kotlin и затем использовать ее на разных платформах. При этом UI-слой пишется отдельно под каждую из них.
Разработчики из QIWI попробовали технологию в деле и поделились своим опытом. Если вкратце, то технология им показалась многообещающей, но без проблем не обошлось.
Подробнее: https://habr.com/ru/company/qiwi/blog/658275/
#kmm #android #ios
KMM и QIWI, часть вторая
В начале апреля мы делились статьёй от QIWI, где ребята рассказали о своём опыте внедрения Kotlin Multiplatform Mobile. Но в ней затронута в основном только техническая сторона перехода на KMM.
Поэтому разработчики выпустили продолжение, где рассказали о том, как они убедили компанию перейти на KMM, готовили прототип и внедряли технологию в команды:
https://habr.com/ru/company/qiwi/blog/662077/
#kmm #android #ios
В начале апреля мы делились статьёй от QIWI, где ребята рассказали о своём опыте внедрения Kotlin Multiplatform Mobile. Но в ней затронута в основном только техническая сторона перехода на KMM.
Поэтому разработчики выпустили продолжение, где рассказали о том, как они убедили компанию перейти на KMM, готовили прототип и внедряли технологию в команды:
https://habr.com/ru/company/qiwi/blog/662077/
#kmm #android #ios
Бета-версия Kotlin Multiplatform Mobile отложена до осени 2022 года
В недавно опубликованном обновлённом роадмапе объяснили причину. Выход бета-версии связан с тем, когда новый менеджер памяти в Kotlin/Native станет основным (default). В Kotlin 1.6.20 менеджер достиг статуса альфа-версии, и с тех пор его продолжают улучшать.
Также в роадмапе разработчики рассказали о фичах, которые доступны уже сейчас:
— инструмент командной строки KDoctor для настройки среды разработки KMM-приложений;
— новый экспериментальный DSL для упрощённого вывода Kotlin/Native-«бинарников»;
— улучшенный UX для работы с нативными библиотеками в KMM-проектах.
#kmm
В недавно опубликованном обновлённом роадмапе объяснили причину. Выход бета-версии связан с тем, когда новый менеджер памяти в Kotlin/Native станет основным (default). В Kotlin 1.6.20 менеджер достиг статуса альфа-версии, и с тех пор его продолжают улучшать.
Также в роадмапе разработчики рассказали о фичах, которые доступны уже сейчас:
— инструмент командной строки KDoctor для настройки среды разработки KMM-приложений;
— новый экспериментальный DSL для упрощённого вывода Kotlin/Native-«бинарников»;
— улучшенный UX для работы с нативными библиотеками в KMM-проектах.
#kmm
This media is not supported in your browser
VIEW IN TELEGRAM
Объясняем Kotlin Multiplatform на крестиках-ноликах
KMM позволяет разработчикам объединить всю бизнес-логику в единые модули и запускать один и тот же код на разных платформах. За последние несколько лет эту модель обсуждают всё чаще.
Разработчик Тихон Устинов рассказал о плюсах и минусах работы с KMM в проекте, а также на примере создания игры «крестики-нолики» для Android, iOS и JS продемонстрировал, как применять KMM:
https://habr.com/ru/company/rostelecom/blog/682160/
#kmm #android #ios
KMM позволяет разработчикам объединить всю бизнес-логику в единые модули и запускать один и тот же код на разных платформах. За последние несколько лет эту модель обсуждают всё чаще.
Разработчик Тихон Устинов рассказал о плюсах и минусах работы с KMM в проекте, а также на примере создания игры «крестики-нолики» для Android, iOS и JS продемонстрировал, как применять KMM:
https://habr.com/ru/company/rostelecom/blog/682160/
#kmm #android #ios
Как внедрить KMM в существующие проекты и не пожалеть
Компания IceRock Development поделились своим опытом перехода на Kotlin Multiplatform Mobile. На данный момент компания разработала более 20 проектов, а также поддерживает свой набор библиотек MOKO для KMM.
В статье Алексей Михайлов подробно рассказывает, зачем внедрять КММ в проект, с какими ошибками они столкнулись. А также в конце статьи можно найти пошаговый гайд по внедрению КММ:
https://habr.com/ru/post/708328/#Nash-opyt-vnedrenija-KMM-v-sushhestvujushhie-proekty
#kmm
Компания IceRock Development поделились своим опытом перехода на Kotlin Multiplatform Mobile. На данный момент компания разработала более 20 проектов, а также поддерживает свой набор библиотек MOKO для KMM.
В статье Алексей Михайлов подробно рассказывает, зачем внедрять КММ в проект, с какими ошибками они столкнулись. А также в конце статьи можно найти пошаговый гайд по внедрению КММ:
https://habr.com/ru/post/708328/#Nash-opyt-vnedrenija-KMM-v-sushhestvujushhie-proekty
#kmm
Как настроить окружение в KMM
В этой статье разработчик компании Joy Dev делится советами, как быстро настроить окружение при переходе на КММ: Windows и MacOS. Подготовка системы для пользователей Windows не занимает и пары минут, а вот на macOS могут возникнуть проблемы с несовместимостью версий (Cocoapods с Ruby).
А ещё автор показывает пример создания проекта с помощью Kotlin Multiplatform Wizard:
https://habr.com/ru/company/joydev/blog/711234/
#kmm
В этой статье разработчик компании Joy Dev делится советами, как быстро настроить окружение при переходе на КММ: Windows и MacOS. Подготовка системы для пользователей Windows не занимает и пары минут, а вот на macOS могут возникнуть проблемы с несовместимостью версий (Cocoapods с Ruby).
А ещё автор показывает пример создания проекта с помощью Kotlin Multiplatform Wizard:
https://habr.com/ru/company/joydev/blog/711234/
#kmm
KMM глазами iOS-разработчика
В этой статье Мялкин Максим рассказывает про свой опыт работы с KMM со стороны iOS-разработки и нюансы использования данного SDK:
— где хранить common-код?
— реализация UI, DI и навигации,
— логирование и краши,
— отладка приложения.
Подробнее:
https://habr.com/ru/company/kts/blog/715890/
#kmm #ios
В этой статье Мялкин Максим рассказывает про свой опыт работы с KMM со стороны iOS-разработки и нюансы использования данного SDK:
— где хранить common-код?
— реализация UI, DI и навигации,
— логирование и краши,
— отладка приложения.
Подробнее:
https://habr.com/ru/company/kts/blog/715890/
#kmm #ios
Подкаст: заказчики, платформы и технологии
Команда Mobius выпустила новое видео с Алексеем Гладковым, в котором обсуждают заказчиков и вечный вопрос: Flutter, KMM или нативная разработка?
Самые странные хотелки заказчика, стоит ли соглашаться? Когда стоит отказаться от привычных технологий в пользу чего-то нового — в этом видео:
https://youtu.be/UGow5drkUvA
#android #kmm
Команда Mobius выпустила новое видео с Алексеем Гладковым, в котором обсуждают заказчиков и вечный вопрос: Flutter, KMM или нативная разработка?
Самые странные хотелки заказчика, стоит ли соглашаться? Когда стоит отказаться от привычных технологий в пользу чего-то нового — в этом видео:
https://youtu.be/UGow5drkUvA
#android #kmm