Kotlin @kotlin_lib Channel on Telegram

Kotlin

@kotlin_lib


Подборки полезного материала по Kotlin. По всем вопросам @evgenycarter

Kotlin Telegram Channel (Russian)

Добро пожаловать в Telegram-канал под названием "Kotlin"! Этот канал собирает в себе полезный материал по языку программирования Kotlin, который становится все более популярным среди разработчиков. Если вы интересуетесь Kotlin и хотите углубить свои знания, то это место для вас. Здесь вы найдете подборки материалов, которые помогут вам освоить новые концепции, улучшить навыки программирования на Kotlin и быть в курсе последних трендов в этой сфере. Канал под названием "kotlin_lib" создан для того, чтобы облегчить доступ к полезной информации и помочь разработчикам достичь новых высот в области программирования на Kotlin. Если у вас возникли вопросы или вы хотите поделиться своим опытом, обращайтесь к администратору канала по имени @evgenycarter. Присоединяйтесь к нам и станьте частью активного сообщества разработчиков, узнавайте новое, делитесь опытом и двигайтесь вперед вместе с нами!

Kotlin

16 Feb, 18:08


🔥Ktor 3.1.0 Release

https://blog.jetbrains.com/kotlin/2025/02/ktor-3-1-0-release/#ktor-cli-a-new-tool-to-create-ktor-projects

✍️ @kotlin_lib

Kotlin

12 Feb, 13:33


🔥 Открытый урок «Разработка монолитного приложения со Spring»

🗓 18 февраля в 19:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Kotlin Backend Developer. Professional» от Otus.

На вебинаре рассмотрим:
✔️ монолитную архитектуру (преимущества и недостатки);
✔️ фреймворк Spring;
✔️ особенности разработки со Spring в Kotlin;
✔️ интеграцию транспортных моделей в приложение;
✔️ упаковку и запуск в Docker.

🔗 Ссылка на регистрацию: https://vk.cc/cIwobu

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Kotlin

12 Feb, 11:00


1Sec Temporary Mail App (Создано с Compose Multiplatform)

1Sec Temporary Mail — это кроссплатформенное приложение на Kotlin, которое предоставляет пользователям временные адреса электронной почты, действительные всего одну секунду. С его помощью можно быстро генерировать одноразовые email-адреса и использовать их для различных целей, таких как регистрация на сайтах, получение проверочных писем или защита основного почтового ящика от спама.

https://github.com/KapilYadav-dev/1SecMail

✍️ @kotlin_lib

Kotlin

11 Feb, 18:52


📕 KMP for Mobile Native Developers: The Book
by Santiago Mattiauda.

https://santimattius.github.io/kmp-for-mobile-native-developers-book/

✍️ @kotlin_lib

Kotlin

05 Feb, 12:03


🔥 Хотите писать функциональный и выразительный код? Kotlin и DSL — вот ваш путь!

На открытом вебинаре мы научим вас создавать доменно-специфические языки на Kotlin. Разберём, как сделать код компактным, выразительным и удобным для решения узкопрофильных задач.

Это не просто теория. Мы покажем реальные примеры и расскажем, как применять DSL для автоматизации, работы с конфигурациями и других задач.

Спикер Сергей Прощаев — ведущий инженер-Java-разработчик в компании ПАО «Сургутнефтегаз».

➡️ Регистрируйтесь на вебинар 11 февраля в 19:00 мск и получите скидку на большое обучение «Kotlin Backend Developer. Professional»: https://vk.cc/cIflRd

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Kotlin

05 Feb, 10:45


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

Kotlin

01 Feb, 09:02


Texty — это библиотека Compose Multiplatform, разработанная Арджуном Джадежей, предназначенная для отображения текста с различными стилями, эффектами и анимациями. Она построена на основе Jetpack Compose Foundation's Basic Text и предоставляет высококонфигурируемый API для создания динамичных и визуально привлекательных текстовых элементов в приложениях для Android, iOS, настольных и веб-платформ.

Основные возможности 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

Kotlin

31 Jan, 15:04


Основы Jetpack Compose: как обеспечить стабильность вашего кода

Уберегаем от ошибок и делимся статьёй про стабильность в Compose от Веры, Android‑разработчика в Яндекс Диске. Рекомпозиция и пропускаемость, стабильность и способы её отслеживания, неочевидные моменты и лайфхаки Compose — всё это с конкретными примерами (и мемами).

Читайте статью на Хабре здесь
Больше материалов о технологиях в Яндекс 360: https://ya.cc/t/OZ4inE495pU96D

Kotlin

31 Jan, 14:27


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

29 Jan, 11:19


👩‍💻 Пройди тест на знание Kotlin и проверь свои знания, готов ли ты к обучению на курсе.

Ответишь — пройдешь на продвинутый курс "Kotlin Backend Developer. Professional " от OTUS по специальной цене + получишь доступ к записям открытых уроков курса курса

За 5 месяцев обучения ты освоишь:
— Работу с Kotlin Multiplatform для JS, JVM, Android, iOS.
— Spring, Ktor, RabbitMQ, Kafka, Postgres.
— Создание архитектуры: монолиты, микросервисы и бессерверные решения.
— Реальные кейсы: разработка стартапа с нуля.

