Курс Android разработчик – профессиональный уровень (Kotlin)

5Premium-PLUS

Здесь вы изучите всё что нужно, чтобы пройти собеседование по части Андроид на должность Junior разработчика в большинстве компаний.
Научитесь писать код профессионально так, как это принято в сообществе разработчиков.
Пройдёте процесс подготовки, где научитесь работать как на реальной работе.
Сможете самостоятельно искать решения и смело браться за проекты, где уже написано много кода!

Начать обучение Регистрация

О курсе - Чему Вы научитесь?

Курс Android разработчик предназначен для тех, кто уже изучил основы Андроид разработки и умеет писать код на Котлине.

В отличие от курсов для начинающих, здесь будем писать код не по принципу “абы как написать, лишь бы работало”, а чтобы код был легко читаемый и расширяемый, так как это принято делать в крупных проектах с использованием принципов чистой архитектуры. Т.е. будем писать код так, как это принято в сообществе разработчиков.

Чему вы научитесь

Перед тем, как приступить непосредственно к изучению Андроид разработки, вы пройдёте процесс подготовки, где научитесь работать как на реальной работе. Это нужно, чтобы вы представляли, что вас ждёт после устройства на работу, могли самостоятельно решать возникающие проблемы и не боялись браться за проекты, в которых уже написано много кода.

Подготовка перед изучением Android-разработки включает:
  • Узнаете, что такое Git Flow
  • Научитесь пользоваться дебаггером, чтобы вы могли без проблем находить проблемы в своем или чужом коде
  • Разберётесь, как работать с незнакомым проектом, который писали другие разработчики
Дальше вас ждет много разделов, в которых мы будем изучать что-то новое, либо более глубоко разбираться в уже знакомых темах.

В курсе Android изучим такие основные темы:
  • Clean Architecture
  • RecyclerView: подробный разбор, научимся оптимизировать его работу, добавлять анимации
  • Фрагменты: научимся работать с ними
  • Kotlin coroutines: изучим корутины
  • Dagger: изучим инъекцию зависимостей через даггер
  • Библиотека Android Jetpack: View Binding, Data Binding, Navigation, Work Manager
  • Services: сервисы
  • Content Providers: контент провайдеры
  • Broadcast Receivers: бродкаст ресиверы
  • И многое другое...
Теории здесь будет немного (но достаточно), в основном практика. Весь исходный код (для сверки) также размещён под видео-уроками.

Рекомендации по прохождению обучения по курсу:
  • Пишите весь код самостоятельно. Создайте свой проект, разместите на GitHub (как это сделать вы узнаете из курса) и коммитите туда все изменения.
  • Обязательно выполняйте все задания, чтобы материал был усвоен хорошо.
В этом случае вы без проблем сможете пройти собеседование на должность Джуниор разработчика (Junior developer).

Изучайте Android + Kotlin разработку на профессиональном уровне - присоединяйтесь к обучению на курсе!


Для кого этот курс
  • Начинающие Android разработчики со знанием Kotlin, которые хотят углубить свои знания и подготовиться к собеседованию на должность Junior Android Developer

Требования для прохождения курса
  • Знание основ Android-разработки
  • Знание Kotlin на базовом уровне
Для получения базовых знаний рекомендуем пройти наши курсы для начинающих:
Полный курс Android + Java для начинающих
Kotlin - Быстрый старт!
ВСЕ КУРСЫ - Языки программирования

Начать обучение

План курса

Программа обучения включает видео уроки по изучению разработки на языке Kotlin под Android на практических проектах. Благодаря заданиям, Вы сможете эффективно освоить и закрепить полученные знания по каждой теме курса и полностью подготовиться к прохождению собеседования на должность Junior Android Developer в большинстве компаний.

развернуть все

свернуть все

Введение - О курсе Android разработчик – профессиональный уровень (Kotlin)
2. Введение в Clean Architecture
  • 2.1 Обзор разрабатываемого приложения ShoppingList03:31
  • 2.2 Краткий обзор Clean Architecture06:50
  • 2.3 Domain-слой. Часть 113:44
  • 2.4 Domain-слой. Часть 205:42
  • 2.5 Data-слой13:04
  • 2.6 Presentation-слой. Часть 1. ViewModel16:47
  • 2.7 Presentation-слой. Часть 2. Автообновление списка10:14
3. RecyclerView
  • 3.1 Макеты для ShoppingList05:28
  • 3.2 Реализация списков через LinearLayout15:49
  • 3.3 Зачем нужен ViewHolder13:49
  • 3.4 Баги при использовании RecyclerView18:17
  • 3.5 ViewType и RecycledViewPool22:06
  • 3.6 Добавление слушателей16:26
  • 3.7 Проблемы при использовании notifyDataSetChanged06:25
  • 3.8 Реализация через DiffUtil и простой адаптер14:30
  • 3.9 Реализация через ListAdapter10:55
  • 3.10 Собеседование по RecyclerView05:05
