● Занятия проходят 2 раза в неделю в будни с 18:00 МСК● На лекции и практические задания понадобится 10–12 часов в неделю● Записи вебинаров и митапов, лекции, тесты, тренажёр, презентациии другие полезные материалы хранятся в личном кабинете
Основы Java
Познакомитесь с базой программирования на Java, научитесь создавать свои типы и проектировать программы. При выполнении домашних заданиях напишете несколько консольных приложений, включая приложение наполнения корзины товаров в магазине.
- Введение в программирование на Java
- Структура программы
- Условные операторы и циклы
- Типы данных в Java: примитивы
- Типы данных в Java: объекты
- Массивы одномерные
- Массивы многомерные
- Разбор вопросов по занятиям
Основы объектно-ориентированного программирования в Java
Углубитесь в системы типов и объектно-ориентированное программирование, расширите инструментарий для работы с наборами данных. В домашних заданиях попрактикуетесь писать консольные программы и разрабатывать сложные типы данных, включая программу хранения телефонных контактов.
- Модификаторы доступа, наследование
- Полиморфизм
- Абстракции и интерфейсы
- Исключения, Stacktrace
- Разбор вопросов по занятиям
- Generics в коллекциях и методах
- Коллекции List
- Коллекции HashSet и HashMap
- Коллекции TreeMap и TreeSet
- Коллекции Queue
- Разбор вопросов по занятиям
Курсовой проект — конвертер в текстовую графику
Разработаете приложение для скачивания картинки по URL и конвертирования изображения в текстовую графику — текст из разных символов, которые в масштабе выглядят как изображение.
Git — система контроля версий
Научитесь работать с системой Git и с GitHub, сможете публиковать свои домашние работы и уже в процессе обучения сформируете первое портфолио — работодатели часто просят показать примеры вашего кода именно на сервисе GitHub.
- Знакомство с системой контроля версий Git
- Работа с локальным репозиторием в Git
- Работа с удаленным репозиторием через GitHub
- Командная работа в Git и GitHub. Часть 1
- Командная работа в Git и GitHub. Часть 2
- Вебинар с ответами на вопросы
Основы Kotlin, отличия от Java и интеграция
Познакомитесь с Kotlin — современным языком разработки Android-приложений. Он создан на основе Java, но более прост в работе. Узнаете, как перейти в разработке с Java на Kotlin в одном проекте, о совместимости языков, а также начнёте программировать на Kotlin.На практике начнёте работу над итоговым проектом «Социальная сеть».
- Рабочее окружение: Gradle, Plugins, IntelliJ IDEA
- Отличия от Java: immutability, переменные, типы данных, операторы и приведение типов
- Управляющие конструкции: if, switch, циклы. Работа с отладчиком
Функции, автотесты и объектно-ориентированное программирование на Kotlin
Получите опыт написания Unit-тестов, использования системы Continuous Integration. Перейдёте к особенности объектно-ориентированного программирования (ООП) в Kotlin.
- Функции, автотесты и Continuous Integration
- ООП: объекты и классы
- ООП: композиция, наследование и интерфейсы
Исключения, коллекции и продвинутые концепции Kotlin
Разберёте продвинутые концепции программирования на Kotlin. На практике перейдёте к обработке нестандартных и исключительных ситуаций в вашем проекте.
- Исключения
- Generics и коллекции
- Лямбды, extension-функции, операторы
- Sequences
- Разбор задач
Android Studio. Разработка макетов приложения
Освоите навыки разработки Android-приложений. Познакомитесь с Android Studio, создадите первое мобильное приложение и изучите работу со списками, обработку событий, работу с дизайном, навигацией, Push-уведомлениями.На практике сверстаете макеты постов, страниц профиля, чата и других элементов к вашему проекту.
- Android Studio, SDK, эмулятор и первое приложение
- Ресурсы, View и ViewGroup
- ConstraintLayout
Работа со списками и обработка событий
Разберётесь в обработке событий в Android. На практике вам предстоит решить задачу дебаггинга и автотестирования чужого готового приложения, написать автотесты на своё приложение, создать CRUD — набор функций для работы с базой данных: создание постов, редактирование, просмотр списка, удаление.
- Обработка событий в Android
- Архитектура: MVVM
- Отображение списков: RecyclerView
- CRUD: списки, добавление, удаление, изменение
- Разбор задач
Дизайн и навигация
Поработаете над дизайном приложения. Задачи на практике: • интеграция компонентов Material Design — перевёрстка приложения, работа с готовыми анимации из MD;• создание навигации: экран со списком — просмотр деталей.
- Material Design
- Intents и организация навигации (перемещение между Activity)
- Хранение данных
- Fragments, FragmentManager
SQL, уведомления и Push
Разберётесь в интеграции с серверной части и как работать с Push-уведомлениями. На практике научитесь подключать СУБД SQLite, использовать СУБД в качестве хранилища постов; отображать уведомления и Push-уведомления.
- SQL и SQLite
- Библиотека Room
- Notifications & Pushes
- Разбор задач
Сетевые операции и работа с многопоточностью
Перейдёте к более сложным задачам Android-разработки. Изучите интеграцию с backend, работу с протоколами передачи данных и продвинутые вопросы интеграции с сервером, а также работу с многопоточностью и Coroutines (корутины) — работу с облегченными потоками. Многопоточность — это принцип, при котором несколько блоков программы выполняются параллельно.
- Интеграция с Backend: API, типичные формы интеграции
- Сетевые запросы: Main Thread & Background
- Многопоточность: потоки, проблемы общих данных
- Примитивы синхронизации и специализированные структуры данных
- Современные подходы работы с многопоточностью
- Многопоточность в Android
- Retrofit (CRUD)
- Разбор задач
Coroutines. Интеграция с серверной частью
Поработаете с многопоточностью и интеграцией с серверной частью на продвинутом уровне. На практике освоите Coroutines — современные подходы для работы с многопоточностью. Научитесь загружать и отображать изображения к постам, аватарки с использованием библиотеки Glide и загрузкой изображений на backend. Добавите в приложение регистрацию, аутентификацию и восстановление пароля. Научитесь принимать Push-уведомления. Изучите фоновые сервисы: как подгружать данные даже при неактивном приложении.
- Coroutines: легковесные потоки, Thread Pools & Dispatchers
- Coroutines: Scop, Cancellation, Supervision
- Coroutines в Android
- Flow
- Загрузка и отображение изображений
- Регистрация, аутентификация и авторизация
- Рассылка и приём Push-уведомлений
- Разбор задач
Архитектура приложения
На практике выстроите архитектуру приложения: выделите слои, разобьёте приложение по слоям. Используете Dagger: добавите в проект Dependency Injection.
- Dependency Injection
- Architecture Components. Часть 1
- Architecture Components. Часть 2
- RecyclerView — продвинутое использование
Анимации и создание собственных View
Поработаете с анимациями в приложении. На практике создадите в проекте собственные View: статистику по социальным активностям «кто самый крутой автор» в формате прогрессов, диаграмм. Создадите также движущиеся прогрессы, круговые диаграммы с помощью добавления анимации, в том числе в собственные View.
- Custom Views - разработка собственных элементов интерфейса
- Animations — создание анимаций. Часть 1
- Animations — создание анимаций. Часть 2
Работа с мультимедиа и геолокацией. Google Play сервисы Firebase
Изучите интеграцию с геосервисами, работу с мультимедиа и возможности бесплатных сервисов Firebase от Google для реализации искусственного интеллекта. На практике освоите новые фишки: посты «я тут был» с геолокацией и отметкой на картах Yandex Maps & Google maps, а также загрузку аудио/видео с камеры и их воспроизведение. Опубликуете приложение в Google Play: вручную и через Continuous Integration.
- Карты и геопозиционирование: Yandex Maps & Google Maps
- Работа с мультимедиа
- Публикация приложения в Google Play и работа с Google Play Console
- Обзор сервисов Firebase
- Разбор задач
Карьера в Android-разработке
Научитесь формулировать карьерные цели, создавать резюме, собирать портфолио и готовиться к собеседованиям. Создадите пошаговый план поиска работы, запишите видеопрезентацию и пройдете карьерную консультацию с HR-экспертом.
- Пошаговый план поиска работы
- Анализ рынка труда
- Резюме, портфолио android-разработчика и сопроводительное письмо
- Собеседование: как подготовиться и пройти
- Статистика и измерение эффективности поиска работы
- Индивидуальная карьерная консультация