Что нужно знать об Android-разработке

Около 70% всех смартфонов в мире работают на Android — а это миллионы потенциальных пользователей ваших приложений

Android-разработка — часто командные проекты, поэтому важно уметь быстро включаться в работу и разбираться в чужом коде.

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

Какой может быть ваша карьера

Должность

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

Навыки

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

Java
Kotlin
Git
Gradle
Android SDK
XML
MVP
MVVM
Koin
REST
OkHttp
Retrofit
Coroutines
RxJava
SQLite
Room
Unit Testing
Fragments
Single Activity
Android Jetpack
ConstraintLayout
RecyclerView
SharedPreferences
Code Review

Средняя зарплата

Можете начать с junior-позиции и продолжить развиваться в любом направлении

Источник: Хабр Карьера
65 000 ₽
Junior
160 000 ₽
Middle
237 000 ₽ +
Senior

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

  • Писать код на Java и Kotlin
  • Работать в реальной среде разработки Android Studio
  • Использовать библиотеки Room, Retrofit, RxJava, Koin, Glide, LiveData
  • Работать с асинхронными задачами при помощи Kotlin Coroutines
  • Создавать мобильные приложения по требованиям заказчика
  • Включаться в производство приложения на любом этапе
  • Работать в команде с помощью системы контроля версий кода Git
  • Находить и исправлять ошибки в своём и чужом коде
  • Выбирать подходящие технологии при работе над проектом

Вот как вы освоите Android-разработку за 12 месяцев

YandexGPT помогает учиться

Когда в теории что-то непонятно, нейросеть объяснит это другими словами. А в конце каждого урока подготовит краткий пересказ о самом главном.

Поможем найти работу после учёбы — для этого у нас целый карьерный центр

Программа курса

Составили программу по реальным задачам, которые решают в Android-разработке. За курс вы успеете написать 4 мобильных приложения.
7 тем・1 проект・~15 часов
Бесплатно
Знакомство с IDE и Java
Первый модуль — бесплатно, чтобы вы почувствовали себя в роли Android-разработчика и поняли, хотите ли развиваться в этом направлении
  • IDE
  • Java
  • Переменные
  • Строки
  • Методы
Особенности Android-разработки
Что делают Android-разработчики, главные языки и инструменты
IDE, эмулятор и запуск проекта
Что такое IDE, установка и настройка, запуск и гайд по проекту
Основы Java: работа с переменными
Переменные в Java, объявление переменных, типы данных в Java, операции с примитивными типами
Основы Java: работа со строками
Ссылочные типы данных, строковые переменные, конкатенация и строковые шаблоны
Основы Java: методы и функции
Что такое методы, как объявлять и вызывать метод, как возвращать значение из метода, особенности оператора return, параметры, аргументы и сигнатура методов, метод main
Найдёте ошибки, допишете код и запустите приложение «Конвертер валют»
2
15 тем・1 проект・4 недели
Введение в Java
  • Java
  • Переменные
  • Операторы сравнения
  • Строки
  • Массивы
  • Булева алгебра
  • Методы
  • Git
История Java
Появление Java в мобильной разработке, что входит в инфраструктуру Java, как связаны Android и Java
Работа со строками
Ссылочные типы данных, строковые переменные, конкатенация и строковые шаблоны
Операторы сравнения
Условия, операторы сравнения, операторы if и switch
Булева алгебра
В каких случаях понадобятся сложные выражения, типы логических выражений, логические союзы
Циклы
Цикл for, основы, движение в обратном направлении и изменение шага, цикл while, бесконечный цикл, вложенные циклы
Методы
Вспомните методы, напишете свой калькулятор, научитесь декомпозировать задачи
Классы и объекты
Что такое объекты, зачем нужны классы, попрактикуетесь с объектами, изучите конструкторы, области видимости и ключевое слово this, механизм сборки «мусора»
Git для самых маленьких
Узнаете про контроль версий, GitHub, commit и fork, как скачать репозиторий, создавать ветки и работать в Git командой, создадите первый Pull Request
Запуск кода
Как запустить код на эмуляторе и реальном устройстве, какие ошибки возможны при запуске
Массивы, списки, итераторы
Как работать с массивами, для чего нужна структура данных ArrayList, что делает ассоциативный массив Map, в чём идея множества Set, роль инструмента Iterator и цикла forEach.
Научитесь работать со строками, циклами и главными инструментами Android-разработки — Android Studio и Git
3
8 тем・1 проект・4 недели
Проектная работа на Java
  • Java
  • Модификаторы доступа
  • Наследование
  • ООП
  • Интерфейсы