👉 ПРОЙТИ ТЕСТ: https://vk.cc/cHYIhx

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Kotlin

29 Jan, 10:27


Отладка Kotlin Coroutines: Как сделать «optimised out» переменные видимыми

Когда вы отлаживаете 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

29 Jan, 08:00


Понимание ключевого слова suspend в корутинах Kotlin и его значение для разработки Android

Если вы разрабатываете 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

22 Jan, 08:32


⁉️ Знаешь, куда движется мир бэкенда?

В 2024-м экосистема Kotlin взлетела на новый уровень. Что дальше? Какие тренды взорвут 2025? Какие технологии войдут в топ, а какие окажутся в аутсайдерах?

⚡️ Узнай всё на открытом вебинаре «Тенденции бэкенд-разработки в экосистеме Kotlin». Мы подведем итоги прошлого года, разберем ключевые тренды и поможем тебе подготовиться к новым вызовам.

🎙 Спикер Сергей Окатов — кандидат физико-математических наук и архитектор в Solar Security.

🗓 Регистрируйся на вебинар 30 января в 19:00 мск.
Участники получат скидку на большое обучение «Kotlin Backend Developer. Professional».

➡️Регистрация открыта: https://vk.cc/cHzplC

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Kotlin

21 Jan, 21:24


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

18 Jan, 14:15


Прекратите "прыгать" между потоками!

Почему избегание избыточного переключения потоков в Android-приложениях может повысить производительность и снизить сложность кода. Автор делится практическими советами и подходами, основанными на Kotlin Coroutines и других инструментах.

https://proandroiddev.com/stop-hopping-threads-6a6241016529

✍️ @kotlin_lib

Kotlin

17 Jan, 10:04


🔥 Kotlin: ключ к современным backend-решениям!

Курс «Kotlin Backend Developer. Professional» — всё, что нужно для создания гибких и производительных приложений.

Что вы освоите:

✔️ Работу с Kotlin Multiplatform для JS, JVM, Android, iOS.
✔️ Spring, Ktor, RabbitMQ, Kafka, Postgres.
✔️ Создание архитектуры: монолиты, микросервисы и бессерверные решения.
✔️ Реальные кейсы: разработка стартапа с нуля.

Почему выбирают нас?

✔️ Живые лекции от экспертов топовых компаний.
✔️ Диплом OTUS, который признают крупные работодатели.
✔️ Практика, которая готовит к сложным проектам.

Не упустите шанс!

➡️ Пройдите тестирование и получите скидку: https://vk.cc/cHnLXC

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Kotlin

17 Jan, 09:00


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

Kotlin

12 Jan, 20:28


Beyond The Success Of Kotlin / Документальный фильм от EngX

Почти 15 лет назад небольшая команда инженеров JetBrains приступила к, казалось бы, безумному начинанию — создать свой собственный язык программирования и добиться с ним успеха. В начале 2010-х годов Java был одним из самых популярных языков, которым пользовались миллионы инженеров. Но он не получал никаких серьезных обновлений в течение нескольких лет, и в нем не было новых функций. Разработчики искали новые решение.

Многие инженеры пытались предоставить альтернативу Java, создавая новые языки для JVM. Это стало небольшим окном возможностей для создания инструмента, который мог бы повлиять на всю отрасль. Так началась история Kotlin. Что привело к успеху Kotlin и чего это стоило команде? В этом документальном фильме вы услышите историю из первых уст.

источник

✍️ @kotlin_lib

Kotlin

06 Jan, 08:31


Binary Compatibility Validator: Управление изменениями API в вашей Android-библиотеке

Обсуждается важность поддержания бинарной совместимости при разработке Android-библиотек. Автор объясняет, как изменения в API могут привести к ошибкам времени выполнения, таким как NoSuchMethodException, из-за отсутствия методов, ожидаемых в зависимости. В статье рассматривается использование инструмента Binary Compatibility Validator (BCV) для предотвращения подобных проблем, а также обсуждаются сложности, связанные с транзитивными зависимостями и разрешением зависимостей в Gradle.

https://proandroiddev.com/binary-compatibility-validator-5d3e641af4b4

✍️ @kotlin_lib

Kotlin

31 Dec, 07:01


Создание плагинов и переиспользуемых частей в .gradle.kts-файлах и Kotlin extension-функциях

Всем привет! На связи Дима Котиков, и мы продолжаем разговор о том, как облегчить себе жизнь и уменьшить Boilerplate в gradle-файлах. В первой части поговорили о том, как подготовиться к созданию модулей для Gradle Convention Plugin. Двигаемся дальше!

https://habr.com/ru/companies/tbank/articles/843662/

✍️ @kotlin_lib

Kotlin

30 Dec, 09:48


Gradle Convention Plugins: как облегчить себе жизнь и уменьшить boilerplate в gradle-файлах

Я расскажу о том, как облегчить работу с Gradle с использованием Gradle Convention Plugins. Всю информацию я разбил на серию статей для удобства. Они будут полезны всем, кто пользуется Gradle в качестве сборщика проектов. В первой части поговорим о проблеме с build.gradle-файлами и сделаем начальную настройку для написания Gradle Convention Plugins.

https://habr.com/ru/companies/tbank/articles/843648/

✍️ @kotlin_lib

Kotlin

27 Dec, 08:30


5 распространенных вопросов для собеседования по Kotlin Coroutines

Корутины — это одна из самых важных концепций, которую необходимо понять разработчику Android. Они являются рекомендованным решением для асинхронного программирования на Android. Корутины позволяют писать асинхронный код более безопасным, поддерживаемым и лаконичным способом. В этой статье представлены 5 важных вопросов, которые вполне могут быть заданы на собеседовании на позицию Android-разработчика. Эти вопросы взяты из списка вопросов, представленных на мероприятии Google DevFest, проведённом в 2021 году. Знание ответов на эти вопросы определённо будет полезным для вас. Я рекомендую добавить эту статью в список для чтения, чтобы вернуться к ней перед собеседованием. А теперь, когда вступление закончено, перейдём к вопросам!

https://medium.com/@theAndroidDeveloper/5-common-kotlin-coroutines-interview-questions-f084d098f51d

✍️ @kotlin_lib

Kotlin

26 Dec, 07:48


Kotlin Cacheable

Основанная на аннотациях библиотека кэширования для Kotlin Multiplatform.
При вызове функции с аннотацией Cacheable она будет возвращать кэшированное значение, если функция будет вызвана с теми же аргументами.

https://github.com/mori-atsushi/kotlin-cacheable

✍️ @kotlin_lib

Kotlin

25 Dec, 08:01


Облако — это конструктор!

The Art of Programming — подкаст об ​​инструментах, технике и разработке ПО. По следам конференции HighLoad 2024 записали новый выпуск, в котором обсуждаем индустрию публичных облаков.

Вместе с Данилой Дюгуровым, CTO MTC Web Services, говорим о новостях индустрии, создании новых облачных платформ, потенциале рынка и принципах формирования топовых команд разработки.

🎧Слушайте The Art of Programming на всех популярных подкаст-площадках.

Kotlin

25 Dec, 05:33


Учим Kotlin c нуля.

Kotlin: История Java, Kotlin и как они связаны. JVM, интерпретируемые и компилируемые языки
Kotlin: создаем проект в IntelliJ IDEA, Gradle, нужные типы данных, функция main - точка входа
Kotlin: читаем из файла, преобразовываем массивы через функции map и flatMap
Kotlin: создаем свой первый класс, объявляем конструктор, пишем функции
Kotlin: циклы for и while, null-safety
Kotlin: дебажим код, ставим брейкпоинты, объявляем условия срабатывания для них
Kotlin: HashMap, hashCode и equals
Kotlin: enum, исследуем возможности
Kotlin: лямбды
Kotlin: заканчиваем приложение
Kotlin: пишем юнит-тесты на JUnit 5N
Kotlin: рефакторинг, extension функции, typealias
Проект Kotlin: git, github, gitignore
Проект Kotlin: git, github, continuous integration, автотесты
(наконец-то) подключаем Android в Gradle проект с Kotlin
Мультипроектная сборка Gradle: Android и библиотека
Любой файл в ресурсах андроид приложения! (продолжаем делать игру)
Android View с нуляN
Смена ориентации в Android приложении [4 способа]
Рисуем таблицу для судоку: Android RecyclerView и все такоеNerdy

Все видео доступны на youtube

✍️ @kotlin_lib

Kotlin

21 Dec, 12:51


Kotlin с нуля

Урок 0: Ставим среду разработки и запускаем проект
Урок 1: Что такое переменные и их типы, val и var
Урок 2: Арифметические операции, остаток от деления
Урок 3: Интерполяция (шаблонные строки). Конкатенация
Урок 4: Операторы сравнения (отношения), логические операторы
Урок 5: Условные операторы if else when. Операции ветвления
Урок 6: Циклы while, do-while. Обратный отсчет с Thread.sleep()
Урок 7: Цикл for, диапазоны (интервалы). break, continue, return
Урок 8: Массивы. Типы, размер, индекс массива. Перебор через for
Урок 9: Коллекции: списки (List). Функции для работы с коллекциями
Урок 10: Функции (методы), тип возвращаемого значения, return
Урок 11: ООП. Классы и свойства. Создание объектов (экземпляров класса)
Урок 12: Конструкторы (primary, secondary). Блоки инициализации init.
Урок 13: Null Safety – операторы ?. !!, NullPointerException (NPE)
Урок 14: ООП. Наследование. open class. Переопределение (override)
Урок 15: Интерфейсы, абстрактные классы. Имплементация
Урок 16: ООП. Инкапсуляция. Модификаторы доступа
Урок 17: Сеттеры и Геттеры, field, как их кастомизировать
Урок 18: ООП. Полиморфизм, 3 типа (Ad hoc, Subtyping, Parametric)
Урок 19: ENUM (классы перечислений), TODO() и тип Nothing
Урок 20: Лямбда-функции (лямбды), анонимные функции
Урок 21: Extensions (функции-расширения, экстеншены)
Урок 22: Data class (дата классы) copy, toString, equals, hashCode
Урок 23: Теория разработки программ. Создание телеграм бота // Практика

