К релизу начинают готовить Kotlin 1.9.0. Ha GitHub появилась первая бета будущей версии языка
@kotlin_broadcast #kotlin
@kotlin_broadcast #kotlin
🔥50❤2👍2👎2
Forwarded from Android Broadcast (Кирилл Розов)
📺 Ускоряем написание кода (15 мин)
Узнайте, как использовать тулинг, генерацию кода и машинное обучение, чтобы писать меньше кода! Java Annotation Processing, KAPT, IDEA-плагины, live-template-ы и многое другое
0:00 Вступление
0:44 Annotation Processing
2:46 Kotlin Symbol Processing
4:09 AvitoTech
4:37 Генерация кода из Gradle
5:08 Плагины Kotlin компилятора
6:20 Возможности IDE
7:50 Плагины IDE
8:43 Шаблоны Android Studio
9:18 Geminio
11:13 AI помощники
14:00 Заключение
#AndroidBroadcast #разбор
Узнайте, как использовать тулинг, генерацию кода и машинное обучение, чтобы писать меньше кода! Java Annotation Processing, KAPT, IDEA-плагины, live-template-ы и многое другое
0:00 Вступление
0:44 Annotation Processing
2:46 Kotlin Symbol Processing
4:09 AvitoTech
4:37 Генерация кода из Gradle
5:08 Плагины Kotlin компилятора
6:20 Возможности IDE
7:50 Плагины IDE
8:43 Шаблоны Android Studio
9:18 Geminio
11:13 AI помощники
14:00 Заключение
#AndroidBroadcast #разбор
👍21🔥1🤯1🤬1
Forwarded from Android Broadcast (Кирилл Розов)
Разбор когда надо использовать derivedStateOf { ... } для создания State на основе друго State. В статье рассматривается пример с разблокировкой кнопки когда пользователь промотал список до конца
#compose
#compose
Хабр
В каких случаях использовать функцию derivedStateOf из Jetpack Compose
derivedStateOf { ... } derivedStateOf - это функция, которая из исходных объектов State формирует производный State. Основной смысл применения функции derivedStateOf - понизить частоту изменения...
👍16👎12❤1
Вышел Detekt 1.23.0
👉 Плагин компилятора переехал в основное репо. Он позволяет подключать проверки не через Gradle плагин, а как часть процесса компиляции кода
👉 25 новых правил (включает правила из KtLint 0.49.1)
👉 Поддержали Gradle Worker API, что ускорит проверку больших проектов
🛠️ Исправление багов
Начата разработка версии 2.0. Следить за прогрессом тут
#tooling
👉 Плагин компилятора переехал в основное репо. Он позволяет подключать проверки не через Gradle плагин, а как часть процесса компиляции кода
👉 25 новых правил (включает правила из KtLint 0.49.1)
👉 Поддержали Gradle Worker API, что ускорит проверку больших проектов
🛠️ Исправление багов
Начата разработка версии 2.0. Следить за прогрессом тут
#tooling
👍25👎1
Вышел Coil 2.4.0: улучшение API и поддержки Compose, а также исправление багов
👍19👎2
Validate Fields Like a Pro With Kotlin Annotation Classes (7 мин)
Интересный подход написания валидатора Kotlin Property на основе annotation class. Они используются как указание правила, а вот утилиту проверки написали на рефлексии, но никто не мешает потом переписать его как плагин компилятора или на основе KSP
Интересный подход написания валидатора Kotlin Property на основе annotation class. Они используются как указание правила, а вот утилиту проверки написали на рефлексии, но никто не мешает потом переписать его как плагин компилятора или на основе KSP
👎14👍5
Forwarded from Mobile Developer (Алексей Гладков)
Ksoup: библиотека для парсинга html для kotlin multiplatform
https://github.com/MohamedRejeb/Ksoup
Парень, который написал pokedex на compose multiplatform и сделал компонент для редактирования текста, продолжает радовать нас библиотеками
Кому нужно парсить html очень полезная штука
https://github.com/MohamedRejeb/Ksoup
Парень, который написал pokedex на compose multiplatform и сделал компонент для редактирования текста, продолжает радовать нас библиотеками
Кому нужно парсить html очень полезная штука
👍34👎4❤🔥3
Статья (6 мин) в которой разбираются несколько кейсов использования Kotlin Coroutines, которые могут работать не так как вы ожидаете:
👉 MutableSharedFlow.tryEmit()
👉 Вызов Flow.collect() несколько раз в одной корутине
👉 Особенности запуска и отмены корутины
👉 Особенности проектирования транзакционного API
#coroutines
👉 MutableSharedFlow.tryEmit()
👉 Вызов Flow.collect() несколько раз в одной корутине
👉 Особенности запуска и отмены корутины
👉 Особенности проектирования транзакционного API
#coroutines
🔥34👍7👎3
Forwarded from Mobile Developer (Алексей Гладков)
Kamel. Compose Multiplatform библиотека для картинок
https://github.com/Kamel-Media/Kamel
Хочу поделиться библиотекой, которую сам использую для картинок в Compose Multiplatform
👉 Поддержка всех платформ
👉 Загрузка по URL
👉 Загрузка локально
👉 Callback загрузки
Пишите насколько полезна вам эта рубрика
https://github.com/Kamel-Media/Kamel
Хочу поделиться библиотекой, которую сам использую для картинок в Compose Multiplatform
👉 Поддержка всех платформ
👉 Загрузка по URL
👉 Загрузка локально
👉 Callback загрузки
Пишите насколько полезна вам эта рубрика
GitHub
GitHub - Kamel-Media/Kamel: Kotlin asynchronous media loading and caching library for Compose.
Kotlin asynchronous media loading and caching library for Compose. - GitHub - Kamel-Media/Kamel: Kotlin asynchronous media loading and caching library for Compose.
👍37👎2
Статья с разбором Coroutines Flow. В статье показывается что сам концепт не такой сложный и создать свой аналог на основе suspend функций не так сложно как кажется
#coroutines
#coroutines
👍29👎10❤3
Подборка библиотек с поддержкой Kotlin Multiplatform. Также будет полезно еще и Awesome KMM
#kmm #kmp
#kmm #kmp
👍15👎2❤1
👍17🏆9
Forwarded from Kotlin
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
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
Урок 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
👍61👎7😐2