Android-разработчик

на Отзовике, IRecommend и TutorTop
Регулярно обновляем программу, чтобы вы проходили только актуальное
Составили её по реальным задачам, которые решают в Android-разработке. Есть базовый и расширенный форматы — со вторым вы быстрее вырастете до уровня middle.
1 модуль — бесплатно, чтобы вы почувствовали себя в роли Android-разработчика и поняли, хотите ли развиваться в этом направлении. А после бесплатной части выберете подходящий формат курса: базовый или расширенный.
Что делают Android-разработчики, главные языки и инструменты
Что такое IDE, установка и настройка, запуск и гайд по проекту
Переменные в Java, объявление переменных, типы данных в Java, операции с примитивными типами
Ссылочные типы данных, строковые переменные, конкатенация и строковые шаблоны
Что такое методы, как объявлять и вызывать метод, как возвращать значение из метода, особенности оператора return, параметры, аргументы и сигнатура методов, метод main
Найдёте ошибки, допишете код и запустите приложение «Конвертер валют»
Появление Java в мобильной разработке, что входит в инфраструктуру Java, как связаны Android и Java
Ссылочные типы данных, строковые переменные, конкатенация и строковые шаблоны
Условия, операторы сравнения, операторы if и switch
В каких случаях понадобятся сложные выражения, типы логических выражений, логические союзы
Цикл for, основы, движение в обратном направлении и изменение шага, цикл while, бесконечный цикл, вложенные циклы
Вспомните методы, напишете свой калькулятор, научитесь декомпозировать задачи
Что такое объекты, зачем нужны классы, конструкторы, области видимости и ключевое слово this, механизм сборки «мусора»
Узнаете про контроль версий, GitHub, commit и fork, как скачать репозиторий, создавать ветки и работать в Git командой, создадите первый Pull Request
Как запустить код на эмуляторе и реальном устройстве, какие ошибки возможны при запуске
Как работать с массивами, для чего нужна структура данных ArrayList, что делает ассоциативный массив Map, в чём идея множества Set, роль инструмента Iterator и цикла forEach
Научитесь работать со строками, циклами и главными инструментами Android-разработки — Android Studio и Git
Что такое модификаторы доступа, зачем они нужны. Модификатор Static, как его применять к другим методам.
Погрузитесь в объектно ориентированное программирование (ООП). Узнаете, для чего нужны наследования и конструкторы, что такое полиморфизм, ключевые слова final и abstract, объект и object.
Узнаете, что такое интерфейсы и какие проблемы они решают.
Иерархия вложенных классов, создание анонимных классов, лямбда-выражения.
Синтаксический сахар, создание и наследование дженерик-классов, дженерик-методы и конструкторы, ограничения и wildcard.
Допишете код приложения «Контакты», чтобы сортировать, просматривать и звонить по всем номерам в телефоне с учётом привязки к мессенджерам и почте
От Java к Kotlin. Для чего создавали Kotlin и чем интересен его код.
Типы данных и переменные, приведение типов, операции с простыми типами.
Операторы в Kotlin, условные операторы в Java и Kotlin (if и when).
Циклы for и while в Kotlin. Чем они отличаются от циклов Java.
Классы и методы в Kotlin, их свойства, блок init, дефолтные и именованные параметры. Как использовать nullable‑типы, паттерн Singleton и объявление объекта, анонимные и enum‑классы.
Изучите основные конструкции языка программирования Kotlin в теории и на практике
Наследование и система типов в Kotlin. Изолированные классы и интерфейсы.
Массивы и коллекции в Kotlin. Функции kotlin.collections.
Функции высшего порядка, расширения и мультидекларации.
Android Debug Bridge (ADB), Android Debugger. Логирование.
Командная строка. Устройство хранилища Git, создание коммита в Git, манипулирование коммитами и роль gitignore-файла, удалённый репозиторий Git.
Перепишете часть приложения «Контакты», увидите разницу между Kotlin и Java, поработаете с фильтрами и списками
Познакомитесь с инструментом вёрстки Figma и языком разметки XML. Сверстаете первый экран. Изучите структуру и синтаксис ресурсных файлов.
Изображения в приложениях, величина DPI: от чего она зависит и как влияет на качество картинок на экране. Типы масштабирования.
Навигация приложения, компонент Activity для взаимодействия пользователя с приложением, жизненный цикл Activity lifecycle, роль и типы класса Intent.
Что такое стили и для чего нужны. Синтаксис стилей, эффективное использование стилей, сторонние шрифты. Чем тема отличается от стиля, как она устроена и как её настроить.
Место Context в Android-разработке, типы Context при создании приложения. Узнаете, как пользоваться API Context, Intent Filters и передавать данные с помощью Intent.
EditText в тестовом приложении Prime Number, методы и атрибуты EditText, инструменты Android SDK для работы с вводимым текстом, в чём помогает TextWatcher.
Данные в жизни приложения и их хранение на практике.
В приложении Playlist Maker сверстаете главный экран, экраны настроек и поиска, добавите новые шрифты и кнопки, адаптируете интерфейс под ночной режим
Что такое класс RecyclerView, как его создать, без каких вспомогательных классов не работает RecyclerView. LayoutManager и его базовые типы.
Что такое класс ViewHolder, почему он появился, когда и зачем использовать его основные методы.
Adapter как целое и часть RecyclerView. Собираем RecyclerView. Особенности работы с Adapter.
Что такое библиотеки и для чего они нужны, подключение библиотек к проекту. Библиотека Glide, загрузка изображений из интернета в ImageView.
Создадите первый список в приложении Playlist Maker, начнёте знакомиться с библиотеками
Выход в сеть. Кто разрабатывает сервер и как он работает. REST API.
Путь данных от клиента на сервер, их трансформация. Типы запросов, формат данных и сетевые ошибки. TCP/IP, HTTP, URI, JSON.
Популярные аннотации в библиотеках Android и их возможности. Библиотеки Gson и Retrofit.
API и ошибки. Авторизация запросов, практика с API крупного сервиса IMDb.
Оживите экран поиска и добавите выполнение настоящих поисковых запросов в Playlist Maker
Что такое Shared Preferences, что нельзя там хранить. Как обезопасить данные.
Сохранение объектов. Шаблон Observer, подписка на изменения, Jetpack и DataStore.
Научите приложение Playlist Maker сохранять историю поиска
Влияние LinearLayout на вложенность, проблема вложенных весов. Атрибуты RelativeLayout: центрирование, относительное расположение, выравнивание относительно родительского контейнера, относительное выравнивание. Комбинирование атрибутов, работа с атрибутами в коде.
Возможные проблемы у RelativeLayout и ConstraintLayout. Их решение.
Создадите экран аудиоплеера в приложении Playlist Maker
Работа кода программы, создание новых потоков, синхронизация. Жизненный цикл потоков.
Главный поток, его классы и циклы. Как менять UI не из главного потока.
Логика debounce и её реализация с использованием Handler. Новый View‑элемент ProgressBar, инструмент MediaPlayer.
Сделаете удобнее поиск в приложении Playlist Maker, добавите ProgressBar в светлой и тёмной теме, время и воспроизведение отрывка на экране аудиоплеера
Понятие «чистой архитектуры» и её применение в Android.
Сделаете рефакторинг кода, поменяете MVC на MVP. Узнаете, что такое MVP с единым State, какие бывают проблемы MVP и что из себя представляет библиотека Moxy.
Особенности шаблона MVVM. Создание ViewModel. Класс LiveData, разметка с ViewBinding.
Осуществите переход с MVP на MVVM и разработаете добавление отдельного фильма в избранное.
Теория внедрения зависимостей (Dependency Injection, DI), практика с DI.
DI-фреймворки в Android: статические и динамические. Базовые элементы фреймворков Dagger и Koin.
Перепишете код Playlist Maker по шаблону MVVM
Навигация и Activity. Управление Back Stack. Фрагменты.
Жизненный цикл. Создание и переключение Fragment.
Менеджер фрагментов. Передача данных между фрагментами. Сохранение состояния. ViewPager2.
Реализация вкладок с использованием TabLayout и его настройки.
Научите приложение Playlist Maker создавать плейлист, реализуете экран «Медиатека»
Изучите подходы к обработке навигации, особенности работы с библиотеками навигации — существующими и своими. Создадите экран списка актёрского состава, сделаете рефакторинг на подход Single Activity.
Познакомитесь с Jetpack Navigation Component и другими инструментами для навигации. Изучите граф переходов — Navigation Graph и компонент NavController для переходов между экранами. Внедрите Jetpack Navigation Component в приложение.
Изучите паттерны навигации, добавите на экран и настроите BottomNavigationView. Научитесь использовать его в связке с Jetpack Navigation Component.
Переделаете навигацию между экранами «Поиск», «Медиатека», «Настройки» на Fragment
Императивное, декларативное и асинхронное программирование. Реакция и реактивность.
Библиотека для реактивного программирования. Типы Observable, операторы RxJava, многопоточность с RxJava, Rx‑цепочки и ошибки.
Корутины против классических потоков. Как запускать корутины. Механизм работы suspend‑функций.
Преимущества корутин, debounce и асинхронные задачи. Сетевые запросы и Flow.
Переведёте поиск, отправку поискового запроса и прогресс воспроизведения трека на корутины
Хранение данных, типы баз данных и система управления ими. База данных для приложений под Android.
Реляционные базы данных. Основы языка запросов SQL. Основы работы с базой данных SQLite на Android.
Изучите, чем Room удобнее классического SQLite, ORM и похожих библиотек.
Запрос permissions во время работы приложения, типы permissions, Runtime Permissions. Библиотеки для разрешений.
Разберётесь, где хранятся файлы в Android, как запросить разрешение для доступа к чтению и записи файлов. Как сохранить файлы на устройстве.
Диалоги, BottomSheet, GridLayoutManager, Drawable в сочетании с View-элементами.
Научитесь работать с разными файлами, создавать и запрашивать разрешения, попрактикуетесь с диалогами и всплывающими окнами в приложении
Роль иконок приложений. Подходы к их созданию и применению. Создание иконки в Asset Studio в несколько кликов.
Научитесь делать релиз приложения в Google Play, настраивать инструменты для сбора аналитики, тестировать приложение. Напишете первый unit-тест.
Создадите иконку приложения Playlist Maker и экран «Плейлист»
Изучите все этапы продуктового цикла: сбор требований, дизайн, разработку, тестирование, релиз продукта и оценку результатов.
Познакомитесь с методологиями Waterfall и Agile. Поймёте, как оценивать задачи и формировать спринт.
Методология работы с Git, исследование истории изменений, merge‑конфликты, работа с Git в итоговом проекте.
Узнаете, что такое код‑ревью. Познакомитесь с Code Style. Поймёте, как делать код‑ревью правильно и создавать удобный для ревью код.
Узнаете, какие есть методы работы в команде, научитесь декомпозировать задачи и работать с коллегами над одним проектом в Git
В команде с однокурсниками сделаете приложение для поиска и сортировки вакансий. В нём пользователи смогут найти интересные предложения от работодателей, сохранить вакансии в избранное или поделиться ими.
Составите резюме, которое привлечёт внимание рекрутеров, и напишете сопроводительное письмо для откликов на вакансии. Узнаете, как правильно оформлять портфолио, и построите стратегию поиска работы. Обратите внимание: если курс оплачивает ваш работодатель, у вас не будет карьерного трека.
Акселерация — активный поиск работы с поддержкой HR‑экспертов. Будете откликаться на вакансии, делать тестовые и ходить на собеседования, а мы вас дистанционно поддержим. Например, расскажем, какие ошибки бывают в общении с работодателем и как их избежать. Акселерация может продолжаться до 6 месяцев — обычно этого достаточно, чтобы получить первую работу в IT.
У этого курса есть расширенный формат: стоит дороже, но включает в себя больше тем и проектов — чтобы усилить портфолио и повысить шансы на быстрое трудоустройство. Расширенный курс на 3 месяца длиннее, но будут дополнительные каникулы.
Фреймворк Jetpack Compose, углублённая работа с UI, BroadcastReceiver, Service
По дополнительным темам, чтобы усилить портфолио
Чтобы закрепить пройденный материал и освоить дополнительные навыки, которые повысят ваши шансы на трудоустройство
Больше навыков, которые помогут найти работу и быстрее вырасти до middle