Все видео доступны на youtube

✍️ @kotlin_lib

Kotlin

14 Dec, 12:20


Миграция конфигурации сборки с Groovy на Kotlin

Что такое DSL?
DSL (Domain-Specific Language) — это язык программирования, который спроектирован и оптимизирован для решения задач в конкретной области или для определенного класса задач. DSL build.gradle предоставляет разработчикам удобный способ определения настроек проекта и управления ими, используя специфический синтаксис, который Gradle понимает и обрабатывает. Этот DSL позволяет создавать мощные и гибкие сценарии сборки, которые могут быть легко настраиваемы для разных проектов и задач.

С Android Studio Giraffe Kotlin DSL становится новым стандартом для Gradle-скриптов в разработке Android. Когда вы создаете новые проекты, используя встроенные шаблоны IDE, вам будут предоставлены файлы Kotlin DSL вместо файлов Gradle на основе Groovy.

https://habr.com/ru/companies/ppr/articles/765544/

✍️ @kotlin_lib

Kotlin

08 Dec, 05:59


RxJava to Kotlin Coroutines: Полное руководство по миграции.

Как разработчик, работающий с большими устаревшими приложениями, я имел удовольствие (а иногда и трудности) руководить модернизацией крупных кодовых баз, которые активно использовали RxJava для реактивного программирования. Эти усилия по модернизации в значительной степени были сосредоточены на преобразовании кода RxJava в эквиваленты на основе Coroutines и Flow. Во время этих миграций я многому научился и собираюсь поделиться всем, что узнал, в этой статье.

https://itnext.io/rxjava-to-kotlin-coroutines-the-ultimate-migration-guide-d41d782f9803

✍️ @kotlin_lib

Kotlin

07 Dec, 09:01


Уже забыли, когда кодили что-то нестандартное?
Приглашаем тряхнуть стариной на бесплатном мини-курсе от Skillbox «Python для всех». Он состоит из практики чуть меньше чем полностью. За 4 дня мы создадим 4 проекта:

1️⃣ Бота для Telegram, который умеет переводить голос в текст
2️⃣ Бота для Telegram, который обрабатывает фотографии
3️⃣ Парсер, который извлекает данные с сайтов
4️⃣ Веб-сайт (с помощью фреймворка Flask)


В общем, прокачаете навыки, освежите память и наверняка узнаете что-то новое.
Регистрируйтесь: https://epic.st/8iVEJ?erid=2VtzqvEerAU

🎁 А ещё подарки: персональная карьерная консультация, скидка 10 000 рублей на любой курс Skillbox и подборка полезных материалов.

Вас ждет новогодняя распродажа в Skillbox: дарим скидки до 60% и 3 курса в подарок!

Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880

Kotlin

02 Dec, 19:28


Что нового в Kotlin 2.1.0

Новые возможности языка: добавлены условия-гварды в конструкции when с объектом, нелокальные break и continue, а также многодолларовая интерполяция строк.

Обновления компилятора K2: улучшения проверок и реализация kapt.

Kotlin Multiplatform: базовая поддержка экспорта в Swift, стабильный Gradle DSL для опций компилятора.

Kotlin/Native: улучшенная поддержка iosArm64.

Kotlin/Wasm: поддержка инкрементной компиляции.

Gradle: повышена совместимость с новыми версиями Gradle и плагином Android.

Документация: значительные улучшения.


https://kotlinlang.org/docs/whatsnew21.html

✍️ @kotlin_lib

Kotlin

27 Nov, 13:04


Улучшаем автокомплит в смешанных Java-Kotlin проектах

Честно говоря, не знаю, нужно ли ставить тэг «перевод» на собственную статью.

Ну ок, поставил.

Всем привет! Недавно я наткнулся на статью, где описывается, как можно убрать мешающие варианты из автокомплита в Android Studio. Этот способ касается только классов — с методами у меня так же не получилось, и тогда мне пришла идея.

Как-то раз я дизайнил публичный API Kotlin-библиотеки, чтобы клиенты на Java могли пользоваться ей бесшовно, как и клиенты на Kotlin (ну, насколько это возможно). Если вы используете Kotlin, то, возможно, знаете, что для data-классов компилятор кучу всего генерирует за нас, в том числе функции componentN() для деструктуризации параметров primary-конструктора.

https://habr.com/ru/articles/845080/

original https://proandroiddev.com/better-kotlin-java-auto-complete-d0fd7e8a9355

✍️ @kotlin_lib

Kotlin

25 Nov, 07:59


👍Стройте эффективную многопоточную/асинхронную инфраструктуру приложений!

Узнайте как на бесплатном уроке онлайн-курса «Android Developer. Professional» — «Kotlin Coroutine в Android-разработке»: регистрация

Что будет на вебинаре?

- Теоретически и практические основы корутины: structured concurrency, builders, suspend функции, coroutine context, обработка exceptions.

