База знаний android
1 subscriber
2.48K photos
284 videos
2 files
3.77K links
Download Telegram
Forwarded from StartAndroid
Что происходит с подписочной моделью в приложениях

Рынок подписочных приложений быстро меняется. Старые приложения по-прежнему доминируют по доле выручки, но новые каждый день наводняют cторы. ИИ-приложения «умирают» быстрее, чем успевают выходить, а зона безопасной выручки для среднего приложения стремительно исчезает. «Выживания» больше нет: либо процветаешь, либо выгораешь.

Каждый год наш отчёт «Состояние подписочных приложений» ставит целью понять, что меняется в индустрии - что ушло в прошлое и что нас ждёт. В этом году наш набор данных снова вырос и составил более 115 000 приложений с более 16 миллиардов долларов выручки. Мы проанализировали данные по всем 115 тысячам из них.


#android #subscription

https://habr.com/ru/articles/1015000
Forwarded from Mobile Native ️️
Как я пытался чинить анимацию в Jetpack Compose LazyColumn

Интересная статья от разработчика из ТБанка про то, как они решали проблему рассинхронизации анимаций айтемов в LazyColumn – когда один из айтемов меняет свои размеры, анимация второго айтема происходит с временным лагом.

В статье разбирается, почему возникает рассинхрон, как устроен механизм анимаций внутри LazyColumn, почему кастомный animateItem обречен с самого начала и к какому решению в итоге пришли.

Читать (Ru)
Forwarded from StartAndroid
Разбираем Remote Compose: как Google предлагает строить BDUI

Remote Compose выглядит очень перспективной технологией. Фреймворк активно развивается и поддерживается командой Google. Однако на момент написания статьи технология всё ещё находится в alpha-версии, поэтому использовать её на проде пока рано. 

Но я изучил этот фреймворк и хочу поделиться своим опытом, а когда Remote Compose выйдет в бета-версию вы будете знать, как с ним работать

В статье разберём:
- общую концепцию Remote Compose,
- чем он отличается от классического BDUI,
- какие интересные технические решения используются внутри,
- несколько практических примеров использования.


#android #compose #remote

https://habr.com/ru/companies/alfa/articles/1018986/
Forwarded from Android Good Reads
Используем @RequireOptIn чтоб пометить Composable для использования только в превью

Собственно говоря, весь код на превьюшке. Будет бодро слать вам ошибку компиляции, пока вы не добавите @Suppress или не уберете помеченную функцию

Android Good Reads
Forwarded from Mobile Compose
#Release #Compose #Changelog

😇 Релиз Compose библиотек (25.03.2026)

🔵 Animation 1.10.6/1.11.0-beta02
🔵 Foundation 1.10.6/1.11.0-beta02
🔵 Material 1.10.6/1.11.0-beta02
🔵 Runtime 1.10.6/1.11.0-beta02
🔵 UI 1.10.6/1.11.0-beta02

▫️Remote 1.0.0-alpha07
Material 3 1.5.0-alpha16
▫️Wear Compose 1.6.0
Navigation3 1.1.0-rc01
XR Compose 1.0.0-alpha12
XR Material3 Compose 1.0.0-alpha16

🎨 Список всех изменений

🎨 Mobile Compose 💬 Чат канала
Please open Telegram to view this post
VIEW IN TELEGRAM
🏝 В Kotlin 2.4.0 добавили функции для проверки порядка сортировки коллекций

Пять новых extension-функций для Iterable, Array и Sequence: isSorted(), isSortedDescending(), isSortedWith(comparator), isSortedBy(selector), isSortedByDescending(selector). Все возвращают true если элементы уже стоят в нужном порядке. При первой же неправильной паре вернет false, поэтому на больших коллекциях работает эффективно.

val numbers = listOf(1, 2, 3, 4)
numbers.isSorted() // true

val users = listOf(
User("Alice", 24),
User("Bob", 31),
User("Charlie", 29),
)
users.isSortedBy(User::age) // false


💬 Вам оно надо?

#Kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Android Broadcast
🤖 Kotlin DSL для AGSL-шейдеров на Android

AGSL (Android Graphics Shading Language) появился в Android 13 как нативный язык шейдеров для GPU. Работает через RuntimeShader и RenderEffect, позволяет делать попиксельные эффекты на любом View или Composable. Но писать его больно: код живёт в строках, uniform-ы привязываются вручную, IDE не помогает.

Библиотека RedByteFX оборачивает это в Kotlin DSL. Вот волновое смещение — сначала голый AGSL, потом то же самое через библиотеку:

// Голый AGSL — строка в коде
uniform shader content;
uniform float wave_amplitude;
uniform float wave_frequency;

half4 main(float2 fragCoord) {
float2 offset = float2(
0.0,
sin(fragCoord.x * wave_frequency) * wave_amplitude
);
return content.eval(fragCoord + offset);
}


// RedByteFX DSL
val effect = redbytefx {
val amplitude = uniformFloat(0f, "wave_amplitude")
val frequency = uniformFloat(0.08f, "wave_frequency")
val offset = let(
float2(0f, sin(fragCoord.x * frequency) * amplitude),
"wave_offset"
)
sample(fragCoord + offset)
}


🔗 habr.com
🐱 GitHub

#Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Android Good Reads
Kotlin 2.4.0 Sorted-Order валидация

Добавили новых extension функций в стандартную библиотеку для валидации того как отсортированы коллекции:
.isSorted()
.isSortedDescending()
.isSortedWith(comparator)
.isSortedBy(selector)
.isSortedByDescending(selector)

🔗 Ссылка на документацию

Ну и сразу пример:
data class User(val name: String, val age: Int)

