Разработка приложения под Android: сторы, устройства, релиз
Разработка приложений для Android: от 350 000 ₽ и 8-16 недель, аккаунт Google Play за 25 $, закрытое тестирование 12 на 12, парк устройств и RuStore.
Разработка приложений для Android стоит от 350 000 ₽ и занимает 8-16 недель до публикации. Аккаунт Google Play стоит 25 $ один раз, а не ежегодно, проверка обновлений обычно занимает 1-3 дня. Но у новых личных аккаунтов есть отдельное препятствие: перед первым публичным релизом Google требует закрытое тестирование - не меньше 12 тестировщиков в течение 12 дней подряд.
Дальше - почему Android дороже в разработке при той же цене, что и iOS, как китайские прошивки убивают push, и что делать с дистрибуцией в России, где Google Play уже давно не единственная точка.
Разработка приложений под Androidот 350 000 ₽сроки: 8-16 недель
Чем разработка приложений для Android тяжелее
Публиковаться в Google Play проще, чем в App Store. А вот довести приложение до состояния «работает у всех» - заметно сложнее.
Парк устройств. У iOS десяток актуальных моделей и две версии системы, покрывающие почти всю аудиторию. У Android в реальной статистике проекта живут телефоны от флагманов до устройств за восемь тысяч рублей, версии системы от Android 9 до последней, диагонали от 5 до 7 дюймов, вырезы и подэкранные камеры в произвольных местах. Одна и та же вёрстка на 360 логических точек ширины и на 480 выглядит по-разному, и проверять это надо руками.
Разный WebView. Для гибридного приложения это ключевой момент. Интерфейс рендерит системный Android System WebView, и его версия у пользователей разная: где-то он обновляется автоматом, где-то отстал на несколько лет, а на некоторых прошивках его умудряются отключить. Практическое следствие простое: современный CSS и свежие возможности JavaScript надо проверять на реальном старом устройстве, а не в браузере на своём ноутбуке. На прошлом мобильном проекте я держал парк подменных телефонов именно для этого, и примерно каждый третий визуальный баг приходил не из кода, а из старого WebView.
Китайские прошивки. MIUI у Xiaomi, EMUI у Huawei, ColorOS у Oppo и родственные им системы агрессивно экономят батарею. Они выгружают приложение из памяти, режут фоновые задачи и глушат уведомления, если приложение не добавлено в список «автозапуск» вручную в настройках телефона. Стандартными средствами Android это не лечится: приложение просто не получает управление. Единственный работающий подход - показать пользователю понятный экран с инструкцией по его конкретной прошивке, если push перестал приходить. Обещать заказчику стопроцентную доставку уведомлений на таких устройствах я не берусь и другим не советую.
Аккаунт, 25 $ и правило 12 на 12
Google Play Console оплачивается один раз. Дальше начинается разница между личным аккаунтом и аккаунтом организации.
Аккаунт организации требует подтверждения юрлица и номера D-U-N-S, зато не подпадает под требование закрытого тестирования. Личный аккаунт, зарегистрированный недавно, обязан провести закрытое тестирование: минимум 12 участников, которые непрерывно участвуют не меньше 12 дней, и только после этого открывается доступ к публичному релизу. Двенадцать человек надо найти заранее, собрать их почты, привязанные к Google, и убедиться, что они действительно установили сборку.
Это не сложная процедура, но она добавляет к календарю две недели, о которых обычно узнают в конце проекта. Поэтому решение о типе аккаунта принимается на первой неделе.
Target SDK: ежегодная обязательная работа
Каждое приложение объявляет target SDK - версию Android, под которую оно собрано. Google ежегодно поднимает минимально допустимое значение. Приложение, которое не обновило target SDK к назначенному сроку, сначала перестаёт показываться в поиске новым пользователям на свежих устройствах, а затем становится недоступным для установки вовсе.
Практически это означает: приложение нельзя выпустить и забыть. Раз в год нужен релиз с поднятым target SDK, и почти всегда вместе с ним приезжают новые требования системы. Именно так появились обязательный запрос разрешения на уведомления с Android 13, новые правила фоновой работы и ограничения на точные будильники. На гибридном проекте это тянет обновление Capacitor и всех плагинов, и раз в год стабильно находится плагин, который под новую версию не собирается.
Чеклист
Чек-лист по релизу в Google Play
Что готовится до старта, что требует сам стор, и что дают альтернативные площадки.
20 проверок 8 критично 9 важно 3 можно потом
01 До старта
- критично Выбран тип аккаунта: личный требует закрытого тестирования 12 на 12 чинить до запуска
- критично Google Play Console оплачена, 25 $ разово чинить до запуска
- критично Собран список из 12 тестировщиков с почтами Google чинить до запуска
- критично Политика конфиденциальности опубликована по постоянному адресу чинить до запуска
- критично Определён минимальный поддерживаемый Android и список тестовых устройств чинить до запуска
02 Требования Google Play
- критично Target SDK не ниже актуального требования этого года чинить до запуска
- критично Раздел Data safety заполнен и совпадает с реальным сбором данных чинить до запуска
- критично Публикация в формате App Bundle, подпись ключом Google Play чинить до запуска
- важно Каждое чувствительное разрешение обосновано в консоли в первый месяц
- важно Фоновая геолокация: отдельная форма и видео сценария в первый месяц
- важно Удаление аккаунта доступно из приложения и по веб-ссылке в первый месяц
03 Парк устройств и совместимость
- важно Проверка на реальном телефоне со старым Android System WebView в первый месяц
- важно Проверка на Xiaomi или Huawei: автозапуск, фоновые задачи, push в первый месяц
- важно Экраны от 5 до 7 дюймов, вырезы, системные жесты навигации в первый месяц
- важно Крупный системный шрифт и включённая экономия трафика в первый месяц
- важно Поведение при потере сети и при переходе Wi-Fi в мобильный интернет в первый месяц
04 Дистрибуция помимо Google Play
- важно RuStore: отдельный аккаунт, своя модерация, свои push-сервисы в первый месяц
- можно потом Huawei AppGallery: замена сервисов Google на HMS для push и карт когда дойдут руки
- можно потом Прямая раздача APK: обновления только вручную когда дойдут руки
- можно потом Единая нумерация версий во всех каналах когда дойдут руки
Разрешения времени выполнения
Начиная с Android 6 разрешения запрашиваются не при установке, а в момент использования. Пользователь может выдать доступ к геолокации только один раз, а к фотографиям - выборочно, отметив три снимка из галереи. Приложение обязано корректно работать во всех этих состояниях, включая отказ.
Отдельно стоит фоновая геолокация. Она запрашивается вторым шагом, после обычной, и Google требует для неё отдельную форму с обоснованием и видео сценария использования. Если фоновый GPS не является ядром продукта, дешевле обойтись без него: это и модерация, и батарея, и жалобы пользователей.
Доступ к списку установленных приложений через QUERY_ALL_PACKAGES проверяется отдельно и почти всегда отклоняется, если у вас не антивирус или лаунчер.
App Bundle и ключ подписи
С 2021 года новые приложения публикуются в формате App Bundle, а не APK. Google сам собирает из него оптимизированные сборки под конкретное устройство: только нужные ресурсы, только нужная архитектура. Приложение весит меньше, устанавливается быстрее.
Побочный эффект - подпись. При публикации через App Bundle ключ подписи хранит Google, а у вас остаётся ключ загрузки. Терять его нельзя, но потеря восстанавливается через поддержку, в отличие от старой схемы, где утрата ключа означала невозможность обновлять приложение вообще. Ключ загрузки, как и все остальные секреты, должен лежать в зашифрованном виде в репозитории или в хранилище секретов, а не в личных сообщениях.
Дистрибуция помимо Google Play
В России Google Play работает с оговорками: платные приложения и подписки российским разработчикам недоступны, а часть пользователей не может обновляться. Поэтому Android-приложение почти всегда выкладывается в несколько мест.
RuStore де-факто обязателен. Отдельный аккаунт, отдельная модерация, свой SDK для push-уведомлений и платежей. Работы это добавляет немного, обычно несколько дней, но заложить их надо: сборка под RuStore отличается конфигурацией.
Huawei AppGallery имеет смысл, если заметная доля вашей аудитории на телефонах Huawei без сервисов Google. Там придётся заменять их на HMS: свой push, свои карты, своя авторизация. Это уже не пара дней, а полноценная параллельная ветка, и браться за неё стоит только по цифрам из аналитики.
Прямая раздача APK с сайта работает как запасной канал и как способ раздать сборку сотрудникам. Минусы честные: система показывает предупреждение об установке из неизвестного источника, пользователь проходит через настройки безопасности, а обновления надо ставить руками. Для массового продукта это не канал, для внутреннего инструмента компании - вполне рабочий вариант.
Нативные части и тестирование
Всё, чего не хватает веб-слою, дописывается плагином на Kotlin: работа с файловой системой и медиатекой, обработка системного share-intent, биометрия, специфичные интеграции. У меня таких плагинов больше восьми, и на Android самым муторным был обмен данными между приложением и системным шерингом: интент приходит в отдельный процесс, и передача данных требует аккуратной работы с межпроцессным взаимодействием.
Эмулятора для проверки мало. Он не воспроизводит старый WebView, не показывает поведение прошивки Xiaomi, не даёт настоящую слабую сеть и не имеет реального сканера отпечатка. Минимальный набор для приёмки - три-четыре физических телефона: один свежий флагман, один бюджетник с Android на пару версий старше, один Xiaomi или Huawei и, если аудитория этого требует, планшет.
За что отклоняют
Отказы в Google Play чаще приходят от автоматики и почти всегда касаются данных, а не функциональности.
- Data safety не совпадает с поведением. Приложение отправляет идентификатор устройства в аналитику, а в декларации об этом ничего нет.
- Разрешение без обоснования. В манифесте остались камера и микрофон от плагина, которым вы не пользуетесь.
- Фоновая геолокация без формы. Самая частая причина долгой модерации.
- Политика конфиденциальности недоступна. Ссылка ведёт на страницу за авторизацией или на домен, который отвечает не всегда.
- Скриншоты и описание обещают больше, чем есть. Особенно если в описании есть слова про заработок или медицину.
Один код на Capacitor закрывает Android, iOS и веб одной разработкой, а различия платформ уходят в плагины и конфигурацию сборок. Что входит в работу и как считается бюджет под конкретный список экранов, описано на странице разработки Android-приложений.
Ещё про приложения
3 статьи-
Capacitor, React Native или Flutter: чем платит бизнес за выбор
Flutter или React Native, а может Capacitor: экономия против натива у всех похожая. Разбираю, чем именно платит владелец приложения при каждом выборе.
38 показов в месяц у вопроса -
Что такое PWA и когда оно заменяет приложение
Что такое PWA простыми словами: сайт с иконкой на экране, офлайном и уведомлениями. Что умеет, чего не умеет на iOS и в каких случаях заменяет приложение за 350 000 ₽.
860 показов в месяц у вопроса -
Гибридное или нативное приложение: чем платишь за экономию
Разработка кроссплатформенных приложений на Capacitor: сколько экономит гибрид, где он неотличим от натива, где проигрывает и что ломается в реальности.
672 показов в месяц у вопроса




