Android-разработчик [Яндекс-практикум] [Часть 1 из 12]

Огромная база актуальных инфопродуктов
Самый большой склад обучающих материалов в СНГ. Более 40000 уникальных курсов, схем заработка, книг, вебинаров, мануалов, тренингов
Получить доступ

Bot

Администратор
Команда форума
23 Янв 2020
138,639
750
113
Введение в Java
До появления Kotlin приложения под Android писали на Java. Изучите основные конструкции этого языка программирования с помощью теории и тренажёра: научитесь объявлять переменные, функции, свойства, поля и методы, поймете, как работать со строками и циклами, Git и Android Studio, как запускать код.
Закрепите материал на сессии вопросов и ответов с наставником.

Спринт 1
Тема 1. Введение в Java, почему Java на Android
Тема 2.Объявление переменных, операции +-* , int, float, boolean, double
Тема 3. Работа со строками, Nullable и Non-Nullable
Тема 4. Операторы if и switch
Тема 5. Boolean (булева алгебра)
Тема 6. Циклы в Java

Спринт 2
Тема 1. Методы
Тема 2. Конструкторы + создание объектов
Тема 3. Объявление функций, свойств и полей и методов, и методы класса
Тема 4. Работа с Android Studio
Тема 5. Git для самых маленьких
Тема 6. Запуск кода

Java и проектная работа
Продолжим изучать основные конструкции Java с помощью работы над проектом: научитесь использовать итераторы, создавать анонимные классы. Поймёте, что такое интерфейсы и дженерики. Закрепим знания, дописав код приложения для сортировки, просмотра и совершения звонков по всем контактам в телефоне, с учётом привязки к мессенджерам и почте.

Спринт 3
Тема 1. Итераторы в Java + foreach. Массивы
Тема 2. Итераторы в Java + foreach. Списки
Тема 3. Модификаторы доступа. Статика и Final

Спринт 4
Тема 1. Наследование и переопределение
Тема 2. Интерфейсы
Тема 3. Дженерики
Тема 4. Создание анонимных классов и синтаксис Lambda-выражений

Kotlin и проектная работа
В этом модуле мы вы перепишете часть приложения “Контакты”, пронализируете разницу между Java и Kotlin, поработате с фильтрами и списками. Сдадите работу на проверку автотестами и ревьюером.

Спринт 6
Тема 1. Объявление функций, свойств (get/set) и методы класса
Тема 2. Итераторы в Kotlin, foreach + .forEach { }. Массивы
Тема 3. Итераторы в Kotlin, foreach + .forEach { }. Списки
Тема 4. Модификаторы доступа
Тема 5. Наследование и переопределение
Тема 6. Статика и companion object
Тема 7. Интерфейсы
Тема 8. Smart Cast, Nullable и Non-Nullable типы.

Спринт 7
Тема 1. Изменяемые и неизменяемые коллекции
Тема 2. Дженерики
Тема 3. Создание анонимных классов и синтаксис Lambda-выражений
Тема 4. Продвинутый IDE
Тема 5. Продвинутый Git, Git ignore

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

Базовая работа с UI включают в себя принципы вёрстки в XML, основные View элементы и взаимодействие с ними из кода приложения, создание Activity и использование Intent.

Спринт 8
Тема 1. Простой UI — вёрстка. Сверстаете экраны: главный (кнопки Songs Search, Playlists, Favorites, Settings), настройки, со всеми плэйлистами и созданием нового.

Спринт 9
Тема 1. Работа с ресурсами. Поработаете с тем, что получилось до – локализация/переводы, перенос значения отступов (цвета, размеры шрифта), заглушки, иконка приложения. Добавите иконки к кнопкам.

Тема 2. Простой UI код. На экране создания плейлиста обработаете поля ввода (обработаете условие: кнопка “сохранить плейлист” не активна пока все поля пустые). На экране настроек обработаете нажатие на чек-боксы и тогда текст пункта настроек будет меняться в зависимости от выбора. На экране создания плейлиста зададите обложку, используя картинку их ресурсов.

Спринт 10
Тема 1. Базовая навигация. Реализуете переход на существующий экран с существующего экрана, сделаете splash screen. Добавите функцию Send feedback или Contact us. Реализуете навигацию с главного экрана по экранам Settings, Playlists. На экране Settings реализуете фичи Share app, Contact support, Rate us.

Хранение данных
Научитесь работать с хранением данных. Рассмотрите основные способы хранения данных в Android и выполните практические задания на использование SharedPreferences.

Спринт 11
Тема 1. In memory. Реализуете экран создания плейлиста без непосредственно сохранения
Тема 2. SharedPreferences. Добавите сохранение истории поиска, настроек, плейлистов.

