1. interactiveComponents
1.1. TextField
1.1.1. TextFieldDefault.colors()
1.1.2. KeyboardOption
1.1.3. visualTransformation
1.2. RadioButton
1.3. Swift
1.4. CheckBox
1.5. Slider
1.5.1. valueRange
1.5.2. steps
1.6. Buttons
1.6.1. FloatingActionButton
1.6.2. IconButoon
2. Studio
2.1. lifecycle
2.1.1. onCreate
2.1.2. onStart
2.1.3. onResume
2.1.4. onPause
2.1.5. onStop
2.1.6. onDestory
2.2. Manifest
2.2.1. Activity
2.2.1.1. Fragment
2.2.1.1.1. navHostFragment
2.2.1.1.2. navGraph
2.3. gradle
2.3.1. settings
2.3.2. libs
3. Kotlin
3.1. Basics
3.1.1. OOP
3.1.1.1. Classes
3.1.1.1.1. Sealed
3.1.1.1.2. data
3.1.1.2. objects
3.1.2. lambda
3.1.3. Delegated properties
3.1.4. extension func
4. Navigation
4.1. onEvent
4.1.1. intent
4.1.1.1. Parcealbe
4.1.1.2. Primitives
4.1.1.3. Serialize
4.1.1.4. putExtra
4.2. navController
5. Debugging
5.1. Profiling
5.2. threads and variables
5.3. buttons
5.3.1. run
5.3.2. resume
5.3.3. stop
5.3.4. step into
5.3.5. step over
5.3.6. step out
5.4. LayerInspection
6. UI
6.1. AppTheme
6.1.1. CompositionLocalProvider
6.1.1.1. LocalData
6.1.1.1.1. Colors, typography...
6.2. animation
6.2.1. AnimatedVisibility
6.2.1.1. visibility
6.2.1.2. enter
6.2.1.2.1. fadein()
6.2.1.3. exit
6.2.1.3.1. fadeOut()
6.2.2. Animate*AsState
6.2.2.1. targetValue
6.2.2.2. animationSpec
6.2.2.2.1. spring
6.2.2.2.2. tween
6.2.3. Transition
6.2.3.1. EnterTransition
6.2.3.2. ExitTransition
6.2.4. animatable
6.2.4.1. a tool in Jetpack Compose that gives you full control over animation.
6.3. effects
6.3.1. LauchEffect
6.3.1.1. on Coroutine
6.3.2. SideEffect
6.3.2.1. Recomposing
6.3.3. LifecycleEffect
6.3.3.1. all Lifecycles except onDestory()
6.3.4. DisposableEffect
6.3.4.1. onDispose
6.3.4.2. Recomposing 1 time
6.4. ResultAPI
6.4.1. ActivityResultContract
6.4.1.1. StartFromActivity, other subclasses
7. HTTP
7.1. Rest
7.1.1. GET
7.1.1.1. SELECT
7.1.2. POST
7.1.2.1. CREATE
7.1.3. DELETE
7.1.3.1. DELETE
7.1.4. PUT
7.1.4.1. UPDATE
7.2. okhttp
7.3. retrofit
7.4. Interseptors
8. BACKGROUND WORK
8.1. Service
8.1.1. def:
8.1.1.1. might continue running for sometime
8.1.1.2. Service— это компонент Android, предназначенный для выполнения фоновых задач.
8.1.1.3. runs in main thread
8.1.2. types
8.1.2.1. foreground
8.1.2.1.1. — сервисы, которые выполняют важные для пользователя задачи и отображают уведомление в панели уведомлений
8.1.2.2. background
8.1.2.2.1. — сервисы, которые выполняются без прямого уведомления пользователя
8.1.2.3. Bound
8.1.2.3.1. привязан к активити
8.1.3. lifecycle
8.1.3.1. onCreate (init)
8.1.3.2. onStartCommand (logic)
8.1.3.2.1. start_Sticky
8.1.3.2.2. Start_NOT_STICKY
8.1.3.3. onDestroy (cleanUP)
8.1.4. workManager
8.1.4.1. on Foreground
8.1.4.1.1. OneTimeWorkRequest
8.1.4.1.2. periodic
9. MEDIA, NOTIFICATION, SDK INTEGRATION
9.1. GOOGLE MAPS
9.1.1. HOW TO INTEGRATE
9.1.1.1. GOOGLE CLOUD(GET KEY)
9.1.1.1.1. SAVE IN LOCAL.properties
9.1.1.2. ADD TO MANIFEST
9.2. MEDIAPLAYER
9.2.1. EXOPLAYER
9.2.2. MEDIA ITEM
9.2.3. PLAYER
9.2.4. PLAYERVIEW
9.3. NOTIFICATION
9.3.1. INTEGRATION
10. Testing
10.1. type
10.1.1. unit
10.1.1.1. should work on single thread
10.1.2. end-to-end
10.1.3. ui test
10.1.3.1. Espresso
10.1.3.1.1. onView
10.1.3.1.2. perform
10.1.3.1.3. check
10.2. writing test
10.2.1. JUnit
10.2.1.1. @Test
10.2.1.1.1. Setup
10.2.1.1.2. Given
10.2.1.1.3. When
10.2.1.1.4. Then
10.2.1.1.5. TearDown
10.2.2. Assertations
10.2.2.1. assertsEquals
10.2.2.2. assertTrue
10.2.2.3. assertThrows
10.2.3. Mock
10.2.3.1. MockK
10.2.3.2. Mockito
10.2.3.3. Stub
11. Architecture
11.1. Compasable
11.1.1. modifier
11.1.1.1. padding
11.1.1.1.1. safeContentPadding
11.1.1.1.2. navigationPadding
11.1.1.1.3. statusBarsPadding
11.1.1.2. width
11.1.1.3. fillMaxSize
11.1.1.4. height
11.1.1.5. Scroll
11.1.1.5.1. verticalScroll
11.1.1.5.2. horizontalScroll
11.1.1.6. clip
11.1.1.7. wrapContentHeight
11.1.1.8. background()
11.1.1.9. imePadding()
11.1.2. place
11.1.2.1. horizontalArrangment
11.1.2.2. verticalAlignment
11.1.3. content
11.1.3.1. column
11.1.3.1.1. LazyColumn
11.1.3.2. row
11.1.3.2.1. LazyRow
11.1.3.3. box
11.1.4. items
11.1.4.1. image
11.1.4.2. icon
11.1.4.3. text
11.1.4.3.1. overflow
11.1.4.3.2. style
11.1.4.3.3. font
11.1.4.3.4. others
11.1.4.4. card
11.1.4.4.1. graphicsLayer
11.1.4.5. items
11.1.4.5.1. repeat
11.2. ViewModel
11.2.1. MVI
11.2.1.1. Event
11.2.1.1.1. Search
11.2.1.1.2. Filter
11.2.1.1.3. so on
11.2.1.2. State
11.2.1.3. viewModel
11.2.1.3.1. dispatch
11.3. Dependency Injection
11.3.1. Definition:
11.3.1.1. Преимущества DI:
11.3.1.1.1. Улучшенная тестируемость
11.3.1.1.2. Уменьшение связности
11.3.1.1.3. Улучшение читаемости и поддержки кода
11.3.1.2. IDependency Injection (DI) — это паттерн проектирования, который позволяет управлять зависимостями между компонентами приложения.
11.3.2. get()
11.3.3. single
11.3.4. factory
11.4. Koin
11.4.1. Фреймворк DI для Kotlin, ориентированный на простоту и лаконичность
11.4.2. in Runtime
11.5. Clean Architecture
11.5.1. entities
11.5.1.1. use cases
11.5.1.1.1. controller, gateway
11.5.2. Layers
11.5.2.1. Domain
11.5.2.1.1. This layer deal with the Business logic part
11.5.2.1.2. It contains Usecase, a Repository interface
11.5.2.2. Data
11.5.2.2.1. Repository
11.5.2.2.2. entity
11.5.2.3. presentation
11.5.2.3.1. ui
11.5.3. levels
11.5.3.1. High
11.5.3.1.1. Entity
11.5.3.1.2. Use case
11.5.3.2. Low
11.5.3.2.1. framework
11.5.3.2.2. controller, gateway
11.5.3.2.3. UI
11.5.3.2.4. Database
11.5.4. storage
11.5.4.1. file
11.5.4.1.1. data
11.5.4.1.2. presentation
11.5.4.1.3. domain
11.5.4.1.4. di
12. Data Warehouses
12.1. Shared Preferances
12.1.1. in XML
12.2. Data Store
12.3. RoomSQLite
12.3.1. DATABASE
12.3.2. Entity
12.3.3. Dao
12.3.3.1. functions
12.3.3.1.1. CRUD
12.3.3.1.2. Relations
12.4. Files in Storage
13. Coroutine
13.1. Suspend fun
13.1.1. dispatcher
13.1.1.1. Main
13.1.1.2. IO
13.1.1.3. Default
13.2. builders
13.2.1. lunch
13.2.2. async
13.2.3. runBlocking
13.3. Scope
13.3.1. Global Scope
13.3.2. ViewModelScope
13.3.3. lifecycleScope
14. XML
14.1. Widgets
14.1.1. TextView
14.1.1.1. text
14.1.1.2. style
14.1.2. ImageView
14.1.2.1. src
14.1.2.2. contentDesctription
14.1.3. Button
14.1.3.1. text
14.1.3.2. background
14.1.4. EditText
14.1.4.1. inputType
14.1.4.2. imeOptions
14.1.4.3. hint
14.1.4.4. singleLine
14.1.4.4.1. True/False
14.2. Layots
14.2.1. FrameLayots=Box
14.2.2. LinearLayout
14.2.2.1. orientation
14.2.2.1.1. vertical
14.2.2.1.2. horizontal
14.3. Structure
14.3.1. wrap_content, match_parent
14.3.1.1. layot_height
14.3.1.2. layot_width
14.3.2. margin
14.3.2.1. внутри
14.3.3. padding
14.3.3.1. снаружи
14.3.4. constraintLayot
14.4. RecyclerView
14.4.1. Adapter
14.4.2. Layot Manager
14.4.3. DifUtill
15. Deeplink
15.1. setting in manifest
15.1.1. <intent-filter> с android.intent.action.VIEW
15.1.2. category
15.1.2.1. Default
15.1.2.2. Browsable
15.1.3. <data android:scheme="https" android:host="myapp.com" android:path="/profile"/>
15.2. Activity task
15.2.1. single top
15.2.1.1. если Activity уже на вершине стека, не создаётся новый экземпляр, а вызывается onNewIntent()
15.2.2. single task
15.2.2.1. в стеке задач может быть только один экземпляр Activity; если он уже есть, все вышележащие уничтожаются
15.2.3. single instance
15.2.3.1. создаётся отдельный стек задач (task) с единственным экземпляром Activity
15.2.4. single per task
15.2.4.1. как singleInstance, но позволяет разным задачам иметь свой экземпляр Activity
15.2.5. standart
15.2.5.1. создаётся новый экземпляр Activity при каждом запуске
15.3. types
15.3.1. App link
15.3.2. WEB link