KKotlin

Kotlin

@kotlin_lib💻 Технологии🇷🇺 Русский📅 март 2026 г.

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

📊 Полная статистика📝 Все посты
##036#39
2.1K
Подписчики
545,938
Ср. охват
25.8%
Вовлечённость
16
Постов
~0.3
В день

Графики

📊 Средний охват постов

📉 ERR % по дням

📋 Публикации по дням

📎 Типы контента

Лучшие публикации

16 из 16
Kkotlin_lib
kotlin_lib
30 янв., 11:23

💣 Почему я запрещаю Destructuring Declarations на код-ревью Котлиновский синтаксис val (name, age) = user выглядит сексуально. Python-style, кратко, молодежно. Но для бизнес-логики это мина замедленного действия. Представим классический DTO для транзакции: data class Transaction( val amount: Double, val fee: Double ) Где-то в недрах UseCase вы пишете: val (total, commission) = getTransaction() // Логика: total - commission Всё работает. Пока через полгода другой разработчик (или вы же) не решит...

👁 792
Kkotlin_lib
kotlin_lib
19 февр., 21:54

⌨️Создание AI-агентов на Kotlin Часть 1: минимальный кодовый агент Строить агентов - странная штука. Ты пишешь не код, который сам что-то делает. Ты пишешь код, который даёт LLM возможность что-то делать, а что именно делать - решает уже сама модель. К этому сдвигу мышления нужно привыкнуть. Ты даёшь агенту возможность читать файлы - и он сам решает, какие файлы читать и когда. Ты ожидаешь, что он начнёт с main-файла. А он вместо этого сначала читает три тестовых файла, чтобы понять паттерны. Ты...

👁 717📷 photo
Kkotlin_lib
kotlin_lib
11 февр., 14:01

💀 Невидимый this: Как одна лямбда может утечь всю Activity Мы привыкли считать, что Kotlin умнее Java. В Java анонимный класс всегда держал ссылку на внешний класс. В Kotlin компилятор пытается оптимизировать лямбды и делать их статическими синглтонами. Но эта магия ломается от одного прикосновения. Представьте код во ViewModel или Presenter: class HeavyScreen { private val bigData = ByteArray(1024 1024 20) // 20 MB private val title = "Profile" fun load() { ExternalService.fetchData { result -...

👁 702
Kkotlin_lib
kotlin_lib
10 февр., 15:18

🐢 Ваш by lazy тормозит (и вы об этом не знаете) Мы привыкли писать так: val formatter by lazy { expensiveInitialization() } Это стандарт де-факто для тяжелых объектов. Но знаете ли вы, что по умолчанию lazy использует режим LazyThreadSafetyMode.SYNCHRONIZED? Что это значит под капотом: Каждое обращение к переменной (даже после того, как она инициализирована!) проходит через проверку volatile поля. А при первой инициализации создается монитор (lock), чтобы гарантировать потокобезопасность. Doubl...

👁 640
Kkotlin_lib
kotlin_lib
17 февр., 10:09

🛡️ lifecycleScope - бро. Почему Coroutines не текут (почти) В прошлом посте мы выяснили: Callback Hell = Memory Hell. Вам нужно вручную отписываться в onDestroy, иначе this утечет вместе с Activity. Kotlin Coroutines предложили решение: Structured Concurrency. И в Android это реализовано через lifecycleScope и viewModelScope. Как это работает на пальцах: // Внутри Fragment / Activity lifecycleScope.launch { val user = api.getUser() // (1) Suspend point showUser(user) // (2) Update UI } Сценарий...

👁 631
Kkotlin_lib
kotlin_lib
2 мар., 11:14

📉 Ваш List убивает перформанс Compose. Разбираемся со Stability Написали красивый экран на Compose. Данные не меняются, но Layout Inspector показывает, что ваш Composable со списком перерисовывается каждый чих. Почему? Потому что вы передали туда обычный List. @Composable fun UsersList(users: List<User>) { // ❌ Компилятор вам не верит // ... } В чем проблема? Compose опирается на концепцию Stability (стабильности), чтобы понимать, можно ли «скипнуть» (пропустить) рекомпозицию узла, если парамет...

👁 580
Kkotlin_lib
kotlin_lib
24 февр., 15:08

🔥 Ваш StateFlow работает вхолостую. Разбираем SharingStarted Превращение Flow в StateFlow через stateIn - стандартный паттерн в ViewModel. Но третий параметр (started) - это место, где утекают ресурсы процессора и сети. Смотрим типичный код: val uiState: StateFlow<UiState> = repository.observeData() .map { it.toUiState() } .stateIn( scope = viewModelScope, started = SharingStarted.Eagerly, // 👈 Внимание сюда initialValue = UiState.Loading ) 1. SharingStarted.Eagerly - Режим "Зомби" Поток запус...

👁 563
Kkotlin_lib
kotlin_lib
3 мар., 08:01

👩‍💻 Открытый урок «Знакомство с Kotlin: пишем первый код» 🗓 5 марта в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «Kotlin Developer. Basic» от Otus. Программа вебинара: ✔Разберем три ключевых преимущества Kotlin: безопасность null, лаконичность и совместимость. ✔Напишем небольшой, но полезный фрагмент, который решает понятную задачу. ✔Ответим на главный вопрос: почему Kotlin — это не просто «улучшенная Java», а другой подход к разработке. Вебинар будет полезен: Начинающим разработчикам...

👁 523📷 photo
Kkotlin_lib
kotlin_lib
6 мар., 10:03

👨‍💻 Вы пишете тесты, потому что «так надо» Покрываете несколько функций, проверяете очевидные кейсы, ставите галочку. Тесты проходят, но чувствуете, что это формальность. Они не помогают находить баги, не улучшают код, не дают уверенности в изменениях. Проблема не в тестах. Проблема в том, как вы их пишете. 🗓 12 марта в 20:00 — открытый урок «Профессиональные Unit-тесты (модульные тесты) в Android: как тесты улучшают код» Разберём, что отличает хороший Модульный тест (unit-тест) от теста «для...

👁 520🎬 video

Типы хуков

Нейтральный14 | 557 просм.
Вопрос1 | 514 просм.
Статистика1 | 419 просм.

Длина постов

Очень длинные (1000+)12 | 555 просм.
Длинные (500-1000)2 | 519 просм.
Средние (200-500)1 | 419 просм.

Влияние эмодзи

464
С эмодзи (6)
595
Без эмодзи (10)
-22.0% охвата

Типы контента

📝
11
text
549 просм.
📷
4
photo
543 просм.
🎬
1
video
520 просм.
Kotlin (@kotlin_lib) — Telegram-канал | PostSniper