Модификаторы доступа
Что такое модификаторы доступа, зачем они нужны, модификатор Static, как его применять к другим методам.
Наследование и переопределение
Погрузитесь в объектно-ориентированное программирование (ООП). Узнаете, для чего нужны наследования и конструкторы, что такое полиморфизм, ключевые слова final и abstract, объект и object.
Интерфейсы
Узнаете, что такое интерфейсы и какие проблемы они решают.
Анонимные классы и лямбда-выражения
Иерархия вложенных классов, создание анонимных классов, лямбда-выражения.
Дженерики
Синтаксический сахар, создание и наследование дженерик-классов, дженерик-методы и конструкторы, ограничения и wildcard.
Допишете код приложения «Контакты», чтобы сортировать, просматривать и звонить по всем контактам в телефоне, с учётом привязки к мессенджерам и почте
4
8 тем・2 недели
Введение в Kotlin
  • Kotlin
  • Переменные
  • Циклы
  • Классы
  • Оператор if
  • Оператор when
История Kotlin
От Java к Kotlin, для чего создавали Kotlin и чем интересен его код
Переменные в Kotlin
Типы данных и переменные, приведение типов, операции с простыми типами
Операторы if и when
Операторы в Kotlin, условные операторы в Java и Kotlin (if и when)
Циклы
Циклы for и while в Kotlin, чем они отличаются от циклов Java
Классы
Классы и методы в Kotlin, их свойства, блок init, дефолтные и именованные параметры, как использовать nullable-типы, паттерн Singleton и объявление объекта, анонимные и enum-классы
Изучите основные конструкции языка программирования Kotlin в теории и на практике
5
10 тем・1 проект・4 недели
Проектная работа на Kotlin
  • Функции высшего порядка
  • Функции расширения
  • Мульти-декларации
  • Наследование
  • Массивы
  • IDE
  • Git
Наследование и переопределение
Наследование и система типов в Kotlin, изолированные классы и интерфейсы
Массивы, списки, итераторы
Массивы и коллекции в Kotlin, функции kotlin.collections
Top-level функции
Функции высшего порядка, расширения и мульти-декларации
Продвинутая IDE
Android Debug Bridge или ADB, Android Debugger, логирование
Продвинутый Git и Gitignore
Командная строка, устройство хранилища Git, создание коммита в Git, манипулирование коммитами и роль gitignore-файла, удалённый репозиторий Git
Перепишете часть приложения «Контакты», увидите разницу между Kotlin и Java, поработаете с фильтрами и списками
Пример проекта
6
11 тем・1 проект・4 недели
Введение в UI и хранение данных
  • XML
  • Вёрстка
  • ImageView
  • Навигация
  • Стили и темы
  • Context и Intent
  • EditText
  • Хранение данных
Вёрстка экранов
Познакомитесь с инструментом вёрстки Figma и языком разметки XML. Сверстаете первый экран. Изучите структуру и синтаксис ресурсных файлов.
ImageView
Изображения в приложениях, величина DPI: от чего она зависит и как влияет на качество картинок на экране, типы масштабирования.
Навигация
Навигация приложения, компонент Activity для взаимодействия пользователя с приложением, жизненный цикл Activity lifecycle, роль и типы класса Intent.
Стили и темы
Что такое стили и для чего нужны, синтаксис стилей, эффективное использования стилей, сторонние шрифты, чем тема отличается от стиля, как она устроена и как её настроить.
Context и Intent
Место Context в Android-разработке, типы Context при создании приложения. Узнаете, как пользоваться API Context, Intent Filters и передавать данные с помощью Intent.
EditText и TextWatcher
EditText в тестовом приложении Prime number, методы и атрибуты EditText, инструменты Android SDK для работы с вводимым текстом, в чём помогает TextWatcher.
Хранение данных: начало
Данные в жизни приложения и их хранение на практике.
В приложении Playlist Maker сверстаете главный экран, экран настроек и поиска, добавите новые шрифты и кнопки, адаптируете интерфейс под ночной режим
7
6 тем・1 проект・2 недели
Продвинутый UI: списки и библиотеки
  • RecyclerView
  • ViewHolder
  • Adapter
  • Библиотеки
  • Glide
