[Stepik] Jetpack Compose Ρ Π½ΡΠ»Ρ (2024)
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ 03.09.2024
Π§Π΅ΠΌΡ Π²Ρ Π½Π°ΡΡΠΈΡΠ΅ΡΡ:ΠΡΠΈΠΌΠ΅Π½ΡΡΡ Jetpack Compose ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉΠ Π°Π±ΠΎΡΠ°ΡΡ Ρ Π°Π½ΠΈΠΌΠ°ΡΠΈΡΠΌΠΈΠ Π°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Kotlin FlowΠ ΠΊΡΡΡΠ΅:
Jetpack compose - ΡΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. Π‘ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π΄Π½Π΅ΠΌ ΠΎΠ½ Π½Π°Π±ΠΈΡΠ°Π΅Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ ΠΈ Π²ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°Π±ΠΎΡΠΎΠ΄Π°ΡΠ΅Π»Π΅ΠΉ Ρ ΠΎΡΡΡ Π²ΠΈΠ΄Π΅ΡΡ Π² ΡΠ²ΠΎΠΈΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠΎ Π·Π½Π°Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ.
Π ΡΡΠΎΠΌ ΠΊΡΡΡΠ΅ ΠΌΡ Ρ Π½ΡΠ»Ρ ΠΈΠ·ΡΡΠΈΠΌ Π²ΡΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Jetpack Compose. ΠΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΡΡΠΎΡ ΠΊΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ, Π² Π½Π΅ΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»ΠΎ ΡΠ΅ΠΎΡΠΈΠΈ ΠΈ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ.
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΡΡΡΠ° ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΊΡΡΠΏΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ - ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ VK, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π»Π΅Π½ΡΠ° Π½ΠΎΠ²ΠΎΡΡΠ΅ΠΉ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π»Π°ΠΉΠΊ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΠ»Ρ ΠΊΠΎΠ³ΠΎ ΡΡΠΎΡ ΠΊΡΡΡ:
ΠΡΠΎΡ ΠΊΡΡΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Android ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΊΠ°ΠΊ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ , ΡΠ°ΠΊ ΠΈ ΠΎΠΏΡΡΠ½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° Π½ΠΎΠ²ΡΠΉ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° - Jetpack Compose
ΠΠ°ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ:
ΠΠ»Ρ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΊΡΡΡΠ° ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π·Π½Π°Π½ΠΈΠ΅ ΡΠ·ΡΠΊΠ° Kotlin ΠΈ ΠΎΡΠ½ΠΎΠ² Android-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ°ΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ Ρ Π²Π°Ρ Π±ΡΠ»ΠΎ Ρ ΠΎΡΡ Π±Ρ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ΅ΠΌ: MVVM, Retrofit, Kotlin Coroutines
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΊΡΡΡΠ°:
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΠ»Ρ ΠΊΠΎΠ³ΠΎ ΡΡΠΎΡ ΠΊΡΡΡ ΠΈ ΡΡΠΎ Π±ΡΠ΄Π΅ΠΌ ΠΈΠ·ΡΡΠ°ΡΡ?Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Jetpack Compose. ΠΡΠ°ΡΠΊΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΡΠ½ΠΎΠ²Ρ Jetpack ComposeΠΠ΅ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° JCPreview ΠΈ ColumnRow, Box, ModifierInstagram Profile Card. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½Π°CardDark-Light ThemesTextImageΠΠΎΡΡΠ΄ΠΎΠΊ modifier-ΠΎΠ²ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ InstagramProfileCardVkNewsClient. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°ΠΏΠΊΡ ΠΏΠΎΡΡΠ°VkNewsClient. ΠΠΎΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌ ΠΊΠ°ΡΡΠΎΡΠΊΡ ΠΏΠΎΡΡΠ°Material ComponentsΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Material ComponentsScaffold ΠΈ BottomNavigationState ΠΈ ΡΠ΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡFAB ΠΈ SnackBarState ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ VIewModelΠ Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ VIewModel Π² InstagramProfileCardΠΠ΅Π»Π΅Π³Π°ΡΡΠ‘Π»ΡΡΠ°ΡΠ΅Π»ΠΈ ΠΊΠ»ΠΈΠΊΠ°ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ViewModel Π² VkNewsClientLazyColumnLazyRow, LazyVerticalGridSwipe to dismissΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ LazyColumn Π² VkClientΠΠ°Π²ΠΈΠ³Π°ΡΠΈΡ Π² Jetpack ComposeΠΠ°Π²ΠΈΠ³Π°ΡΠΈΡ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊJetpack Compose NavigationΠΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ Π±Π°Π³ΠΈ Π² Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈΠ Π΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ. RememberNavigationStateΠ‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π². Π§Π°ΡΡΡ 1UDF ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠ΅ΠΉΡΠ°ΠΠ°Π²ΠΈΠ³Π°ΡΠΈΡ Π½Π° ΡΠΊΡΠ°Π½ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π²Π Π΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ VIewModelsΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π²ΠΎ Π²ΡΡ-ΠΌΠΎΠ΄Π΅Π»Ρ. ViewModelFactoryNested Graph NavigationFix navigation bugsΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² JetpackNavigation. Π§Π°ΡΡΡ 1. ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° IdΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². Π§Π°ΡΡΡ 2. Navigation TypesΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². Π§Π°ΡΡΡ 3. Parcelable, Json, Custom Nav TypeActivityResultApiDeprecated onActivityResultActivityResultApiActivityResultApi Π² Jetpack ComposeΠ Π°Π±ΠΎΡΠ° Ρ VK APIΠΠ²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠ΅Π· VK SDKSideEffect ΠΈ LaunchedEffectLogin ScreenRefactoring ΠΈ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠΎΠΊΠ΅Π½Π°ΠΠ°Π³ΡΡΠΆΠ°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ΠΠΎΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌ UIΠ Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ/ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π»Π°ΠΉΠΊΠΎΠ²ΠΠΎΠ΄Π³ΡΡΠ·ΠΊΠ° Π΄Π°Π½Π½ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΊΡΠΎΠ»Π»Π°ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΊΡΠ°Π½Π° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π²Coroutine FlowΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Coroutine FlowFlow BuildersFlow builder and terminal operatorsΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° FlowMap Flow to LiveDataAsLiveData ΡΠ°ΡΡΡ 2. OnCompletionΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Flow Π½Π° Ui-ΡΠ»ΠΎΠ΅Π₯ΠΎΠ»ΠΎΠ΄Π½ΡΠ΅ FlowΠΠΎΡΡΡΠΈΠ΅ Flow. MutableSharedFlowΠΡΠ°ΠΊΡΠΈΠΊΠ° MutableSharedFlowΠΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΠΈ ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡStateFlowBackpressure ΠΈ bufferΠΡΡΠ΅Ρ Π² Π³ΠΎΡΡΡΠΈΡ flowΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ ShareIn ΠΈ StateInException HandlingΠΡΠ°ΠΊΡΠΈΠΊΠ° Compose Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ VKPractice in VkNewsClientException handling in VkNewsClientCoroutine Flow in MainViewModelRefactoring. Clean ArchitectureDependency Injection in NewsFeedClientDependency Injection VkNewsClient Part 2Immutable and recompositionΠΠ½ΠΈΠΌΠ°ΡΠΈΠΈ ΡΠ°ΡΡΡ 1. AnimateAsStateΠΠ½ΠΈΠΌΠ°ΡΠΈΠΈ ΡΠ°ΡΡΡ 2. Animation SpecΠΠ½ΠΈΠΌΠ°ΡΠΈΠΈ ΡΠ°ΡΡΡ 3. Animated ContentCustom ViewsΠ Π°Π±ΠΎΡΠ° Ρ CanvasDraw PathDetect GesturesΠΠ±Π·ΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ TerminalΠ Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ Π ΠΈΡΡΠ΅ΠΌ Π³ΡΠ°ΡΠΈΠΊΠΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΡΠΎΠ»Π»Π° ΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ²Π΅ΡΠ΅ΠΉDerivedStateOfCustom SaverRemember terminal statePath EffectDraw textRefactoring and bug fixAssist Chip. Time FramesTime DelimitersMVI. DecomposeΠΠ±Π·ΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Weather AppΠΠΎΠ²ΡΠΈΜ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ Presentation ΡΠ»ΠΎΡDecompose. ΠΠ΅ΡΠ²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡDecompose. Component ContextDecompose. ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡDecompose. ChildStack ΠΈ ValueDecompose. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ UIDecompose. Interface ChildDecompose. Interface Root ComponentMVI. Store Intent State LabelMVI. ContactListStoreMVI. StoreFactoryMVI. StoreFactory ExecutorMVI. StoreFactory ΡΠΈΠ½Π°Π»ΡΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡMVI. BootstrapperMVI. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠΎΡΠ°MVI. LiveTemplates and LoggingΠΠ±Π·ΠΎΡ Decompose ΠΈ MVIWeatherApp Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΈΜΠ‘ΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°Domain ΡΠ»ΠΎΠΈΜΠ Π°Π±ΠΎΡΠ° Ρ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΠΌΠΡΠ½Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ° Π² BuildConfigΠ‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΠ°Π·Ρ Π΄Π°Π½Π½ΡΡ Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π²ΠΠ½ΡΠ΅ΠΊΡΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΈΜFavouriteStoreDetailsStoreSearchStoreΠ Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²Assisted InjectΠ Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ RootComponent. Π§Π°ΡΡΡ 1Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ RootComponent. Π§Π°ΡΡΡ 2FavouriteContent. Π§Π°ΡΡΡ 1FavouriteContent. Π§Π°ΡΡΡ 2Details ContentSearch ContentΠ€ΠΈΠ½Π°Π»
ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ 03.09.2024
Π§Π΅ΠΌΡ Π²Ρ Π½Π°ΡΡΠΈΡΠ΅ΡΡ:ΠΡΠΈΠΌΠ΅Π½ΡΡΡ Jetpack Compose ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉΠ Π°Π±ΠΎΡΠ°ΡΡ Ρ Π°Π½ΠΈΠΌΠ°ΡΠΈΡΠΌΠΈΠ Π°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Kotlin FlowΠ ΠΊΡΡΡΠ΅:
Jetpack compose - ΡΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. Π‘ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π΄Π½Π΅ΠΌ ΠΎΠ½ Π½Π°Π±ΠΈΡΠ°Π΅Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ ΠΈ Π²ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°Π±ΠΎΡΠΎΠ΄Π°ΡΠ΅Π»Π΅ΠΉ Ρ ΠΎΡΡΡ Π²ΠΈΠ΄Π΅ΡΡ Π² ΡΠ²ΠΎΠΈΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠΎ Π·Π½Π°Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ.
Π ΡΡΠΎΠΌ ΠΊΡΡΡΠ΅ ΠΌΡ Ρ Π½ΡΠ»Ρ ΠΈΠ·ΡΡΠΈΠΌ Π²ΡΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Jetpack Compose. ΠΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΡΡΠΎΡ ΠΊΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ, Π² Π½Π΅ΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»ΠΎ ΡΠ΅ΠΎΡΠΈΠΈ ΠΈ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ.
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΡΡΡΠ° ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΊΡΡΠΏΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ - ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ VK, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π»Π΅Π½ΡΠ° Π½ΠΎΠ²ΠΎΡΡΠ΅ΠΉ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π»Π°ΠΉΠΊ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΠ»Ρ ΠΊΠΎΠ³ΠΎ ΡΡΠΎΡ ΠΊΡΡΡ:
ΠΡΠΎΡ ΠΊΡΡΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Android ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΊΠ°ΠΊ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ , ΡΠ°ΠΊ ΠΈ ΠΎΠΏΡΡΠ½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° Π½ΠΎΠ²ΡΠΉ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° - Jetpack Compose
ΠΠ°ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ:
ΠΠ»Ρ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΊΡΡΡΠ° ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π·Π½Π°Π½ΠΈΠ΅ ΡΠ·ΡΠΊΠ° Kotlin ΠΈ ΠΎΡΠ½ΠΎΠ² Android-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ°ΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ Ρ Π²Π°Ρ Π±ΡΠ»ΠΎ Ρ ΠΎΡΡ Π±Ρ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ΅ΠΌ: MVVM, Retrofit, Kotlin Coroutines
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΊΡΡΡΠ°:
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΠ»Ρ ΠΊΠΎΠ³ΠΎ ΡΡΠΎΡ ΠΊΡΡΡ ΠΈ ΡΡΠΎ Π±ΡΠ΄Π΅ΠΌ ΠΈΠ·ΡΡΠ°ΡΡ?Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Jetpack Compose. ΠΡΠ°ΡΠΊΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΡΠ½ΠΎΠ²Ρ Jetpack ComposeΠΠ΅ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° JCPreview ΠΈ ColumnRow, Box, ModifierInstagram Profile Card. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½Π°CardDark-Light ThemesTextImageΠΠΎΡΡΠ΄ΠΎΠΊ modifier-ΠΎΠ²ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ InstagramProfileCardVkNewsClient. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°ΠΏΠΊΡ ΠΏΠΎΡΡΠ°VkNewsClient. ΠΠΎΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌ ΠΊΠ°ΡΡΠΎΡΠΊΡ ΠΏΠΎΡΡΠ°Material ComponentsΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Material ComponentsScaffold ΠΈ BottomNavigationState ΠΈ ΡΠ΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡFAB ΠΈ SnackBarState ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ VIewModelΠ Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ VIewModel Π² InstagramProfileCardΠΠ΅Π»Π΅Π³Π°ΡΡΠ‘Π»ΡΡΠ°ΡΠ΅Π»ΠΈ ΠΊΠ»ΠΈΠΊΠ°ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ViewModel Π² VkNewsClientLazyColumnLazyRow, LazyVerticalGridSwipe to dismissΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ LazyColumn Π² VkClientΠΠ°Π²ΠΈΠ³Π°ΡΠΈΡ Π² Jetpack ComposeΠΠ°Π²ΠΈΠ³Π°ΡΠΈΡ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊJetpack Compose NavigationΠΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ Π±Π°Π³ΠΈ Π² Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈΠ Π΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ. RememberNavigationStateΠ‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π². Π§Π°ΡΡΡ 1UDF ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠ΅ΠΉΡΠ°ΠΠ°Π²ΠΈΠ³Π°ΡΠΈΡ Π½Π° ΡΠΊΡΠ°Π½ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π²Π Π΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ VIewModelsΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π²ΠΎ Π²ΡΡ-ΠΌΠΎΠ΄Π΅Π»Ρ. ViewModelFactoryNested Graph NavigationFix navigation bugsΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² JetpackNavigation. Π§Π°ΡΡΡ 1. ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° IdΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². Π§Π°ΡΡΡ 2. Navigation TypesΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². Π§Π°ΡΡΡ 3. Parcelable, Json, Custom Nav TypeActivityResultApiDeprecated onActivityResultActivityResultApiActivityResultApi Π² Jetpack ComposeΠ Π°Π±ΠΎΡΠ° Ρ VK APIΠΠ²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠ΅Π· VK SDKSideEffect ΠΈ LaunchedEffectLogin ScreenRefactoring ΠΈ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠΎΠΊΠ΅Π½Π°ΠΠ°Π³ΡΡΠΆΠ°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ΠΠΎΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌ UIΠ Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ/ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π»Π°ΠΉΠΊΠΎΠ²ΠΠΎΠ΄Π³ΡΡΠ·ΠΊΠ° Π΄Π°Π½Π½ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΊΡΠΎΠ»Π»Π°ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΊΡΠ°Π½Π° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π²Coroutine FlowΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Coroutine FlowFlow BuildersFlow builder and terminal operatorsΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° FlowMap Flow to LiveDataAsLiveData ΡΠ°ΡΡΡ 2. OnCompletionΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Flow Π½Π° Ui-ΡΠ»ΠΎΠ΅Π₯ΠΎΠ»ΠΎΠ΄Π½ΡΠ΅ FlowΠΠΎΡΡΡΠΈΠ΅ Flow. MutableSharedFlowΠΡΠ°ΠΊΡΠΈΠΊΠ° MutableSharedFlowΠΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΠΈ ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡStateFlowBackpressure ΠΈ bufferΠΡΡΠ΅Ρ Π² Π³ΠΎΡΡΡΠΈΡ flowΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ ShareIn ΠΈ StateInException HandlingΠΡΠ°ΠΊΡΠΈΠΊΠ° Compose Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ VKPractice in VkNewsClientException handling in VkNewsClientCoroutine Flow in MainViewModelRefactoring. Clean ArchitectureDependency Injection in NewsFeedClientDependency Injection VkNewsClient Part 2Immutable and recompositionΠΠ½ΠΈΠΌΠ°ΡΠΈΠΈ ΡΠ°ΡΡΡ 1. AnimateAsStateΠΠ½ΠΈΠΌΠ°ΡΠΈΠΈ ΡΠ°ΡΡΡ 2. Animation SpecΠΠ½ΠΈΠΌΠ°ΡΠΈΠΈ ΡΠ°ΡΡΡ 3. Animated ContentCustom ViewsΠ Π°Π±ΠΎΡΠ° Ρ CanvasDraw PathDetect GesturesΠΠ±Π·ΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ TerminalΠ Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ Π ΠΈΡΡΠ΅ΠΌ Π³ΡΠ°ΡΠΈΠΊΠΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΡΠΎΠ»Π»Π° ΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ²Π΅ΡΠ΅ΠΉDerivedStateOfCustom SaverRemember terminal statePath EffectDraw textRefactoring and bug fixAssist Chip. Time FramesTime DelimitersMVI. DecomposeΠΠ±Π·ΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Weather AppΠΠΎΠ²ΡΠΈΜ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ Presentation ΡΠ»ΠΎΡDecompose. ΠΠ΅ΡΠ²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡDecompose. Component ContextDecompose. ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡDecompose. ChildStack ΠΈ ValueDecompose. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ UIDecompose. Interface ChildDecompose. Interface Root ComponentMVI. Store Intent State LabelMVI. ContactListStoreMVI. StoreFactoryMVI. StoreFactory ExecutorMVI. StoreFactory ΡΠΈΠ½Π°Π»ΡΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡMVI. BootstrapperMVI. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠΎΡΠ°MVI. LiveTemplates and LoggingΠΠ±Π·ΠΎΡ Decompose ΠΈ MVIWeatherApp Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΈΜΠ‘ΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°Domain ΡΠ»ΠΎΠΈΜΠ Π°Π±ΠΎΡΠ° Ρ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΠΌΠΡΠ½Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ° Π² BuildConfigΠ‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΠ°Π·Ρ Π΄Π°Π½Π½ΡΡ Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π²ΠΠ½ΡΠ΅ΠΊΡΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΈΜFavouriteStoreDetailsStoreSearchStoreΠ Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²Assisted InjectΠ Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ RootComponent. Π§Π°ΡΡΡ 1Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ RootComponent. Π§Π°ΡΡΡ 2FavouriteContent. Π§Π°ΡΡΡ 1FavouriteContent. Π§Π°ΡΡΡ 2Details ContentSearch ContentΠ€ΠΈΠ½Π°Π»
favorite
0
star
0
