Kotlin Multiplatform
Kevin Galligan из Touchlab (автор экспериментальной поддержки generic'ов в kotlin/native) опубликовал несколько презентаций на тему Kotlin Multiplatform. Kotlin Multiplatform Intro – обзорная презентация о том, что такое Kotlin Multiplatform, какой путь уже…
Продолжение поста о выступлениях Kevin Galligan из Touchlab.
Для презентации Kotlin Multiplatform Libraries опубликовано видео выступления.
#videos
Для презентации Kotlin Multiplatform Libraries опубликовано видео выступления.
#videos
Telegram
Kotlin Mobile MultiPlatform Russia
Kevin Galligan из Touchlab (автор экспериментальной поддержки generic'ов в kotlin/native) опубликовал несколько презентаций на тему Kotlin Multiplatform.
Kotlin Multiplatform Intro – обзорная презентация о том, что такое Kotlin Multiplatform, какой путь…
Kotlin Multiplatform Intro – обзорная презентация о том, что такое Kotlin Multiplatform, какой путь…
И из более нового - вчера на событии CocoaHeads Berlin был доклад Kotlin/Native at Careem: Experience Report.
Ребята перевели Android приложение на kotlin и выделили mpp-модуль, чтобы быстрее запустить iOS приложение. Описали, как выстроили у себя процесс работы с Kotlin MPP, в чем увидели плюсы, а что оказалось сложностью.
Приложение, о котором идет речь:
Careem Captain (Android) - 1,000,000+ установок
Careem Captain (iOS)
#slides
Ребята перевели Android приложение на kotlin и выделили mpp-модуль, чтобы быстрее запустить iOS приложение. Описали, как выстроили у себя процесс работы с Kotlin MPP, в чем увидели плюсы, а что оказалось сложностью.
Приложение, о котором идет речь:
Careem Captain (Android) - 1,000,000+ установок
Careem Captain (iOS)
#slides
Speaker Deck
Kotlin/Native at Careem: Experience Report
At Careem we've been using Kotlin/Native to share business logic between iOS and Android apps, it's time to share our experience.
Еще одно выступление (на этот раз в Мадриде) на тему Kotlin Multiplatform - Building a library for Android & iOS using Kotlin Multiplatform.
О чем говорилось:
• Основы kotlin multiplatform (expect/actual и управление зависимостями);
• Подключение библиотеки к iOS проекту - ручное и через CocoaPods (только плагин неофициальный почему-то упомянут);
• Базовые библиотеки (coroutines, serialization, ktor, sqdelight);
• Тестирование, включая и тестирование кода с coroutines.
#videos
О чем говорилось:
• Основы kotlin multiplatform (expect/actual и управление зависимостями);
• Подключение библиотеки к iOS проекту - ручное и через CocoaPods (только плагин неофициальный почему-то упомянут);
• Базовые библиотеки (coroutines, serialization, ktor, sqdelight);
• Тестирование, включая и тестирование кода с coroutines.
#videos
YouTube
Codemotion Madrid 2019 I Building a library for Android & iOS using Kotlin Multiplatform
Sharing code between platforms is a powerful technique, but it may be hard to accomplish without rich APIs that we have in Android, JVM, or iOS platforms. Kotlin Multiplatform libraries can be used to fix that, bringing rich APIs directly in the common Kotlin…
Shared Code at Quizlet: Deciding on Kotlin Multiplatform - большая и интересная статья про путь компании в теме переиспользования кода между платформами.
Разобрано как они поняли, что пора шарить код. Как проанализировали имеющиеся на тот момент решения, начали шарить код через JavaScript и чему там научились, а в завершение - как решили перейти на Kotlin Multiplatform и краткие итоги по результату перехода.
Это еще один большой продукт, применивший Kotlin Multiplatform.
Quizlet (Android) - 10 000 000+ установок
Quizlet (iOS)
#posts
Разобрано как они поняли, что пора шарить код. Как проанализировали имеющиеся на тот момент решения, начали шарить код через JavaScript и чему там научились, а в завершение - как решили перейти на Kotlin Multiplatform и краткие итоги по результату перехода.
Это еще один большой продукт, применивший Kotlin Multiplatform.
Quizlet (Android) - 10 000 000+ установок
Quizlet (iOS)
#posts
Medium
Shared Code at Quizlet
How We Decided on Kotlin Multiplatform
Для Kotlin Multiplatform вышел аналог moko библиотек - набор библиотек trikot от компании mirego.
В наборе включено:
* trikot.foundation - небольшие полезные компоненты - таймеры, работа с датами, mpp AtomicReference, freeze и очереди для многопоточности;
* trikot.http - http клиент, использующий kotlinx.serialization. Аналог ktor-client;
* trikot.kword - мультиплатформенная локализация с использованием Accent;
* trikot.metaviews - абстракции UI в общем коде, для привязки данных из common кода;
* trikot.streams - реактивные потоки (о этой библиотеке уже упоминал в этом посте).
Так-же есть вводная статья от авторов - Our Next Step in Multiplatform Application Development: Trikot с разбором почему они выбрали Kotlin Multiplatform и для чего используют.
#libs #posts
В наборе включено:
* trikot.foundation - небольшие полезные компоненты - таймеры, работа с датами, mpp AtomicReference, freeze и очереди для многопоточности;
* trikot.http - http клиент, использующий kotlinx.serialization. Аналог ktor-client;
* trikot.kword - мультиплатформенная локализация с использованием Accent;
* trikot.metaviews - абстракции UI в общем коде, для привязки данных из common кода;
* trikot.streams - реактивные потоки (о этой библиотеке уже упоминал в этом посте).
Так-же есть вводная статья от авторов - Our Next Step in Multiplatform Application Development: Trikot с разбором почему они выбрали Kotlin Multiplatform и для чего используют.
#libs #posts
moko.icerock.dev
MObile KOtlin
Kotlin Multiplatform libraries for mobile (android & iOS) development
VMWare тоже пробуют Kotlin Multiplatform и рассказывают о своем опыте в статье Adopting a Cross Platform Strategy for Mobile Apps.
Для их задач потребовался и cintrop-tool - они заинтегрировали нативную C++ библиотеку в ios kotlin код.
Используется Kotlin Multiplatform у них в приложениях Workspace ONE (по информации от участников нашего чата + в статье упоминается com.airwatch).
Touchlab так же написали свое мнение по части пунктов из статьи - Nice to See VMWare Adopting Kotlin Multiplatform.
#posts
Для их задач потребовался и cintrop-tool - они заинтегрировали нативную C++ библиотеку в ios kotlin код.
Используется Kotlin Multiplatform у них в приложениях Workspace ONE (по информации от участников нашего чата + в статье упоминается com.airwatch).
Touchlab так же написали свое мнение по части пунктов из статьи - Nice to See VMWare Adopting Kotlin Multiplatform.
#posts
Medium
Adopting a Cross Platform Strategy for Mobile Apps
Framework of choice: Kotlin Multiplatform
Touchlab выпустили библиотеку CrashKiOS, улучшающую информацию о крешах на iOS.
Судя по залогированных крешах в нашем crashlytics - и без библиотеки креши отображаются нормально. Но, видимо, есть набор крешей, которые не отображаются нормально и именно для этих случаев сделана библиотека.
Почитать детальнее можно в посте - Kotlin Native iOS Crash Reporting.
А еще в Kotlin 1.3.60 была улучшена поддержка отладочных символов и можно dSYM для релизных билдов получать, чтобы загрузить в fabric/appstore/еще куда-либо.
#libs #posts
Судя по залогированных крешах в нашем crashlytics - и без библиотеки креши отображаются нормально. Но, видимо, есть набор крешей, которые не отображаются нормально и именно для этих случаев сделана библиотека.
Почитать детальнее можно в посте - Kotlin Native iOS Crash Reporting.
А еще в Kotlin 1.3.60 была улучшена поддержка отладочных символов и можно dSYM для релизных билдов получать, чтобы загрузить в fabric/appstore/еще куда-либо.
#libs #posts
GitHub
GitHub - touchlab/CrashKiOS: Crash reporting for Kotlin/Native iOS applications
Crash reporting for Kotlin/Native iOS applications - touchlab/CrashKiOS
Пачка новостей с KotlinConf:
1. Объявлены большие продукты использующие Kotlin Multiplatform для мобильной разработки (половина из них уже были в нашем канале);
2. в 2020 году будет добавлена поддержка запуска и отладки kotlin приложений на iOS через Android Studio;
3. JetBrains показали лендинг по mobile multiplatform - здесь и набор библиотек для старта, и компании которые используют KMP в продакшене, и плюсы данного подхода;
4. Мы (IceRock) показали свою опенсорс версию moko widgets (github);
5. Kotlin Product Manager запустил тред в твиттере, где рассказал на сколько серьезно JetBrains относятся к kotlin multiplatform и mobile multiplatform в частности, а так же указал ссылки на статьи о опыте продакшен разработки;
6. Так же были выступления о планах по KMP, о опыте мобильной мультиплатформы, о многопоточности.
Разбор выступлений, касающихся мобильной мультиплатформы, и ссылки на материалы буду кидать постепенно в следующие дни.
Так же недавно нами был проведен Kotlin/Everywhere Novosibirsk, который был полностью уделен Kotlin Multiplatform. Видео доступны здесь. Два выступления про разработку от нас и два выступления про kotlin gradle и kotlin/native от JetBrains - рекомендую посмотреть, очень интересная и понятная информация про commonizer в K/N.
А еще у нас есть twitter - @KotlinMPP, где публикуется информация прямиком с KotlinKonf, а так же новости по мобильной мультиплатформе.
#news
1. Объявлены большие продукты использующие Kotlin Multiplatform для мобильной разработки (половина из них уже были в нашем канале);
2. в 2020 году будет добавлена поддержка запуска и отладки kotlin приложений на iOS через Android Studio;
3. JetBrains показали лендинг по mobile multiplatform - здесь и набор библиотек для старта, и компании которые используют KMP в продакшене, и плюсы данного подхода;
4. Мы (IceRock) показали свою опенсорс версию moko widgets (github);
5. Kotlin Product Manager запустил тред в твиттере, где рассказал на сколько серьезно JetBrains относятся к kotlin multiplatform и mobile multiplatform в частности, а так же указал ссылки на статьи о опыте продакшен разработки;
6. Так же были выступления о планах по KMP, о опыте мобильной мультиплатформы, о многопоточности.
Разбор выступлений, касающихся мобильной мультиплатформы, и ссылки на материалы буду кидать постепенно в следующие дни.
Так же недавно нами был проведен Kotlin/Everywhere Novosibirsk, который был полностью уделен Kotlin Multiplatform. Видео доступны здесь. Два выступления про разработку от нас и два выступления про kotlin gradle и kotlin/native от JetBrains - рекомендую посмотреть, очень интересная и понятная информация про commonizer в K/N.
А еще у нас есть twitter - @KotlinMPP, где публикуется информация прямиком с KotlinKonf, а так же новости по мобильной мультиплатформе.
#news
Twitter
Kotlin Mobile MultiPlatform with IceRock
It’s completely about Kotlin Multiplatform in use! #kotlinconf #kotlinmpp
Начнем разбор выступлений с kotlinconf по mobile kotlin multiplatform. Каждый день будет по 2 выступления, что позволит тем, кто не смотрел трансляцию, ознакомиться, не перегружая себя информацией.
Главный доклад первого дня - Kotlin/Native Concurrency explained. Про самую горячую тему в Kotlin/Native - многопоточность.
Разобрано:
- Правила многопоточности K/N;
- Worker API;
- Illegal transfer state - что это и почему возникает;
- Заморозка объектов (freeze);
- InvalidMutabilityException - что это и в каких случаях возникает;
- ThreadLocal и SharedImmutable аннотации;
- Зачем нужен ensureNeverFrozen и где его можно использовать;
- AtomicReference и прочие Atomic***;
- DetachedObjectGraph;
- multithreaded coroutines (спикер уже попробовал сам текущую дев версию корутин с многопоточностью).
Все разобрано с наглядными и понятными примерами, показаны неочевидные кейсы.
Выступление обязательно к ознакомлению всем, кто интересуется multiplatform. Примеры кода из выступления доступны на github.
Второе выступление - Shipping multiplatform on iOS & Android. Опыт добавления мультиплатформы в Square (CashApp) и AutoDesk (PlanGrid) - продуктов с миллионами пользователей.
Рассказ включает:
- Что именно ушло в общую библиотеку (бизнеслогика, синхронизация данных, оффлайн режим, поиск);
- Почему выбрали KMP;
- Как работается с value type (например структуры, которых в iOS API много);
- Чем отличается Garbage Collector Kotlin/Native от GC JVM;
- Какое соотношение кода в common и platform-specific;
- Сетевое взаимодействие не через ktor-client;
- MPP freeze;
- Работа с крешами в Worker'ах;
- Варианты хранения кода в репозиториях при работе с общей библиотекой (монореп, копипаст, выделенный репозиторий с общей библиотекой).
Тоже годный доклад, который скорей всего даст вам новых знаний.
#videos
Главный доклад первого дня - Kotlin/Native Concurrency explained. Про самую горячую тему в Kotlin/Native - многопоточность.
Разобрано:
- Правила многопоточности K/N;
- Worker API;
- Illegal transfer state - что это и почему возникает;
- Заморозка объектов (freeze);
- InvalidMutabilityException - что это и в каких случаях возникает;
- ThreadLocal и SharedImmutable аннотации;
- Зачем нужен ensureNeverFrozen и где его можно использовать;
- AtomicReference и прочие Atomic***;
- DetachedObjectGraph;
- multithreaded coroutines (спикер уже попробовал сам текущую дев версию корутин с многопоточностью).
Все разобрано с наглядными и понятными примерами, показаны неочевидные кейсы.
Выступление обязательно к ознакомлению всем, кто интересуется multiplatform. Примеры кода из выступления доступны на github.
Второе выступление - Shipping multiplatform on iOS & Android. Опыт добавления мультиплатформы в Square (CashApp) и AutoDesk (PlanGrid) - продуктов с миллионами пользователей.
Рассказ включает:
- Что именно ушло в общую библиотеку (бизнеслогика, синхронизация данных, оффлайн режим, поиск);
- Почему выбрали KMP;
- Как работается с value type (например структуры, которых в iOS API много);
- Чем отличается Garbage Collector Kotlin/Native от GC JVM;
- Какое соотношение кода в common и platform-specific;
- Сетевое взаимодействие не через ktor-client;
- MPP freeze;
- Работа с крешами в Worker'ах;
- Варианты хранения кода в репозиториях при работе с общей библиотекой (монореп, копипаст, выделенный репозиторий с общей библиотекой).
Тоже годный доклад, который скорей всего даст вам новых знаний.
#videos
YouTube
Aud 15
KotlinConf live from Copenhagen!
Schedule:
9:25 Ktor for Mobile Developers: Fear the server no more! - Dan Kim
1:12:06 Coroutines! Gotta catch ‘em all! - Florina Muntenescu, Manuel Vivo
2:54:45 The state of Kotlin/JS - Sebastian Aigner
3:54:27 Kotlin Multiplatform…
Schedule:
9:25 Ktor for Mobile Developers: Fear the server no more! - Dan Kim
1:12:06 Coroutines! Gotta catch ‘em all! - Florina Muntenescu, Manuel Vivo
2:54:45 The state of Kotlin/JS - Sebastian Aigner
3:54:27 Kotlin Multiplatform…
Effective Kotlin-Swift interoperability - про особенности на стыке Kotlin и Swift.
В выступлении:
- Синглтоны;
- Разные примитивы (int32, int64, ...);
- Автоматическое добавление _ в пересекающиеся имена функций/аргументов;
- Особенности с enum, sealed class;
- Поддержка Generic'ов;
- Value types;
- Build perfomance;
- Runtime perfomance;
- Доступные библиотеки с поддержкой iOS.
Рекомендую всем, кто использует Kotlin Framework из Swift кода.
#videos
В выступлении:
- Синглтоны;
- Разные примитивы (int32, int64, ...);
- Автоматическое добавление _ в пересекающиеся имена функций/аргументов;
- Особенности с enum, sealed class;
- Поддержка Generic'ов;
- Value types;
- Build perfomance;
- Runtime perfomance;
- Доступные библиотеки с поддержкой iOS.
Рекомендую всем, кто использует Kotlin Framework из Swift кода.
#videos
YouTube
Aud 11
KotlinConf live from Copenhagen!
Schedule:
10:00 The best runtime for Kotlin is obviously GraalVM, isn't it? - Oleg Šelajev
1:10:00 The state of Kotlin support in Spring - Sebastien Deleuze
2:55:00 Creating Full-stack Web Apps with Kotlin DSLs - Pamela Hill…
Schedule:
10:00 The best runtime for Kotlin is obviously GraalVM, isn't it? - Oleg Šelajev
1:10:00 The state of Kotlin support in Spring - Sebastien Deleuze
2:55:00 Creating Full-stack Web Apps with Kotlin DSLs - Pamela Hill…
Kotlin multiplatform - past, present, future - какой путь уже прошла мультиплатформа и что планируется в будущем.
Часть выступления это история развития, с какими проблемами сталкивалась команда, а так же пример - как выглядит мультиплатформа сейчас (снаружи и внутри).
Описана идея hierarhical multiplatform projects и зачем это нужно, а так же почему это так долго и тяжело реализуется.
На примере posix показали ад мультиплатформы (разница API в мелких деталях увеличивается с каждой подключенной платформой) и инструмент, который должен решить задачу шаринга платформенных библиотек - Commonizer (про этот инструмент так же рассказывал Дмитрий Доловов на Kotlin/Everywhere Nsk). А так же задели упрощение работы с зависимостями через gradle metadata (об этом более детально говорил Илья Матвеев так же на Kotlin/Everywhere Nsk).
На будущее планируют больше обучающих материалов и больше кейсов что и как шарилось (начали с mobile) и улучшать экосистему инструментов.
Выступление несет мало технических деталей и расчитано на массовую аудиторию для ознакомления, чего-либо нового не несет (упоминание commonizer'а только, но не детально - детали есть в выступлении с Kotlin/Everywhere Nsk).
#videos
Часть выступления это история развития, с какими проблемами сталкивалась команда, а так же пример - как выглядит мультиплатформа сейчас (снаружи и внутри).
Описана идея hierarhical multiplatform projects и зачем это нужно, а так же почему это так долго и тяжело реализуется.
На примере posix показали ад мультиплатформы (разница API в мелких деталях увеличивается с каждой подключенной платформой) и инструмент, который должен решить задачу шаринга платформенных библиотек - Commonizer (про этот инструмент так же рассказывал Дмитрий Доловов на Kotlin/Everywhere Nsk). А так же задели упрощение работы с зависимостями через gradle metadata (об этом более детально говорил Илья Матвеев так же на Kotlin/Everywhere Nsk).
На будущее планируют больше обучающих материалов и больше кейсов что и как шарилось (начали с mobile) и улучшать экосистему инструментов.
Выступление несет мало технических деталей и расчитано на массовую аудиторию для ознакомления, чего-либо нового не несет (упоминание commonizer'а только, но не детально - детали есть в выступлении с Kotlin/Everywhere Nsk).
#videos
YouTube
Keynote
KotlinConf live from Copenhagen!
Schedule:
6:00 Opening Keynote
1:20:28 Putting Down the Golden Hammer - Huyen Tue Dao
2:32:17 MPP in 1.3.X and beyond - Dmitry Savvinov, Liliia Abdulina
4:06:32 Compose Yourself: designing a Kotlin first UI Toolkit - Anna…
Schedule:
6:00 Opening Keynote
1:20:28 Putting Down the Golden Hammer - Huyen Tue Dao
2:32:17 MPP in 1.3.X and beyond - Dmitry Savvinov, Liliia Abdulina
4:06:32 Compose Yourself: designing a Kotlin first UI Toolkit - Anna…
Kotlin Multiplatform in action: more than 10 projects for iOS and Android with shared code - наше (IceRock) выступление.
В выступлении:
- Как вводили MPP в работу;
- Как масштабировали на всю компанию (хронологически);
- Что вынесли в опенсорс из внутренних разработок компании (moko библиотеки);
- Показали moko-widgets в работе, на нескольких примерах. Библиотека позволяет построить все приложение из общего кода (сейчас тестируется внедрением в боевой проект).
Так же есть запись live-coding'а с использованием moko-widgets на примере более старой версии библиотеки.
#videos #libs
В выступлении:
- Как вводили MPP в работу;
- Как масштабировали на всю компанию (хронологически);
- Что вынесли в опенсорс из внутренних разработок компании (moko библиотеки);
- Показали moko-widgets в работе, на нескольких примерах. Библиотека позволяет построить все приложение из общего кода (сейчас тестируется внедрением в боевой проект).
Так же есть запись live-coding'а с использованием moko-widgets на примере более старой версии библиотеки.
#videos #libs
YouTube
Aud 15
KotlinConf live from Copenhagen!
Schedule:
9:25 Ktor for Mobile Developers: Fear the server no more! - Dan Kim
1:12:06 Coroutines! Gotta catch ‘em all! - Florina Muntenescu, Manuel Vivo
2:54:45 The state of Kotlin/JS - Sebastian Aigner
3:54:27 Kotlin Multiplatform…
Schedule:
9:25 Ktor for Mobile Developers: Fear the server no more! - Dan Kim
1:12:06 Coroutines! Gotta catch ‘em all! - Florina Muntenescu, Manuel Vivo
2:54:45 The state of Kotlin/JS - Sebastian Aigner
3:54:27 Kotlin Multiplatform…
Your Multiplatform Kaptain has Arrived - Careem делятся деталями о использовании Kotlin Multiplatform.
25k строк расшаренного кода, год в продакшене на Android и 7 месяцев на iOS. 5 iOS и 11 Android разработчиков в команде.
Решились на переписывание бизнес-логики, на Kotlin, на новой архитектуре (MVI).
Сначала попробовали добавление iOS платформы через переписывание kotlin в swift код, но это не удалось поддерживать в дальнейшем, поэтому пошли в KMP.
Что поняли:
1. Нужно избегать Android Driven Development (iOS разработчики должны так же принимать участие в разработке общей логики, чтобы лучше понимать что и как делается в приложении и получать оптимальный для обеих платформ API);
2. Общение команд Android и iOS должно быть плотнее, чем при чистой нативной разработке, мерж реквесты должны проверяться представителями обеих платформ, большие фичи должны обсуждаться сообща;
3. Разработка общей библиотеки требует иного понимания разработки приложения.
4. Шарить между платформами то, что комфортно шарить для обеих платформ.
Так же упомянуты некоторые технические особенности, например изменение имен классов при дублировании, экспорт классов из зависимостей в фреймворк. А так же что потерялось из-за интеропа с ObjC, вместо Swift.
В конце зачитан стих посвященный kotlin mpp, это надо видеть :)
Не только конец надо видеть, а все выступление - оно достаточно информативное.
#videos
25k строк расшаренного кода, год в продакшене на Android и 7 месяцев на iOS. 5 iOS и 11 Android разработчиков в команде.
Решились на переписывание бизнес-логики, на Kotlin, на новой архитектуре (MVI).
Сначала попробовали добавление iOS платформы через переписывание kotlin в swift код, но это не удалось поддерживать в дальнейшем, поэтому пошли в KMP.
Что поняли:
1. Нужно избегать Android Driven Development (iOS разработчики должны так же принимать участие в разработке общей логики, чтобы лучше понимать что и как делается в приложении и получать оптимальный для обеих платформ API);
2. Общение команд Android и iOS должно быть плотнее, чем при чистой нативной разработке, мерж реквесты должны проверяться представителями обеих платформ, большие фичи должны обсуждаться сообща;
3. Разработка общей библиотеки требует иного понимания разработки приложения.
4. Шарить между платформами то, что комфортно шарить для обеих платформ.
Так же упомянуты некоторые технические особенности, например изменение имен классов при дублировании, экспорт классов из зависимостей в фреймворк. А так же что потерялось из-за интеропа с ObjC, вместо Swift.
В конце зачитан стих посвященный kotlin mpp, это надо видеть :)
Не только конец надо видеть, а все выступление - оно достаточно информативное.
#videos
YouTube
Aud 12
KotlinConf live from Copenhagen!
Schedule:
8:37 Building Progressive Web Apps in Kotlin - Erik Hellman
1:13:07 Kotless - Kotlin Serverless Framework - Vladislav Tankov
2:57:00 Coroutines Case Study - Cleaning Up An Async API - Tom Hanley
3:55:00 Bridge the…
Schedule:
8:37 Building Progressive Web Apps in Kotlin - Erik Hellman
1:13:07 Kotless - Kotlin Serverless Framework - Vladislav Tankov
2:57:00 Coroutines Case Study - Cleaning Up An Async API - Tom Hanley
3:55:00 Bridge the…
I walk the line - What parts of an app should be in Kotlin/Native - and what parts shouldn't? - опыт разработки небольшого проекта с шарингом кода между Android и iOS.
В выступлении:
- Чем отличается Kotlin от обычной кроссплатформы;
- Выбор архитектуры;
- Интеграция с swift ui;
- Генерация цветов из общего описания для android и iOS ресурсов;
- Мнение когда имеет смысл использовать Kotlin/Native.
Код проекта доступен на github. Действительно интересная была часть про генерацию цветов и про стык с swift ui (но там немного).
#videos
В выступлении:
- Чем отличается Kotlin от обычной кроссплатформы;
- Выбор архитектуры;
- Интеграция с swift ui;
- Генерация цветов из общего описания для android и iOS ресурсов;
- Мнение когда имеет смысл использовать Kotlin/Native.
Код проекта доступен на github. Действительно интересная была часть про генерацию цветов и про стык с swift ui (но там немного).
#videos
YouTube
Aud 12
KotlinConf live from Copenhagen!
Schedule:
7:28 I Walk The Line: What Parts Of An App Should be in Kotlin Native - and What Parts Shouldn't? - Ellen Shapiro
1:07:34 Using Kotlin for Data Science - Roman Belov
2:54:22 Keep insisting! - Amanda Hinchman-Dominguez…
Schedule:
7:28 I Walk The Line: What Parts Of An App Should be in Kotlin Native - and What Parts Shouldn't? - Ellen Shapiro
1:07:34 Using Kotlin for Data Science - Roman Belov
2:54:22 Keep insisting! - Amanda Hinchman-Dominguez…
Kotlin in Space - использование kotlin в новом проекте JetBrains - Space. Kotlin там везде.
В выступлении:
- Kotlin на мобилках, фронте, бекенде, плагинах к IDEA;
- Шарили data model, view model, валидацию, утилсы и т.д.;
- Не шарили UI и Storage;
- Exposed для работы с DB;
- Ktor для client-server взаимодействия;
- WebSocket RPC на базе Ktor;
- Документирование Rest API;
- Kotlin-React для фронта;
- Тесты;
- Система автоматизации (заявленная поддержка kotlin-script для своих кастомных операций в Space).
Стоит посмотреть, чтобы увидеть возможности kotlin multiplatform в масштабном проекте.
#videos
В выступлении:
- Kotlin на мобилках, фронте, бекенде, плагинах к IDEA;
- Шарили data model, view model, валидацию, утилсы и т.д.;
- Не шарили UI и Storage;
- Exposed для работы с DB;
- Ktor для client-server взаимодействия;
- WebSocket RPC на базе Ktor;
- Документирование Rest API;
- Kotlin-React для фронта;
- Тесты;
- Система автоматизации (заявленная поддержка kotlin-script для своих кастомных операций в Space).
Стоит посмотреть, чтобы увидеть возможности kotlin multiplatform в масштабном проекте.
#videos
YouTube
Aud 12
KotlinConf live from Copenhagen!
Schedule:
7:28 I Walk The Line: What Parts Of An App Should be in Kotlin Native - and What Parts Shouldn't? - Ellen Shapiro
1:07:34 Using Kotlin for Data Science - Roman Belov
2:54:22 Keep insisting! - Amanda Hinchman-Dominguez…
Schedule:
7:28 I Walk The Line: What Parts Of An App Should be in Kotlin Native - and What Parts Shouldn't? - Ellen Shapiro
1:07:34 Using Kotlin for Data Science - Roman Belov
2:54:22 Keep insisting! - Amanda Hinchman-Dominguez…
Завершение цикла постов о KotlinConf:
Going Native - опыт разработки мультиплатформенного игрового приложения.
В выступлении:
- Демо самой игры;
- Что ушло в общий код;
- Архитектура с множеством математических игр на двух платформах;
- Сравнение API между платформами;
- Рисование через общий код;
- Примеры утечек памяти;
- Особенности на стыке Kotlin и Swift (синглтоны, списки).
Sharing is caring - intro to kotlin multiplatform - погружение в мультиплатформу. В целом ничего нового и выделяющегося в выступлении не было.
"Share only what you want when you want" - хорошее выражение силы kotlin multiplatform.
И из последних новостей:
Вышла новая версия Kotlinx.coroutines 1.3.3 с обновлением kotlin до 1.3.61, рядом багфиксов, поддержкой watchOS, tvOS. В новом релизе пока нет поддержки многопоточности для Native (все еще в разработке).
#videos #libs
Going Native - опыт разработки мультиплатформенного игрового приложения.
В выступлении:
- Демо самой игры;
- Что ушло в общий код;
- Архитектура с множеством математических игр на двух платформах;
- Сравнение API между платформами;
- Рисование через общий код;
- Примеры утечек памяти;
- Особенности на стыке Kotlin и Swift (синглтоны, списки).
Sharing is caring - intro to kotlin multiplatform - погружение в мультиплатформу. В целом ничего нового и выделяющегося в выступлении не было.
"Share only what you want when you want" - хорошее выражение силы kotlin multiplatform.
И из последних новостей:
Вышла новая версия Kotlinx.coroutines 1.3.3 с обновлением kotlin до 1.3.61, рядом багфиксов, поддержкой watchOS, tvOS. В новом релизе пока нет поддержки многопоточности для Native (все еще в разработке).
#videos #libs
YouTube
Aud 15
KotlinConf live from Copenhagen!
Schedule:
6:40 The Compose Runtime, Demystified - Leland Richardson
1:07:15 Failure is not an Option - error handling strategies for Kotlin programs - Nat Pryce, Duncan McGregor
2:53:05 Testing with Coroutines - Sean McQuillan…
Schedule:
6:40 The Compose Runtime, Demystified - Leland Richardson
1:07:15 Failure is not an Option - error handling strategies for Kotlin programs - Nat Pryce, Duncan McGregor
2:53:05 Testing with Coroutines - Sean McQuillan…
Kotlin Multiplatform iOS frameworks dependencies - описание как подключить нативный iOS framework в Kotlin/Native.
Разобрано подключение FirebaseML Vision, с использованием cocoapods плагина и cinterop (из-за subspec'ов).
В простых случаях достаточно cocoapods-gradle plugin (раздел Interop в документации Kotlin/Native).
Для тех кому интересна тема подключения нативных библиотек в Kotlin/Native есть пример FirestoreKMP.
#posts #libs
Разобрано подключение FirebaseML Vision, с использованием cocoapods плагина и cinterop (из-за subspec'ов).
В простых случаях достаточно cocoapods-gradle plugin (раздел Interop в документации Kotlin/Native).
Для тех кому интересна тема подключения нативных библиотек в Kotlin/Native есть пример FirestoreKMP.
#posts #libs
Medium
Kotlin Multiplatform iOS frameworks dependencies
How to add iOS frameworks to Kotlin Multiplatform Library using cocoapods and cinteropt.
Forwarded from Egor Tolstoy
Всем привет! Мы стартанули новое исследование, в этот раз – про то, насколько понятны различные аспекты работы с мемори моделью в Kotlin/Native. В опросе – 10 сниппетов кода, для каждого из которых нужно ответить на два вопроса – согласны ли вы с результатом выполнения кода и понимаете ли, почему он работает именно так. Мы ждем ответов и от опытных пользователей, и от новичков.
Ваше участие сильно поможет нам в понимании текущих проблем и поиске решений для них.
https://surveys.jetbrains.com/s3/kotlin-native-memory-model-research
Ваше участие сильно поможет нам в понимании текущих проблем и поиске решений для них.
https://surveys.jetbrains.com/s3/kotlin-native-memory-model-research
Jetbrains
Kotlin/Native Memory Model Research
Kotlin/Native Memory Model Research.
Насколько Kotlin Multiplatform готов для эффективной разработки мобильных приложений - выступление с митапа Leroy Merlin. Спикер из Kaspersky Lab рассказал:
* Как шарят код между платформами в Kaspersky;
* Основы Kotlin Multiplatform;
* Немного болей Kotlin/Native;
* Свою историю реализации фуллстек kotlin multiplatform приложения;
* Стоимость перехода на Kotlin Multiplatform;
* Сравнение с Flutter.
#videos
* Как шарят код между платформами в Kaspersky;
* Основы Kotlin Multiplatform;
* Немного болей Kotlin/Native;
* Свою историю реализации фуллстек kotlin multiplatform приложения;
* Стоимость перехода на Kotlin Multiplatform;
* Сравнение с Flutter.
#videos
YouTube
Новогодний kotlin: Эффективная мультиплатформа и статический анализ кода
7:03 — Первый доклад: "Готов ли Kotlin Multiplatform для эффективной разработки мобильных приложений?"
Андрей Берюхов из Kaspersky Lab расскажет о базовых принципах работы с Kotlin Multiplatform (MPP) и проблемах, которые приходится решать; поделится своими…
Андрей Берюхов из Kaspersky Lab расскажет о базовых принципах работы с Kotlin Multiplatform (MPP) и проблемах, которые приходится решать; поделится своими…
А еще в нашем чатике @kotlinmppchats ребята из JetBrains ждут ваш фидбек по проблемам отладки в kotlin multiplatform
Forwarded from Liliia Abdulina
Всем привет! И снова команда mobile multiplatform на связи, и снова нужна ваша помощь :)
На этот раз дебаг, сейчас я составляю базовые сценарии его использования. Скажите, пожалуйста, когда/для чего вы чаще всего запускаете дебаггер? Тесты, юай, упоротый алгоритм, шальная переменная, что-то иное? Какие из функций дебаггера (степпинг, evaluate, etc.) — ваши любимые и заставляют особенно грустить, если они не работают? Что, на ваш взгляд, ну точно должно работать в дебаггере?
Отвечать можно на все вопросы, на какой-либо из заданных или на тот, что не прозвучал, но важен для debug experience :)
На этот раз дебаг, сейчас я составляю базовые сценарии его использования. Скажите, пожалуйста, когда/для чего вы чаще всего запускаете дебаггер? Тесты, юай, упоротый алгоритм, шальная переменная, что-то иное? Какие из функций дебаггера (степпинг, evaluate, etc.) — ваши любимые и заставляют особенно грустить, если они не работают? Что, на ваш взгляд, ну точно должно работать в дебаггере?
Отвечать можно на все вопросы, на какой-либо из заданных или на тот, что не прозвучал, но важен для debug experience :)