Сочи · работаем по РФ и СНГ Пн–Пт 10–19 · Сб 11–16 (МСК)
Текст этой страницы без разметки — markdown-версия. Полный список страниц сайта — llms.txt, тексты всех страниц целиком — llms-full.txt.
Формат направления · телефоны и планшеты от 150 000 ₽ 6–9 недель

Приложение для Android: работать у всех и доехать до всех

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

  • Начинаем с вашей статистики: на чём реально сидят ваши пользователи
  • Выкладка в несколько магазинов и прямая раздача файла, если она вам нужна
  • Ключ подписи хранится у вас: без него обновить приложение невозможно
Разобрать свой парк устройств
от 150 000 ₽ ключ подписи у вас 9 лет в разработке
300+проектов за 9 лет
4канала доставки, между которыми выбирают
от 150 000 ₽первая версия под одну платформу
6–9 недельсрок первой сметы направления
7 вопросов о парке устройств и доставке обновлений Перейти к разбору парка устройств

Четыре канала доставки, и магазин не единственный

Вторая особенность этой платформы после разнообразия устройств. Каналов четыре, колонок в таблице три: RuStore и AppGallery устроены для вас одинаково и разобраны вместе. Выбор канала — не техническое решение, а ответ на вопрос, откуда ваши люди ставят приложения и как до них доедет обновление.

Что сравниваемGoogle PlayRuStore и AppGalleryФайл напрямую
Кому подходит Массовой аудитории, привыкшей ставить оттуда Тем, у кого сервисов Google на телефоне нет или они недоступны Своим сотрудникам и подрядчикам, а не широкой публике
Как ставится Привычно и в один шаг Так же, если магазин уже стоит на телефоне Нужно разрешить установку из неизвестного источника — часть людей на этом останавливается
Как приходит обновление Само, по настройкам телефона Само, если магазин включён в автообновление Не приходит. Его нужно доставлять и уговаривать поставить
Что требует от вас Аккаунт разработчика, страницу приложения, анкеты о данных Свой аккаунт и свою страницу в каждом магазине — они не общие Место, откуда скачивать, и способ сообщать людям о новой версии
Главный риск Требования к сборкам поднимаются, и под них надо двигаться Удвоение работы: каждое обновление выкладывается в каждый магазин отдельно Половина людей остаётся на старой версии навсегда

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

Разбираемся

Ключ подписи: единственное, что не восстанавливается

В проекте много вещей, которые можно переделать. Эта — нет. Мы выносим её отдельным уроком, потому что о ней вспоминают тогда, когда уже поздно.

Что это такое. Каждая сборка подписывается ключом, и телефон обновляет приложение только той сборкой, которая подписана тем же самым ключом. Это защита пользователя: чужой не сможет подменить ваше приложение своим. Обратная сторона проста и неприятна: если ключ потерян, выпустить обновление уже установленного приложения невозможно. Не «сложно», а невозможно — ни вам, ни нам, ни площадке.

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

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

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

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

Пять вещей, из-за которых приложение ведёт себя по-разному

Это и есть основная часть сметы. Написать экраны — задача понятная; сделать так, чтобы они одинаково работали на всём, что есть у людей, — нет.

  1. Экраны разной ширины, высоты и плотности

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

  2. Оболочки производителей со своими правилами

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

  3. Агрессивная экономия заряда

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

  4. Старые версии системы живут годами

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

  5. На части устройств нет привычного набора сервисов

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

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

Спросить про свой парк устройств

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

Спросить в Telegram Если аудитория на технике Apple

Семь вопросов про парк и доставку

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

Отметьте то, на что ответ есть

Вердикт появится после первой отметки. Ничего никуда не уходит: это список к подготовке, а не заявка.

Есть ответ на 0 из 7

Четвёртый пункт единственный в списке, который нельзя исправить задним числом. Всё остальное — вопрос денег и времени; потерянный ключ подписи не возвращается ни за какие деньги.

Путь обновления: от сборки до телефона

Пять шагов глазами новой версии приложения. Главное здесь — последний: выпустить обновление и доставить его всем пользователям это разные события, и между ними проходит заметное время.

  1. Сборка подписана

    Тем же ключом, что и все предыдущие версии. Иначе телефон не увидит в ней обновление и откажется ставить поверх. Это первый и необратимый шаг.

    Что нужно от вас: доступ к ключу, который хранится на вашей стороне, с резервной копией в другом месте

    минуты
  2. Разошлась по каналам

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

    Что происходит: проверка в каждом магазине идёт своя и по своим правилам; версии могут появиться не одновременно

    от часов до дней
  3. Телефон узнал о новой версии

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

    Что нужно учесть: сервер должен одновременно обслуживать и новую версию, и предыдущую

    дни
  4. Обновление установилось или нет

    Автообновление включено не у всех: кто-то экономит трафик, кто-то отключил его сознательно, у кого-то не хватает места на телефоне. Часть людей остаётся на старой версии надолго.

    Что помогает: экран внутри приложения, который сообщает о новой версии, и мягкое требование обновиться для критичных изменений

    недели
  5. Старые версии продолжают работать

    И будут работать долго. Значит, серверная часть не может менять формат обмена так, чтобы старая версия перестала понимать ответ: у вас останутся люди, у которых приложение просто сломается.

    Что закладываем: совместимость обмена со старыми версиями и возможность попросить обновиться, когда поддерживать старую больше нельзя

    месяцы

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

Условия, при которых мы сами предложим остановиться

Четыре строки. Три первых выясняются до счёта, четвёртая случается в работе и обычно означает, что список поддерживаемых устройств выбран неверно.

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

Про деньги при остановке — общее для студии и написано на странице оплаты и гарантий. Остановка на разборе не стоит ничего: разбор бесплатный.

От чего зависит цена

Своей сметы у формата нет. Первая версия под одну платформу — вход в направление, от 150 000 ₽, срок 6–9 недель. Разброс внутри задают четыре вещи, и три из них — про устройства и доставку, а не про функции.

  1. Насколько широкий парк поддерживаем

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

  2. Сколько каналов доставки

    Один магазин — одна учётная запись, одна страница, одна выкладка. Три канала — это три комплекта того же самого при каждом обновлении, плюс своя проверка в каждом. Разовые затраты здесь небольшие, а постоянные заметные, и считать надо именно постоянные.

  3. Насколько критичны уведомления и фоновая работа

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

  4. Есть ли у вас работающая серверная часть

    Если сайт, бот или Mini App уже работают со своим бэкендом, приложение подключается к нему. Если серверной части нет, она входит в объём. Отдельно закладывается совместимость: сервер должен понимать и новую версию приложения, и ту, что осталась у людей.

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

Эта страница — один из форматов направления

Здесь написано только про эту платформу: парк устройств, каналы доставки и ключ подписи. Выбор между PWA, Mini App и приложением, три сметы и общие правила магазинов — на странице направления.

Общие правила магазинов и тест «нужно ли вам приложение» — на странице направления. Своей сметы у этой страницы нет намеренно: приложение под одну платформу и есть вход в направление. Мобильные приложения

Когда приложение для Android вам не нужно

Четыре случая. Первые два — этажом ниже по лестнице, третий про соседнюю платформу, четвёртый — про то, что установка не окупится ни при каком качестве.

  1. Если обновление должно доезжать до всех сразу

    Установленное приложение обновляется постепенно и не у всех: кто-то отключил автообновление, у кого-то нет места. У PWA, от 40 000 ₽, этой проблемы нет вовсе — правка уходит к людям в тот же день, потому что приложение и есть сайт. Там, где цена расхождения версий высока, это решает.

  2. Если ваши люди живут в мессенджере

    Ставить приложение готовы не все, а открыть экран внутри Telegram готов каждый, кто там есть. Ни установки, ни разрешений, ни разговора про экономию заряда. Это Mini App, от 50 000 ₽, и ограничения у него тоже есть — они названы на его странице.

  3. Если по вашей статистике почти все на технике Apple

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

  4. Если приложение будут открывать реже раза в месяц

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

Куда идти, если задача звучит иначе

Четыре страницы. Первые две — этажом ниже по лестнице, третья — если приложение нужно сотрудникам, а не клиентам, четвёртая — если серверной части ещё нет.

Разработка приложения для Android: что стоит знать до заказа

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

Почему приложение ведёт себя по-разному на разных телефонах

Пять причин. Разные размеры и плотность экранов: макет под один размер на другом либо обрезается, либо расползается. Оболочки производителей: уведомления, разрешения и системные диалоги показываются по-своему, и часть отличий заметна только на телефонах одной марки. Агрессивная экономия заряда: система выгружает приложение из памяти, и уведомления приходят с задержкой или не приходят. Старые версии системы, которые остаются в ходу. И устройства без привычного набора сервисов, где карты и уведомления недоступны — там нужен запасной путь.

Проверяется это не в эмуляторе, а на живых устройствах тех марок, что чаще встречаются у вашей аудитории. Какие именно — смотрим по вашему счётчику посещений: он отвечает на вопрос точнее любых рыночных долей.

Ключ подписи — единственный необратимый риск

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

Обновление выпустить и доставить — разные события

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

Сколько стоит приложение для Android

Первая версия под одну платформу — вход в направление мобильной разработки, от 150 000 ₽, срок 6–9 недель. Разброс внутри ступени задают четыре вещи: насколько широкий парк устройств поддерживаем, сколько каналов доставки, насколько критичны уведомления и фоновая работа, есть ли у вас работающая серверная часть.

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

Вопросы про приложение для Android

Шесть вопросов, которые задают именно про эту платформу. Про договор, этапы оплаты и гарантии — на странице оплаты и гарантий.

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

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

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

Ровно настолько, насколько они есть у вашей аудитории, — и это видно в вашем счётчике посещений. Каждый шаг в прошлое добавляет обходных решений и проверок, то есть денег. Обычный разумный порядок: посмотреть распределение версий за прошлый год, отрезать длинный хвост и назвать это решением вслух, а не молча. Тем, кто остался за границей, приложение просто не предложат к установке — сайт при этом продолжит работать у всех.

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

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

Пришлите статистику — скажем, какой парк придётся держать в виду

  • Разбор 30 минут: устройства, версии системы, каналы доставки, уведомления
  • Скажем, что поддерживать, а что отрезать, и в какие магазины выкладываться
  • Если хватит PWA или Mini App, услышите это первым и бесплатно
Николай Старостов, основатель Starostoff
Николай Старостов Основатель. Разбор веду лично, не передаю менеджеру
Куда прислать ответ

Ответ в течение рабочего дня

Заявка принята

Вернёмся в течение рабочего дня. Если срочно — напишите в Telegram.