1. compose
1.1. widgets
1.1.1. text, button, Image, Icon
1.2. layouts
1.2.1. column, row, box
1.3. modifier
1.3.1. width, height, padding
1.3.1.1. graphicLayour - use for animation and another action with UI
1.4. LazyColumn
1.4.1. items, itemIndexed
1.4.1.1. can use into row
1.4.2. reuse items in the list
1.5. LazyRow
1.5.1. items, itemIndexed
1.5.1.1. can use into column
1.5.2. reuse items in the list
1.6. use lamda. primitives
1.7. dynamic components(with state)
1.7.1. TextFields
1.7.2. Switch
1.7.3. CheckBox
1.7.4. RadioButton
1.7.5. Slider/RangeSlider
1.8. edgeToEdge
1.8.1. Use safeContentPadding(both navigationPadding and StatusBarPadding) GesturesPadding
1.8.2. сделан для оступов для телефонов с челкой, сгибающихся смартфонов. Это создает проблему с отступами - верстка выходит за границы или не прставлялись отступы. Поэтому следует использовать атрибуты выше в modifier
2. Navigation
2.1. Navigation host
2.2. Nav graph
2.3. Main fragment
2.4. action - переходы на другие фрагменты
2.5. args - аругменты
3. Coroutines
3.1. Context
3.1.1. Dispatcher
3.1.2. Job
3.1.3. CoroutineName
3.1.4. CoroutineException
3.2. launch
3.2.1. return Job
3.3. async
3.3.1. return Deffered
3.4. Scope
3.4.1. ViewModelScope
3.4.2. LifeCycleScope
3.4.3. GlobalScope
3.5. function must be only SUSPEND
4. network
4.1. okhttp
4.1.1. use Result(into has CatchRunning)
4.2. retrofit
4.2.1. interceptor(add auth token, logging)
4.2.2. use @Body YourModel - for POST request, use @Query for adding variable in url, use @Path name: String - for add value
4.3. GET, POST, DELETE, PUT
4.4. for show image use Coil lib and use AsyncAimage widget in compose
5. Animation
5.1. class Animatable use coroutine
5.2. animatedAsState
6. CompositionLocalProvider
6.1. use for change mode(night/light), can use when change local
7. Service
7.1. Foreground
7.1.1. onCreate()
7.1.2. OnDestroy()
7.1.3. onStartCommand()
7.1.4. can work when close app and show notification
7.2. Background
7.2.1. work in when active app working
7.3. Bound
7.3.1. могут прикрепляться другие активити
8. WorkManager
8.1. OnTime
8.2. Periodic
9. DeepLink
9.1. web link app link
9.2. activity only
10. Test
10.1. Unit test
10.1.1. can testing all code where has logic
10.1.1.1. GIVEN
10.1.1.2. WHEN
10.1.1.3. THAN
10.2. Integration test
10.3. end to end test
10.3.1. simulate whole work with backend
11. manifest
11.1. Application
11.1.1. label
11.1.2. icon
11.1.3. theme
11.1.4. supportRTL
11.2. permissions
11.3. activity
11.3.1. intent-filter
11.3.1.1. launcher/main
11.4. service
11.5. brodcastreciever
11.6. content-provider
12. gradle
12.1. gradle app
12.1.1. plugings
12.2. gradle module
12.2.1. toml file
12.2.1.1. dependecies addresses
12.2.1.1.1. divide labrary to version. name. group
13. Intent
13.1. Связывает между собой основные компоненты андроид(activity, services, broadcast-reciever, content-provider)
13.2. Можно открыть другое приложение, веб-сайт
14. Architecture
14.1. MVI
14.1.1. Controller - VIewModel
14.1.1.1. event
14.1.1.2. state
15. save data
15.1. shared preferences
15.1.1. not safety. not fast. not reactivity
15.2. Data STORE
15.2.1. more safable has reactitivity
15.3. ROOM
15.3.1. Entities
15.3.2. Database object
15.3.3. DAO
16. Flow
16.1. cold
16.1.1. for create flow use flow{ }
16.1.2. operators
16.1.2.1. .flatmapLatest
16.1.2.2. .district
16.1.2.3. debounce
16.2. hot
17. Dependency Inversion
17.1. from SOLID princip
17.1.1. In Android use Dependency Injection
17.1.1.1. Koin
17.1.1.1.1. work in Runtime
17.1.1.2. Hilt
17.1.1.2.1. work in before runtime(compile)
17.1.1.3. Dagger2
17.1.1.3.1. work in before runtime(compile)
17.1.1.4. Kodein
17.1.1.5. Toothpick
18. Clean architecture
18.1. In Android
18.1.1. domain
18.1.1.1. entities
18.1.1.2. useCases
18.1.1.3. repository
18.1.2. data
18.1.2.1. repositoryImpl
18.1.2.2. mappers
18.1.2.3. dataSources
18.1.3. presentation
18.1.3.1. UI
19. XML
19.1. Layouts
19.1.1. LinearLayout
19.1.1.1. vertical
19.1.1.2. horizontal
19.1.2. FrameLayout
19.1.2.1. works cover layouts
19.1.3. ConstraintLayout
19.1.3.1. needs 3 points to set
19.2. Widgets
19.2.1. TextField
19.2.2. Button
19.2.3. EditText
19.2.4. ImageView
19.3. RecyclerView
19.3.1. Adapter
19.3.2. LayoutManager
19.3.3. DiffUtils
20. Activity tasks
20.1. Launch mode
20.1.1. standart
20.1.1.1. default
20.1.2. single top
20.1.3. single instance
20.1.4. single instance per task
20.1.5. single task