4. Работа над вторым экраном приложения
  • 4.1 Макеты для ShopItemActivity11:39
  • 4.2 Создание ShopItemViewModel14:36
  • 4.3 Завершение работы над ShopItemViewModel17:10
  • 4.4 Фабричные методы newIntent13:58
  • 4.5 Завершение работы над ShopItemActivity22:32
5. Фрагменты
  • 5.1 Зачем нужны фрагменты03:52
  • 5.2 Установка фрагмента на экране ShopItemActivity08:26
  • 5.3 Параметры во фрагменте и LifecycleOwner14:36
  • 5.4 Методы require и get, работа с FragmentManager12:30
  • 5.5 Правильная передача параметров во фрагмент14:51
  • 5.6 Работа с бэкстэком, методы add и replace26:55
  • 5.7 Взаимодействие Activity с фрагментом14:53
  • 5.8 Жизненный цикл фрагментов05:49
  • 5.9 Собеседование по теме "Фрагменты"06:23
6. Android Jetpack
  • 6.1 Обзор приложения Состав числа02:51
  • 6.2 Проектирование Domain-слоя04:14
  • 6.3 Реализация Domain-слоя16:27
  • 6.4 Реализация Data-слоя13:13
  • 6.5 Ресурсы для приложения06:22
  • 6.6 View Binding12:26
  • 6.7 Навигация через FragmentManager24:26
  • 6.8 Parcelable vs Serializable09:03
  • 6.9 Реализация GameViewModel27:19
  • 6.10 Реализация GameFragment19:19
  • 6.11 ViewModelFactory11:37
  • 6.12 Jetpack Navigation. Часть 1. Создание графа05:23
  • 6.13 Jetpack Navigation. Часть 2. Реализация навигации09:15
  • 6.14 Jetpack Navigation. Часть 3. SafeArgs11:26
  • 6.15 Data Binding. Введение08:58
  • 6.16 Binding Adapters12:45
  • 6.17 Data Binding observe ViewModel17:10
  • 6.18 Использование Data Binding внутри адаптера RecyclerView12:39
  • 6.19 Решение ДЗ. Интеграция Data Binding в приложение ShoppingList15:01
7. Введение в корутины
  • 7.1 Асинхронное программирование с callback11:02
  • 7.2 Handler и Looper14:12
  • 7.3 Проблемы при стандартном подходе к асинхронному программированию06:04
  • 7.4 Введение в Kotlin Coroutines. Suspend функции09:18
  • 7.5 Корутины "под капотом"13:42
  • 7.6 Создание базы данных для приложения Shopping List14:46
  • 7.7 Mappers07:41
  • 7.8 MediatorLiveData и Transformations.map06:55
  • 7.9 App Inpection и autoGenerate06:28
  • 7.10 Coroutine Scope и Dispatchers09:09
  • 7.11 ViewModelScope06:15
8. Работа в фоне. Сервисы и WorkManager
  • 8.1 Services. Создание первого сервиса12:27
  • 8.2 Перезапуск сервисов07:13
  • 8.3 Работа с уведомлениями. NotificationManager12:27
  • 8.4 Foreground Service09:04
  • 8.5 Остановка сервисов03:13
  • 8.6 Intent Service08:24
  • 8.7 JobService. Создание сервиса07:35
  • 8.8 JobScheduler. Запуск сервиса07:59
  • 8.9 JobScheduler. Метод enqueue18:18
  • 8.10 Комбинирование JobScheduler и IntentService05:53
  • 8.11 JobIntentService08:32
  • 8.12 WorkManager16:40
  • 8.13 Debug приложений с WorkManager04:39
  • 8.14 Собеседование по теме сервисов06:30
9. Практическая работа по пройденному материалу
  • 9.1 Обзор приложения, над которым будем работать08:54
  • 9.2 Создаем Domain-слой09:04
  • 9.3 Работа с data-слоем25:34
  • 9.4 Обновление зависимостей04:15
  • 9.5 Доработка data и domain слоев, подключение к presentation09:57
  • 9.6 Работа с presentation-слоем. Переход на ViewBinding14:18
  • 9.7 Оптимизация адаптера RecyclerView. ListAdapter05:05
  • 9.8 Переход на фрагменты12:50
  • 9.9 Фоновая загрузка данных. WorkManager07:33
10. Dependency Injection. Dagger 2
  • 10.1 Что такое инъекция зависимостей? Инъекция в конструктор08:38
  • 10.2 Инъекция в поля класса07:31
  • 10.3 Dagger. Аннотации Component и Inject18:44
  • 10.4 Module и Provides12:29
  • 10.5 Обзор архитектуры второго примера05:50
  • 10.6 Binds. Связываем интерфейс и реализацию16:09
  • 10.7 Component Builder. Передача параметров в модуль11:05
  • 10.8 Custom Builder, BindsInstance11:25
  • 10.9 Factory, Singleton19:28
  • 10.10 Custom Scopes06:22
  • 10.11 Inject ViewModel14:26
  • 10.12 Provider06:47
  • 10.13 ViewModelKey07:51
  • 10.14 Subcomponents12:00
  • 10.15 Qualifiers08:53
  • 10.16 Dependency Injection в приложении с криптовалютами18:21
  • 10.17 Передача параметров в конструктор Worker10:26
  • 10.18 Dependency Injection into WorkerFactory (Single Worker)05:27
  • 10.19 Dependency Injection. Multiple Workers16:59
  • 10.20 Dependency Injection. Shopping List16:27
