TGTGInsighttelegram intelligenceLIVE / telegram public index
Retour aux chaînes
Android Broadcast avatar

TGINSIGHT CHAT

Android Broadcast

@android_broadcast

Technologies

Подборка новостей и статей для Android разработчиков. Реклама и связь с автором @ab_manager РКН https://abdev.by/rkn_tg_ab#MQRZR

Abonnés1.4万Abonnés actuels de la chaîne
Posts indexés1,000Nombre de posts indexés
Portée récente91,130Somme des vues récentes
Posts récents

Posts récents

Tag : #kmp · 51 posts

当前筛选 #kmp清除筛选

🤯 Те кто использовал Jetpack Paging 3 знают насколько он может справиться только с базовыми сценариямми. Шаг влево или вправо - уже боль! Сегодня хочу познакомить вас с альтернативой — библиотекой 🐱Paginator. Это KMP-решение для пагинации, которое решает те самые проблемы, где Paging 3 начинает "буксовать". Paginator построен на отличной модели от Jetpack Paging 3: страница — это адресуемая ячейка в кэше, кэш — обычная структура данных, а навигация — обычные методы. 1️⃣✅ Адресуемые страницы Прямые методы goNextPage(), goPreviousPage() и jump(Bookmark). Deeplink на сообщение из пуша решается одной строкой. 2️⃣✅ Мутации по запросу MutablePaginator предоставляет CRUD-операции: replace { it.id == 42 }, removeWhere { it.deleted }. Один лайк меняет один элемент без инвалидации всей страницы. 3️⃣✅ Сохраняемое состояние Кэш — обычная структура данных, которую можно сериализовать через kotlinx.serialization. Методы serializeToJson() и restoreFromJson() решают проблему Process Death без плясок с бубном. 4️⃣✅ Библиотека, а не фреймворк Написан на чистом Kotlin без платформенных зависимостей и живёт в commonMain. Логика пагинации становится частью общего доменного слоя KMP, не копируется между платформами и не имеет двух реализаций. 5️⃣✅ Курсорная пагинация "из коробки" Отдельный класс CursorPaginator с единой моделью состояний, транзакций и сериализации. Paginator — это не обёртка над Paging 3. Это другая модель, переосмысливающая ключевые типы. Обёртка просто не смогла бы дать ни мутации элемента, ни сериализации кэша. 🔗Оригинальная статья на Хабре 🐱Репозиторий Paginator #Android#AndroidDev#KMP

7,720 views

🏝Вышла первая стабильная версия Metro DI — чистого Kotlin-решения с валидацией графа на этапе компиляции. Решение вобрало в себя всё самое лучшее от Dagger, Anvil и kotlin-inject, чтобы стать тем стандартом для KMP-проектов, который искали после Dagger. Metro DI не использует KSP или KAPT. Вся генерация осуществляется с помощью плагина компилятора Kotlin. #Kotlin#KMP#DI

7,470 views

🚀Начали разработку Room 3.0, который станет полностью KMP-библиотекой с поддержкой JS и WASM, а также избавится от легаси. Разработчики популярного ORM для Android и KMP решили выпустить мажорную версию, чтобы отразить всю важность изменений: 👉 Полный переход на androidx.sqlite driver API. 👉 Генерация кода будет только на Kotlin, никакой больше Java. 👉 APT и KAPT больше не будут поддерживаться. Остается только KSP. 👉 Room API теперь будет делаться в подходе "Kotlin Coroutines first", делая весь ORM асинхронным по умолчанию. Что нас ждет из новых фичей и возможностей: 👉 Появится полноценная поддержка JS и WASM-таргетов. 👉 Можно будет добавить собственные возвращаемые типы в Room. Например, Room, RxJava, Paging и пр. Новая версия Room будет выпущена под новым пакетом androidx.room3. Room 2.X не получит новых фичей, только багфиксы. 🔗 Источник - блог Android Developers. 🔗Release Notes Room 3.0.0-alpha01 #Android#AndroidDev#Room#SQLite#Jetpack#AndroidJetpack#KMP

8,430 views

