#compose #navigation #jetpack
Navigating through multi-module Jetpack Compose applications (14 мин)
Организация навигации в многомодульном приложении с Jetpack Compose для UI и Jetpack Navigation для переходов между экранами. В статье много времени уделили организации модулей в примере и она основе этого разделения применяют организацию навигации
Как вы работает с навигацией в Compose?
Navigating through multi-module Jetpack Compose applications (14 мин)
Организация навигации в многомодульном приложении с Jetpack Compose для UI и Jetpack Navigation для переходов между экранами. В статье много времени уделили организации модулей в примере и она основе этого разделения применяют организацию навигации
Как вы работает с навигацией в Compose?
#compose #navigation
Jetpack Compose Navigation в многомодульном проекте
Опыт организации навигации с помощью Jetpack Navigation в многомодульном Android приложения с Compose
Jetpack Compose Navigation в многомодульном проекте
Опыт организации навигации с помощью Jetpack Navigation в многомодульном Android приложения с Compose
#compose #navigation #jetpack
Safe compose arguments: An improved way to navigate in jetpack compose
Реализация Jetpack Navigation для Compose пока оставляет желать лучшего - нет статической типизации параметров, легко забыть что-то не передать или потерять и пр. болячки. Конечно вы можете подумать что лучше взять какое-то другое решения для навигации (вполне можете быть правы), но автор статьи решил часть проблем написав процессор аннотаций для строго описания параметров и мест навигации в графе.
🔗 Safe Compose Args
Safe compose arguments: An improved way to navigate in jetpack compose
Реализация Jetpack Navigation для Compose пока оставляет желать лучшего - нет статической типизации параметров, легко забыть что-то не передать или потерять и пр. болячки. Конечно вы можете подумать что лучше взять какое-то другое решения для навигации (вполне можете быть правы), но автор статьи решил часть проблем написав процессор аннотаций для строго описания параметров и мест навигации в графе.
🔗 Safe Compose Args
#compose #navigation
Очередная навигация для Android Jetpack Compose? Brick
Jetpack Navigation огорчает своим качеством для Compose (а кого и вообще огорчает как решение для навигации). Brick - предлагают как лучшее решение для навигации, а в статье доказывает почему
Очередная навигация для Android Jetpack Compose? Brick
Jetpack Navigation огорчает своим качеством для Compose (а кого и вообще огорчает как решение для навигации). Brick - предлагают как лучшее решение для навигации, а в статье доказывает почему
#compose #navigation
Масштабируем Jetpack Compose Navigation
История интеграции и использовать Jetpack Navigation для приложения на основе Compose.
Масштабируем Jetpack Compose Navigation
История интеграции и использовать Jetpack Navigation для приложения на основе Compose.
👍8
#jetpack #navigation #compose
Вышел Navigation 2.4.0
🔥 Библиотеки были полностью переписаны на Kotlin
👉 Поддержка two pane layout через AbstractListDetailFragment
👉 Возможность получить список всех видимых
👉 Возможность создания собственных NavType, которые поддерживаются только для графов, создаваемых в коде
👉 Поддержка NavigationRailView
👉 Идентификация destination через строковый идентификатор - route, в дополнение к
👉 Стабильная поддержка Jetpack Compose
👉 Поддержка множества back stack
👉 Поддержка Android 12
👉 Возможность получения
🛠️ Исправление багов
Вышел Navigation 2.4.0
🔥 Библиотеки были полностью переписаны на Kotlin
👉 Поддержка two pane layout через AbstractListDetailFragment
👉 Возможность получить список всех видимых
NavBackStackEntry👉 Возможность создания собственных NavType, которые поддерживаются только для графов, создаваемых в коде
👉 Поддержка NavigationRailView
👉 Идентификация destination через строковый идентификатор - route, в дополнение к
R.id.👉 Стабильная поддержка Jetpack Compose
👉 Поддержка множества back stack
👉 Поддержка Android 12
👉 Возможность получения
NavArgs из savedStateHandle в ViewModel с помощью метода fromSavedStateHandle(), который генерируется для каждого класса аргументов🛠️ Исправление багов
👍52🔥6💩2🤩1
📄 Appyx vs Jetpack Compose Navigation (5 мин)
Сравнение 2 решений навигации для Jetpack Compose: Appyx от Bumble (пока в альфа) против Jetpack Navigation. Сравнение производится на примере решения реальных задач
#compose #navigation
Сравнение 2 решений навигации для Jetpack Compose: Appyx от Bumble (пока в альфа) против Jetpack Navigation. Сравнение производится на примере решения реальных задач
#compose #navigation
👍22👎15
Почему больше не буду использовать deep linking из Navigation Component
Автор статьи делится рядом проблем и неудобствами при работе работе с deep link в XML Navigation Graph
#jetpack #navigation
Автор статьи делится рядом проблем и неудобствами при работе работе с deep link в XML Navigation Graph
#jetpack #navigation
👎13👍8🤔1
Пример организации навигации в многомодульном приложении с UI на Jetpack Compose на основе Jetpack Navigation
По моему опыту, Jetpack Compose Navigation - боль! Вообще не хочется с ним работать, берите что другое для навигации или точно убедитесь что оно вам подойдет
#compose #navigation
По моему опыту, Jetpack Compose Navigation - боль! Вообще не хочется с ним работать, берите что другое для навигации или точно убедитесь что оно вам подойдет
#compose #navigation
👏16🤔9😁7👍6
Difference between findStartDestination() and startDestination in Jetpack Compose Navigation (5 мин)
Статья с разбором различия API в Jetpack Compose Navigation. В основном отличия в поведении с с вложенными графами, все подробности по ссылке
#jetpack #navigation #compose
Статья с разбором различия API в Jetpack Compose Navigation. В основном отличия в поведении с с вложенными графами, все подробности по ссылке
#jetpack #navigation #compose
👍17👎8
«Внешняя» навигация в многомодульном проекте на Kotlin
Навигация - боль. Навигация в большом проекте - боль и страдания. Про это и пойдет речь в статье, а именно - навигация между фича модулями. Тема извечная и так не найдена серебряная пуля.
#architecture #navigation
Навигация - боль. Навигация в большом проекте - боль и страдания. Про это и пойдет речь в статье, а именно - навигация между фича модулями. Тема извечная и так не найдена серебряная пуля.
#architecture #navigation
🔥32👍11👎11
Руководство (EN, 4 мин) как использовать Jetpack Compose Navigation и Dagger 2 с отложенной (ленивой) инициализацией модулей
#compose #dagger #navigation
#compose #dagger #navigation
👍24👎15
Началась разработка Jetpack Navigation 2.9.0 в которой добавили поддержку Supporting Pane
#jetpack #navigation
#jetpack #navigation
👍18 5🔥3
#android #jetpack #navigation
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19👎5❤1
🛠 Значительные переработки под капотом для улучшения поддержки KMP
👉 Добавлена поддержка обработки deep link из Kotlin Common кода
👉 Улучшения API
#jetpack #jetpackupdate #navigation #compose #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22
This media is not supported in your browser
VIEW IN TELEGRAM
Улучшили навигацию между Compose Preview и Composable функцией с которой связано превью
#compose #androidstudio
#compose #androidstudio
🔥63👍8
Media is too big
VIEW IN TELEGRAM
Месяц назад Google анонсировала навигацию специально разработанную под Compose и которая должна решить все боли. В видео показываю её возможности, делюсь своим мнение и рассказываю про недочеты, которые надеюсь что решат до стабильного релиза
#AndroidBroadcast #navigation #jetpack #compose
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53🔥10🤔4❤3
#compose #navigation
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
Google выпустила мажорное обновление библиотек Lifecycle. Этот релиз сфокусирован на улучшении интеграции с Compose.
rememberLifecycleOwner для ComposeНовый композабл позволяет создавать изолированные
LifecycleOwner внутри UI. Идеально для компонентов, которым нужно независимое управление состоянием — например, для HorizontalPager, где только активная страница должна быть в состоянии RESUMED.@Composable
fun MyComposable() {
val lifecycleOwner = rememberLifecycleOwner(
maxLifecycle = Lifecycle.State.RESUMED,
parentLifecycleOwner = LocalLifecycleOwner.current,
)
CompositionLocalProvider(
LocalLifecycleOwner provides lifecycleOwner
) {
// Дочерние композаблы теперь имеют собственный жизненный цикл
}
}
Новый артефакт
lifecycle-viewmodel-navigation3 предоставляет готовый декоратор для автоматической привязки ViewModel к отдельным экранам в Navigation 3.NavDisplay(
backStack = backStack,
entryDecorators = listOf(
rememberSaveableStateHolderNavEntryDecorator(),
rememberViewModelStoreNavEntryDecorator(), // Добавляем эту строку
),
entryProvider = entryProvider { /* ... */ }
)
Удобства для разработчиков:
👉 Идиоматичный Kotlin API для создания кастомных
CreationExtras CreationExtras {
this[MY_CUSTOM_KEY] = "myValue"
}
👉 Метод
savedStateHandle.saved() теперь нативно поддерживает nullable типы👉 Конструкторы SavedStateHandle помечены как
@VisibleForTesting⚠️ Важное изменение
Повышение
minSdk с API 21 до API 23 — убедитесь, что ваше приложение соответствует новым требованиям.#Jetpack #Lifecycle #Compose #Navigation #ViewModel #Kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16🔥10🤯3👍2🙏1
Что дает библиотека
👉 Единый кроссплатформенный API для замены разрозненных решений
👉 Централизованная система управления всей навигацией в приложении
👉 Базовый слой для будущих навигационных решений Android
Пример использования:
val myHandler = object : NavigationEventHandler<NavigationEventInfo>(
initialInfo = CurrentInfo,
isBackEnabled = true
) {
override fun onBackStarted(event: NavigationEvent) {
// Подготовка к навигации
}
override fun onBackProgressed(event: NavigationEvent) {
// Анимации на основе event.progress
}
override fun onBackCompleted() {
// Завершение навигации
}
}
👉 Готовая интеграция с Compose
val navEventState = rememberNavigationEventState(
currentInfo = CurrentInfo,
backInfo = PreviousInfo
)
NavigationBackHandler(
state = navEventState,
isBackEnabled = true,
onBackCompleted = { /* Действие при завершении */ }
)
👉 Диспетчеры могут образовывать родительско-дочерние цепочки:
// Compose
val childDispatcher = rememberNavigationEventDispatcher(
parent =
LocalNavigationEventDispatcherOwner
.current
.navigationEventDispatcher
)
👉 Нативная поддержка Predictive Back из Android
👉 Библиотека уже используется в Activity 1.12.0 как базовый слой
#Jetpack #Navigation #Compose #KMP #PredictiveBack #Kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤2