Telegram Web
Junie - новый кодинг ассиcтент от JetBrains. На момент выхода поста находится в EAP

#idea #ai #jetbrains
💡Делайте как можно меньше public

Представьте, что вы случайно сделали внутреннюю функцию публичной – и ваш Gradle-модуль начинает "протекать" наружу лишним кодом. Неявное указание модификаторов доступа может привести к тому, что даже те классы и функции, которые вы планировали использовать только внутри модуля, становятся частью публичного API. Это усложняет поддержку и тестирование, а также увеличивает риск возникновения нежелательных зависимостей.

Решение? Включите Kotlin Explicit Mode (введён в Kotlin 1.4)! С включением этой опцией разработчики будут обязаны явно указывать модификаторы доступа для всех элементов. Таким образом, вы контролируете, что именно экспортируется, и защищаете внутреннюю логику от случайного использования.

Пример настройки в Gradle
kotlin {
// Без указания модификатора доступа код не скомпилируется
explicitApi()
// или
explicitApi = ExplicitApiMode.Strict

// Сборка пройдет успешно, но в логах появятся предупреждения
explicitApiWarning()
// или
explicitApi = ExplicitApiMode.Warning
}


Рекомендация: используйте internal или private, а к public прибегайте только тогда, когда вы точно понимаете, что этот API должен быть доступен в модулях, подключивших ваш код.

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

#kotlin #лучшиепрактики
🚀 Ktor 3.1.0 уже здесь!

JetBrains выпустила новый минорный релиз, который приносит множество полезных обновлений для Android-разработчиков.

👉 Новый CLI-конфигуратор – генерация проектов стала проще.

👉 Поддержка SSE – улучшенная сериализация и heartbeat-события.

👉 Multipart в HttpClient – удобная работа с загрузкой файлов.

👉 Экспериментальная поддержка WASM – новые горизонты для Ktor.

👉 Начало интеграции gRPC – первый шаг к мощной серверной коммуникации.

👉 Движок на основе Curl больше не требует установки сторонних зависимостей, поддерживает ARM и WebSocket

#kotlin #ktor #wasm #grpc
🏝 9 лет назад вышла первая версия Kotlin 🎉🎉🎉

Кажется, я совсем недавно еще работал с бета-версиями первой версии Kotlin, писал приложения с расписанием для университета, где учился, чтобы попробовать эту технологию. Тогда была только поддержка JVM и проводились эксперименты с JS.

Сегодня Kotlin - это уже целая экосистема💪, которая позволяет писать приложения для нескольких платформ, имеет огромное сообщество разработчиков, а также официальную поддержку от команды 🤖 Android в Google. А как хорош Compose Multiplatform ❤️❤️❤️

Уже появилось поколение разработчиков, которые начали свой путь именно с Kotlin для разработки под Android 🤯🤯🤯

Поделитесь в комментариях под постом в @kotlin_broadcast своей историей знакомства с этим языком и тем, что вас привлекло в нем.

#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Kotlin Adept Notes (Alex Panov)
Decompose Detekt Rules

Я написал кастомные правила для Detekt, которые будут полезны в каждом проекте с Decompose.
На данный момент в библиотеке есть два правила:

🟣DecomposeComponentContextRule — проверяет, что вы не создаете ComponentContext внутри Composable функций, так как это может привести к падениям в рантайме.

🟣SerializableDiscriminatorRule — это правило не относится напрямую к Decompose, но тесно с ним связано. Оно проверяет, что в конфигурации компонента не указаны свойства, совпадающие с дискриминатором класса в kotlinx.serialization, подробнее про это здесь.

Правила работают с обычной конфигурацией Detekt, без type resolution. Также я не пытался охватить все возможные краевые кейсы, поэтому, если в вашем проекте они не работают, смело зводите issue.

🐱 Документация и инструкция по подключению находится здесь.
Please open Telegram to view this post
VIEW IN TELEGRAM
Kotlin Sequences - это API для процессинга набора данных, где каждый оператор в цепочке обрабатывает каждый элемент в последовательности, а не все элементы на каждом шаге оператора

Операторы Kotlin Std Lib для коллекций на каждом этапе обрабатывают все элементы.

Сравнение работы таких подходов вы найдете в статье "Should you use Kotlin Sequences for Performance?" (EN, 5 минут).
🏝 Какая AI модель лучше всего работает с Kotlin?

JetBrains провела сравнение популярных AI моделей, оценивая, как они отвечают на вопросы, связанные с Kotlin. Для этого они создали свой бенчмарк - KotlinHumanEval. Победители:
🥇OpenAI o1 - 91.93%
🥈DeepSeek R1 - 88.82% (-3.11% от o1)
🥉OpenAI o3-mini - 86.96% (-4.97% от o1)

Второй бенчмарк - Kotlin_QA, который проверяет, как модель качественно отвечает на вопросы по Kotlin и объясняет, что делает Kotlin-код. Dev Advocate собрали 47 популярных вопросов и отправили нейросеткам. Победители второго теста поменялись:
🥇DeepSeek-R1 - 8.79/10
🥈OpenAI o3-mini - 8.7/10
🥉OpenAI o1 - 8.62/10

#kotlin #ai #jetbrains
Please open Telegram to view this post
VIEW IN TELEGRAM
Провели эксперимент по сравнению популярных HTTP клиентов на JVM

Выводы делайте сами

#kotlin
Разбор Kotlin Guard в when (EN, 12м) из Kotlin 2.1 (фиче в экспериментальном статусе)

🔗 Ссылка без VPN

#kotlin
🏝💉 Стал доступен плагин для проверки Koin из IDE

Проблема с валидацией DI графа зависимостей при использования Koin - очень актуальная. Авторы решили подойти к её решению через анализ кода проектов в IDE, хотя уже обсуждали перенос инструмента в CLI.

Для использования вам понадобится зарегистрироваться на сайте Kotzilla.

#kotlin #idea #koin
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
KMP Project View - IDEA/Android Studio плагин для добавления специального представления плагина, удобного для KMP проектов

#kotlin #kmp #idea #androidstudio
Вышел Decompose 3.3.0. Множество небольших, но важных улучшений

#kotlin #kmp #arkivanov
Forwarded from Android Broadcast
📹 Непростые вопросы про Kotlin Coroutines, Александр Гирев (40м)

Однажды пятничным вечером Александр и его коллега задумались над вопросом: где живут корутины, когда запустивший их coroutineScope героически погибает в жерновах GC? Субботнее утро было проведено за чтением статей и исходников.

Вот так и родилась идея доклада. В нем — ответы на вопросы об устройстве и работе корутин для самых любознательных.

📹 Версия на VK Video

#kotlin #coroutines
Please open Telegram to view this post
VIEW IN TELEGRAM
ko-iso - KMP библиотека для работы с кодами стран

#kotlin #kmp #android #jvm #native #ios #android #wasm
2025/06/30 16:48:37
Back to Top
HTML Embed Code: