Room для Kotlin Multiplatform. Пробуем нативное решение
Всем привет! На связи Анна Жаркова, руководитель группы мобильной разработки в компании Usetech. В начале мая Google нас порадовали релизами нескольких библиотек для локальных хранилищ. Наконец, в приложения Kotlin Multiplatform можно полноценно использовать Room (версия 2.7.0-alpha01 и выше).
И сегодня мы опробуем работу с данной библиотекой на примере небольшого приложения Todo, написанного на KMP с использованием Compose Multiplatform.
https://habr.com/ru/companies/usetech/articles/812453/
✍️ @kotlin_lib
Всем привет! На связи Анна Жаркова, руководитель группы мобильной разработки в компании Usetech. В начале мая Google нас порадовали релизами нескольких библиотек для локальных хранилищ. Наконец, в приложения Kotlin Multiplatform можно полноценно использовать Room (версия 2.7.0-alpha01 и выше).
И сегодня мы опробуем работу с данной библиотекой на примере небольшого приложения Todo, написанного на KMP с использованием Compose Multiplatform.
https://habr.com/ru/companies/usetech/articles/812453/
✍️ @kotlin_lib
👍4🤡1
Kotlin Roundup: KotlinConf 2024 Keynote Highlights
Этот специальный выпуск Kotlin Roundup посвящен исключительно KotlinConf 2024, которая прошла на прошлой неделе. На открытии конференции Егор Толстой, Михаил Зареченский, Екатерина Петрова, Себастьян Айгнер, Всеволод Толстопятов и Светлана Исакова объявили о множестве интересных обновлений, касающихся недавней работы JetBrains над языком Kotlin. Тем временем наши приглашенные докладчики, Джеффри ван Гог (Google), Джули Гундерсон (Amazon Web Services) и Ева Маттхей (Meta), поделились последними новостями своих компаний.
https://blog.jetbrains.com/kotlin/2024/05/kotlin-roundup-kotlinconf-2024-keynote-highlights/
✍️ @kotlin_lib
Этот специальный выпуск Kotlin Roundup посвящен исключительно KotlinConf 2024, которая прошла на прошлой неделе. На открытии конференции Егор Толстой, Михаил Зареченский, Екатерина Петрова, Себастьян Айгнер, Всеволод Толстопятов и Светлана Исакова объявили о множестве интересных обновлений, касающихся недавней работы JetBrains над языком Kotlin. Тем временем наши приглашенные докладчики, Джеффри ван Гог (Google), Джули Гундерсон (Amazon Web Services) и Ева Маттхей (Meta), поделились последними новостями своих компаний.
https://blog.jetbrains.com/kotlin/2024/05/kotlin-roundup-kotlinconf-2024-keynote-highlights/
✍️ @kotlin_lib
The JetBrains Blog
Kotlin Roundup: KotlinConf 2024 Keynote Highlights | The Kotlin Blog
Catch up on all the KotlinConf 2024 highlights!
👍5🤡1
Взаимодействие Kotlin/Wasm с Javascript
Kotlin/Wasm обеспечивает двунаправленное взаимодействие между Kotlin и Javascript, позволяя вам вызывать функции на обеих сторонах. Давайте погрузимся в эту тему и рассмотрим ее ограничения и обходные пути.
https://touchlab.co/kotlin-wasm-js-interop
✍️ @kotlin_lib
Kotlin/Wasm обеспечивает двунаправленное взаимодействие между Kotlin и Javascript, позволяя вам вызывать функции на обеих сторонах. Давайте погрузимся в эту тему и рассмотрим ее ограничения и обходные пути.
https://touchlab.co/kotlin-wasm-js-interop
✍️ @kotlin_lib
👍1
Как и зачем мы затащили GeckoView в Почту
Начиная с июня 2023 года мы стали получать жалобы от пользователей о том, что у них не отображаются письма в Android-клиенте Почты Mail.ru. В ходе исследования мы даже приглашали пользователя к нам в офис для отладки. В конце концов мы поняли, что проблема на стороне WebView, компонента, с помощью которого мы можем отображать веб страницы. Ни для кого не секрет, что WebView используется во многих банковских и почтовых клиентах, в приложениях интернет-магазинов, сервисов доставки и многих других. Также изучили другие почтовые сервисы, нам хотелось понять, как они с этим справились. Оказалось — никак :)
https://habr.com/ru/companies/vk/articles/820803/
✍️ @kotlin_lib
Начиная с июня 2023 года мы стали получать жалобы от пользователей о том, что у них не отображаются письма в Android-клиенте Почты Mail.ru. В ходе исследования мы даже приглашали пользователя к нам в офис для отладки. В конце концов мы поняли, что проблема на стороне WebView, компонента, с помощью которого мы можем отображать веб страницы. Ни для кого не секрет, что WebView используется во многих банковских и почтовых клиентах, в приложениях интернет-магазинов, сервисов доставки и многих других. Также изучили другие почтовые сервисы, нам хотелось понять, как они с этим справились. Оказалось — никак :)
https://habr.com/ru/companies/vk/articles/820803/
✍️ @kotlin_lib
👍2
Media is too big
VIEW IN TELEGRAM
Kotlin/Wasm — Compile Once Run Everywhere by Zalim Bashorov @ Wasm I/O 2024
В этом докладе мы рассмотрим последние разработки в Kotlin/Wasm: инструменты, компилятор и экосистему вокруг него. Мы покажем практические примеры, демонстрирующие, как Kotlin/Wasm может быть использован в различных средах. Давайте вместе определим место Kotlin в мире WebAssembly!
источник
✍️ @kotlin_lib
В этом докладе мы рассмотрим последние разработки в Kotlin/Wasm: инструменты, компилятор и экосистему вокруг него. Мы покажем практические примеры, демонстрирующие, как Kotlin/Wasm может быть использован в различных средах. Давайте вместе определим место Kotlin в мире WebAssembly!
источник
✍️ @kotlin_lib
👍3
Инжектирование приложений Compose с помощью Koin - от Android к мультиплатформе
Если вы пропустили KotlinConf, вот статья, в которой рассказывается обо всем, что касается инъекции зависимостей Koin для разработки всех приложений Compose, от Android Jetpack Compose до полноценных мультиплатформенных Kotlin-приложений.
https://blog.insert-koin.io/injecting-your-compose-applications-with-koin-c9c8b1166702
✍️ @kotlin_lib
Если вы пропустили KotlinConf, вот статья, в которой рассказывается обо всем, что касается инъекции зависимостей Koin для разработки всех приложений Compose, от Android Jetpack Compose до полноценных мультиплатформенных Kotlin-приложений.
https://blog.insert-koin.io/injecting-your-compose-applications-with-koin-c9c8b1166702
✍️ @kotlin_lib
👍1
Немультиплатформенные привычки Android-разработки
0:00 Вступление
0:18 Для кого доклад
0:38 План
1:19 Об эксперте
2:35 Важно!
2:46 KMP Стек технологий
11:32 Переход с Java API
18:01 Переход с Android API
29:03 Использование Compose
36:07 Итоговые советы
37:47 Заключение
https://www.youtube.com/watch?v=pTyWagI8G5g
✍️ @kotlin_lib
0:00 Вступление
0:18 Для кого доклад
0:38 План
1:19 Об эксперте
2:35 Важно!
2:46 KMP Стек технологий
11:32 Переход с Java API
18:01 Переход с Android API
29:03 Использование Compose
36:07 Итоговые советы
37:47 Заключение
https://www.youtube.com/watch?v=pTyWagI8G5g
✍️ @kotlin_lib
YouTube
Немультиплатформенные привычки Android-разработки
Алексей Панов делится тем, как Android разработчику начать писать на Kotlin Multiplatform и отучиться от платформенных привычек
🔗 Каналы "Android Broadcast" https://taplink.cc/android_broadcast
✉️ Написать Кирилл [email protected]
🔗 Канал Алексея…
🔗 Каналы "Android Broadcast" https://taplink.cc/android_broadcast
✉️ Написать Кирилл [email protected]
🔗 Канал Алексея…
👍1👎1
News-KMP-App
Приложение News KMP - это мультиплатформенный проект на Kotlin Compose, цель которого - обеспечить единообразный опыт чтения новостей на различных платформах, включая Android, iOS, Windows, macOS и Linux. В этом проекте используются мультиплатформенные возможности Kotlin для совместного использования кода и логики, а также Compose для пользовательского интерфейса, что обеспечивает бесшовную и естественную работу на каждой платформе.
https://github.com/Coding-Meet/News-KMP-App?tab=readme-ov-file
✍️ @kotlin_lib
Приложение News KMP - это мультиплатформенный проект на Kotlin Compose, цель которого - обеспечить единообразный опыт чтения новостей на различных платформах, включая Android, iOS, Windows, macOS и Linux. В этом проекте используются мультиплатформенные возможности Kotlin для совместного использования кода и логики, а также Compose для пользовательского интерфейса, что обеспечивает бесшовную и естественную работу на каждой платформе.
https://github.com/Coding-Meet/News-KMP-App?tab=readme-ov-file
✍️ @kotlin_lib
👍6
Рассматриваются проблемы скорости билда и пути их решения
Медленное время сборки мультиплатформенной iOS на Kotlin? Многие команды создают больше архитектур, чем требуется или предполагается. Убедитесь, что вы не тратите время на сборку впустую
https://touchlab.co/touchlab-build-only-what-you-need
✍️ @kotlin_lib
Медленное время сборки мультиплатформенной iOS на Kotlin? Многие команды создают больше архитектур, чем требуется или предполагается. Убедитесь, что вы не тратите время на сборку впустую
https://touchlab.co/touchlab-build-only-what-you-need
✍️ @kotlin_lib
👍2
Firebase Kotlin SDK
Firebase Kotlin SDK — это Kotlin-first SDK для Firebase. API аналогичен Kotlin-расширениям Firebase Android SDK, но также поддерживает мультиплатформенные проекты, позволяя использовать Firebase непосредственно из единого источника, ориентированного на iOS, Android, Desktop или Web, что дает возможность использовать Firebase в качестве бэкенда, например, для Compose Multiplatform.
https://github.com/GitLiveApp/firebase-kotlin-sdk
✍️ @kotlin_lib
Firebase Kotlin SDK — это Kotlin-first SDK для Firebase. API аналогичен Kotlin-расширениям Firebase Android SDK, но также поддерживает мультиплатформенные проекты, позволяя использовать Firebase непосредственно из единого источника, ориентированного на iOS, Android, Desktop или Web, что дает возможность использовать Firebase в качестве бэкенда, например, для Compose Multiplatform.
https://github.com/GitLiveApp/firebase-kotlin-sdk
✍️ @kotlin_lib
GitHub
GitHub - GitLiveApp/firebase-kotlin-sdk: A Kotlin-first SDK for Firebase
A Kotlin-first SDK for Firebase. Contribute to GitLiveApp/firebase-kotlin-sdk development by creating an account on GitHub.
👍4
Наброски кода с помощью Kotlin Notebooks: Руководство для разработчиков
Как разработчик вы, возможно, уже знакомы с Kotlin Notebooks, а может быть, даже немного экспериментировали с ними. Но, скорее всего, вы все еще пытаетесь понять, как эффективно применять их в реальных сценариях. Часто предполагается, что они полезны в основном для специалистов по анализу данных и аналитиков. Я тоже был на этом пути. На самом деле, мне пришлось глубоко погрузиться в машинное обучение, обучить модели и показать, как блокноты Kotlin могут быть полезны, прежде чем я дал им должный шанс. Возможно, я расскажу об этом подробнее в другом посте. Пока же я хочу подчеркнуть, что обширный опыт в машинном обучении не обязателен для понимания концепций.
https://dev.to/daredev/code-sketching-with-kotlin-notebooks-developer-guide-530n
✍️ @kotlin_lib
Как разработчик вы, возможно, уже знакомы с Kotlin Notebooks, а может быть, даже немного экспериментировали с ними. Но, скорее всего, вы все еще пытаетесь понять, как эффективно применять их в реальных сценариях. Часто предполагается, что они полезны в основном для специалистов по анализу данных и аналитиков. Я тоже был на этом пути. На самом деле, мне пришлось глубоко погрузиться в машинное обучение, обучить модели и показать, как блокноты Kotlin могут быть полезны, прежде чем я дал им должный шанс. Возможно, я расскажу об этом подробнее в другом посте. Пока же я хочу подчеркнуть, что обширный опыт в машинном обучении не обязателен для понимания концепций.
https://dev.to/daredev/code-sketching-with-kotlin-notebooks-developer-guide-530n
✍️ @kotlin_lib
👍3
Vico
Легкая расширяемая библиотека Kotlin для создания диаграмм.
Библиотека совместима как с Jetpack Compose, так и с системой представлений, при этом 2 её основных модуля — compose и views, — являются независимыми.
https://github.com/patrykandpatrick/vico
✍️ @kotlin_lib
Легкая расширяемая библиотека Kotlin для создания диаграмм.
Библиотека совместима как с Jetpack Compose, так и с системой представлений, при этом 2 её основных модуля — compose и views, — являются независимыми.
https://github.com/patrykandpatrick/vico
✍️ @kotlin_lib
👍15
Роман Елизаров про Kotlin, корутины и работу в Jetbrains / ЧТУК
00:00:00 Как стал программистом
00:11:39 Алгоритмы
00:24:47 Собеседования
00:26:44 Как попал в JetBrains
00:30:13 "Котлин - новый Си?"
00:33:42 Tracing GC в Kotlin
00:36:49 "Что революционного в корутинах?"
00:45:24 Почему Котлин популярный в мобилке
00:48:16 Менеджмент
00:57:19 История и перспективы Kotlin
01:02:45 Уход из JetBrains и олимпиадное программирование
01:11:36 Яндекс
01:15:11 Новое поколение разработчиков
01:21:16 "Современные айти технологии устойчивы"
01:24:23 "Своя" разработка и Open Source
01:35:12 ИИ в разработке
01:51:55 Вопросы подписчиков
02:00:11 Всем пока
https://www.youtube.com/watch?v=PlykPBtsL8E
✍️ @kotlin_lib
00:00:00 Как стал программистом
00:11:39 Алгоритмы
00:24:47 Собеседования
00:26:44 Как попал в JetBrains
00:30:13 "Котлин - новый Си?"
00:33:42 Tracing GC в Kotlin
00:36:49 "Что революционного в корутинах?"
00:45:24 Почему Котлин популярный в мобилке
00:48:16 Менеджмент
00:57:19 История и перспективы Kotlin
01:02:45 Уход из JetBrains и олимпиадное программирование
01:11:36 Яндекс
01:15:11 Новое поколение разработчиков
01:21:16 "Современные айти технологии устойчивы"
01:24:23 "Своя" разработка и Open Source
01:35:12 ИИ в разработке
01:51:55 Вопросы подписчиков
02:00:11 Всем пока
https://www.youtube.com/watch?v=PlykPBtsL8E
✍️ @kotlin_lib
YouTube
Роман Елизаров про Kotlin, корутины и работу в Jetbrains / ЧТУК
Вступай в клуб элитных разработчиков и узнавай секреты профессии тут👇
https://boosty.to/mobiledev/purchase/2228998
00:00:00 Как стал программистом
00:11:39 Алгоритмы
00:24:47 Собеседования
00:26:44 Как попал в JetBrains
00:30:13 "Котлин - новый Си?"
00:33:42…
https://boosty.to/mobiledev/purchase/2228998
00:00:00 Как стал программистом
00:11:39 Алгоритмы
00:24:47 Собеседования
00:26:44 Как попал в JetBrains
00:30:13 "Котлин - новый Си?"
00:33:42…
👍11
KMP (Kotlin Multiplatform) Firebase setup
Почти каждое мобильное приложение сегодня в той или иной мере использует Firebase, будь то реализация CRUD-операций через NoSQL-базу данных, анализ A/B-тестов или обнаружение аварийных ситуаций. Он стал важнейшим компонентом для успешного запуска вашего приложения.
https://funkymuse.dev/posts/kmp-firebase/
✍️ @kotlin_lib
Почти каждое мобильное приложение сегодня в той или иной мере использует Firebase, будь то реализация CRUD-операций через NoSQL-базу данных, анализ A/B-тестов или обнаружение аварийных ситуаций. Он стал важнейшим компонентом для успешного запуска вашего приложения.
https://funkymuse.dev/posts/kmp-firebase/
✍️ @kotlin_lib
👍2
Kotlin Coroutine mechanisms: runBlocking v. launch
https://medium.com/google-developer-experts/kotlin-coroutine-mechanisms-runblocking-v-launch-386e1ae8e3c2
✍️ @kotlin_lib
https://medium.com/google-developer-experts/kotlin-coroutine-mechanisms-runblocking-v-launch-386e1ae8e3c2
✍️ @kotlin_lib
Пошаговое руководство по выполнению анализа данных с помощью Kotlin DataFrame
Это первая из серии обучающих статей о том, как легко манипулировать и визуализировать данные с помощью библиотек Kotlin DataFrame и Kandy. Эти уроки предназначены для обычных разработчиков на Kotlin, поэтому предыдущий опыт в области анализа данных или работы с аналогичными фреймворками (например, pandas или Apache Spark) не требуется. Однако, вы должны быть знакомы с языком Kotlin и ранее создавать проекты на Kotlin в IntelliJ IDEA.
https://blog.jetbrains.com/kotlin/2024/04/a-step-by-step-guide-to-performing-data-analysis-with-kotlin-dataframe/
✍️ @kotlin_lib
Это первая из серии обучающих статей о том, как легко манипулировать и визуализировать данные с помощью библиотек Kotlin DataFrame и Kandy. Эти уроки предназначены для обычных разработчиков на Kotlin, поэтому предыдущий опыт в области анализа данных или работы с аналогичными фреймворками (например, pandas или Apache Spark) не требуется. Однако, вы должны быть знакомы с языком Kotlin и ранее создавать проекты на Kotlin в IntelliJ IDEA.
https://blog.jetbrains.com/kotlin/2024/04/a-step-by-step-guide-to-performing-data-analysis-with-kotlin-dataframe/
✍️ @kotlin_lib
👍8🤮1
Mapping объектов с помощью MapStruct
В огромном приложении Android с Clean Architecture много рутинной работы, связанной с отображением объектов между различными слоями. Хорошим решением будет автоматизация этого процесса.
В этой статье рассматривается опыт использования библиотеки MapStruct, которая помогает mapp-ить объекты.
Библиотека очень гибка в настройке. И позволяет минимизировать написание шаблонного кода.
Вот пример того, как реализовать gradle зависимости в вашем проекте.
https://habr.com/ru/articles/839362/
original https://medium.com/@1mailanton/object-mapping-with-mapstruct-d4dcb9efa1da
✍️ @kotlin_lib
В огромном приложении Android с Clean Architecture много рутинной работы, связанной с отображением объектов между различными слоями. Хорошим решением будет автоматизация этого процесса.
В этой статье рассматривается опыт использования библиотеки MapStruct, которая помогает mapp-ить объекты.
Библиотека очень гибка в настройке. И позволяет минимизировать написание шаблонного кода.
Вот пример того, как реализовать gradle зависимости в вашем проекте.
https://habr.com/ru/articles/839362/
original https://medium.com/@1mailanton/object-mapping-with-mapstruct-d4dcb9efa1da
✍️ @kotlin_lib
👍3👎1
Media is too big
VIEW IN TELEGRAM
Как новый компилятор K2 ускоряет компиляцию Kotlin на 94%
По замерам JB, K2 ускоряет компиляцию на 94%. Также он позволит ускорить разработку новых языковых фич и унифицировать все платформы, предоставляя улучшенную архитектуру для мультиплатформенных проектов.
Но мало кто погружался в то, как работает K2, и чем он отличается от K1.
Эта статья более освещает нюансы работы компилятора, которые будут полезны разработчикам для понимания, что же JB улучшают под капотом, и как это работает.
https://habr.com/ru/companies/kts/articles/813085/
✍️ @kotlin_lib
По замерам JB, K2 ускоряет компиляцию на 94%. Также он позволит ускорить разработку новых языковых фич и унифицировать все платформы, предоставляя улучшенную архитектуру для мультиплатформенных проектов.
Но мало кто погружался в то, как работает K2, и чем он отличается от K1.
Эта статья более освещает нюансы работы компилятора, которые будут полезны разработчикам для понимания, что же JB улучшают под капотом, и как это работает.
https://habr.com/ru/companies/kts/articles/813085/
✍️ @kotlin_lib
👍5
Kotlin Coroutines 101: Асинхронное программирование на практике.
Когда вы начинаете изучать Kotlin или Android, вам неизбежно придется перемещать тяжелые задачи с основного потока (UI Thread). Ведь вам не хочется, чтобы пользователи жаловались на медленную работу вашего приложения!
Отправьтесь в путешествие от новичка до эксперта по Kotlin корутинам с помощью этой всесторонней статьи. Мы проведем вас через основные концепции, предоставляя практические примеры кода на каждом шагу.
https://proandroiddev.com/kotlin-coroutines-101-async-programming-in-practice-062b359d502b
✍️ @kotlin_lib
Когда вы начинаете изучать Kotlin или Android, вам неизбежно придется перемещать тяжелые задачи с основного потока (UI Thread). Ведь вам не хочется, чтобы пользователи жаловались на медленную работу вашего приложения!
Отправьтесь в путешествие от новичка до эксперта по Kotlin корутинам с помощью этой всесторонней статьи. Мы проведем вас через основные концепции, предоставляя практические примеры кода на каждом шагу.
https://proandroiddev.com/kotlin-coroutines-101-async-programming-in-practice-062b359d502b
✍️ @kotlin_lib
👍8
if vs let” в Kotlin
Что использовать для объектов nullable-типа в Kotlin:
Давайте начнем с проблемы:
https://medium.com/@khush.panchal123/if-vs-let-in-kotlin-3370077de55d
✍️ @kotlin_lib
Что использовать для объектов nullable-типа в Kotlin:
if
или let
?Давайте начнем с проблемы:
class IfOrLet {
private var string1: String? = "some string 1"
init {
if(string1 != null) {
makeString1Null()
println(string1) // prints null
}
}
private fun makeString1Null() {
string1 = null
}
}
https://medium.com/@khush.panchal123/if-vs-let-in-kotlin-3370077de55d
✍️ @kotlin_lib
Medium
“if vs let” in Kotlin
Should I use “if” or “let” for nullable type objects in Kotlin?
👍4❤1