RecyclerView
Что такое класс RecyclerView, как его создать, без каких вспомогательных классов не работает RecyclerView, LayoutManager и его базовые типы
ViewHolder
Что такое класс ViewHolder, почему он появился, когда и зачем использовать его основные методы
Adapter
Adapter как целое и часть RecyclerView, собираем RecyclerView, особенности работы с Adapter
Введение в библиотеки
Что такое библиотеки и для чего они нужны, подключение библиотек к проекту, библиотека Glide, загрузка изображений из интернета в ImageView
Создадите первый список в приложении Playlist Maker, начнёте знакомиться с библиотеками
8
5 тем・1 проект・2 недели
Сеть
  • Сеть
  • Сервер
  • TCP/IP
  • HTTP
  • URI
  • JSON
  • API
Введение в сеть
Выход в сеть, кто разрабатывает сервер и как он работает, REST API
HTTP
Путь данных от клиента на сервер, их трансформация, типы запросов, формат данных и сетевые ошибки, TCP/IP, HTTP, URI, JSON
Retrofit
Популярные аннотации в библиотеках Android и их возможности, библиотеки Gson и Retrofit
Работа с API на практике
API и ошибки, авторизация запросов, практика с API крупного сервиса IMDb
Оживите экран поиска и добавите выполнение настоящих поисковых запросов в Playlist Maker
9
3 темы・1 проект・2 недели
Хранение данных
  • Shared Preferences
  • Jetpack
  • Шаблоны проектирования
  • Observer
  • Безопасное хранение данных
Shared Preferences
Что такое Shared Preferences, что нельзя там хранить и как обезопасить данные
Храним данные
Сохранение объектов, шаблон Observer, подписка на изменения, Jetpack и DataStore
Научите приложение Playlist Maker сохранять историю поиска
10
4 темы・1 проект・2 недели
Продвинутый UI: компоненты вёрстки
  • RelativeLayout
  • ConstraintLayout
  • Layout Inspector
RelativeLayout
Влияние LinearLayout на вложенность, проблема вложенных весов. Атрибуты RelativeLayout: центрирование, относительного расположение, выравнивание относительно родительского контейнера, относительное выравнивание. Комбинирование атрибутов, работа с атрибутами в коде.
ConstraintLayout
Возможные проблемы у RelativeLayout и ConstraintLayout как их решение.
Создадите экран аудиоплеера в приложении Playlist Maker
Пример проекта
11
4 темы・1 проект・2 недели
Многопоточность
  • Многопоточность
  • Debounce
  • ProgressBar
  • MediaPlayer
Введение в многопоточность
Работа кода программы, создание новых потоков, синхронизация, жизненный цикл потоков
Многопоточность в Android
Главный поток, его классы и циклы, как менять UI не из главного потока
Улучшаем Playlist Maker
Логика debounce и его реализация с использованием Handler, новый View-элемент ProgressBar, инструмент MediaPlayer
Сделаете удобнее поиск в приложении Playlist Maker, добавите ProgressBar в светлой и тёмной теме, время и воспроизведение отрывка на экране аудиоплеера
12
12 тем・1 проект・6 недель
Архитектура
  • Clean Architecture
  • MVC
  • MVP
  • MVVM
  • Moxy
  • LiveData
  • Dagger
  • Koin
Clean Architecture
Понятие «чистой архитектуры» и её применение в Android.
Шаблон MVP
Сделаете рефакторинг кода, поменяете MVC на MVP. Узнаете, что такое MVP с единым State, какие бывают проблемы MVP и что из себя представляет библиотека Moxy.
Шаблон MVVM
Особенности шаблона MVVM, создание ViewModel, класс LiveData, разметка с ViewBinding.
Подготовка проекта к рефакторингу
Осуществите переход с MVP на MVVM и разработаете добавление отдельного фильма в избранное.
Внедрение зависимостей
Теория внедрения зависимостей (Dependency Injection, DI), практика с DI.
Инструменты DI
DI-фреймворки в Android: статические и динамические, базовые элементы фреймворков Dagger и Koin.
Перепишете код Playlist Maker по шаблону MVVM
13
5 тем・1 проект・2 недели
Продвинутый UI: фрагменты
  • Фрагменты
  • Иерархия экранов
  • Back Stack
  • Task
  • TabLayout
Введение во фрагменты
Навигация и Activity, управление Back Stack, фрагменты
Создание фрагментов
Жизненный цикл, создание и переключение Fragment
Особенности работы с фрагментами
Менеджер фрагментов, передача данных между фрагментами, сохранение состояния, ViewPager2
TabLayout и практика
Реализация вкладок с использованием TabLayout и его настройки
Научите приложение Playlist Maker создавать плейлист, реализуете экран «Медиатека»
14
4 темы・1 проект・2 недели
Продвинутая навигация на Fragment
  • Single Activity
  • Navigation Graph
  • FragmentManager
  • Jetpack Navigation Component
  • BottomNavigationView
  • NavController
  • Tabs
Single Activity и кастомный навигатор
Изучите подходы к обработке навигации, особенности работы с библиотеками навигации — существующими и своими. Создадите экран списка актёрского состава, сделаете рефакторинг на подход Single Activity.
Jetpack Navigation Component
Познакомитесь с Jetpack Navigation Component и другими инструментами для навигации. Изучите граф переходов — Navigation Graph и компонент NavController для переходов между экранами. Внедрите Jetpack Navigation Component в приложение.
BottomNavigationView
Изучите паттерны навигации, добавите на экран и настроите BottomNavigationView. Научитесь использовать его в связке с Jetpack Navigation Component.
Переделаете навигацию между экранами «Поиск», «Медиатека», «Настройки» на Fragment
15
5 тем・1 проект・2 недели
Продвинутая многопоточность и сложный UI
  • Реактивное программирование
  • Корутины
  • RxJava
  • RxMarbles
  • CoroutineScope
  • JVM-потоки
  • Flow
Реактивное программирование
Императивное, декларативное и асинхронное программирование, реакция и реактивность
RxJava
Библиотека для реактивного программирования, типы Observable, операторы RxJava, многопоточность с RxJava, Rx-цепочки и ошибки
Корутины
Корутины против классических потоков, как запускать корутины, механизм работы suspend-функций
Корутины на практике
Преимущества корутин, debounce и асинхронные задачи, сетевые запросы и Flow
Переведёте поиск, отправку поискового запроса и прогресс воспроизведения трека на корутины
16
8 тем・1 проект・4 недели
Продвинутая работа с сетью и хранением данных
  • Базы данных
  • SQL
  • Room
  • Room
  • Dialog
  • Хранилище
  • BottomSheetDialog
  • GridLayoutManager
Базы данных
Хранение данных, типы баз данных и система для их управления, база данных для приложений под Android
SQL
Реляционные базы данных, основы языка запросов SQL, основы работы с базой данных SQLite на Android
Room
Изучите, чем Room удобнее классического SQLite, ORM и похожих библиотек
Permissions
Запрос permissions во время работы приложения, типы permissions, Runtime Permissions, библиотеки для разрешений
Доступ к файлам
Разберётесь, где хранятся файлы в Android, как запросить разрешение для доступа к чтению и записи файлов, как сохранить файлы на устройстве
Диалоги и всплывающие окна
Диалоги, BottomSheet, GridLayoutManager, Drawable в сочетании с View-элементами
Научитесь работать с разными файлами, создавать и запрашивать разрешения, попрактикуетесь с диалогами и всплывающими окнами в приложении
17
4 темы・1 проект・2 недели
Финал Playlist Maker
  • Иконка приложения
  • Legacy
  • Adaptive Icon
  • Asset Studio
  • Публикация в Google Play
  • Релизная сборка
