StateFlow and SharedFlow in ViewModels
Collecting State and Shared Flows from ViewModels while respecting lifecycle of the collector views
Compose by example: BoxWithConstraints
A practical example of using BoxWithConstraints in Jetpack Compose to build responsive layouts
Slim down your Android components with LifecycleObserver
Learn to create custom LifecycleObserver components and inject them with Dagger/Hilt
Show BottomBar conditionally in Compose
Conditionally show BottomBar with bottom navigation in Jetpack Compose
Basic Auth with OkHttp and Retrofit
Basic Auth example using OkHttp, Retrofit, Dagger in a Kotlin project
Animation in Jetpack Compose
Foundational overview of Compose Animation APIs to help you choose most suitable API for your animation task.
Compose sample app: UI state with Flow, offline first
Sample repo implementing state using Flow, Offline First repository, unit tests using Turbine.
Test Coroutine Scheduler
Using TestCoroutineScheduler, a scheduler for coroutines used in tests, that provides the delay-skipping behavior.
Animating visibility vs alpha in Compose
Covers example when animateFloatAsState is what you need instead of AnimatedVisibility
Practical Compose Slot API example
Learn how to manage screen sections using Slot API pattern in Compose
Lazy Grid layouts in Compose
Covers 3 ways to build lazy grid layouts using fixed, adaptive and custom configuration
Lazy layouts contentPadding
Controlling padding for first and last item in a lazy layout in Compose
Composable functions and return types
Exploring composable function characteristics and return types
Compose phases and optimizations
Learn about Compose Phases and optimizing UI by controlling what Phases get executed when data in composable changes
Using MotionLayout in Compose
A demo of using MotionLayout with Jetpack Compose with motion scene set up as a JSON5
Making reusable composables using Generics
Using Java Generics to create reusable shared components in Compose
Getting started with Canvas in Compose
Explore DrawScope and create your first custom component using Canvas in Jetpack Compose
Compose Row, Column and Scoped Modifiers
Explore the power of Row and Column composables and their respective RowScope and ColumnScope modifiers to layout child composables