- Каналы: producer channel/ Consumer channel; типы каналов по размеру буффера; rendevouz Channel и другие.

- Flow: builders; операторы; обработка исключений во Flow; миграция на Flow.

Результаты вебинара:

- Узнаете, как правильно использовать корутины и suspend функции, глубоко разобравшись в их устройстве и best practices

- Научитесь реализовывать операторы и писать правильные цепочки, используя Flow

- Сможете использовать знания для построения эффективной инфраструктуры приложений.

🔥После вебинара вы сможете продолжить обучение на курсе по спеццене, в том числе, в рассрочку.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Kotlin

23 Nov, 12:38


Applying the State Pattern in Kotlin

Когда наши объекты ведут себя по-разному в различных состояниях, может быть полезно применить Шаблон состояния (State Pattern). Сегодня мы рассмотрим код, который мог бы извлечь выгоду из этого шаблона, применим традиционный Шаблон состояния из классической книги "Gang of Four Design Patterns", а затем увидим, как можем его модернизировать и сократить количество вспомогательного кода, используя некоторые особенности языка Kotlin.

00:00 Introduction
00:16 Example Code
02:16 Classic State Pattern
06:50 Modernized State Pattern in Kotlin
11:58 Wrap-up

https://www.youtube.com/watch?v=pSx6yb1QLdk

✍️ @kotlin_lib

Kotlin

18 Nov, 20:27


«Приключение на 20 минут: взял и поменял язык». Личный опыт перехода на Kotlin

Зовут меня Артемий, я разработчик в компании i-Digital. Еще в начале своего карьерного пути выбрал для себя основным языком Python и развивался по большей части в нем. В какой-то момент начал преподавать его молодому поколению разработчиков в частных студиях, а заодно брать студентов на личное обучение.

Я пришел в коммерческую разработку на определенный проект, который был реализован на Python, но основным стеком для компании являлся Kotlin. Несмотря на переход в разработку, я продолжен преподавать и занимаюсь этим до сих пор. Вот из такой стартовой позиции начнем наше повествование.

https://habr.com/ru/articles/858436/

✍️ @kotlin_lib

Kotlin

12 Nov, 17:27


Kotlin вместо bash. Прокачиваем автоматизацию на сервере

Для решения задач автоматизации рутинных процессов для системных администраторов и DevOps (которые, кроме всего прочего, нередко занимаются созданием сборочных скриптов, которые могут не только подготовить базовую среду выполнения, но и могут взаимодействовать с другими системами для обеспечения полного цикла CI/CD) чаще всего используются или bash-сценарии (zsh, ash или язык любой другой оболочки) или python. Первое решение косвенно используется и в описании Dockerfile, поскольку сценарий исполняемых команд принципиально ничем не отличается от запуска скрипта в какой-либо shell, второй подход чаще ассоциируется с автоматизацией, связанных с взаимодействием с хранилищами данных — например, для создания учетных записей в LDAP или базе данных, отправки уведомлений и тд.

https://habr.com/ru/companies/otus/articles/742050/

✍️ @kotlin_lib

Kotlin

12 Nov, 14:01


Бесплатное IT-образование в 2024

Отобрали для вас полезные телеграм-каналы, которые помогут освоить программирование и другие IT-направления

Выбирайте нужное и подписывайтесь:

👩‍💻 С/С++: @Cpportal
📱 GitHub: @git_developer
🤓 Книги айти: @portalToIT
👩‍💻 Golang: @juniorGolang
👩‍💻 PHP: @PHPortal
👩‍💻 Моб. разработка: @MobDev
👩‍💻 Java: @Java_Iibrary
👩‍💻 Frontend: @FrontendPortal
⚙️ Backend: @BackendPortal
👩‍💻 Python: @PythonPortal
👩‍💻 C#: @KodBlog
🖥 Базы Данных & SQL: @SQL
👩‍💻 Разработка игр: @GameDevgx
👩‍💻 DevOps: @loose_code
🖥 Data Science: @DataSciencegx
🤔 Хакинг & ИБ: @cybersecinform
🐞 Тестирование: @QAPortal
📱 Маркетинг: @MarketingPortal
🖥 Дизайн: @PortalToDesign

➡️ Сохраняйте себе, чтобы не потерять

Kotlin

12 Nov, 08:50


Twine

Мультиплатформенный RSS-ридер, построенный с использованием Kotlin и Compose

https://github.com/msasikanth/twine

✍️ @kotlin_lib

Kotlin

09 Nov, 07:23


Антипаттерн: Остановите утечку Kotlin Flow Collectors в вашей ViewModel Android

Статья обсуждает антипаттерн в разработке на Android, связанный с использованием Flow и ViewModel в Kotlin. Она затрагивает проблему "утечки" коллекторов, которая возникает, если коллекты управляются неправильно, что может привести к утечкам памяти и неэффективному использованию ресурсов. Автор предлагает рекомендации по предотвращению этой проблемы через правильное управление коллекторами flow в жизненном цикле ViewModel.

https://sachankapil.medium.com/anti-pattern-stop-leaking-kotlin-flow-collectors-in-your-android-viewmodel-b85d5b09b987

