Перейти к содержимому
Учи.Онлайн Выбрать школу
Статья

Android-разработчик: Kotlin, жизненный цикл приложения и правила Google Play

Android-разработчик собирает приложения для смартфонов, планшетов, часов и телевизоров на Android, чаще всего на Kotlin: по данным Google, этот язык используют больше 60% профессиональных разработчиков платформы. Сложность не в синтаксисе: приложение живёт на чужом устройстве, где система сворачивает экран, пересоздаёт его после поворота или выгружает процесс из памяти, а версии системы и размеры экранов у пользователей различаются сильно. Вторая половина профессии — правила магазина: целевой уровень API, сроки обновления, проверка перед публикацией. Работодатели ждут портфолио работающих приложений, а доход зависит от опыта, задач и компании.

Автор: Александра СыщенкоАвтор об IT и профессиональном обучении · О редакции
Содержание

Слово «Android» в вакансии обозначает не язык, а платформу, на которой работают устройства десятков производителей — от дешёвого смартфона до складного аппарата, планшета и автомагнитолы. Разработчик пишет код у себя, а исполняется код там, где он ничего не контролирует: на чужом железе, при слабой сети, в системе, которая распоряжается памятью по своему усмотрению и умеет закрыть приложение, пока пользователь отвечает на звонок. Работодатель получает не «приложение в магазине», а рабочий канал к пользователю, и разработчик обслуживает его целиком: верстает экраны и связывает их с данными, ходит в серверное API, хранит данные на устройстве, настраивает уведомления и оплату, разбирает отчёты о падениях и выпускает версии.

Иллюстрация к статье «Android-разработчик: Kotlin, жизненный цикл приложения и правила Google Play»

Kotlin: язык, который выбрали за вас

Позиция Google однозначна: в официальной документации Kotlin описан как язык, которым пользуются более 60% профессиональных Android-разработчиков, а приложения на нём, по оценке Google, падают примерно на 20% реже (developer.android.com).

Для новичка отсюда следует: учить нужно Kotlin, а Java — читать, она осталась в старых модулях и библиотеках без Kotlin-обёртки. Важнее всего в языке защита от обращения к пустой ссылке и корутины: запрос к серверу нельзя выполнять в основном потоке, иначе интерфейс замирает, а корутины дают этому читаемую форму.

Жизненный цикл: почему поворот экрана ломает приложение

Экран приложения представлен объектом Activity с описанной последовательностью состояний: onCreate при создании, onStart при появлении на экране, onResume при получении фокуса, onPause, onStop и onDestroy — при уходе и уничтожении. Вызывает их система, а не код приложения.

Новичков удивляет другое: при смене конфигурации — например, при повороте экрана — система по умолчанию уничтожает активность и создаёт её заново, стирая состояние интерфейса, сохранённое в объекте (документация Android). Там же есть предупреждение, противоречащее ходовому совету «сохраняйте данные в onPause»: документация просит не использовать этот метод для сохранения данных, сетевых запросов и транзакций в базе: его выполнение очень короткое, и работа может не успеть завершиться.

Учебный разбор: форма записи, которая теряет данные

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

Причина первой — то самое пересоздание активности. Состояние приходится разделить: то, за что отвечает логика экрана — выбранное время, статус загрузки, черновик заявки, — переезжает в ViewModel, объект, переживающий пересоздание, а мелкие поля интерфейса оборачиваются в механизм сохранения состояния, который система восстанавливает сама. Вторая претензия сложнее: загрузка была запущена прямо с экрана, а в фоне система ограничивает работу ради батареи. Выгрузка переносится в планировщик фоновых задач: она переживает закрытие экрана, повторяется при обрыве сети, а экран лишь смотрит на её статус.

Данные перестают теряться, вместо молчаливой потери появляется состояние «фотография ждёт сети», а из отчётов о падениях уходит группа ошибок с обращением к уничтоженному экрану. Программы, где жизненный цикл и архитектуру разбирают отдельным блоком, дают это понимание раньше — в курсе «Android-разработчик + ИИ» от Eduson Academy они идут рядом с RecyclerView и корутинами, а публикация в магазине вынесена в конец программы.

Фрагментация: одно приложение на очень разных устройствах

Разработчик задаёт два числа: minSdk — самую старую версию Android, на которой приложение запустится (это охват), и targetSdk — версию, под поведение которой оно рассчитано (это правила игры). Агрегатор apilevels.com, собирающий данные Statcounter, на апрель 2026 года показывает: Android 15 и новее стоит примерно у 41% устройств, Android 13 и новее — у 68,9%, Android 8 и новее — у 96,1% (apilevels.com). Подняв нижнюю планку до Android 13, вы отсекаете около трети рынка; спустив её до Android 9, получаете почти всех, но обязуетесь проверять приложение на очень старой системе. Добавьте размеры экранов, складные устройства и оболочки производителей — и станет понятно, почему «у меня работает» в команде значит мало.

Jetpack Compose и старый набор View

Прежде интерфейс описывали разметкой в XML, а поведение — кодом, который вручную менял найденные элементы. Но Google называет Jetpack Compose рекомендованным современным набором инструментов для нативного интерфейса (developer.android.com). Разница принципиальная: разработчик описывает, как экран выглядит при данном состоянии, а перерисовкой занимается библиотека, и пропадает класс ошибок, при которых данные и картинка расходятся.

Начинать разумно с Compose — на нём быстрее собирается первый работающий экран. Но на работе встретится и старый набор View, и смешанный проект, поэтому программа с обоими слоями ближе к рынку. В курсе «Android-разработчик: расширенный курс» от Нетологии Compose стоит рядом с базами данных, Firebase, тестированием и архитектурой, а расширенная траектория рассчитана на 14 месяцев и восемь проектов.

Магазин: правила, которые меняют саму работу

Половину пути до пользователя определяет не команда, а магазин. Первое правило — целевой уровень API. С 31 августа 2026 года новые приложения и обновления должны быть рассчитаны на Android 16 (API 36) или выше, иначе Google Play их не примет. Уже опубликованные приложения обязаны целиться минимум в Android 15, иначе остаются видимыми только на устройствах, чья версия системы не выше их цели, и новые пользователи свежих телефонов их не найдут. При нехватке времени можно запросить отсрочку до 1 ноября 2026 года (developer.android.com). Приложение нельзя сдать и забыть: раз в год его переводят на новый целевой API и чинят сломавшееся из-за ужесточения правил доступа к данным.

Второе правило касается именно новичков, и о нём редко пишут в обзорах профессии. Персональные аккаунты Google Play Console, созданные после 13 ноября 2023 года, не получают доступ к публикации сразу: сначала нужно провести закрытое тестирование — не менее 12 тестировщиков, подключённых непрерывно минимум 14 дней подряд, причём если тестировщик отключился и вернулся, отсчёт начинается заново. Затем подаётся заявка, которую Google рассматривает обычно за семь дней (Google Play Console Help). План «за выходные напишу приложение и выложу в портфолио» не работает: между готовым кодом и публичной ссылкой стоят минимум две недели и дюжина живых людей с Android-устройствами.

Третье — модерация. Google Play проверяет приложения сочетанием автоматических систем и людей, а меры идут от отклонения обновления до удаления приложения, приостановки и блокировки аккаунта: приостановку получают за грубые или повторяющиеся нарушения, в том числе за череду отклонений (Google Play Console Help). Разрешения на контакты, геолокацию, SMS и журнал звонков приходится обосновывать функцией приложения; сроки в основном истекают 27 января 2027 года (перечень изменений политики).

Публикация из России и альтернативные магазины

Условия здесь менялись не раз, и проверять их стоит по действующей справке магазина. В официальном списке поддерживаемых стран Google Play Россия отмечена как страна, где доступны и регистрация разработчика, и регистрация продавца, а валютой по умолчанию указан доллар США (Google Play Console Help). Работают ли в конкретный момент оплата аккаунта, приём платежей и выплаты, видно в консоли.

