Android профессиональный уровень (Kotlin)

event_note Разделов - 15

access_time 72 ак.ч.

art_track Лекций - 138

ondemand_video 24 ч 08 мин

credit_card Стоимость -  6 990 ₽ [[priceDiscountCalc(6990)]] ₽ 6 990 ₽

Описание

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

Здесь мы изучим все, что нужно, чтобы пройти собеседование по части Андроид на должность Junior разработчика в большинстве компаний.

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

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

Дальше вас ждет много разделов, в которых мы будем изучать что-то новое, либо более глубоко разбираться в уже знакомых темах.

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

Мы подробно разберем работу RecyclerView, научимся оптимизировать его работу, добавлять анимации, научимся работать с фрагментами, поработаем с библиотекой Android Jetpack – ViewBinding, DataBinding, Navigation и WorkManager, изучим корутины, инъекцию зависимостей через даггер, рассмотрим основные компоненты Андроид – сервисы, бродкаст ресиверы и контент провайдеры. И многое другое

Как и в предыдущих моих курсах теории здесь будет мало, в основном практика, поэтому обязательно выполняйте все задания, чтобы материал был усвоен хорошо и вы без проблем смогли пройти собеседование на должность джуниор разработчика.

Для кого этот курс:

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

Желаю вам успехов в обучении и до встречи на страницах курса!


 

star [[ parseFloat(course.review_score).toFixed(1) ]] group
[[ course.name ]]
[[ course.price_discount ]] ₽ [[course.price]] ₽ [[ course.price ]] ₽ Бесплатно
1. Подготовка к работе

1. Введение в GIT

2. Установка GIT и работа по GIT Flow

3. Работа с незнакомым проектом

4. Работа с debugger-ом

2. Введение в Clean Architecture

1. Обзор разрабатываемого приложения ShoppingList

2. Краткий обзор Clean Architecture

3. Domain-слой. Часть 1

4. Domain-слой. Часть 2

5. Data-слой. Часть 3

6. Presentation-слой. Часть 1. ViewModel

7. Presentation-слой. Часть 2. Автообновление списка

3. RecyclerView

1. Макеты для ShoppingList

2. Реализация списков через LinearLayout

3. Зачем нужен ViewHolder

4. Баги при использовании RecyclerView

5. ViewType и RecycledViewPool

6. Добавление слушателей

7. Реализация через DiffUtil и простой адаптер

8. Реализация через ListAdapter

9. Собеседование по RecyclerView

4. Работа над вторым экраном приложения

1. Макеты для ShopItemActivity

2. Создание ShopItemViewModel

3. Завершение работы над ShopItemViewModel

4. Фабричные методы newIntent

5. Завершение работы над ShopItemActivity

5. Фрагменты

1. Зачем нужны фрагменты

2. Установка фрагмента на экране ShopItemActivity

3. Параметры во фрагменте и LifecycleOwner

4. Методы require и get, работа с FragmentManager

5. Правильная передача параметров во фрагмент

6. Работа с бэкстэком, методы add и replace

7. Взаимодействие Activity с фрагментом

8. Жизненный цикл фрагментов

9. Собеседование по теме "Фрагменты"

6. Android Jetpack

1. Обзор приложения Состав числа

2. Проектирование Domain-слоя

3. Реализация Domain-слоя

4. Реализация Data-слоя

5. Ресурсы для приложения

6. View Binding

7. Навигация через FragmentManager

8. Parcelable vs Serializable

9. Реализация GameViewModel

10. ViewModelFactory

11. Jetpack Navigation. Часть 1. Создание графа

12. Jetpack Navigation. Часть 2. Реализация навигации

13. Jetpack Navigation. Часть 3. SafeArgs

14. Data Binding. Введение

15. Binding Adapters

16. Data Binding observe ViewModel

17. Использование Data Binding внутри адаптера RecyclerView

18. Решение дз. Интеграция Data Binding в приложение ShoppingList

7. Введение в Корутины

1. Асинхронное программирование с callback

2. Handler и Looper

3. Проблемы при стандартном подходе к асинхронному программированию

4. Введение в Kotlin Coroutines. Suspend функции

5. Корутины "под капотом"

6. Mappers

