
"Now in Android" с последними новостями Android разработки из Google от Chet Haase теперь стало доступно в видео формате
Size: a a a
ViewModel
решена задача с сохранением данных при изменение конфигурации. Ранее состояние сохранялась пока жив процесс, но вот при его уничтожение системой способа сохранить данные "из коробки" не было. Теперь есть - SavedStateHandleViewModel
. Раньше использовалась AndroidViewModelFactory на смену которой пришла SavedStateViewModelFactory. class MyActivity : Activity() {
val vm: MyViewModel by viewModels()
}
class MyViewModel(
savedState: SavedStateHandle
) : ViewModel()
ViewGroup
, предназначенная специально для размещения в ней Fragment
. Она исправляет проблемы с анимациями при выполнение транзакций. Забудь о FrameLayout
или <fragment>
, теперь только FragmentContainerView
.ViewModel
по аналогии с Activity 1.1.0Fragment.onDestroyView()
теперь вызывается только после окончания анимации/transitiongetViewLifecycleOwner()
Fragment.getFragmentManager()
переименовано в Fragment.getParentFragmentManager()
FragmentManager
теперь поддерживает операции (add/replace и др.) с Fragment
по их классу, в дополнение к заранее созданному объекту. Это улучшает поддержку возможности по интеграции DI в конструктор Fragment
.Flow
<-> LiveData
LiveData
CoroutineScope
, связанный с Lifecycle
. Он позволяет запускать Coroutine, когда Lifecycle
достигнет определенного состояния с помощью launchWhenCreated, launchWhenResumed и launchWhenStartedLifecycleOwner
и Lifecycle
, которые позволяют дождаться заданного состояния Lifecycle: whenCreated, whenStarted, whenResumed, whenStateAtLeast (только для Lifecycle
)ViewModelProviders.of()
надо создавать ViewModelProvider
через конструктор@OnLifecycleEvent
используйте DefautLifecycleObserver.Kotlin Flow
- это реализация реактивных стримов на основе Coroutine, и естественно Android разработчики будут сравнивать ее к тому, чему уже привыкли - RxJava 2
.RxJava Obserable
и Coroutine Flow
, а также миграции с первого подхода на последний.if...else
. На помощь может прийти решение Server Driven UI (SDUI), когда сервер управляет тем, что показать и как. Нечто подобное HTML, но SDUI - нативное и более ограничено в возможностях.Activity
/Fragment
при смене конфигурации