🤖AndroidX Tracing 2.0 — поддержка Desktop JVM и Kotlin Coroutines AndroidX Tracing — это библиотека для добавления данных в код, которая позволяет видеть что происходит внутри приложения в профилировщиках вроде Perfetto и Android Studio. До версии 2.0 она была завязана исключительно на android.os.Trace — то есть работала только на Android. Теперь всё изменилось. Версия 2.0 полностью пересматривает подход: 👉Поддержка Desktop JVM — трейсинг теперь работает не только на Android, но и на обычной JVM. Это открывает возможность профилировать host-инструменты, Gradle-таски и shared-код в KMP-проектах. 👉Propagation для корутин — классическая проблема: suspend-функции разрывали трейс на несвязанные куски и было непонятно что к чему относится. Теперь traceCoroutine() прокидывает контекст трейса через корутины автоматически. 👉Метаданные в слайсах — к каждому трейс-событию можно прикрепить аргументы. Видишь слайс в Perfetto и сразу понимаешь с какими параметрами он вызван. 👉Новый формат — Perfetto trace — трейсы совместимы с Android Studio и Perfetto UI из коробки. Новый API выглядит так: val driver = TraceDriver(sink = TraceSink( sequenceId = 1, directory = File("/tmp/perfetto") ), isEnabled = true) driver.use { driver.tracer.trace(category = CATEGORY_MAIN, name = "my_operation") { // твой код } } ⚠️ Пока это только alpha и многих привычных возможностей нету, но будут к релизу Stable версии. #Android#AndroidDev#KMP#AndroidX#Производительность

7,350 views

🤖 Вышел Coil 3.4.0 Coil - это библиотека для загрузки изображений на Android (и теперь Compose Multiplatform). Название расшифровывается как Coroutine Image Loader — библиотека написана на Kotlin с первого дня и отлично вписывается в современный стек: корутины, Compose, KMP. В новой версии несколько интересных вещей: 🔁 ConcurrentRequestStrategy — теперь можно объединять параллельные сетевые запросы на один и тот же ресурс. По умолчанию отключено и помечено как экспериментальное, но идея хорошая — вместо N одинаковых запросов летит один, остальные ждут результата. 🧵 Асинхронный декодинг JS/WASM — изображения больше не блокируют главный поток браузера. Важно для KMP-проектов с вебом. 🐧 Linux targets — добавили поддержку linuxX64 и linuxArm64 для non-Compose артефактов. 🎞 Улучшенные переходы в Compose — новый useExistingImageAsPlaceholder позволяет плавно переходить от предыдущего изображения, когда нет placeholder. Мелочь, но визуально приятно. 🎬 Embedded video thumbnails — поддержка встроенных превью для видео. 🔧 coil-lint — добавили Android Lint-правило, которое ловит случайные вызовы kotlin.error() внутри блоков ImageRequest.Builder. Неожиданно полезно. Зависимости Kotlin 2.3.10, Compose 1.9.3, Okio 3.16.4. #Android#AndroidDev#KMP#kCMP#Compose

8,910 views

🚀Cash App перевел Android-приложение на Metro — новый DI фреймворк для Kotlin Команда Cash App (Block) успешно мигрировала своё Android-приложение с Anvil/Dagger на Metro — современный фреймворк для dependency injection, разработанный Zac Sweers. Metro — это compile-time DI фреймворк, вдохновленный Dagger и Anvil, но реализованный как Kotlin compiler plugin. Он Kotlin-first, поддерживает K2 и работает значительно быстрее традиционных решений. Вобрал в себя всё лучшее от Dagger, Anvil и Kotlin-Inject Почему перешли на Metro? - Скорость сборки — ускорение инкрементальных сборок на ~60% - Поддержка Kotlin K2 — возможность использовать новейший компилятор Kotlin - Упрощение стека — отказ от kapt и Java-ориентированных инструментов - Современный подход — Kotlin-first дизайн и улучшенный DX - Более строгая валидация DI-графа - Улучшена безопасность типов (нуллабельность) - Поддержка KMP 📊 Результаты по скорости сборки: - Инкрементальные сборки → ускорение на 58-60% - Чистые сборки → ускорение на 17% - ABI-изменения → сборка за 11.9s вместо 28.8s Миграция 1500 модулей проводилась постепенно с двойной поддержкой двух DI фреймворков для безопасного перехода. В зависимости от настройки Gradle менялся DI и генерация кода. Впервые вижу подход, когда был описан граф для 2 разных DI с целью постепенной миграции. Миграцию с Koin на Metro так не сделать, но вот с Koin Annotations на Metro вполне может получится. #DI#KMP#Dagger#Metro#Android#AndroidDev#Anvil

7,810 views

📹Архитектура, которая не ломается | FlowMVI Часть 2 В этой части Никита @Nek12 разбирает, как FlowMVI применяет архитектурные подходы, позволяющие поддерживать предсказуемое поведение приложения и исключать хаотичные ошибки. Покажет, как инструмент помогает выстраивать MVI архитектуру, ориентированную на устойчивую работу в условиях многопоточности и постоянных изменений данных. #Android#KMP#MVI#Архитектура

7,260 views

🤖Jetpack Navigation 3: Полный гид по новой библиотеке навигации от Google Гугл выпустил Navigation 3 — это новая глава в построении навигации для Android-приложений. Всё, что вы знали, теперь стало мощнее, гибче и композабльнее! 00:00 — Базовые принципы Navigation 3 02:09 — NavEntry и entryProvider 03:29 — Разбор API на практике 07:17 — Навигация в многомодульном приложении 11:27 — Модуляризация: пишем код 15:57 — Анимации экранов 16:15 — Погружаемся в анимации 19:44 — Адаптивные макеты (Scenes) 23:01 — Scenes в действии 24:39 — Краткий итог и выводы 🔗Официальное руководство 🔗Рецепты для работы с Nav3 (Code recipes) Навигация больше не будет болью! Смотрите, внедряйте и делитесь впечатлениями в комментариях. #Android#AndroidDev#Jetpack#Compose#KMP

7,180 views

📹Введение в FlowMVI FlowMVI - простая и эффективная библиотека для реализации MVI подхода в Android и Kotlin Multiplatform приложениях. Из видео вы узнаете про возможности бибилотеки и интеграцию ее в проект. Автор библиотеки Никита @nek_12 сделал серию видео с демонстрацией возможностей. Все видео будут доступны на YouTube и VK Video, а автору очень нужна ваша поддержка и обратная связь в комментариях под видео (а не этим постом). #MVI#Архитектура#KMP#Kotlin#Кодинг

7,390 views

🤯 Зачем делать мультиплатформу, если есть AI? Своими мыслями делюсь в 📹новом видео Кажется, что AI та серебряная пуля, которую так хотели для экономии на разработке под iOS и Android #AndroidBroadcast#AI#ИИ#kmp#flutter

7,420 views

🚀Navigation Event 1.0.0 — новая KMP-библиотека для обработки навигации на разных платформах Что дает библиотека 👉 Единый кроссплатформенный API для замены разрозненных решений 👉 Централизованная система управления всей навигацией в приложении 👉 Базовый слой для будущих навигационных решений Android Пример использования: val myHandler = object : NavigationEventHandler<NavigationEventInfo>( initialInfo = CurrentInfo, isBackEnabled = true ) { override fun onBackStarted(event: NavigationEvent) { // Подготовка к навигации } override fun onBackProgressed(event: NavigationEvent) { // Анимации на основе event.progress } override fun onBackCompleted() { // Завершение навигации } } 👉 Готовая интеграция с Compose val navEventState = rememberNavigationEventState( currentInfo = CurrentInfo, backInfo = PreviousInfo ) NavigationBackHandler( state = navEventState, isBackEnabled = true, onBackCompleted = { /* Действие при завершении */ } ) 👉 Диспетчеры могут образовывать родительско-дочерние цепочки: // Compose val childDispatcher = rememberNavigationEventDispatcher( parent = LocalNavigationEventDispatcherOwner .current .navigationEventDispatcher ) 👉 Нативная поддержка Predictive Back из Android 👉 Библиотека уже используется в Activity 1.12.0 как базовый слой #Jetpack#Navigation#Compose#KMP#PredictiveBack#Kotlin

6,570 views

🚀Вышла стабильная версия Jetpack Navigation 3 - бибилотека для UI навигации, заооченная под Compose Стал доступен первый стабильный релиз навигации, разработанной специально для Compose. Библиотека предоставляет больше гибкости и контроля разработчикам, позволяя реализовать различные подходы. Google выложила свои примеры реализации популярных задач в репозитории на 🐱GitHub Nav3 имеет поддержку Compose Multiplatform, а также JetBrains выпустила версию артефактов 👉Документация по библиотеке Всем кто использует Jetpack Navigation 2 с Compose нааооятельно рекомендуется миграция. 🔨Руководство по миграции ⭐️ Также Google сделала файл с контекстом для AI агента при миграции Про возможности бибилотеки я рассказал в 📹отдельном видео #android#compose#kmp#cmp#jetpack#ui#nav3

7,620 views
PrécédentPage 1 sur 5Suivant