✍️ @kotlin_lib

Kotlin

06 Nov, 16:15


Как максимально выгодно продавать рекламу в приложении?

Выбрать рекламную сеть с большой базой рекламодателей, которая предлагает точный таргетинг и другие возможности для роста дохода. Чем релевантнее реклама и чем выше конкуренция за каждый показ — тем больше доход от монетизации.

Например, в Рекламной сети Яндекса свыше 300 000 прямых рекламодателей из 30 индустрий и более 1000 факторов для подбора рекламы. А с помощью их собственной платформы медиации можно показывать самые выгодные объявления из нескольких рекламных сетей.

Теперь к РСЯ легко подключить приложения на React Native, а не только на iOS, Android, Flutter или Unity. Интеграция SDK простая, а если что-то пойдёт не так, поможет техподдержка, которая на связи 24/7.

Узнать больше о РСЯ и начать зарабатывать на показах рекламы можно по ссылке.

Kotlin

06 Nov, 09:00


Kotlin под капотом: Exploring Objects, Companion Objects, and Annotations: @JvmStatic, @JvmField, @JvmOverloads

https://proandroiddev.com/kotlin-under-the-hood-exploring-objects-companion-objects-and-annotations-jvmstatic-71e1bf1128df

✍️ @kotlin_lib

Kotlin

06 Nov, 07:01


🔥Пишем веб-сервис на Java, а затем преобразуем его в Kotlin за 1 урок

Приглашаем на бесплатный вебинар, он будет интересен Java-разработчикам и бэкенд-разработчикам на Kotlin!

Дата: 12 ноября в 19:00 МСК


В первой части занятия мы познакомимся с основными концепциями:
• null-безопасность;
• сокращение шаблонного кода;
• лямбда-выражения.

Во второй части — напишем веб-сервис с CRUD-операциями на Java, а затем преобразуем его в Kotlin. Так вы увидите, как синтаксис Kotlin упрощает код.

📌Занятие проведёт Сергей Прощаев — ведущий инженер и Java-разработчик в крупной компании

После вебинара вы сможете приобрести курс «Kotlin Backend Developer. Professional», который доступен в рассрочку!

👉🏻Записаться на событие

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Kotlin

05 Nov, 21:07


Kotlin Beginner Tutorials Hindi | Complete Series

На данный момент на youtube доступно 41 видео


✍️ @kotlin_lib

Kotlin

01 Nov, 10:00


Организация кода в проекте | В какой пакет положить Kotlin класс

0:00 Введение
1:16 Куда можно класть Kotlin файлы
2:42 Интеграция
3:39 Как разделить код по Gradle модулям
6:23 Несколько папок с исходным кодом
7:42 Пакеты с кодом
14:03 Выделение кода в AAR/JAR библиотеки
15:37 Заключение

источник

✍️ @kotlin_lib

Kotlin

28 Oct, 08:01


Как создавать собственные DSL и применять их при разработке приложений?

Узнайте на открытом уроке «Возможности Kotlin для создания DSL на примере JsonBuilder»!

📅Дата и время: 31 октября, 19:00 МСК
🔗Записаться на событие: https://vk.cc/cDpPQa

🔍Что вас ждет:
- Погружение в назначение, особенности и практическое применение DSL.
- Практика создания DSL на примере JsonBuilder.
- Обзор возможностей Kotlin, полезных для создания DSL.

👨‍🏫Урок проведёт Евгений Непомнящий, преподаватель OTUS и опытный старший разработчик с многолетним стажем.

📚Это занятие будет полезно всем, кто использует Kotlin или хочет изучать этот язык.

🎓Урок приурочен к старту курса «Kotlin Backend Developer. Professional». После занятия вы сможете продолжить обучение по специальной цене и даже в рассрочку!

➡️ Регистрируйтесь прямо сейчас, чтобы не пропустить это интересное мероприятие: https://vk.cc/cDpPQa

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Kotlin

28 Oct, 05:26


Kotlin KSP — как автоматизировать всё на свете

Недавно Google выпустила отличное обновление для автоматизации генерации шаблонного кода. Конечно, речь идет о Kotlin Symbol Processing. За годы использования Java Annotation Processing, KAPT, а теперь и KSP, я видел множество статей о том, как создать свой первый генератор, аннотацию и так далее. Часто предлагают что-то вроде: 'Давайте сгенерируем геттеры и сеттеры для наших моделей в качестве практического упражнения.' Этого более чем достаточно, чтобы попробовать технологию, но мне всегда хотелось чего-то большего. Реального примера, который действительно помог бы в проекте. И в одном из своих проектов я столкнулся с идеальной задачей, о которой расскажу сегодня. Мы поговорим об автоматизации описаний навигации в библиотеке Compose Navigation.

https://proandroiddev.com/kotlin-ksp-how-to-automate-everything-in-the-world-08e186ae1ec9

✍️ @kotlin_lib

Kotlin

25 Oct, 07:26


Под капотом Kotlin: изучаем конструкторы и блоки инициализации