Иконка приложения
Роль иконок приложений, подходы к их созданию и применению, создание иконки в Asset Studio в несколько кликов
Будущие задачи
Научитесь делать релиз приложения в Google Play, настраивать инструменты для сбора аналитики, тестировать приложение, напишете первый unit-тест
Создадите иконку приложения Playlist Maker и экран «Плейлист»
18
5 тем・1 неделя
Продуктовая и командная разработка
  • Методология
  • Декомпозиция
  • Жизненный цикл продукта
  • Git
  • Код-ревью
Жизненный цикл продукта
Изучите все этапы продуктового цикла: сбор требований, дизайн, разработку, тестирование, релиз продукта и оценку результатов.
Методология
Познакомитесь с методологиями Waterfall и Agile. Поймёте, как оценивать задачи и формировать спринт.
Git для гигантов
Методологии работы с Git, исследование истории изменений, merge‑конфликты, работа с Git в итоговом проекте.
Зачем нужно код‑ревью
Узнаете, что такое код-ревью и для чего он нужен, Code Style. Поймёте, как делать код-ревью правильно и создавать удобный для ревью код.
Узнаете, какие есть методы работы в команде, научитесь декомпозировать задачи и работать над одним проектом с коллегами в Git
19
С наставником・4 недели
Итоговый проект «Агрегатор вакансий»
В команде с однокурсниками сделаете приложение для поиска и сортировки вакансий. В нём пользователи смогут найти интересные предложения от работодателей, сохранить вакансии в избранное или поделиться ими с другими.
20
С наставником・4 недели
Трудоустройство
Эта часть курса для тех, кто решил найти работу в сфере Android-разработки. Вы изучите стратегии поиска работы, узнаете, как выбрать работодателя, подготовите портфолио, напишете резюме и сопроводительное письмо.
21
Карьерный центр・2–6 месяцев
Акселерация
Вы начнёте искать работу, а мы будем консультировать и помогать. Участвовать в программе могут те, кто закончил программу трудоустройства и активно ищет работу. Основной формат участия — индивидуальные консультации и публичные собеседования.

Отвечаем на вопросы

Будет ли этот курс слишком лёгким или простым для меня?
Если будете справляться с материалом основной программы быстро — будет возможность проходить некоторые темы более углубленно.

Учиться может быть и сложно – но мы поможем!
Подробнее о профессии Android-разработчика вы можете узнать из нашей статьи.
Сколько времени нужно на прохождение курса?
Курс длится 12 месяцев. Для успешного прохождения курса мы рекомендуем уделять учёбе около 15 часов в неделю — это немало, но необходимо для освоения новой профессии. Будет непросто, но можно рассчитывать на плечо и помощь наставников, кураторов и одногруппников.
Какой компьютер нужен для обучения?
Поскольку в платной части курса вы будете учиться работать с реальной средой разработки (Android Studio), компьютер должен соответствовать этим требованиям:
— Операционная система: 64-bit Microsoft® Windows® 8/10, MacOS® 10.14 (Mojave) или более поздней версии, 64-bit Linux с Gnome, KDE или Unity DE; GNU C Library 2.31 или более поздней версии

— Оперативная память: 8 ГБ (рекомендуется)

— Свободное место на диске: 4 ГБ минимум (1,5 ГБ для IDE + 2,5 ГБ для Android SDK и образа системы эмулятора), 8 ГБ SSD (рекомендуется)

— Разрешение экрана: 1280 x 800

Это официальные рекомендации для работы с Android Studio.
Кто авторы курса?
Над курсом работает большая команда — мы привлекаем Senior Android-разработчиков и разработчиц из крупных IT-компаний, методистов и редакторов. Это помогает нам делать не только актуальные и полные, но и грамотно структурированные с педагогической точки зрения курсы.
Как проходит обучение?
Сначала вы в своем темпе познакомитесь с Android, узнаете, с чем сталкиваются разработчики в жизни, начнёте самостоятельно изучать Java и Kotlin в тренажере.
Затем пойдёте дальше и начнёте полноценно осваивать профессию. На этом этапе вам станет доступно обучение по двухнедельным спринтам, команда поддержки и сообщество студентов в Пачке.
Что делать, если я не справлюсь с нагрузкой?
В программе предусмотрены каникулы, во время которых можно отдохнуть или повторить сложные темы.

