Kotlin
2.17K subscribers
273 photos
123 videos
18 files
396 links
Подборки полезного материала по Kotlin. По всем вопросам @evgenycarter
Download Telegram
Учим 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
1
Kotlin Cacheable

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

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

✍️ @kotlin_lib
👍4
5 распространенных вопросов для собеседования по Kotlin Coroutines

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

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

✍️ @kotlin_lib
👍3
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
👍5
Создание плагинов и переиспользуемых частей в .gradle.kts-файлах и Kotlin extension-функциях

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

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

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

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

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

✍️ @kotlin_lib
👍3
Media is too big
VIEW IN TELEGRAM
Beyond The Success Of Kotlin / Документальный фильм от EngX

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

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

источник

✍️ @kotlin_lib
👍6
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
👍2
🔥 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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Прекратите "прыгать" между потоками!

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

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

✍️ @kotlin_lib
👍4
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
👍1
⁉️ Знаешь, куда движется мир бэкенда?

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

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

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

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

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

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
Понимание ключевого слова 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
👍2
Отладка 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
👍2
👩‍💻 Пройди тест на знание 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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👎1
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
1👍1
Основы Jetpack Compose: как обеспечить стабильность вашего кода

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

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