Многопоточность и более сложное хранение данных
Познакомитесь с многопоточностью и продолжите работать с хранением данных, на этот раз с файловыми системами. Поймете особенности потоков данных в Android — Thread, Runnable, Handler. Научитесь работать с хранилищами файлов. Разберете проекты для домашнего задания с наставником.

Спринт 12
Тема 1. Многопоточность в Java
Тема 2. Многопоточность в Android. Реализуете debounce.
Тема 3. Файловая система. Добавите возможность изменять обложку для плейлиста и импортировать/экспортировать плейлисты.

Сеть
Познакомитесь и поработаете с HTTP, REST API и Retrofit. Разберете ручной парсинг на сессии лайв-кодинга с наставником.

Спринт 13
Тема 1. HTTP + REST API
Тема 2. Подслой Retrofit

Продвинутый UI
Создадите экран поиска песен на RecyclerView, добавите поддержку тёмной темы в приложении и поработаете с продвинутой навигацией. Освоите ConstraintLayout и научитесь использоваться Fragment на практике.

Спринт 14
Тема 1. Сложный UI - код и вёрстка. Реализуете поиск на RecyclerView, экран с плейлистами (анимации в список). Разберете на сессии лайв-кодинга, как создавать Recycler.

Спринт 15
Тема 1. Сложная работа с ресурсами. Добавите поддержку тёмной темы, экран проигрывателя на ConstraintLayout, разберете все с наставником.

Спринт 16
Тема1. Фрагменты. Переделаете главный экран (навигейшн бар), разберете с наставником, как “жонглировать” фрагментами.

Архитектура
Начнёте разбираться в архитектуре приложений, познакомитесь с концепцией Clean architecture, MVP и отрефакторите проект в MVVM.

Спринт 17
Тема 1. Архитектура введение. Отрефакторите код (перепишете код одного экрана или кусок — дальше пишем правильно и красиво!)

Тема 2. ООП + SOLID
Тема 3. Clean architecture
Тема 4. Описание архитектур

Спринт 18
Тема 1. Рефакторинг и переписывание на MVVM. Перепишете код сквозного проекта на MVVM, напишете ViewModel, используете LiveData.

Продвинутая многопоточность
Поработаете с изображениями (обложками плейлистов и треков) с помощью Coroutines, познакомитесь с RxJava в тренажёре.

Спринт 19
Тема 1. Coroutines. Поработаете с изображением (обложка плейлиста) с помощью Coroutines. Разберете сложные моменты на сесии лайв-кодинга.

Спринт 20. Тема 1. RxJava

Продвинутая работа с сетью
Познакомитесь с системой плагинов и сериализаторами и тем, как их использовать в OkHttp.

Спринт 21
Тема 1. Система плагинов и сериализаторы. Подключите различные сериализаторы, CallAdapters, делегируете парсинг кастомным сериализаторам. Сохраните черновики плейлистов в формате JSON с помощью библиотеки.

Тема 2. OkHttp. Добавите хэдер к запросу и логирование запросов. Узнаете у наставника, как можно делать кастомную сериализацию.

Продвинутое хранение данных
Начнёте работать с SQLite и Room, с помощью которых научите приложение сохранять, удалять и редактировать плейлисты.

Спринт 22
Тема 1. Room. Приложение сможет с вашей помощью сохранять, удалять и редактировать плейлисты, сохранять статистику в базу данных. Реализуете добавление в избранное.

Продвинутая архитектура. Cборка и деплой
Познакомитесь с DI, принципами и библиотеками (Koin), научитесь работать с конфигурацией и зависимостями.

Спринт 23
Тема 1. DI, принципы и библиотеки. Переделаете презентеры на Koin.

Тема 2. Конфигурация и зависимости. Поменяете имя пакета или минимальную поддерживаемую версию Android, отключите поворот экрана в приложении.
Приложение с плейлистами закончено — отрефлексируете вместе с наставником проделанную работу.

Продвинутая архитектура. Cборка и деплой
Познакомитесь с DI, принципами и библиотеками (Koin), научитесь работать с конфигурацией и зависимостями.

Спринт 23
Тема 1. DI, принципы и библиотеки. Переделаете презентеры на Koin.

Тема 2. Конфигурация и зависимости. Поменяете имя пакета или минимальную поддерживаемую версию Android, отключите поворот экрана в приложении.
Приложение с плейлистами закончено — отрефлексируете вместе с наставником проделанную работу.

Продуктовая и командная разработка
Подготовитесь к командной разработке — познакомитесь с жизненным циклом продукта, Agile, инструментами для командной работы (трекеры). Просуммируете знания по декомпозиции задач на воркшопе.

Спринт 24
Тема 1. Жизненный цикл продукта (MVP etc)
Тема 2. Agile
Тема 3. Инструменты ведения командной работы
Тема 4. Мобильная разработка в реальности (как устроены команды, кто есть кто, как со всеми общаться)
Тема 5. Git для гигантов
Тема 6. Декомпозиция задач

Дипломный проект