Если вам понадобится сделать паузу в учёбе или уделить больше времени закреплению материала, напишите своему куратору.
Если не понравится, я смогу вернуть деньги?
Да, причём в любой момент. Правда, если вы уже прошли какую-то часть курса, её придётся оплатить, но остальное вернём. Более подробно рассказываем про это в седьмом пункте оферты.
Вы поможете с трудоустройством?
Да. Команда трудоустройства поможет составить резюме, подготовиться к собеседованию, начать общаться со специалистами из крупных компаний. Мы налаживаем партнёрские отношения с российскими IT-компаниями, которые заинтересованы в найме Android-разработчиков. Здесь можно ознакомиться с результатами исследования трудоустройства выпускников от Института образования НИУ ВШЭ.
Смогу ли я устроиться в Яндекс?
Мы не можем гарантировать трудоустройство, так как многое зависит именно от вас. Со своей стороны мы подготовили курс так, чтобы у вас была возможность пройти собеседование и в Яндекс, и в другие хорошие компании.
Мы даём вам не только необходимые инструменты и навыки, но и учим решать реальные проблемы, возникающие в работе мобильных разработчиков — работодателям нужны те, кто может не растеряться и разобраться самостоятельно.
Рекрутер из Яндекса позовёт вас на технические собеседования, если появятся вакансии, соответствующие вашему опыту.
Зачем мне Практикум, если я могу всё это изучить самостоятельно?
Кому-то самостоятельное обучение действительно подходит больше. У нашего курса другой формат, в котором мы видим следующие преимущества:

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

— Экономия времени: методисты и эксперты уже подготовили программу, сформировали задачи с фокусом на практику в контексте реальных рабочих задач.

— Помощь команды сопровождения и фидбек от практикующих специалистов.

По нашим оценкам, это повышает вероятность пройти обучение до конца и достичь целей быстрее.
Получу ли я какой-то документ после курса?
Если у вас есть среднее профессиональное или высшее образование, после курса вы получите диплом о профессиональной переподготовке.

Если нет, выдадим сертификат о прохождении курса и справку об обучении в электронном виде.
Можно ли оплатить курс за счёт работодателя?
Да, работодатель может оплатить учёбу полностью или разделить оплату с вами: например, поделить сумму 50/50 или 75/25.

Такая оплата пройдёт по счёту или двустороннему договору, а ИП могут оплатить с бизнес-счёта. Если работодатель купит обучение сразу 10 и больше сотрудникам, сделаем скидку 10%.

Чтобы получить счёт на оплату через компанию, оставьте заявку или напишите нам в чат поддержки.
Что такое налоговый вычет на обучение и как его получить?
Налоговый вычет может оформить тот, кто работает по трудовому договору и является налоговым резидентом Российской Федерации, то есть 183 дня в году находится на территории страны.

Для этого нужно подать заявление на налоговый вычет через личный кабинет на сайте nalog.ru (в него можно войти через аккаунт на Госуслугах).

К заявлению нужно приложить:
•‎ Справку 2-НДФЛ от работодателя.
•‎ Договор на обучение, в вашем случае это оферта Практикума.
•‎ Лицензию на образовательную деятельность. Вот наша.
•‎ Чек об оплате обучения. Мы отправляем его на электронную почту. Если не найдёте чек у себя в почте, напишите в чат службы поддержки — вышлем копию.
•‎ Справку о получении образовательных услуг — её тоже нужно запросить в чате поддержки.

Подробнее о налоговом вычете — на сайте Федеральной налоговой службы.

Давайте поможем

Мы перезваниваем в течение 30 минут каждый день с 10:00 до 19:00. Если оставите заявку сейчас, то перезвоним уже в рабочее время.