fun main() {
val users = listOf(
User("Alice", 24),
User("Bob", 31),
User("Charlie", 29),
)
println(users.isSortedBy(User::age))
// false
}


Android Good Reads
💉 Koin наконец получил то, чего ему не хватало с самого начала: нативный Kotlin Compiler Plugin на K2, который проверяет граф зависимостей прямо во время сборки.

Koin неплохой DI, но jncencdbt compile time вадлидации не позволял его спокойно использовать в любом большом проекте как тот же Dagger 2. Пропустил зависимость — узнаешь в продакшене. Плагин меняет это фундаментально: если проект собрался, граф валиден. Никакого checkModules() в тестах, никакого verify() как костыля.

Технически плагин работает на уровне FIR + IR, то есть раньше KSP в пайплайне компилятора. Нет генерируемых файлов, нет отдельного тулчейна. DSL и аннотации работают вместе через один плагин.

Три уровня валидации:
👉 каждый модуль отдельно — проверяются определения и их видимость
👉 полный граф при startKoin<T>() — A3-валидация
👉 call-sites — когда feature-модуль вызывает koinViewModel<T>(), плагин генерирует подсказки, которые app-модуль проверяет при своей сборке

⚠️ Сейчас это RC-стадия: Koin 4.2.0-RC1, плагин 0.3.0, требует Kotlin 2.3.20-Beta1. На прод пока не стоит, но попробовать на уже можно так как влияния на продакшен код нету!

Моя библиотека Koin Detekt Rules теперь просто станет не нужна, хотя лучшие практики и форсирование подходов никто не отменял.

🔗 Анонс в блоге

#Koin #Android #DependencyInjection
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Android Broadcast
🤖 Google выложила официальный репозиторий Android Skills — набор инструкций для ИИ-агентов, заточенных под Android-разработку.

Идея простая: вместо того чтобы объяснять агенту контекст каждый раз руками, ты даёшь ему готовый SKILL.md — файл со структурированными инструкциями, шагами и справочными материалами по конкретной задаче. Агент читает его как спецификацию и работает точнее.

Это следует открытому стандарту agentskills.io, то есть формат не завязан на один инструмент — подходит для Claude Code, Cursor и любого другого агента, который умеет читать файлы из контекста.

Что уже есть в репозитории:
👉 Миграция с XML-вёрстки на Jetpack Compose
👉 Установка и миграция на Navigation 3 (deep links, multiple backstacks)
👉 Анализ R8-правил и оптимизация размера APK
👉 Обновление до последней версии Play Billing Library

Как использовать: скачиваешь нужный SKILL.md из репозитория, добавляешь в контекст агента (в Claude Code — через команду /add-file или как часть промпта), говоришь что нужно сделать. Агент уже знает, как это делается по правилам Google.

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

🐱 GitHub Android Skills

#AndroidDev #AIDev #ClaudeCode
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Android Good Reads
Android: Offline-first system design

Таких статей мы читали и слушали уже миллион. На картинке вы видите конечный результат проектирования, но эта статья неплохо показывает то, как прийти к такому решению последовательно. Такого типа задачки это часть этапа собеседований (system design)

🔗 Freedium link
Внутри: путь от "Апка крашится без доступа к интеренету" к Offline-first

Android Good Reads
Forwarded from Android Broadcast
🛒 Google Play обновил сразу несколько политик — и все они завязаны на фичи Android 17.

Главное изменение — доступ к контактам. Приложениям, которым не нужен широкий доступ к контактам, теперь обязательно использовать Android Contact Picker. Никакого READ_CONTACTS без реальной необходимости, которую теперь придется доказываться. Тот самый пикер, который появился в Android 17, сразу стал требованием политики — не опцией.

Я писал об этом ещё когда Contact Picker появились в превью Android 17. Google никогда не оставляет такие инструменты просто опцией — новые системные механизмы приватности рано или поздно становятся политикой магахина.

С геолокацией та же история. Location Button из Android 17 — новый системный UI-элемент для разового доступа к точной позиции — уже прописан в политике как рекомендованный минимум для precise location. Фича ещё в бете, требование уже действует.

‼️ Geofancing убрали из разрешённых сценариев для Foreground Service. Рекомендуется переходить на Geofence API. На всё это у разработчиков 30 дней, начиная с 15 апреля 2026 года.

🔗 Подробности обновления политик Google Play

#GooglePlay #AndroidDev #Android17
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Mobile Developer
🤖 Android CLI — тулкит для AI-агентов
https://android-developers.googleblog.com/2026/04/build-android-apps-3x-faster-using-any-agent.html

Google выкатили набор инструментов для тех, кто разрабатывает Android через агентов - Gemini CLI, Claude Code, Codex или что-то своё.

⚡️ Android CLI - лёгкий интерфейс к Android SDK для агентов. Команды: android sdk install, android create (проект по официальным шаблонам), android emulator, android run. В тестах Google - на 70% меньше токенов и в 3 раза быстрее, чем когда агент сам тыкался через стандартные тулы.

⚡️ Android Skills - markdown-инструкции (SKILL.md) с пошаговыми техническими спеками. Агент сам подтягивает нужный скилл по метаданным.

⚡️ Android Knowledge Base - android docs даёт агенту доступ к свежим официальным доками Android, Firebase, Kotlin. Решает проблему устаревшего training cutoff у LLM.

Обсуждаем тут -> @famous_md_bot (Tier 3)

💭 Если используешь AI-агентов для Android-разработки — стоит потрогать. Скинь тому, кто пилит через Claude Code или Gemini CLI.

TG | Max | YouTube | VkVideo
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM