Android Broadcast – Telegram
Android Broadcast
14.4K subscribers
3.68K photos
367 videos
11 files
6.1K links
Подборка новостей и статей для Android разработчиков.

Реклама и связь с автором @ab_manager

РКН https://abdev.by/rkn_tg_ab #MQRZR
Download Telegram
#ArchitectureComponents #LiveData #ViewModel

Architecture Component (AC) довольно популярны в современной Android разработки, компоненты внутри #AndroidX переходят на использование их под капотом, SDK устаревают и рекомендуют переходить на AC. Но важно помнить один принцип: "С большой силой приходит большая отвественность", поэтому любая библиотека или паттерн должны использоваться правильно, чтобы приносить пользу.

Наиболее распространненые ошибки при работе с AC

1. Учечка LiveData observer в Fragment-ах
Все LiveData в Fragment которые обновляют UI, должны быть подписаны на изменения между onCreateView() и onDesctoyView(). Проблема в том, что стандартный LifecycleOwner Fragment-а отписывается после onDestroyView(). Решение этого является использование Fragment.viewLifecycleOwner, который доступен в AndroidX либо Android Support Library 28.0.0. На старых версихя Android придется отписываться руками в onDestroyView() 😢

2. Перезагрузка данных на каждом повороте/смене конфигурации
Тут рекомендую посмотреть код из статьи, там описан подробно пример того как это делается.

3. Утечка ViewModel-ей
Хранение ссылки на ViewModel не должно происходить где-либо кроме Fragment/Activity

4. Предоставление доступа к LiveData как изменяемой (MutableLiveData) to views
LiveData лежат в ViewModel и не должны быть публично модифицируемыми.

5. Создание зависимостей ViewModel-ей после каждого изменения конфигурации
Все зависимости, которые вы собирайтесь Inject-ить в ViewModel, в ViewModelProvider.Factory должны быть объвляне через Provider, который позволит корректно работать со Scope зависимостей.

class MoviesViewModelFactory(
val repository: Provider<MoviesRepository>,
val stringProvider: Provider<StringProvider>,
) : ViewModelProvider.Factory

Выбрал я эти советы из статьи
"5 common mistakes when using Architecture Components"
#Animations #Transitions #Library #Kotlin

Transition X - новая удобная библиотека для описание Transition анимаций при помощи Kotlin DSL
#AndroidX #Migration

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

Для тех кто не в курсе что это такое рекомендую начать отсюда "AndroidX Overview"
#Retrofit #LibUpdates #Networking

Вышел Retrofit 2.5.0. Основные изменения:
* Поддержка Unit типа из Kotlin. Ведет себя аналогично Void из Java.
* Поддержка Java 8 Optional и CompletableFuture. Поддержка заменяет необходимость настройки конвертера и зависимость "converter-java8" больше не поддерживается.
* Новые расширения для Kotlin, которые позволяют создавать реализацию, передавая только интерфейс как параметр generic-а.
retrofit.create<MyService>()

* Добавлены R8 правила внутри JAR. Теперь при использование R8 вам не надо добавлять собственные правила для Retrofit.
* Улучшения API
* Багфикс

Подробности
https://github.com/square/retrofit/blob/master/CHANGELOG.md#version-250-2018-11-18
#AndroidX #NightMode #Energy

Современные телефоны становятся мощнее, процессоры с каждым годом улучшаются, оперативной памяти становится больше, обычная память становится быстрее, но все это ограничивается батарейкой. Пользователи iPhone все время ходят с Power Bank 😁.

Сколько нулей будет состояние челока, который сможет сделать технологию, позволяющую избавиться от этих ограничений?

Android делает много в плане улучшения батарейки с софтвой стороны: Doze, Battery Saver, App Standby, Adaptive Battery, App Standby Buckets, Background Restricitions, JobScheduler, Power Consumption Proilers и др. К сожалению, это не дает больших преимуществ, когда вы используете свои приложения активно 😞

Хотите это исправить - добавьте темную (night) тему в свои приложения. Она позволяет сэкономить энергию, особенно на OLED дисплеях.

Почему это стоит делать и что для этого есть в AndroidX очень хорошо рассказали на Android Dev Summit.
Примеры темных тем в различных приложениях
#ART #R8

Хотите узнать как происходит магия по выполнению вашего кода на устройстве? Тогда вам надо узнать про ART - виртуальную машину Android. На Android Dev Summit сделали прекрасный доклад как происходила эволюция виртуальной машины, сколько происходит в ней улучшений для ускорения приложений по всем фронтам, а также узнаете про оптимизацию кода на устройстве с ART и при сборке приложения в грядущей R8.