7. MediatorLiveData и Transformations.map

8. MediatorLiveData и Transformations.map

9. App Inpection и autoGenerate

10. Coroutine Scope и Dispatchers

11. ViewModelScope

8. Работа в фоне. Сервисы в WorkManager

1. Services. Создание первого сервиса

2. Перезапуск сервисов

3. Работа с уведомлениями. NotificationManager

4. Foreground Service

5. Остановка сервисов

6. Intent Service

7. JobService. Создание сервиса

8. JobScheduler. Запуск сервиса

9. JobScheduler. Метод enqueue

10. Комбинирование JobScheduler и IntentService

11. JobIntentService

12. WorkManager

13. Debug приложений с WorkManager-ом

14. Собеседование по теме сервисов

9. Практическая работа по пройденному материалу

1. Обзор приложения, над которым будем работать

2. Создаем Domain-слой

3. Работа с data-слоем

4. Обновление зависимостей

5. Доработка data и domain слоев, подключение к presentation

6. Работа с presentation-слоем. Переход на ViewBinding

7. Оптимизация адаптера RecyclerView. ListAdapter

8. Переход на фрагменты

9. Фоновая загрузка данных. WorkManager

10. Dependency injection. Dagger 2

1. DI. Что такое инъекция зависимостей

2. DI. Инъекция в поля класса

3. Dagger. Аннотации Component и Inject

4. Module и Provides

5. Обзор архитектуры второго примера

6. Binds. Связываем интерфейс и реализацию

7. Component Builder. Передача параметров в модуль

8. Factory, Singleton

9. Custom Scopes

10. Inject ViewModel

11. Provider

12. ViewModelKey

13. Subcomponents

14. Qualifiers

15. Dependency Injection в приложении с криптовалютами

16. Передача параметров в конструктор Worker

17. Dependency Injection into WorkerFactory (Single Worker)

18. Dependency Injection. Multiple Workers

19. Dependency Injection. Shopping List

20. Создание и регистрация ресиверов

21. Обработка нескольких сообщений и регистрация в манифесте

22. Создание собственного ресивера

23. Передача параметров в бродкаст-сообщениях

24. LocalBroadcastManager

11. Content Providers

1. Создание провайдера

2. UriMatcher

3. Загрузка данных из бд. Cursor

4. Вставка данных. Класс ContentValues

5. Удаление данных. Selection и SelectionArgs

6. Получение списка контактов. Проверка разрешений

7. Получение данных в другом приложении

8. Получение разрешения от пользователя

9. Краткое повторение пройденного материала

12. Корутины - углубленное изучение

1. Job and Coroutine Builders

2. Async and Deferred

3. Создание приложения Factorial

4. Stateful ViewModel

5. Sealed Classes

6. WithContext and SuspendCoroutine

7. CoroutineScope and CoroutineContext

8. Structured Concurrency

9. Exception Handling

10. Cancelling Coroutines

13. Solid

1. Dependency Inversion

2. Interface Segregation

3. Liskov Substitution

4. Open Closed Principle

14. Закрываем пробелы

1. Прогресс внутри уведомления

2. Bound Services

3. Alarm Manager

15. Финал

1. Собеседование на Junior Android Developer

2. Что делать дальше?

Добавить отзыв

Отзывы могут оставлять только те пользователи, которые получили сертификат.

[[ formattedAverageScore ]] star
[[ myReview.owner.last_name ]] [[ myReview.owner.first_name ]]
[[ moment(new Date(myReview.created_at)).format('DD.MM.YYYY в HH:mm') ]]
[[ myReview.text ]]
star star_border
edit delete check_circle watch_later cancel
Причины отклонения в "Условия использования" п. 11.3
Команда: [[ moment(new Date(comment.created_at)).format('DD.MM.YYYY в HH:mm') ]]
[[ comment.text ]]
На данный момент нет отзывов.
[[ review.owner.last_name ]] [[ review.owner.first_name ]]
[[ moment(new Date(review.created_at)).format('DD.MM.YYYY в HH:mm') ]]
[[ review.text ]]
star star_border
Команда: [[ moment(new Date(comment.created_at)).format('DD.MM.YYYY в HH:mm') ]]
[[ comment.text ]]
Загрузить еще