Core ui
May 26, 2020 · View on GitHub
Core ui
Создан в результате развития идей проекта ferro.
Модуль расширяющий возможности ui части Android Framework. Может быть использован для создания базовых классов, необходимых для реализации паттернов MVP, MVVM
Основные сущности:
PersistentScope- хранилище для остальных сущностей, переживает смену конфигурации.PersistentScopeStorage- хранилище всех PersistentScope в контексте приложенияScreenState- текущее состояние экрана (пр. был ли он пересоздан в результате смены конфигурации или восстановлен с диска)Configurator- используется для настройки DIScreenEventDelegateManager- позволяет подписываться на системные события экрана, такие как onActivityResult, onCompletelyDestroy, onNewIntent и др.
Все эти сущности, переживают смену конфигурации, таким образом решается большая часть проблем, связанных с этим свойством фреймворка.
Дополнительные сущности:
ActivityProvider,FragmentProvider- предоставляют "живые" Activity или Fragment даже после смены конфигурации
Механизм делегирования событий экрана (см ScreenEventDelegateManager) позволяет создавать законченные сущности, которые необходимы для "чистой" архитектуры.
Большинство асинхронных взаимодействий осуществляются через rxJava.
Использование
Подключение
Gradle:
implementation "ru.surfstudio.android:core-ui:X.X.X"