Содержание курса
1. Введение
1 урок
2 605
2 605
2м
124
Открытый
1.1
Введение
↗
2 605
2 605
2м 12с
124
2. Подготовка к работе
4 урока
8 009
5 740
79м
461
Открытый
2.1
Введение в GIT
↗
2 150
2 150
5м 26с
111
Открытый
2.2
Установка GIT и работа по GIT Flow
↗
2 128
1 268
23м 56с
140
Открытый
2.3
Работа над незнакомым проектом
↗
1 911
1 193
21м 36с
112
Открытый
2.4
Работа с debugger-ом
↗
1 820
1 129
30м 8с
98
3. Введение в Clean Architecture
7 уроков
8 555
7 892
67м
655
Закрытый
3.1
Обзор приложения Shopping List
↗
1 355
1 355
3м 7с
90
Закрытый
3.2
Краткий обзор Clean Architecture
↗
1 289
1 289
6м 26с
86
Закрытый
3.3
Domain-слой. Часть 1
↗
1 259
1 120
13м 25с
106
Закрытый
3.4
Domain-слой. Часть 2
↗
1 196
1 085
5м 22с
90
Закрытый
3.5
Data-слой
↗
1 186
1 059
13м 44с
99
Закрытый
3.6
Presentation-слой. Часть 1. ViewModel
↗
1 161
1 015
16м 28с
96
Закрытый
3.7
Presentation-слой. Часть 2. Автообновление списка
↗
1 109
969
10м 55с
88
4. RecyclerView
10 уроков
10 203
9 096
126м
981
Закрытый
4.1
Макеты для Shopping List
↗
1 159
1 006
5м 8с
79
Закрытый
4.2
Реализация списков через LinearLayout
↗
1 080
943
15м 29с
87
Закрытый
4.3
Зачем нужен ViewHolder
↗
1 059
929
13м 29с
120
Закрытый
4.4
Баги при использовании RecyclerView
↗
1 026
899
18м 58с
112
Закрытый
4.5
ViewType и RecycledViewPool
↗
1 011
887
22м 47с
110
Закрытый
4.6
Добавление слушателей
↗
985
875
16м 7с
85
Закрытый
4.7
Проблемы при использовании notifyDatasetChanged
↗
961
877
6м 5с
74
Закрытый
4.8
Реализация через DiffUtil и простой адаптер
↗
968
851
14м 10с
88
Закрытый
4.9
Реализация через ListAdapter
↗
964
839
11м 36с
91
Закрытый
4.10
Собеседование по RecyclerView
↗
990
990
5м 42с
135
5. Работа над вторым экраном приложения
5 уроков
4 588
3 981
78м
413
Закрытый
5.1
Макеты для ShopItemActivity
↗
965
816
11м 20с
81
Закрытый
5.2
Создание ShopItemViewModel
↗
919
812
14м 17с
76
Закрытый
5.3
Завершение работы над ShopItemViewModel
↗
902
790
17м 50с
85
Закрытый
5.4
Фабричные методы newIntent
↗
908
792
14м 39с
87
Закрытый
5.5
Завершение работы над ShopItemActivity
↗
894
771
22м 12с
84
6. Фрагменты
9 уроков
8 267
7 501
105м
769
Закрытый
6.1
Зачем нужны фрагменты
↗
1 028
1 028
3м 29с
93
Закрытый
6.2
Установка фрагмента на экране ShopItemActivity
↗
981
857
8м 6с
78
Закрытый
6.3
Параметры во фрагменте и LifecycleOwner
↗
941
825
14м 16с
93
Закрытый
6.4
Методы require и get, работа с FragmentManager
↗
913
792
12м 11с
78
Закрытый
6.5
Правильная передача параметров во фрагмент
↗
902
763
15м 32с
84
Закрытый
6.6
Работа с бэкстэком, методы add и replace
↗
879
745
27м 39с
81
Закрытый
6.7
Взаимодействие Activity с фрагментом
↗
878
746
15м 33с
86
Закрытый
6.8
Жизненный цикл фрагментов
↗
871
871
5м 25с
76
Закрытый
6.9
Собеседование по теме Fragments
↗
874
874
6м 0с
100
7. Android Jetpack
19 уроков
15 507
13 317
234м
1333
Закрытый
7.1
Обзор приложения Состав Числа
↗
1 016
1 016
2м 27с
76
Закрытый
7.2
Проектирование Domain-слоя
↗
912
912
4м 50с
79
Закрытый
7.3
Реализация Domain-слоя
↗
880
757
16м 7с
106
Закрытый
7.4
Реализация Data-слоя
↗
849
726
13м 54с
75
Закрытый
7.5
Ресурсы для приложения
↗
834
752
6м 3с
70
Закрытый
7.6
View Binding
↗
870
732
12м 6с
80
Закрытый
7.7
Навигация через FragmentManager
↗
843
713
24м 6с
73
Закрытый
7.8
Parcelable vs Serializable
↗
844
710
9м 43с
75
Закрытый
7.9
Реализация GameViewModel
↗
807
686
27м 59с
73
Закрытый
7.10
Реализация GameFragment
↗
765
674
19м 59с
64
Закрытый
7.11
ViewModelFactory
↗
802
675
11м 18с
70
Закрытый
7.12
Jetpack Navigation. Часть 1. Создание графа
↗
839
712
5м 4с
61
Закрытый
7.13
Jetpack Navigation. Часть 2. Реализация навигации
↗
800
657
9м 55с
69
Закрытый
7.14
Jetpack Navigation. Часть 3. SafeArgs
↗
780
657
11м 6с
72
Закрытый
7.15
Data Binding. Введение
↗
794
636
9м 39с
66
Закрытый
7.16
Binding Adapters
↗
751
610
12м 25с
60
Закрытый
7.17
Data Binding. Observe ViewModel
↗
732
578
17м 50с
61
Закрытый
7.18
Data Binding внутри адаптера RecyclerView
↗
707
561
12м 19с
54
Закрытый
7.19
Решение дз. Интеграция Data Binding в Shopping List
↗
682
553
15м 41с
49
8. Введение в корутины
11 уроков
9 647
8 139
102м
864
Закрытый
8.1
Асинхронное программирование с коллбэками
↗
986
849
11м 44с
84
Закрытый
8.2
Handler и Looper
↗
910
752
14м 52с
95
Закрытый
8.3
Проблемы при стандартном подходе к асинхронному программированию
↗
886
774
6м 44с
75
Закрытый
8.4
Введение в Kotlin Coroutines. Suspend функции
↗
902
774
9м 58с
82
Закрытый
8.5
Корутины "под капотом"
↗
892
775
13м 22с
80
Закрытый
8.6
Создание базы данных для приложения Shopping List
↗
886
747
15м 32с
84
Закрытый
8.7
Mappers
↗
849
717
7м 21с
75
Закрытый
8.8
MediatorLiveData и Transformations.map
↗
829
683
7м 34с
69
Закрытый
8.9
App Inspection и auto generate
↗
819
696
6м 8с
70
Закрытый
8.10
Coroutine Scope и Dispatchers
↗
847
711
9м 48с
73
Закрытый
8.11
ViewModelScope
↗
841
661
6м 54с
77
9. Работа в фоне. Сервисы и WorkManager
14 уроков
10 935
9 511
124м
951
Закрытый
9.1
Services. Создание первого сервиса
↗
901
765
12м 10с
80
Закрытый
9.2
Перезапуск сервисов
↗
816
716
7м 52с
65
Закрытый
9.3
Работа с уведомлениями. NotificationManager
↗
812
697
12м 8с
72
Закрытый
9.4
Foreground Service
↗
807
701
9м 44с
71
Закрытый
9.5
Остановка сервисов
↗
790
674
3м 53с
64
Закрытый
9.6
Intent Service
↗
786
667
8м 4с
66
Закрытый
9.7
JobService. Создание сервиса
↗
784
660
7м 16с
71
Закрытый
9.8
JobScheduler. Запуск сервиса
↗
764
659
8м 39с
70
Закрытый
9.9
JobScheduler. Метод enqueue
↗
749
626
18м 58с
58
Закрытый
9.10
Комбинирование JobScheduler и IntentService
↗
725
608
6м 33с
55
Закрытый
9.11
JobIntentService
↗
721
612
8м 13с
58
Закрытый
9.12
WorkManager
↗
790
636
16м 20с
78
Закрытый
9.13
Debug приложение с WorkManager-ом
↗
730
730
4м 16с
62
Закрытый
9.14
Собеседование по теме сервисов
↗
760
760
6м 7с
81
10. Практическая работа по пройденному материалу
9 уроков
5 994
4 798
94м
447
Закрытый
10.1
Обзор приложения, над которым будем работать
↗
907
660
9м 32с
66
Закрытый
10.2
Создаем Domain-слой
↗
696
582
9м 43с
60
Закрытый
10.3
Работа с Data-слоем
↗
673
528
25м 13с
55
Закрытый
10.4
Обновление зависимостей
↗
614
520
4м 55с
43
Закрытый
10.5
Доработка data и domain слоев. Подключение к presentation
↗
621
511
10м 36с
40
Закрытый
10.6
Работа с presentation-слоем. Переход на View Binding
↗
615
501
14м 57с
42
Закрытый
10.7
Оптимизация адаптера RecyclerView. ListAdapter
↗
606
493
5м 44с
46
Закрытый
10.8
Переход на фрагменты
↗
600
488
12м 30с
44
Закрытый
10.9
Фоновая загрузка данных. WorkManager
↗
662
515
7м 13с
51
11. Dependency Injection. Dagger2
20 уроков
17 392
12 743
229м
1394
Открытый
11.1
Что такое инъекция зависимостей. Инъекция в конструктор
↗
2 757
1 177
8м 16с
91
Открытый
11.2
Инъекция в поля класса
↗
1 336
833
7м 11с
87
Открытый
11.3
Dagger. Аннотации Component и Inject
↗
1 388
823
18м 24с
83
Закрытый
11.4
Module и Provides
↗
796
676
12м 8с
80
Закрытый
11.5
Обзор архитектуры второго примера
↗
776
681
6м 30с
68
Закрытый
11.6
Binds. Связываем интерфейс и реализацию
↗
773
669
16м 49с
86
Закрытый
11.7
Component Builder. Передача параметров в модуль
↗
753
650
11м 44с
64
Закрытый
11.8
Custom Builder, BindsInstance
↗
744
640
11м 5с
79
Закрытый
11.9
Factory, Singleton
↗
742
622
19м 8с
78
Закрытый
11.10
Custom Scopes
↗
725
618
6м 3с
67
Закрытый
11.11
Inject ViewModel
↗
730
603
14м 6с
75
Закрытый
11.12
Provider
↗
701
590
6м 28с
64
Закрытый
11.13
ViewModelKey
↗
699
590
8м 31с
81
Закрытый
11.14
Subcomponents
↗
691
572
12м 40с
64
Закрытый
11.15
Qualifiers
↗
673
539
9м 33с
79
Закрытый
11.16
Dependency Injection в приложении с криптовалютами
↗
680
544
18м 1с
50
Закрытый
11.17
Передача параметров в конструктор Worker
↗
621
486
10м 6с
47
Закрытый
11.18
Dependency Injection into WorkerFactory (Single Worker)
↗
590
475
5м 7с
41
Закрытый
11.19
Dependency Injection. Multiple Workers
↗
584
461
17м 39с
49
Закрытый
11.20
Dependency Injection. Shopping List
↗
633
494
16м 9с
61
12. Broadcast Receivers
5 уроков
3 458
2 741
42м
315
Закрытый
12.1
Создание и регистрация ресиверов
↗
753
594
9м 58с
75
Закрытый
12.2
Обработка нескольких сообщений, регистрация в манифесте
↗
696
570
9м 58с
64
Закрытый
12.3
Создание кастомного ресивера
↗
682
543
7м 0с
56
Закрытый
12.4
Передача параметров в броадкаст-сообщениях
↗
671
523
10м 59с
58
Закрытый
12.5
LocalBroadcastManager
↗
656
511
8м 33с
62
13. Content Providers
9 уроков
5 229
4 226
98м
467
Закрытый
13.1
Создание провайдера
↗
725
531
12м 8с
66
Закрытый
13.2
UriMatcher
↗
617
482
12м 11с
61
Закрытый
13.3
Загрузка данных из бд. Cursor
↗
601
462
20м 53с
62
Закрытый
13.4
Вставка данных. Класс ContentValues
↗
549
444
12м 48с
44
Закрытый
13.5
Удаление данных. Selection и Selection Args
↗
531
435
11м 41с
40
Закрытый
13.6
Получение данных в другом приложении
↗
541
432
4м 22с
47
Закрытый
13.7
Получение списка контактов. Проверка разрешений
↗
552
442
10м 8с
46
Закрытый
13.8
Получение разрешения от пользователя
↗
548
433
11м 7с
47
Закрытый
13.9
Краткое повторение пройденного материала
↗
565
565
6м 54с
54
14. Корутины. Углубленное изучение
11 уроков
7 672
6 141
115м
762
Закрытый
14.1
Job and Coroutine Builders
↗
778
623
11м 47с
67
Закрытый
14.2
Async and Deferred
↗
715
580
9м 10с
73
Закрытый
14.3
Создание приложения Factorial
↗
716
600
12м 2с
66
Закрытый
14.4
Stateful ViewModel
↗
704
562
9м 41с
75
Закрытый
14.5
Sealed Classes
↗
697
551
12м 17с
79
Закрытый
14.6
WithContext and SuspendCoroutine
↗
701
559
15м 9с
70
Закрытый
14.7
CoroutineScope and CoroutineContext
↗
694
545
9м 9с
63
Закрытый
14.8
Structured Concurrency
↗
673
534
13м 32с
72
Закрытый
14.9
Exception Handling
↗
667
540
7м 15с
65
Закрытый
14.10
Async vs Launch
↗
664
519
10м 31с
67
Закрытый
14.11
Cancelling Coroutines
↗
663
528
9м 34с
65
15. Coroutine Flow
16 уроков
12 813
10 291
228м
1260
Закрытый
15.1
Введение в Coroutine Flow
↗
975
765
14м 56с
121
Закрытый
15.2
Flow Builders
↗
886
752
20м 17с
81
Закрытый
15.3
Flow builder and terminal operators
↗
867
703
10м 56с
81
Закрытый
15.4
Операторы жизненного цикла Flow
↗
848
731
11м 19с
79
Закрытый
15.5
Map Flow to LiveData
↗
827
678
9м 23с
83
Закрытый
15.6
AsLiveData часть 2. OnCompletion
↗
802
653
16м 36с
72
Закрытый
15.7
Использование Flow на Ui-слое
↗
807
665
15м 32с
80
Закрытый
15.8
Холодные Flow
↗
811
657
10м 58с
81
Закрытый
15.9
Горячие Flow. MutableSharedFlow
↗
804
639
12м 21с
84
Закрытый
15.10
Практика MutableSharedFlow
↗
773
614
16м 54с
61
Закрытый
15.11
Промежуточные и кастомные операторы
↗
746
594
13м 2с
73
Закрытый
15.12
StateFlow
↗
774
606
18м 27с
63
Закрытый
15.13
Backpressure и buffer
↗
728
581
12м 17с
79
Закрытый
15.14
Буфер в горячих flow
↗
718
567
16м 12с
70
Закрытый
15.15
Операторы ShareIn и StateIn
↗
726
550
21м 40с
73
Закрытый
15.16
Exception Handling
↗
721
536
14м 16с
79
16. SOLID
4 урока
2 596
2 596
28м
225
Закрытый
16.1
Dependency Inversion
↗
706
706
4м 6с
54
Закрытый
16.2
Interface Segregation
↗
636
636
4м 3с
47
Закрытый
16.3
Liskov Substitution
↗
638
638
10м 59с
58
Закрытый
16.4
Open-Closed Principle
↗
616
616
10м 9с
66
17. Закрываем пробелы
4 урока
2 354
1 837
37м
164
Закрытый
17.1
Дополнение по сервисам
↗
615
615
0м 13с
24
Закрытый
17.2
Прогресс внутри уведомления
↗
596
421
8м 53с
44
Закрытый
17.3
Bound Services
↗
572
409
15м 45с
52
Закрытый
17.4
Alarm Manager
↗
571
392
15м 35с
44
18. Финал
3 урока
2 410
1 751
48м
180
Закрытый
18.1
Собеседование на должность Junior Android Developer
↗
886
512
32м 35с
74
Закрытый
18.2
Тест для получения сертификата
↗
628
343
16м 34с
30
Закрытый
18.3
Что делать дальше?
↗
896
896
1м 8с
76