11. Broadcast Receivers
  • 11.1 Создание и регистрация ресиверов09:17
  • 11.2 Обработка нескольких сообщений и регистрация в манифесте09:17
  • 11.3 Создание собственного ресивера07:19
  • 11.4 Передача параметров в бродкаст-сообщениях10:18
  • 11.5 LocalBroadcastManager07:51
12. Content Providers
  • 12.1 Создание провайдера12:27
  • 12.2 UriMatcher12:30
  • 12.3 Загрузка данных из БД. Cursor20:12
  • 12.4 Вставка данных. Класс ContentValues12:07
  • 12.5 Удаление данных. Selection и SelectionArgs10:59
  • 12.6 Получение данных в другом приложении04:41
  • 12.7 Получение списка контактов. Проверка разрешений10:27
  • 12.8 Получение разрешения от пользователя11:26
  • 12.9 Краткое повторение пройденного материала06:17
13. Корутины - углубленное изучение
  • 13.1 Job and Coroutine Builders11:06
  • 13.2 Async and Deferred09:29
  • 13.3 Создание приложения Factorial12:20
  • 13.4 Stateful ViewModel09:01
  • 13.5 Sealed Classes12:37
  • 13.6 WithContext and SuspendCoroutine15:29
  • 13.7 CoroutineScope and CoroutineContext09:29
  • 13.8 Structured Concurrency12:52
  • 13.9 Exception Handling07:34
  • 13.10 Async vs launch09:50
  • 13.11 Cancelling Coroutines08:54
14. Solid
  • 14.1 Dependency Inversion04:30
  • 14.2 Interface Segregation04:27
  • 14.3 Liskov Substitution10:23
  • 14.4 Open Closed Principle10:32
15. Закрываем пробелы
  • 15.1 Прогресс внутри уведомления08:12
  • 15.2 Bound Services15:04
  • 15.3 Alarm Manager14:55
16. Финал
  • 16.1 Собеседование на Junior Android Developer31:57
  • 16.2 Что делать дальше?01:29
Завершение курса - Получение Сертификата

Начать обучение

Студенты также изучают

online_course
new
5
  • 98 видео
  • 25 часов
online_course
new
5
  • 29 видео
  • 6 часов
online_course
new
4.9
  • 48 видео
  • 9 часов
online_course
new
5
  • 79 видео
  • 14 часов

Отзывы студентов о курсе

Мы собрали отзывы учеников, прошедших онлайн курс. Оставьте свой отзыв после прохождения курса Android разработчик – профессиональный уровень (Kotlin).

Дмитрий Слонов

Отличный практический курс, с крепкой теорией по всем нужным темам. Не хватает только блока по Flow. В курсе понравилось больше всего краткость и минимизация воды. Автор отлично объясняет сложные вещи. Рекомендую каждому android разработчику данный курс как комплексный.

student_Q6vCiZli

Отличный курс! Автору отдельное спасибо. Все четко, по полочкам.

Александр Ефремов

Крутой курс, который позволил разобраться со скопившейся многолетней кашей в голове. Спасибо большое =)

Павел Цынкевич

Пушка-бомба! GeekBains у меня отнял год программирования, а тут все по полочкам, спасибо!

Начать обучение

Преподаватель

Course Author
Андрей Сумин

О преподавателе курса

  • Android Middle Developer

"Мой путь в программирование не был прямым и простым, и даже немного тернистым. Свою карьеру я начал сразу после школы в магазине электроинструментов, через 3 года стал начальником отдела, но понимал, что не хочу заниматься этим делом, а уйти куда-то я не мог, так как не имел никакой специальности. В школе мне очень нравилась информатика и меня посетили мысли об изучении программирования.

Поступил в Санкт-Петербургский государственный университет (СПб ГУТ им. Бонч-Бруевича). В нем преподавались очень поверхностные знания в данной области, плюс сильно устаревшие. И я начал изучать программирование самостоятельно, и заметил одну неприятную вещь - фактически весь современный и лучший материал был на английском языке, так что перед тем как стать специалистом в создании приложений для Андройд мне пришлось выучить новый «человеческий» язык. Пройдя несколько десятков курсов оффлайн и онлайн, проштудировав десятки книг на эту тему я, наконец, смог реализоваться в новой профессии.

Весь процесс занял приличное количество времени – отсюда мое желание помочь таким же людям как я - собрать, обобщить весь материал, структурировать, дополнить теорию практическими упражнениями. Провести вас через весь путь от самого начала до создания ваших первых программ всего лишь за один курс, вместо пары лет. Шаг за шагом вы достигнете поставленной цели.

Желаю вам успеха в освоении новой профессии, и до встречи на страницах курса."