Параллельно вырос второй канал распространения: RuStore развивает VK при поддержке российских IT-компаний, и в документации для разработчиков указано, что публикация бесплатна, а размещать можно как бесплатные, так и платные приложения (rustore.ru). Для профессии это прибавка к работе: сборка выкладывается в несколько магазинов с разными требованиями к модерации, а покупки и push-уведомления в российском магазине идут через его SDK. При этом Android остаётся открытой платформой: приложение можно собрать в файл и установить напрямую, минуя магазины, — так раздают внутренние корпоративные приложения и так же удобно показать учебный проект.

Чем работа отличается от соседних профессий

У iOS-разработчика задачи внешне те же, но среда другая: у Apple один производитель устройств и предсказуемый набор моделей, у Android — множество вендоров и версий системы; языки и правила магазинов тоже свои, и переучивание занимает месяцы. Java-разработчик из серверной команды часто пишет на той же JVM и иногда на том же Kotlin, но его предмет — состояние данных под нагрузкой: транзакции, очереди, согласованность.

Деньги: что показывают открытые данные

По исследованию «Хабр Карьеры» за первое полугодие 2026 года, построенному на 45 226 зарплатах за январь — июнь, медиана по всему IT в России составила 191 000 ₽. У специальности «разработчик мобильных приложений» медианы выше — 320 000 ₽ в Москве, 299 000 ₽ в Санкт-Петербурге и 263 000 ₽ в регионах. Срез по языкам удобен для сравнения платформ: у работающих с Kotlin медиана 320 000 ₽ (+5%), у Swift — 326 000 ₽ (+7%), у Java — 243 000 ₽ (habr.com). Разрыв между Kotlin и Swift невелик и легко меняет знак.

Это зарплаты, о которых сообщили сами специалисты, а не предложения работодателей в вакансиях: цифра в объявлении обычно ниже и часто указана до вычета налога. Медианы считаются по всем уровням сразу, поэтому к стартовой позиции отношения не имеют — публичной сопоставимой статистики по начинающим в мобильной разработке мало. Свою вилку смотрите сами: выставьте в поиске вакансий регион и опыт «нет опыта» или «от 1 года», ориентируйтесь на середину диапазона, а не на среднее.

Что может оказаться сложным

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

С чего начинать

Базы почти не требуется: достаточно школьной логики и готовности разбираться. Порядок такой: сначала Kotlin как язык — типы, классы, коллекции, null-безопасность, корутины, — иначе синтаксис и платформа смешиваются; затем Android Studio, эмулятор и первый экран на Compose; дальше жизненный цикл, ViewModel и навигация; потом сеть, локальное хранение, фоновые задачи, уведомления и разрешения; в конце архитектура, тесты и публикация.

Попробовать стоит до курса: вводные материалы Google бесплатны и построены на практических заданиях. Если через две-три недели вам интересно разбираться, почему экран ведёт себя не так, как задумано, профессия, скорее всего, подойдёт. Платные программы различаются глубиной: в курсе «Android-разработчик» от TeachMeSkills заявлены онлайн-формат и старт с нуля при стоимости 90 000 ₽, но состав модулей и объём практики в кратком описании не раскрыты — их стоит уточнить у школы до оплаты.

Что показывать вместо опыта

Работодателю нужен не сертификат, а код и поведение приложения. Минимальный убедительный набор — одно доведённое до конца приложение с репозиторием: список и карточка, запрос к настоящему API, обработка отсутствия сети, сохранение состояния при повороте, локальный кеш и несколько тестов. Публикация в магазине переоценена как достижение, но доказывает, что вы прошли весь путь; с учётом правила о двенадцати тестировщиках начинать её стоит заранее.

Первые шаги бывают разными: продуктовая команда, аутсорс с несколькими проектами за год, небольшие заказы для локального бизнеса, переход из тестирования внутри своей компании. Выбирая программу, смотрите не на список тем, а на то, доходит ли практика до сети, хранения, фоновых задач и публикации и проверяет ли кто-то ваш код руками. Сопоставить школы по стоимости, объёму практики и наставничеству помогает рейтинг онлайн-школ по Android-разработке на Учи.Онлайн: рядом с оценками там описана методика расчёта по шести критериям.