Создание плагинов и переиспользуемых частей в .gradle.kts-файлах и Kotlin extension-функциях
Всем привет! На связи Дима Котиков, и мы продолжаем разговор о том, как облегчить себе жизнь и уменьшить Boilerplate в gradle-файлах. В первой части поговорили о том, как подготовиться к созданию модулей для Gradle Convention Plugin. Двигаемся дальше!
https://habr.com/ru/companies/tbank/articles/843662/
✍️ @kotlin_lib
Всем привет! На связи Дима Котиков, и мы продолжаем разговор о том, как облегчить себе жизнь и уменьшить Boilerplate в gradle-файлах. В первой части поговорили о том, как подготовиться к созданию модулей для Gradle Convention Plugin. Двигаемся дальше!
https://habr.com/ru/companies/tbank/articles/843662/
✍️ @kotlin_lib
Binary Compatibility Validator: Управление изменениями API в вашей Android-библиотеке
Обсуждается важность поддержания бинарной совместимости при разработке Android-библиотек. Автор объясняет, как изменения в API могут привести к ошибкам времени выполнения, таким как
https://proandroiddev.com/binary-compatibility-validator-5d3e641af4b4
✍️ @kotlin_lib
Обсуждается важность поддержания бинарной совместимости при разработке Android-библиотек. Автор объясняет, как изменения в API могут привести к ошибкам времени выполнения, таким как
NoSuchMethodException
, из-за отсутствия методов, ожидаемых в зависимости. В статье рассматривается использование инструмента Binary Compatibility Validator (BCV) для предотвращения подобных проблем, а также обсуждаются сложности, связанные с транзитивными зависимостями и разрешением зависимостей в Gradle. https://proandroiddev.com/binary-compatibility-validator-5d3e641af4b4
✍️ @kotlin_lib
Media is too big
VIEW IN TELEGRAM
Beyond The Success Of Kotlin / Документальный фильм от EngX
Почти 15 лет назад небольшая команда инженеров JetBrains приступила к, казалось бы, безумному начинанию — создать свой собственный язык программирования и добиться с ним успеха. В начале 2010-х годов Java был одним из самых популярных языков, которым пользовались миллионы инженеров. Но он не получал никаких серьезных обновлений в течение нескольких лет, и в нем не было новых функций. Разработчики искали новые решение.
Многие инженеры пытались предоставить альтернативу Java, создавая новые языки для JVM. Это стало небольшим окном возможностей для создания инструмента, который мог бы повлиять на всю отрасль. Так началась история Kotlin. Что привело к успеху Kotlin и чего это стоило команде? В этом документальном фильме вы услышите историю из первых уст.
источник
✍️ @kotlin_lib
Почти 15 лет назад небольшая команда инженеров JetBrains приступила к, казалось бы, безумному начинанию — создать свой собственный язык программирования и добиться с ним успеха. В начале 2010-х годов Java был одним из самых популярных языков, которым пользовались миллионы инженеров. Но он не получал никаких серьезных обновлений в течение нескольких лет, и в нем не было новых функций. Разработчики искали новые решение.
Многие инженеры пытались предоставить альтернативу Java, создавая новые языки для JVM. Это стало небольшим окном возможностей для создания инструмента, который мог бы повлиять на всю отрасль. Так началась история Kotlin. Что привело к успеху Kotlin и чего это стоило команде? В этом документальном фильме вы услышите историю из первых уст.
источник
✍️ @kotlin_lib
Crash Course on the Kotlin Compiler | K1 + K2 Frontends, Backends
Небольшой экскурс о том, почему существует так много версий и как это влияет на преобразования данных в компиляторе
https://medium.com/google-developer-experts/crash-course-on-the-kotlin-compiler-k1-k2-frontends-backends-fe2238790bd8
✍️ @kotlin_lib
Небольшой экскурс о том, почему существует так много версий и как это влияет на преобразования данных в компиляторе
https://medium.com/google-developer-experts/crash-course-on-the-kotlin-compiler-k1-k2-frontends-backends-fe2238790bd8
✍️ @kotlin_lib
Курс «Kotlin Backend Developer. Professional» — всё, что нужно для создания гибких и производительных приложений.
Что вы освоите:
Почему выбирают нас?
Не упустите шанс!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
Прекратите "прыгать" между потоками!
Почему избегание избыточного переключения потоков в Android-приложениях может повысить производительность и снизить сложность кода. Автор делится практическими советами и подходами, основанными на Kotlin Coroutines и других инструментах.
https://proandroiddev.com/stop-hopping-threads-6a6241016529
✍️ @kotlin_lib
Почему избегание избыточного переключения потоков в Android-приложениях может повысить производительность и снизить сложность кода. Автор делится практическими советами и подходами, основанными на Kotlin Coroutines и других инструментах.
https://proandroiddev.com/stop-hopping-threads-6a6241016529
✍️ @kotlin_lib
Kotlin Multiplatform vs Flutter — кто кого? 🥊
В статье говрят, может ли Kotlin Multiplatform (KMP) стать "убийцей" Flutter. Вот основные тезисы:
- Kotlin Multiplatform позволяет делиться кодом между платформами (iOS, Android, Web и др.), используя Kotlin.
- Flutter — популярный фреймворк от Google для кроссплатформенной разработки с использованием Dart.
- Автор сравнивает оба подхода, обсуждая их плюсы и минусы:
- KMP лучше интегрируется с нативными приложениями.
- Flutter предлагает единый UI для всех платформ.
- Вопрос: сможет ли KMP заменить Flutter? Пока рано говорить, но конкуренция усиливается!
https://medium.com/@satishlokhande5674/is-kotlin-multiplatform-killing-flutter-da4d11a10e8a
✍️ @kotlin_lib
В статье говрят, может ли Kotlin Multiplatform (KMP) стать "убийцей" Flutter. Вот основные тезисы:
- Kotlin Multiplatform позволяет делиться кодом между платформами (iOS, Android, Web и др.), используя Kotlin.
- Flutter — популярный фреймворк от Google для кроссплатформенной разработки с использованием Dart.
- Автор сравнивает оба подхода, обсуждая их плюсы и минусы:
- KMP лучше интегрируется с нативными приложениями.
- Flutter предлагает единый UI для всех платформ.
- Вопрос: сможет ли KMP заменить Flutter? Пока рано говорить, но конкуренция усиливается!
https://medium.com/@satishlokhande5674/is-kotlin-multiplatform-killing-flutter-da4d11a10e8a
✍️ @kotlin_lib
В 2024-м экосистема Kotlin взлетела на новый уровень. Что дальше? Какие тренды взорвут 2025? Какие технологии войдут в топ, а какие окажутся в аутсайдерах?
🎙 Спикер Сергей Окатов — кандидат физико-математических наук и архитектор в Solar Security.
🗓 Регистрируйся на вебинар 30 января в 19:00 мск.
Участники получат скидку на большое обучение «Kotlin Backend Developer. Professional».
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
Понимание ключевого слова suspend в корутинах Kotlin и его значение для разработки Android
Если вы разрабатываете Android-приложения на Kotlin, то, вероятно, сталкивались с термином
В этом посте я расскажу, что такое ключевое слово suspend, зачем оно нужно и как оно упрощает процесс разработки Android-приложений.
https://medium.com/@rajputmukesh748/understanding-the-suspend-keyword-in-kotlin-coroutines-and-why-it-matters-for-android-development-39853532a523
✍️ @kotlin_lib
Если вы разрабатываете Android-приложения на Kotlin, то, вероятно, сталкивались с термином
suspend
, изучая корутины. На первый взгляд, это может показаться просто очередным ключевым словом в Kotlin, но на самом деле оно очень полезно при работе с задачами, которые занимают время, например при загрузке данных из интернета.В этом посте я расскажу, что такое ключевое слово suspend, зачем оно нужно и как оно упрощает процесс разработки Android-приложений.
https://medium.com/@rajputmukesh748/understanding-the-suspend-keyword-in-kotlin-coroutines-and-why-it-matters-for-android-development-39853532a523
✍️ @kotlin_lib
Отладка Kotlin Coroutines: Как сделать «optimised out» переменные видимыми
Когда вы отлаживаете Kotlin Coroutines, вы, возможно, сталкивались с ситуацией, когда переменные помечены как "optimised out". Это может создать проблемы при анализе кода, особенно если вам нужно увидеть значения переменных в suspend-функциях. В этой статье рассмотрим несколько методов, которые помогут сделать эти переменные видимыми в отладчике.
🔹 Использование "Debug mode" в IntelliJ IDEA
Можно включить режим отладки в настройках "Debug mode for coroutines", что позволит IDE лучше отслеживать выполнение корутин.
🔹 Добавление отладочных принтов
Хотя это менее элегантное решение, добавление
🔹 Использование -Xdebug и других JVM флагов
Определённые флаги компилятора могут помочь избежать агрессивной оптимизации переменных.
🔹 Настройка -Xno-inline для отключения инлайнинга
Если переменная становится "optimised out" из-за инлайнинга, можно временно отключить эту оптимизацию.
https://tomsabel.com/debugging-kotlin-coroutines-making-optimised-out-variables-visible-de1cecc0d59e
✍️ @kotlin_lib
Когда вы отлаживаете Kotlin Coroutines, вы, возможно, сталкивались с ситуацией, когда переменные помечены как "optimised out". Это может создать проблемы при анализе кода, особенно если вам нужно увидеть значения переменных в suspend-функциях. В этой статье рассмотрим несколько методов, которые помогут сделать эти переменные видимыми в отладчике.
🔹 Использование "Debug mode" в IntelliJ IDEA
Можно включить режим отладки в настройках "Debug mode for coroutines", что позволит IDE лучше отслеживать выполнение корутин.
🔹 Добавление отладочных принтов
Хотя это менее элегантное решение, добавление
println()
в нужных местах может помочь отследить значения переменных перед их оптимизацией.🔹 Использование -Xdebug и других JVM флагов
Определённые флаги компилятора могут помочь избежать агрессивной оптимизации переменных.
🔹 Настройка -Xno-inline для отключения инлайнинга
Если переменная становится "optimised out" из-за инлайнинга, можно временно отключить эту оптимизацию.
// Kotlin Multiplatform
kotlin {
compilerOptions {
if (System.getProperty("idea.active") == "true") {
println("Enable coroutine debugging")
freeCompilerArgs = listOf("-Xdebug")
}
}
}
// Kotlin Jvm
kotlin {
compilerOptions {
if (System.getProperty("idea.active") == "true") {
println("Enable coroutine debugging")
freeCompilerArgs.add("-Xdebug")
}
}
}
https://tomsabel.com/debugging-kotlin-coroutines-making-optimised-out-variables-visible-de1cecc0d59e
✍️ @kotlin_lib
👩💻 Пройди тест на знание Kotlin и проверь свои знания, готов ли ты к обучению на курсе.
Ответишь — пройдешь на продвинутый курс "Kotlin Backend Developer. Professional " от OTUS по специальной цене + получишь доступ к записям открытых уроков курса курса
За 5 месяцев обучения ты освоишь:
— Работу с Kotlin Multiplatform для JS, JVM, Android, iOS.
— Spring, Ktor, RabbitMQ, Kafka, Postgres.
— Создание архитектуры: монолиты, микросервисы и бессерверные решения.
— Реальные кейсы: разработка стартапа с нуля.
👉 ПРОЙТИ ТЕСТ: https://vk.cc/cHYIhx
Ответишь — пройдешь на продвинутый курс "Kotlin Backend Developer. Professional " от OTUS по специальной цене + получишь доступ к записям открытых уроков курса курса
За 5 месяцев обучения ты освоишь:
— Работу с Kotlin Multiplatform для JS, JVM, Android, iOS.
— Spring, Ktor, RabbitMQ, Kafka, Postgres.
— Создание архитектуры: монолиты, микросервисы и бессерверные решения.
— Реальные кейсы: разработка стартапа с нуля.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
Kotlin под капотом: Нюансы использования аннотаций в Kotlin
Kotlin - очень лаконичный язык, но когда его код компилируется в байткод Java, элегантные конструкции Kotlin распадаются на чудовищные конструкции Java. В то же время использование аннотаций может сыграть с вами злую шутку.
https://proandroiddev.com/kotlin-under-the-hood-the-nuances-of-using-annotations-in-kotlin-a58f0b2b60ac?gi=6ff112513d51
✍️ @kotlin_lib
Kotlin - очень лаконичный язык, но когда его код компилируется в байткод Java, элегантные конструкции Kotlin распадаются на чудовищные конструкции Java. В то же время использование аннотаций может сыграть с вами злую шутку.
https://proandroiddev.com/kotlin-under-the-hood-the-nuances-of-using-annotations-in-kotlin-a58f0b2b60ac?gi=6ff112513d51
✍️ @kotlin_lib
Основы Jetpack Compose: как обеспечить стабильность вашего кода
Уберегаем от ошибок и делимся статьёй про стабильность в Compose от Веры, Android‑разработчика в Яндекс Диске. Рекомпозиция и пропускаемость, стабильность и способы её отслеживания, неочевидные моменты и лайфхаки Compose — всё это с конкретными примерами (и мемами).
Читайте статью на Хабре здесь
Больше материалов о технологиях в Яндекс 360: https://ya.cc/t/OZ4inE495pU96D
Уберегаем от ошибок и делимся статьёй про стабильность в Compose от Веры, Android‑разработчика в Яндекс Диске. Рекомпозиция и пропускаемость, стабильность и способы её отслеживания, неочевидные моменты и лайфхаки Compose — всё это с конкретными примерами (и мемами).
Читайте статью на Хабре здесь
Больше материалов о технологиях в Яндекс 360: https://ya.cc/t/OZ4inE495pU96D
This media is not supported in your browser
VIEW IN TELEGRAM
Texty — это библиотека Compose Multiplatform, разработанная Арджуном Джадежей, предназначенная для отображения текста с различными стилями, эффектами и анимациями. Она построена на основе Jetpack Compose Foundation's Basic Text и предоставляет высококонфигурируемый API для создания динамичных и визуально привлекательных текстовых элементов в приложениях для Android, iOS, настольных и веб-платформ.
Основные возможности Texty:
- Разнообразие стилей: Поддержка таких стилей, как скольжение, прокрутка, мигание, затухание, постепенное раскрытие, печать по буквам и базовый стиль.
- Стили для списков: Анимация текста или кадров последовательно, создание плавного потока, а также стили, такие как Motion, OneByOne, Sliding List и Scrolling List.
- Утилиты: Функции загрузки и отображения времени с возможностью настройки формата и интервала обновления.
Установка:
Для использования Texty в вашем проекте добавьте следующую зависимость в файл
Убедитесь, что
Пример использования:
https://github.com/ArjunJadeja/Texty
✍️ @kotlin_lib
Основные возможности Texty:
- Разнообразие стилей: Поддержка таких стилей, как скольжение, прокрутка, мигание, затухание, постепенное раскрытие, печать по буквам и базовый стиль.
- Стили для списков: Анимация текста или кадров последовательно, создание плавного потока, а также стили, такие как Motion, OneByOne, Sliding List и Scrolling List.
- Утилиты: Функции загрузки и отображения времени с возможностью настройки формата и интервала обновления.
Установка:
Для использования Texty в вашем проекте добавьте следующую зависимость в файл
build.gradle.kts
вашего модуля:
dependencies {
implementation("com.arjunjadeja:texty-android:1.0.0-alpha")
}
Убедитесь, что
mavenCentral()
включен в список репозиториев.Пример использования:
import com.arjunjadeja.texty.Texty
import com.arjunjadeja.texty.DisplayStyle
@Composable
fun TextyExample() {
Texty(
text = "Привет, Texty!",
displayStyle = DisplayStyle.Typing()
)
}
https://github.com/ArjunJadeja/Texty
✍️ @kotlin_lib
Media is too big
VIEW IN TELEGRAM
UUID в Kotlin Multiplatform
0:00 Intro
0:24 What's UUID
0:53 Creating UUIDs
1:52 Parsing
2:21 Working with individual bits
3:30 Long to UUID
3:55 Java interop
4:10 Conclusion
источник
✍️ @kotlin_lib
0:00 Intro
0:24 What's UUID
0:53 Creating UUIDs
1:52 Parsing
2:21 Working with individual bits
3:30 Long to UUID
3:55 Java interop
4:10 Conclusion
источник
✍️ @kotlin_lib
На открытом вебинаре мы научим вас создавать доменно-специфические языки на Kotlin. Разберём, как сделать код компактным, выразительным и удобным для решения узкопрофильных задач.
Это не просто теория. Мы покажем реальные примеры и расскажем, как применять DSL для автоматизации, работы с конфигурациями и других задач.
Спикер Сергей Прощаев — ведущий инженер-Java-разработчик в компании ПАО «Сургутнефтегаз».
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
📕 KMP for Mobile Native Developers: The Book
by Santiago Mattiauda.
https://santimattius.github.io/kmp-for-mobile-native-developers-book/
✍️ @kotlin_lib
by Santiago Mattiauda.
https://santimattius.github.io/kmp-for-mobile-native-developers-book/
✍️ @kotlin_lib
1Sec Temporary Mail App (Создано с Compose Multiplatform)
1Sec Temporary Mail — это кроссплатформенное приложение на Kotlin, которое предоставляет пользователям временные адреса электронной почты, действительные всего одну секунду. С его помощью можно быстро генерировать одноразовые email-адреса и использовать их для различных целей, таких как регистрация на сайтах, получение проверочных писем или защита основного почтового ящика от спама.
https://github.com/KapilYadav-dev/1SecMail
✍️ @kotlin_lib
1Sec Temporary Mail — это кроссплатформенное приложение на Kotlin, которое предоставляет пользователям временные адреса электронной почты, действительные всего одну секунду. С его помощью можно быстро генерировать одноразовые email-адреса и использовать их для различных целей, таких как регистрация на сайтах, получение проверочных писем или защита основного почтового ящика от спама.
https://github.com/KapilYadav-dev/1SecMail
✍️ @kotlin_lib
🗓 18 февраля в 19:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Kotlin Backend Developer. Professional» от Otus.
На вебинаре рассмотрим:
🔗 Ссылка на регистрацию: https://vk.cc/cIwobu
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM