Получи случайную криптовалюту за регистрацию!

Android Live 🤖

Логотип телеграм канала @android_live — Android Live 🤖 A
Логотип телеграм канала @android_live — Android Live 🤖
Адрес канала: @android_live
Категории: Технологии
Язык: Русский
Количество подписчиков: 5.94K
Описание канала:

Самые свежие новости, новинки и тренды Android от практикующего разработчика.
Автор: @al_gorshkov,
Чат: @android_live_chat
YouTube: youtube.com/channel/UC1BmHcuVShCt3Rb1eENbiAA
По рекламе: @ek_gorshkova

Рейтинги и Отзывы

2.67

3 отзыва

Оценить канал android_live и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

0

4 звезд

1

3 звезд

1

2 звезд

0

1 звезд

1


Последние сообщения 2

2022-08-02 12:05:00 ​​UDF с Kotlin Flow
#kotlin

Классный пример визуализации поведения Kotlin Flow в Android.

Автор рассмотрел основные кейсы работы Flow в контексте состояний, пользовательских действий и различных типов.
Получилась крутая визуализация, что будет полезно, если вы хотите лучше разобраться с Flow
3.1K views09:05
Открыть/Комментировать
2022-07-29 18:04:45 ​​Зависимости в многомодульном приложении
#android

При написании многомодульных приложений одним из важных пунктов является управлением зависимостями, которые распространяются на весь проект.

Есть несколько хороших подходов для того, чтобы обновлять зависимости одновременно во всех модулях, и вот вам один из них, описанный в статье.

Автор использует Kotlin DSL с его более удобным синтаксисом для написания кода в gradle-файлах, и объединяет все зависимости при помощи кастомного buildSrc.

В итоге мы можем управлять зависимостями, используя только один файл, а добавлять в модуль таким образом:

implementation(Libs.Kotlin.stdlib)
implementation(Libs.AndroidX.appcompat)
implementation(Libs.AndroidX.coreKtx)
3.5K views15:04
Открыть/Комментировать
2022-07-26 15:05:00 ​​Абстракция для Strings
#android

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

Автор предлагает использовать sealed-класс для обработки подобных кейсов.

sealed class TextResource {
companion object {
fun fromText(text : String) : TextResource = SimpleTextResource(text)

fun fromStringId(@StringRes id : Int) : TextResource = IdTextResource(id)

fun fromPlural(@PluralRes id: Int, pluralValue : Int) : TextResource = PluralTextResource(id, pluralValue)
}
}

Его просто применять на любых уровнях абстракции. Подробнее в этой статье.
3.4K views12:05
Открыть/Комментировать
2022-07-19 15:05:00 ​​Lifecycle of Composables in Jetpack Compose
#compose #новичкам

Довольно подробный гайд о том, что из себя представляет Jetpack Compose. Будет сильно полезно новичкам, ну и, конечно, тем, кто не особо представляет, как фреимворк работает под капотом.

Тут и:
жизненный цикл composable-функции;
обновление одной composable-функции из другой;
логирование событий;
и о том, как корректно использовать рекомпозицию.

Ну и круто, что всё построено на одном примере, который вы вместе с автором можете построить.
Ссылка на туториал тут.
3.4K views12:05
Открыть/Комментировать
2022-07-15 13:05:00 Ежегодный опрос команд российской разработки

В этом году начался ежегодный, уже шестой опрос про отечественные мобильные команды разработки. Из него можно узнать:
откуда мобильщики получают новые знания;
какие команды мобильной разработки самые сильные;
сколько человек решило уехать, а сколько – осталось;
сколько мобильщиков работает удаленно, а сколько – в офисе;
в каких компаниях мобильные разработчики хотят работать больше всего.

Вот результаты прошлого года, а поучаствовать в опросе этого года можно тут. Опрос займёт не больше минуты.

Не забудьте выбрать на одном из шагов также канал Android Live, для меня это очень важно .
3.4K views10:05
Открыть/Комментировать
2022-07-13 19:05:00 ​​App Quality Insights from Firebase Crashlytics
#android

Начиная с Android Studio Electric Eel у нас появилась возможность смотреть информацию из Crashlytics прямо внутри IDE.

Всё будет работать при помощи инструмента App Quality Insights и будет показываться стек вызовов, статистика, вызовы и всё, что мы смотрим внутри окна браузера.

Выглядит прям круто, с нетерпением жду хотя бы Beta-версии, чтобы попробовать все в деле.
3.1K views16:05
Открыть/Комментировать
2022-07-11 16:05:00 ​​Как устроен viewModelScope?
#android

При работе с coroutines мы частенько можем забыть отменить нужную нам джобу в тот момент, когда она нам больше не нужна. К счастью для нас, существует viewModelScope, который уничтожает ненужные coroutines в тот момент, когда уничтожается ViewModel.

Давайте рассмотрим чуть детальнее, как он работает внутри.
Класс ViewModel содержит внутри Map объектов, кототорые могут содержать любой тип объектов.
Нам интересен метод clear(), который вызывается перед методом onCleared() и который мы можем переопределить в нашей модели. Тут вызывается метод closeWithRuntimeException(), который как раз и завершает нужный нам Scope, так как он имплементирует интерфейс Closeable.

Подобное поведение можно было довольно просто организовать и самостоятельно, однако пришлось бы сделать кастомный Scope и завершить его в нужном нам месте. Разработчики Jetpack нам чуть-чуть упростили задачу.

Ещё больше почитать о внутренней работе ViewModel можно тут.
3.1K views13:05
Открыть/Комментировать
2022-07-07 14:05:00 ​​Screenshot tests для Compose
#compose

Тестирование при помощи скриншотов — довольно эффективный способ тестирования UI. При использовании Jetpack Compose у нас есть аннотации @Preview, которые, по сути и являются слоем для UI.

Есть библиотека Showkase, которая помогает преобразовать аннотированные методы в элементы UI для предварительного просмотра.
Автор статьи рассказывает о том, как он соединил эту либу с Screenshot testing library от Facebook.

Но он решил пойти чуть дальше и попробовал интегрировать Showkase с библиотекой Paparazzi, которая позволяет получить скриншоты приложения без физического устройства или эмулятора.

В результате у автора получилось вынести тестирование UI при помощи скриншотов на CI. Если скриншоты отличаются от тех, что были получены в новом PR, то создаётся ветка, где показывается diff между двумя ветками.
Тут автор рассказывает, как можно интегрировать подобный подход в своём приложении.
3.2K views11:05
Открыть/Комментировать
2022-07-02 18:05:00 ​​Screen response time
#android

Одной из важных метрик, связанных со скоростью работы приложения является то, как быстро рендерятся View, да и в целом экран.
Если посмотреть на наших коллег с Web, то там это одна из ключевых метрик и существует множество полезных инструментов для того, чтобы корректно её измерить.

С Android всё не так просто, но тем не менее есть парочку инструментов, которые могут нам помочь сделать приложения ещё более качественными.

Автор статьи делится своими наблюдениями по оптимизации времени рендеринга экранов приложения.

Парочку советов из статьи:

Делайте Inflate layout асинхронно — особенно полезный совет в сложных экранах, где создание новых View довольно затратно. Например, можно использовать AsyncLayoutInflater, а тут можно взять AsyncLayoutInflater на основе Coroutines.

Делайте View плоскими — достаточно распространённый совет, который позволяет уменьшить количество фаз onMeasure.

Ленивая инициализация объектов — инициализация объектов довольно затратный процесс, поэтому правильно настроенное создание объектов может здорово помочь сэкономить при рендеринге.

В статье можно найти ещё несколько примеров, которые реально применить для любого проекта.
3.4K views15:05
Открыть/Комментировать
2022-07-01 12:05:00 ​​Glance Widget и Work Manager
#android

Совсем недавно Google решил переосмыслить поведение виджетов и у нас появилось новое API для их создания — Glance.
Очень круто, что всё работает в Jetpack Compose стиле, что подразумевает общее API и для виджетов, и для основных элементов экрана.

Вот неплохой пример создания виджета, где автор рассказывает то, как создать виджет со сменой изображения, используя WorkManager.

Сам API ещё в alpha, но видно, что идёт развитие и переосмысление виджетов. Правда, интересно, станут ли они снова популярными среди пользователей системы.
2.7K views09:05
Открыть/Комментировать