Задумывались ли вы когда-нибудь, как работают конструкторы и блоки инициализации в Kotlin на низком уровне? В этом блоге мы погрузимся в эту тему.

Прежде чем перейти к деталям, давайте сначала разберёмся, что такое конструкторы и блоки инициализации. В Kotlin существуют два основных типа конструкторов: первичный конструктор и вторичные конструкторы.

https://medium.rip/@abhaysingbhosale123/kotlin-under-the-hood-exploring-constructors-and-init-blocks-869fc1f85a8e

✍️ @kotlin_lib

Kotlin

20 Oct, 21:05


Выпуск моего первого настоящего приложения на Kotlin Multiplatform

Я создал «OctoMeter», полностью функциональное приложение на Kotlin Multiplatform, с нуля всего за месяц. Благодаря общему пользовательскому интерфейсу и бизнес-логике, мое приложение теперь работает на настольных компьютерах, Android и iOS.

https://callmeryan.medium.com/releasing-my-first-true-kotlin-multiplatform-app-60d81e739eb0

✍️ @kotlin_lib

Kotlin

13 Oct, 21:05


Написание API Kotlin Multiplatform, совместимых со Swift

Серия из 9 статей о том, как создавать библиотеки Kotlin Multiplatform, которые хорошо работают со Swift.

https://medium.com/@aoriani/list/writing-swiftfriendly-kotlin-multiplatform-apis-c51c2b317fce

✍️ @kotlin_lib

Kotlin

06 Oct, 19:31


Koin: как сделать свой DI за 10 минут

Привет, меня зовут Иван Курак, я Android-разработчик приложения Ozon Job. В этой статье мы реализуем свой механизм, на котором построен Koin. Тем самым мы пройдём путь, который проходили его авторы при решении проблемы построения собственного DI.

Эта статья будет полезна тем, кто использует Koin в своих приложениях, и тем, кто хочет сделать свой простой DI. Ведь только понимание того, как что-то устроено, поможет создавать новые решения, учитывая при этом опыт прошлых разработок, и модифицировать существующие решения без трагических последствий.

Дополнительная (но от того не менее важная) цель статьи — показать, что базовый механизм, на котором построен Koin, не такой уж и страшный :)

https://habr.com/ru/companies/ozontech/articles/846482/

✍️ @kotlin_lib

Kotlin

01 Oct, 10:42


Kmplate

Это шаблон для легкого создания нового Kotlin Multiplatform проекта, основанного на Чистой Архитектуре с модульной структурой по функциям.

https://github.com/Tweener/kmplate

✍️ @kotlin_lib

Kotlin

25 Sep, 07:02


Как настроить DB Room для Kotlin Multiplatform Compose

https://www.youtube.com/watch?v=IHs0yPa2Nv4

✍️ @kotlin_lib

Kotlin

19 Sep, 18:15


Как использовать Coil в Compose Multiplatform

Coil - это мощная, быстрая и легкая библиотека для загрузки изображений, которую многие разработчики Android используют уже много лет. После появления compose multiplatform сообщество представило несколько библиотек загрузки изображений с открытым исходным кодом, таких как Kamel и Compose Image Loader.
Оставалась возможность использовать coil с помощью expect и actual, но только на Android.

https://proandroiddev.com/coil-for-compose-multiplatform-5745ea76356f

✍️ @kotlin_lib

Kotlin

17 Sep, 10:01


Как сделать Android-приложение быстрее и эффективнее?

Узнайте на открытом вебинаре 18 сентября в 20:00 мск, где мы разберем:

- как ProGuard/R8 минимизируют, оптимизируют и убирают неиспользуемый код;
- сравнение эффективности ProGuard и R8;
- как внедрять ProGuard/R8 в существующий проект.

Урок особенно полезен для Android-разработчиков с опытом работы от 1 года.

Встречаемся в преддверии старта курса «Специализация Android Developer». Все участники вебинара получат специальную цену на обучение!

Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие https://vk.cc/cASYOY.

Kotlin

17 Sep, 09:02


Как использовать ресурсы в Compose Multiplatform

Ресурсы являются важной частью любого мобильного приложения, они включают в себя отрисовки, шрифты, текстовые файлы и многое другое. С появлением Compose Multiplatform у нас появился компонент ресурсов Compose, но он был экспериментальным и претерпел несколько изменений в разных версиях. Теперь, когда вышла следующая основная версия Compose, а именно 1.6.0-beta01, в разделе ресурсов появились некоторые важные изменения. Давайте рассмотрим их, а также то, как перенести и использовать новый способ доступа к ресурсам.

https://proandroiddev.com/how-to-use-resources-in-compose-multiplatform-77a6552b505d

✍️ @kotlin_lib

Kotlin

17 Sep, 07:50


Leveraging Lazy Modules and Background Loading in Kotlin with Koin

https://blog.kotzilla.io/lazy-modules-in-kotlin-with-koin

✍️ @kotlin_lib

Kotlin

12 Sep, 08:00


Веб-разработчик — это специалист, который создаёт новые и поддерживает уже существующие сайты. От лендинга до интернет-магазина или социальной сети. Откройте мир веб-разработки с мини-курсом Skillbox.

Регистрация и подробная программа: https://epic.st/aNtsUb?erid=2VtzqwzQphb

На мини-курсе вы:
📍Освоите основы языка разметки HTML и технологии CSS
📍Попробуете себя в одной из самых востребованных IT-специальностей, разберёте типовые задачи frontend- и backend-разработчиков
📍Создадите свои первые проекты — сайт, приложение и сервис — и на практике убедитесь, что стать веб-разработчиком реально в любом возрасте, независимо от опыта и знаний

Спикер — Даниил Пилипенко, основатель и директор центра подбора IT-специалистов SymbioWay. 19 лет работает в сфере Java- и веб-разработки, руководит командами разработки в разных проектах.

🎁 Всех участников ждут подарки:
— Сертификат на скидку 10 000 рублей на любой курс
— Доступ к изучению английского языка на год
— Персональная карьерная консультация

Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880

Kotlin

11 Sep, 05:02


Kotlin Design Patterns: Flyweight

Шаблон в основном используется для балансировки использования памяти в вашем приложении. Речь идет о повторном использовании объектов (заметьте, я использовал слово 'объект', а не 'класс'). Вместо создания новых объектов каждый раз, у вас есть пул похожих объектов, которые можно повторно использовать."

https://proandroiddev.com/kotlin-design-patterns-flyweight-08aa2be80d80?gi=c636ae7e3bc3

✍️ @kotlin_lib

Kotlin

10 Sep, 15:01


if vs let” в Kotlin


Что использовать для объектов 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

Kotlin

08 Sep, 09:38


Kotlin Coroutines 101: Асинхронное программирование на практике.

Когда вы начинаете изучать Kotlin или Android, вам неизбежно придется перемещать тяжелые задачи с основного потока (UI Thread). Ведь вам не хочется, чтобы пользователи жаловались на медленную работу вашего приложения!

Отправьтесь в путешествие от новичка до эксперта по Kotlin корутинам с помощью этой всесторонней статьи. Мы проведем вас через основные концепции, предоставляя практические примеры кода на каждом шагу.

https://proandroiddev.com/kotlin-coroutines-101-async-programming-in-practice-062b359d502b

✍️ @kotlin_lib

Kotlin

03 Sep, 06:42


Как новый компилятор K2 ускоряет компиляцию Kotlin на 94%

По замерам JB, K2 ускоряет компиляцию на 94%. Также он позволит ускорить разработку новых языковых фич и унифицировать все платформы, предоставляя улучшенную архитектуру для мультиплатформенных проектов.

Но мало кто погружался в то, как работает K2, и чем он отличается от K1.

Эта статья более освещает нюансы работы компилятора, которые будут полезны разработчикам для понимания, что же JB улучшают под капотом, и как это работает.

https://habr.com/ru/companies/kts/articles/813085/

✍️ @kotlin_lib

Kotlin

29 Aug, 16:30


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

Kotlin

19 Aug, 07:17


Пошаговое руководство по выполнению анализа данных с помощью 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

17 Aug, 09:26


Kotlin Coroutine mechanisms: runBlocking v. launch

https://medium.com/google-developer-experts/kotlin-coroutine-mechanisms-runblocking-v-launch-386e1ae8e3c2

✍️ @kotlin_lib

Kotlin

05 Aug, 11:51


KMP (Kotlin Multiplatform) Firebase setup

Почти каждое мобильное приложение сегодня в той или иной мере использует Firebase, будь то реализация CRUD-операций через NoSQL-базу данных, анализ A/B-тестов или обнаружение аварийных ситуаций. Он стал важнейшим компонентом для успешного запуска вашего приложения.

https://funkymuse.dev/posts/kmp-firebase/

✍️ @kotlin_lib

Kotlin

28 Jul, 12:25


Роман Елизаров про 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

Kotlin

23 Jul, 20:52


Vico

Легкая расширяемая библиотека Kotlin для создания диаграмм.
Библиотека совместима как с Jetpack Compose, так и с системой представлений, при этом 2 её основных модуля — compose и views, — являются независимыми.

https://github.com/patrykandpatrick/vico

✍️ @kotlin_lib

Kotlin

19 Jul, 11:16


Наброски кода с помощью Kotlin Notebooks: Руководство для разработчиков

Как разработчик вы, возможно, уже знакомы с Kotlin Notebooks, а может быть, даже немного экспериментировали с ними. Но, скорее всего, вы все еще пытаетесь понять, как эффективно применять их в реальных сценариях. Часто предполагается, что они полезны в основном для специалистов по анализу данных и аналитиков. Я тоже был на этом пути. На самом деле, мне пришлось глубоко погрузиться в машинное обучение, обучить модели и показать, как блокноты Kotlin могут быть полезны, прежде чем я дал им должный шанс. Возможно, я расскажу об этом подробнее в другом посте. Пока же я хочу подчеркнуть, что обширный опыт в машинном обучении не обязателен для понимания концепций.

https://dev.to/daredev/code-sketching-with-kotlin-notebooks-developer-guide-530n

✍️ @kotlin_lib