Android Good Reads
4.09K subscribers
399 photos
17 videos
1 file
2.18K links
Самые интересные статьи, видео и новости, связанные с Android разработкой. Не больше трёх материалов в день.

Размещение рекламы: @tanyasanovna

Автор канала: @Lamprof
Download Telegram
Оркестрация Maestro UI тестов

Тесты могут гоняться очень долго, особенно end-2-end. Тут разбирают Maestro фреймворк. В статье гоняют их в Firebase Test Lab, так что время буквально деньги!
👍1
Android Good Reads
Опрос подписчиков Android Good Reads Помогите мне разобраться с тем, как лучше вести канал – расскажите немного про себя, свой опыт в разработке, а главное – про то, какие темы канала вам интереснее всего! Опрос небольшой, минуты за 3 точно справитесь. А…
Результаты опроса!

🚀 Compose и KMP — новые короли контента. Базовые туториалы больше не интересны. Есть огромный запрос на "Deep Dive" в кишки Jetpack Compose и реальные кейсы внедрения Kotlin Multiplatform

🤖 AI-кодинг: Сдержанный оптимизм. Хайп улегся. Большинство рассматривает AI-инструменты (вроде Copilot) как полезных помощников для рутины, но не как замену инженеру. Страха нет, есть прагматичный интерес к повышению эффективности.

⚡️ TL;DR рулит, но лонгриды живы. 70% предпочитают сначала прочитать короткую выжимку (саммари) поста. Но если тема "зацепила" — переходят к полному оригиналу статьи. Будем учитывать это при подаче материалов!
👍6🔥4🤣2
Baseline Profile + Remote Config - рабочее решение для разных окружений

Кратко: baseline профили помогают повышать скорость выполнения кода примерно на 30% уже с первого запуска. Но статья про другую боль - что делать, если приложение активно использует Remote Config, а baseline гоняется на релизной сборке.

👉 Почему не получилось просто заинжектить всё через DI
👉 Варианты переключения окружения в тестах
👉 Как определить окружение baseline внутри DI
👉 Отдельный BuildConfig модуль и флаг
4👍3🔥2
JetBrains представила новую IDE - AIR

Сделана только для кодинга через агентов, поддерживает только claude (Удивительно, что не их Junie).

И что?

Я верю что такой стиль разработки прочно впишется на долго и рад видеть не очередной форк VSCode, а IDE от профи для профи
😁9🔥7🥴4🤯21👍1🤣1
Какое совпадение. Пост про вайбкодинг и снова cloudflare упал
😁25
This media is not supported in your browser
VIEW IN TELEGRAM
Маленький экран — серьёзный вызов!
В VK мобильные разработчики создают опыт, который помещается в карман, но работает на миллионах устройств. Узнайте об их подходах к сложным задачам и ключевых результатах. По ссылке — ролики и даже вакансии!
👎193👍2💅1
Kotest: Современный фреймворк для моков и тестов на мультиплатформе

Немного непривычный, в традиционном понимании, фреймворк для написания тестов:

class StringSpecExample : StringSpec({
"length of hello should be 5" {
"hello".length shouldBe 5
}
})


В самой статье еще 9 примеров разных стилей написания тестов. Лучше 1 раз это увидеть...

Сам проект: https://kotest.io/
🥴9👍3😨1
Линтер отдельно для Compose

Если, по каким-то причинам, ваша команда только-только вкатывается в Compose, а бить всех по рукам в каждом втором пулреквесте надоело - вот линтер с кучей правил и бест практисов, делающий это за вас. Решение только для тех кто только-только начинает и не хочет дописывать в базовый линт/detekt очевидные кастомные правила

Кстати, а у detekt полноценный мажорный апгрейд до версии 2.0!
👍7🔥51
Android Good Reads
Какое совпадение. Пост про вайбкодинг и снова cloudflare упал
Сделать похожую штуку в шуточной манере для своего проекта можно тут:
https://stacktower.io/
😁5
Android Good Reads
Оркестрация Maestro UI тестов Тесты могут гоняться очень долго, особенно end-2-end. Тут разбирают Maestro фреймворк. В статье гоняют их в Firebase Test Lab, так что время буквально деньги!
Android UI-тесты с Maestro без тяжелой инфраструктуры

Еще немного практики про Maestro тесты.
Не совсем согласен с автором на счет расположения их в pre-push, однако такой флоу можно легко поместить в наиболее удобное для вас место.
👍4
Если у вас есть свободный час времени, подключайтесь на традиционный новогодний стрим подкаста Подлодка – будем подводить итоги года, рассказывать про наши главные открытия, самые полезные книги и всякое такое. А главное – разыграем среди зрителей Switch 2!

👉Начинаем через 10 минут
👎8👍4🥴31
Forwarded from Mobile VK Hub
This media is not supported in your browser
VIEW IN TELEGRAM
Конец года, и снова заканчиваются все подписки 😱

Узнали? Согласны? Не беда — мы как раз разыгрываем промокоды на год от Облака Mail и VK Музыки!

Условия участия простые:
🔹 подпишитесь на наш канал @mobilehubvk
🔹нажмите кнопку «Участвовать»
🔹 дождитесь 30 декабря — в этом посте мы выберем случайным образом 6 победителей

Информацию об организаторе, правилах и призах ищите по ссылке.

Удачи!
👎113👍2💅1
Подборка лучших постов за 2025 год 📱

👉 А как вы работаете с ожиданиями пользователя?
👉 keepScreenOn в Jetpack Compose
👉 Glitch effect в Compose. А тут вышла интересная серия постов. Мы закинули собственную реализацию, а так же сравнительный анализ с шейдерами
👉 Шпаргалка по размещению Composable элементов
👉 Rich Errors в Kotlin 2.4. Анонс был пол года назад, а 2.4 версия еще не близко!
👉 Разбираем порядок вызова DisposableEffect, LaunchedEffect и Composable
👉 С чего мне начать изучать про KMP
👉 Рефлексия по поводу инцидентов cloudflare под конец года

Полезный контент занимает львиную часть топа, но есть и пара мемов, попавших в боль! Ну и вообще, с наступающим, держитесь там, продолжайте ставить реакты к статьям и вести холивары в комментариях!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥53
Так как KMP занимаем отдельное место в моем сердечке - с ним напрямую связана моя работа нынче. Вот вам подборка статей про вкатывание в KMP:

👉 Зачем этот ваш KMP нужон?
👉 Как перекатывать на него свой проект
👉 А как перекатывать всю команду в него?
👉 Истории внедрения, возникшие проблемы и решения
👉 Большой гайд если вы работаете в бигтехе, как внедрить?
👉 Ну и простой пример как сделать апку
👍6🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Анимируем смену на темную/светлую тему

Красиво/аккуратно прям как в Telegram клиенте, но без тонны легаси и с поддержкой Compose MP

Github (5⭐️) : https://github.com/gleb-skobinsky/ThemeAnimator
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥4
Очередная напоминалка от Google Play. 31 Марта 2026 года немного изменится вид иконок в Google Play Store, увеличив радиус скругления.

Я хотел было возмутиться, что им там делать нефиг, но они, на самом деле, подгоняют всё под material3

Гайдлайны тут
😱7🤣5👍4
Android Good Reads
Продолжаем историю с Glitch эффектом. Как сделать этот же эффект не через Composable, а с помощью Android AGSL shaders. Внутри вас ждет: 👉 Что такое шейдеры 👉 Реализация 👉 Детальный сравнительный анализ производительности обоих подходов В статье очень много…
This media is not supported in your browser
VIEW IN TELEGRAM
Еще про шейдеры

👉 Внутри пошагово, с примерами и объяснениями разбирают применение шейдеров
👉 Это важно, чтоб ваше приложение было более производительное
👉 Чуть более хайповая статья от того же автора про то как сделать Upside-Down эффект из Stranger Things
👉 Про шейдеры на BottomNavBar - совсем простенько, зато юзкейз!

Репозиторий с кодом и примерами: https://github.com/makzimi/glitch-shader
🔥4👍2
Jetpack Compose Memory Leaks: A Reference-Graph Deep Dive

Разбор ошибок при работе с Compose приводящим к утечкам памяти. В итоге:
👉 Чаще используйте DisposableEffect(owner) во избежании проблем с зануливанием слушателей
👉 Никогда не храните Composable-лямбды или UI-объекты во ViewModel или синглтонах. Вместо этого храните состояние (StateFlow) и события (SharedFlow)
👉 Избегайте использования GlobalScope и областей видимости всего приложения для работы, связанной с UI
👉 Используйте LaunchedEffect или viewModelScope в зависимости от того, к чьему жизненному циклу привязана задача
👉 Добавляйте ключи к remember. Если объект зависит от X, используйте remember(X)
👉 Не захватывайте контекст Activity в долгоживущие колбэки . Используйте rememberUpdatedState или перепроектируйте архитектуру так, чтобы UI-слой занимался UI-задачами. Актуально не только для Compose
👍92
Compose MP 1.10

👉 @Preview теперь и в commonMain
👉 Navigation 3 поддерживается, но пока сыровато
👉 Compose Hot Reload стабильный

Не из пресс релиза
👉 Депрекейтнули dependency aliases, compose.ui теперь всё
👉 Депрекейтнули PredictiveBackHandler
👉 Минимальная версия Kotlin - 2.2.10
👉 Вытащили DialogProperties и PopupProperties в стабильные
👉 Поддержка AGP 9.0.0 - я пытался перехать на AGP 9.0, но то кастомные плагины ломаются, то зависимости перестают работать. Не могу ничего сказать
👍3🔥31👎1