Kotlin
2.17K subscribers
273 photos
123 videos
18 files
396 links
Подборки полезного материала по Kotlin. По всем вопросам @evgenycarter
Download Telegram
Media is too big
VIEW IN TELEGRAM
Организация кода в проекте | В какой пакет положить Kotlin класс

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

источник

✍️ @kotlin_lib
👍1
👩‍💻 Хотите научиться создавать полноценные Android-приложения с интеграцией API?

Приглашаем на открытый урок, создадим приложение «Фото дня»

🗓 05 августа в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Android Developer. Professional».

На вебинаре:
- Разберемся с API сервера для скачивания фотографии и описания к ней
- Сверстаем простой экран для отображения данных
- Пропишем выход в интернет для скачивания данных
- Пропишем бизнес-логику для отображения данных на экране приложения

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

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
3👎1
Богатые ошибки в Kotlin | Михаил Зареченский

Модель null-безопасности в Kotlin — одна из её ключевых особенностей. В этом докладе мы рассмотрим, как эту модель можно обобщить до ограниченных объединённых типов, специально предназначенных для обработки ошибок.

Кроме того, мы обсудим, как ошибки могут быть представлены в Kotlin сегодня, включая такие подходы, как nullable-типы, исключения, иерархии sealed-классов и классы, подобные Result.

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

✍️ @kotlin_lib
2👍1
Fuzz‑тестирование для Kotlin с помощью kotlinx.fuzz

Определение крайних (edge) случаев для тестирования — непростая задача, часто оставляющая скрытые баги и уязвимости незамеченными.
Fuzz‑тестирование (fuzzing) решает эту проблему, автоматически генерируя тесты со случайными или некорректными входными данными, что позволяет разработчикам выявлять неожиданные исключения и сценарии сбоев. Благодаря своей эффективности в обнаружении критических ошибок ПО, fuzzing получил широкое распространение во многих языках программирования.
Однако в Kotlin он остаётся сравнительно малоиспользуемым.
Именно поэтому наша Лаборатория языков программирования и анализа программ JetBrains Research посвятила усилия разработке kotlinx.fuzz — fuzzer’а для библиотек на Kotlin. Поскольку Kotlin компилируется в байткод JVM, системы fuzz‑тестирования для Kotlin можно строить, используя существующие Java‑fuzzer’ы.

Эта концепция и стала основой нашего текущего прототипа.


@KFuzzTest
fun testDuration(f: KFuzzer) {
val isoString = f.asciiString(10)
val duration = Duration.parseIsoStringOrNull(isoString)
println("$isoString -> $duration")
}


https://blog.jetbrains.com/research/2025/04/kotlinxfuzz-kotlin-fuzzing/

✍️ @kotlin_lib
👍1
🔥 Всё ещё сталкиваетесь с долгими релизами и ручной проверкой кода?

Приглашаем на открытый урок который поможет решить эти вопросы.

🗓 12 августа в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Kotlin Backend Developer. Professional».

На открытом уроке «Почему все переходят на Kotlin? Секреты успешной миграции с Java» мы покажем, как сократить время разработки на 30% и минимизировать риски NullPointerException.
Вы узнаете ключевые отличия Kotlin, пошаговый план миграции без переписывания проекта и лучшие практики корутин для асинхронности.

🦾 Представьте, что каждый новый модуль пишется быстрее, ошибок становится в три раза меньше, а вы получаете бесценный навык для современных бэкенд-проектов.

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

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
Избегайте использования изменяемых коллекций в конструкторе data-классов в Kotlin

В своих предыдущих статьях я показывал, как использование var, Array или лямбды в конструкторе data-класса на Kotlin может привести к неожиданному поведению и трудноуловимым багам.

Эти проблемы часто связаны с тем, как работают equals(), hashCode() и copy() — особенно в логике сравнения коллекций, диффов или рекомпозиции.

https://proandroiddev.com/avoid-using-mutable-collections-in-the-data-class-constructor-in-kotlin-53d17897114e

✍️ @kotlin_lib
👍1
Тёмные стороны inline, crossinline и reified в Kotlin

Конструкции inline, crossinline и reified в Kotlin позиционируются как абстракции без накладных расходов. Действительно, они позволяют избежать лишних выделений памяти, создавать типобезопасные билдеры и улучшать производительность.

Однако неправильное их использование может привести к следующим проблемам:

- Повреждённые stack trace’ы, из-за чего краши трудно отлаживать в продакшене.
- Тонкие баги с отменой корутин или IllegalStateException.
- Непреднамеренные утечки API и жёсткая связка встроенного (inlined) кода.

https://proandroiddev.com/the-dark-corners-of-inline-crossinline-and-reified-in-kotlin-d244eaa07bb1

✍️ @kotlin_lib
👍1
👩‍💻 Как создать свой собственный оператор Flow и использовать его в архитектуре приложения?

🗓 12 августа в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Android Developer. Professional».

На открытом уроке вы научитесь писать свой собственный оператор Flow с нуля. Мы разберём, как интегрировать оператор в архитектуру приложения, а также научимся строить архитектуру для гибкости и масштабируемости.

Этот урок идеально подойдёт разработчикам уровня junior и выше, стремящимся углубить знания и научиться эффективно использовать Flow в своих проектах.

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

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