#Lifecycle #ViewModel #Activity
The Android Lifecycle cheat sheet — part IV : ViewModels, Translucent Activities and Launch Modes
Четвертая часть в серии диаграмм жизненного цикла основных компонентов Android. В последней статье вы найдете информацию о жизненном цикле:
👉 ViewModel в Activity и Fragment
👉 Translucent Activity
👉 Activity в различных launch режимах: "single top" и "single task"
The Android Lifecycle cheat sheet — part IV : ViewModels, Translucent Activities and Launch Modes
Четвертая часть в серии диаграмм жизненного цикла основных компонентов Android. В последней статье вы найдете информацию о жизненном цикле:
👉 ViewModel в Activity и Fragment
👉 Translucent Activity
👉 Activity в различных launch режимах: "single top" и "single task"
#RxJava #Lifecycle #Uber
RxJava2 AutoDispose by Uber was opened
Uber открыла доступ к своей библиотеке AutoDispose. Она позволяете автоматически вызывать
ПОд капотом все выполняется с помощью метода-фабрики autoDisposable() следующим образом:
Поддерживается основные компоненты Android с жизненным циклом, Architecture Components, RxLifecycle, есть расширения для Kotlin и тестов
RxJava2 AutoDispose by Uber was opened
Uber открыла доступ к своей библиотеке AutoDispose. Она позволяете автоматически вызывать
dispose()
вашим ObservableПОд капотом все выполняется с помощью метода-фабрики autoDisposable() следующим образом:
myObservable
.doStuff()
.as(autoDisposable(this)) // The magic
.subscribe(s -> ...);
Поддерживается основные компоненты Android с жизненным циклом, Architecture Components, RxLifecycle, есть расширения для Kotlin и тестов
GitHub
GitHub - uber/AutoDispose: Automatic binding+disposal of RxJava streams.
Automatic binding+disposal of RxJava streams. Contribute to uber/AutoDispose development by creating an account on GitHub.
#AndroidX #ArchComponents #Lifecycle
Detecting when an Android app is in foreground or background
Как вы определяете что приложение ушло в фон или пользователь закрыл все Activity в приложение? В Android Architecture Components есть прекрасное решение для этого - ProcessLifecycleOwner.
Detecting when an Android app is in foreground or background
Как вы определяете что приложение ушло в фон или пользователь закрыл все Activity в приложение? В Android Architecture Components есть прекрасное решение для этого - ProcessLifecycleOwner.
Medium
Detecting when an Android app is in foreground or background
It’s a rule: every Android app has its own logic, context and behaviors. And the solutions that may apply successfully to certain cases…
👍1
#ArchitectureComponent #ViewModel #Lifecycle #Coroutines
Lifecycle 2.2.0
Много новых интеграций с Kotlin Coroutines:
👉 Конвертация
👉 liveData { } - генератор значений с помощью Coroutine, которые доставляются через
👉 LifecycleCoroutineScope - специальный
👉 suspend функции, связанные с
Но помимо этого
👉 Теперь вместо
👉 Gradle Incremental Annotation Processor: Теперь вместо аннотирования методов, который должны вызываться на методы жизненного цикла, с помощью
Lifecycle 2.2.0
Много новых интеграций с Kotlin Coroutines:
👉 Конвертация
Flow
<-> LiveData
👉 liveData { } - генератор значений с помощью Coroutine, которые доставляются через
LiveData
👉 LifecycleCoroutineScope - специальный
CoroutineScope
, связанный с Lifecycle
. Он позволяет запускать Coroutine, когда Lifecycle
достигнет определенного состояния с помощью launchWhenCreated, launchWhenResumed и launchWhenStarted👉 suspend функции, связанные с
LifecycleOwner
и Lifecycle
, которые позволяют дождаться заданного состояния Lifecycle: whenCreated, whenStarted, whenResumed, whenStateAtLeast (только для Lifecycle
)Но помимо этого
👉 Теперь вместо
ViewModelProviders.of()
надо создавать ViewModelProvider
через конструктор👉 Gradle Incremental Annotation Processor: Теперь вместо аннотирования методов, который должны вызываться на методы жизненного цикла, с помощью
@OnLifecycleEvent
используйте DefautLifecycleObserver.#Jetpack #ArchitectureComponents #Lifecycle
Optimizing Android ViewModel with Lifecycle 2.2.0
Обзор последних возможностей библиотек Lifecycle (LiveData, ViewMode, Lifecycle), ktx расширений и лучших практик:
👉 Делегаты ViewModel
👉 Почему не стоит использовать AndroidViewModel
👉 Какие данные не стоит передавать в ViewModel
👉 Сохранение данных ViewModel
Optimizing Android ViewModel with Lifecycle 2.2.0
Обзор последних возможностей библиотек Lifecycle (LiveData, ViewMode, Lifecycle), ktx расширений и лучших практик:
👉 Делегаты ViewModel
👉 Почему не стоит использовать AndroidViewModel
👉 Какие данные не стоит передавать в ViewModel
👉 Сохранение данных ViewModel
Medium
Optimizing Android ViewModel with Lifecycle 2.2.0
Initialization, passing arguments, and saved state
#Lifecycle
Lifecycle 2.3.0-alpha06
Изменение поведения
👉 DESTROYED теперь терминальное состояние, что означает отсутствие каких-либо дальнейших событий
👉
👉 Новые вспомогательные методы
👉 Новый метод Lifecycle.withStateAtLeast, который дожидается когда Lifecycle, достигнет заданного состояния
Lifecycle 2.3.0-alpha06
Изменение поведения
👉 DESTROYED теперь терминальное состояние, что означает отсутствие каких-либо дальнейших событий
👉
LifecycleRegistry
теперь будет проверять, что метод вызываются на главном потоке👉 Новые вспомогательные методы
downFrom(State)
, downTo(State)
, upFrom(State)
, upTo(State)
, которые генерирует Event для заданного State и направление перехода для его осуществления.👉 Новый метод Lifecycle.withStateAtLeast, который дожидается когда Lifecycle, достигнет заданного состояния
#Lifecycle
Kotlin lifecycle delegates
Библиотека поможет вам соединить жизненный цикл и действия, которые надо выполнить. Например, инициализацию объектов. Все это делается через Delegated Property
Kotlin lifecycle delegates
Библиотека поможет вам соединить жизненный цикл и действия, которые надо выполнить. Например, инициализацию объектов. Все это делается через Delegated Property
#Coroutines #Lifecycle
Deep Dive Into Android Lifecycle Coroutines
Разбор как работают CoroutineScope, которые являются частью библиотеки lifecycle-ktx, и какие особенности есть в их поведении.
Deep Dive Into Android Lifecycle Coroutines
Разбор как работают CoroutineScope, которые являются частью библиотеки lifecycle-ktx, и какие особенности есть в их поведении.
#Coroutines #Lifecycle
repeatOnLifecycle API design story
В Lifecycle 2.4.0 (пока в альфа) нас ждут новые возможности вызова Lifecycle.repeatOnLifecycle. В статье разбираются подробности реализации, а именно:
👉 Почему Lifecycle.repeatOnLifecycle - это suspend функция
👉 Почему удалили LifecycleOwner.addRepeatingJob (спойлер - нарушение принципов Structured Concurrency)
👉 Что там с Flow.flowWithLifecycle
👉 Какие изменения API ещё будут
repeatOnLifecycle API design story
В Lifecycle 2.4.0 (пока в альфа) нас ждут новые возможности вызова Lifecycle.repeatOnLifecycle. В статье разбираются подробности реализации, а именно:
👉 Почему Lifecycle.repeatOnLifecycle - это suspend функция
👉 Почему удалили LifecycleOwner.addRepeatingJob (спойлер - нарушение принципов Structured Concurrency)
👉 Что там с Flow.flowWithLifecycle
👉 Какие изменения API ещё будут
Обновления библиотек Jetpack Lifecycle 2.8.0
Lifecycle
👉 LocalLifecycleOwner из Compose переехал в
👉 Новые Composable API dropUnlessResumed и dropUnlessStarted что позволяет лямбду вызывать только когда LifecycleOwner достигнет состояния Resumed/Started соотвественно и не будет вызывать когда выйдет из него. Например, полезно для навигации
👉 LifecycleStartEffect и LifecycleResumeEffect бросают ошибку если не задать key. По аналоги с DisposableEffect
👉 API
ViewModel
👉 ViewModel теперь позволяет передать произвольный CoroutineScope при создании. Полезно для тестов и не только
👉 ViewModel переписали на Kotlin и перешли с Closable на AutoClosable из Kotlin
👉 API
👉
👉 Для всех таргетов не Android должна быть обязательна указана фабрика для
LiveData
👉 Переписали NullSafeMutableLiveData
#lifecycle #viewmodel #compose #kmp
Lifecycle
👉 LocalLifecycleOwner из Compose переехал в
lifecycle-runtime-compose
👉 Новые Composable API dropUnlessResumed и dropUnlessStarted что позволяет лямбду вызывать только когда LifecycleOwner достигнет состояния Resumed/Started соотвественно и не будет вызывать когда выйдет из него. Например, полезно для навигации
👉 LifecycleStartEffect и LifecycleResumeEffect бросают ошибку если не задать key. По аналоги с DisposableEffect
👉 API
Lifecycle
, LifecycleOwner
, LifecycleObserver
, Lifecycle.State
, Lifecycle.Event
и LifecycleRegistry
теперь являются частью мультиплатформенных модулейViewModel
👉 ViewModel теперь позволяет передать произвольный CoroutineScope при создании. Полезно для тестов и не только
👉 ViewModel переписали на Kotlin и перешли с Closable на AutoClosable из Kotlin
👉 API
ViewModel
, ViewModelStore
, ViewModelStoreOwner
и ViewModelProvider
теперь являются частью мультиплатформенных модулей👉
ViewModelProvider.NewInstanceFactory
и ViewModelProvider.AndroidViewModelFactory
доступны только на Android👉 Для всех таргетов не Android должна быть обязательна указана фабрика для
ViewModel
LiveData
👉 Переписали NullSafeMutableLiveData
#lifecycle #viewmodel #compose #kmp
❤14👍10
Есть полезная Jetpack библиотека lifecycle-process, которая предоставляет Lifecycle, связанные с процессом вашего приложения (Application класс).
В статье(EN,7м) рассказывается как делают её интеграцию с корутинами и применяют в проекте
#jetpack #coroutines #lifecycle
В статье(EN,7м) рассказывается как делают её интеграцию с корутинами и применяют в проекте
#jetpack #coroutines #lifecycle
👎11❤6👍5