Приложение для Android: работать у всех и доехать до всех
Здесь работа мерится не тем, пропустят ли сборку, а тем, заработает ли она на реальных телефонах вашей аудитории и доедет ли до них обновление. Парк устройств разный: разные экраны, оболочки производителей, версии системы, которые остаются в ходу годами, и своя политика экономии заряда у каждого. Магазин тоже не один: приложение выкладывают в несколько мест или раздают файлом. И есть ключ подписи — единственная вещь в проекте, потеря которой не лечится ничем.
- Начинаем с вашей статистики: на чём реально сидят ваши пользователи
- Выкладка в несколько магазинов и прямая раздача файла, если она вам нужна
- Ключ подписи хранится у вас: без него обновить приложение невозможно
Четыре канала доставки, и магазин не единственный
Вторая особенность этой платформы после разнообразия устройств. Каналов четыре, колонок в таблице три: RuStore и AppGallery устроены для вас одинаково и разобраны вместе. Выбор канала — не техническое решение, а ответ на вопрос, откуда ваши люди ставят приложения и как до них доедет обновление.
| Что сравниваем | Google Play | RuStore и AppGallery | Файл напрямую |
|---|---|---|---|
| Кому подходит | Массовой аудитории, привыкшей ставить оттуда | Тем, у кого сервисов Google на телефоне нет или они недоступны | Своим сотрудникам и подрядчикам, а не широкой публике |
| Как ставится | Привычно и в один шаг | Так же, если магазин уже стоит на телефоне | Нужно разрешить установку из неизвестного источника — часть людей на этом останавливается |
| Как приходит обновление | Само, по настройкам телефона | Само, если магазин включён в автообновление | Не приходит. Его нужно доставлять и уговаривать поставить |
| Что требует от вас | Аккаунт разработчика, страницу приложения, анкеты о данных | Свой аккаунт и свою страницу в каждом магазине — они не общие | Место, откуда скачивать, и способ сообщать людям о новой версии |
| Главный риск | Требования к сборкам поднимаются, и под них надо двигаться | Удвоение работы: каждое обновление выкладывается в каждый магазин отдельно | Половина людей остаётся на старой версии навсегда |
Каналы не бесплатны в сопровождении. Каждый магазин — это отдельная учётная запись, отдельная страница приложения, отдельная анкета и отдельная выкладка при каждом обновлении. Поэтому список каналов выбирается по аудитории, а не «на всякий случай»: два магазина вместо одного — это заметная добавка к постоянной работе, и мы называем её до сметы. Общие правила магазинов, одинаковые для обеих платформ, разобраны на странице направления
Ключ подписи: единственное, что не восстанавливается
В проекте много вещей, которые можно переделать. Эта — нет. Мы выносим её отдельным уроком, потому что о ней вспоминают тогда, когда уже поздно.
Что это такое. Каждая сборка подписывается ключом, и телефон обновляет приложение только той сборкой, которая подписана тем же самым ключом. Это защита пользователя: чужой не сможет подменить ваше приложение своим. Обратная сторона проста и неприятна: если ключ потерян, выпустить обновление уже установленного приложения невозможно. Не «сложно», а невозможно — ни вам, ни нам, ни площадке.
Что происходит при потере. Приходится публиковать новое приложение с новым ключом. Для пользователей это другое приложение: они не увидят обновления, а установят его заново, и только если узнают, что оно появилось. Отзывы, оценки и накопленная история остаются у старого. Поэтому вопрос «где хранится ключ» стоит задавать подрядчику на первом разговоре, а не на прощальном.
Как правильно. Ключ хранится у вас — в вашем хранилище паролей или у вашего технического специалиста, с резервной копией в другом месте. Мы используем его для сборки, но не остаёмся его единственным держателем. Часть магазинов предлагает управление ключом на своей стороне: это снимает риск потери, но добавляет зависимость от площадки, и решение об этом принимаете вы, зная обе стороны.
Рядом стоит второй вопрос — кто владеет учётными записями в магазинах. Логика та же, что и на соседней платформе: аккаунты оформляются на вашу компанию, и приложение вместе с отзывами принадлежит вам. Проверяется это одним вопросом подрядчику, и ответ «на нас, так проще» означает, что приложение будет не вашим. Подробнее про состав того, что остаётся у клиента, — на странице соседней платформы, там это разобрано списком.
Стоимость учётных записей разработчика в магазинах и их комиссии мы числами не называем: условия площадок разные и меняются. Сверяем их на старте вашего проекта.
Пять вещей, из-за которых приложение ведёт себя по-разному
Это и есть основная часть сметы. Написать экраны — задача понятная; сделать так, чтобы они одинаково работали на всём, что есть у людей, — нет.
-
Экраны разной ширины, высоты и плотности
От узких недорогих телефонов до планшетов и складных устройств. Макет, нарисованный под один размер, на другом либо обрезается, либо расползается. Это не чинится «резиновой вёрсткой» само собой: раскладка проектируется с расчётом на диапазон, а проверяется на живых устройствах, а не только в эмуляторе.
-
Оболочки производителей со своими правилами
Одна и та же система у разных производителей ведёт себя по-разному: иначе показываются уведомления, иначе работают разрешения, иначе выглядят системные диалоги. Самое коварное — тихие отличия, из-за которых что-то не работает только на телефонах одной марки, и узнаёте вы об этом из отзыва.
-
Агрессивная экономия заряда
Многие оболочки выгружают приложения из памяти и отключают им фоновую работу, чтобы телефон дольше держал заряд. Практический итог: уведомления приходят с задержкой или не приходят вовсе, фоновая синхронизация не срабатывает. Это лечится, но требует отдельной работы и отдельной проверки — и знать о нём надо до того, как вы пообещаете пользователям мгновенные уведомления.
-
Старые версии системы живут годами
Обновляются здесь далеко не все и не сразу: телефон работает, значит, менять его незачем. Поэтому приходится решать, насколько глубоко в прошлое мы поддерживаем систему, — и каждый шаг назад добавляет обходных решений и проверок. Решается это по вашей статистике посещений, а не по общим соображениям.
-
На части устройств нет привычного набора сервисов
Карты, уведомления и вход через популярные сервисы на части телефонов недоступны. Если приложение построено на них без запасного варианта, у заметной доли людей оно просто не работает. Поэтому мы спрашиваем на разборе, есть ли такие устройства у вашей аудитории, и закладываем запасной путь тогда, когда он нужен.
Долей рынка и списков популярных моделей мы не приводим: они разные по отраслям и по городам, а устаревают быстрее, чем пишется страница. На разборе смотрим вашу статистику посещений — она точно говорит, на чём сидят именно ваши люди.
Спросить про свой парк устройств
Пришлите статистику посещений с телефоновВыгрузка из вашего счётчика за прошлый год: устройства, версии системы, размеры экранов. Скажем, какие модели придётся держать в виду, насколько глубоко поддерживать старые версии и в какие магазины выкладываться. Без счёта и без созвона.
Спросить в Telegram Если аудитория на технике AppleСемь вопросов про парк и доставку
Отмечайте то, на что ответ у вас есть. Ничего никуда не отправляется. Большинство ответов лежит в вашем счётчике посещений — открыть его стоит до разговора с подрядчиком.
Вердикт появится после первой отметки. Ничего никуда не уходит: это список к подготовке, а не заявка.
Есть ответ на 0 из 7
Четвёртый пункт единственный в списке, который нельзя исправить задним числом. Всё остальное — вопрос денег и времени; потерянный ключ подписи не возвращается ни за какие деньги.
Путь обновления: от сборки до телефона
Пять шагов глазами новой версии приложения. Главное здесь — последний: выпустить обновление и доставить его всем пользователям это разные события, и между ними проходит заметное время.
-
Сборка подписана
Тем же ключом, что и все предыдущие версии. Иначе телефон не увидит в ней обновление и откажется ставить поверх. Это первый и необратимый шаг.
Что нужно от вас: доступ к ключу, который хранится на вашей стороне, с резервной копией в другом месте
минуты -
Разошлась по каналам
В каждый магазин отдельно: своя учётная запись, свои описания, свои анкеты. Если каналов три, это три выкладки при каждом обновлении, и делать их приходится каждый раз.
Что происходит: проверка в каждом магазине идёт своя и по своим правилам; версии могут появиться не одновременно
от часов до дней -
Телефон узнал о новой версии
Магазин раскатывает обновление не всем сразу, а постепенно. Это полезно — плохую версию можно остановить, — но означает, что в первые дни у людей разные версии приложения.
Что нужно учесть: сервер должен одновременно обслуживать и новую версию, и предыдущую
дни -
Обновление установилось или нет
Автообновление включено не у всех: кто-то экономит трафик, кто-то отключил его сознательно, у кого-то не хватает места на телефоне. Часть людей остаётся на старой версии надолго.
Что помогает: экран внутри приложения, который сообщает о новой версии, и мягкое требование обновиться для критичных изменений
недели -
Старые версии продолжают работать
И будут работать долго. Значит, серверная часть не может менять формат обмена так, чтобы старая версия перестала понимать ответ: у вас останутся люди, у которых приложение просто сломается.
Что закладываем: совместимость обмена со старыми версиями и возможность попросить обновиться, когда поддерживать старую больше нельзя
месяцы
Практический вывод для архитектуры тот же, что и на соседней платформе, но по другой причине. Там правки ждут проверки, здесь — ждут, пока обновление доедет до людей. В обоих случаях всё, что может понадобиться поменять срочно, держится на сервере, а не внутри сборки. Разница в том, что здесь к этому добавляется совместимость: сервер обязан понимать и новую версию приложения, и ту, что стоит у людей давно.
Условия, при которых мы сами предложим остановиться
Четыре строки. Три первых выясняются до счёта, четвёртая случается в работе и обычно означает, что список поддерживаемых устройств выбран неверно.
| Когда | Что обнаруживается | Что делаем |
|---|---|---|
| На разборе | Приложению не нужны ни железо, ни работа без сети — нужны иконка на экране и уведомления | Предлагаем PWA: дешевле, без магазинов и без ожидания, пока обновление доедет до людей. Отказываемся от более дорогой работы и говорим почему |
| На разборе | Приложение планируется раздавать файлом широкой аудитории | Объясняем, что установка из файла отсекает часть людей, а обновления до них не дойдут. Файловая раздача годится для сотрудников и подрядчиков, для клиентов — нет |
| На разборе | Ключ подписи негде хранить и некому за него отвечать | Не начинаем, пока это не решено. Хранить ключ только у подрядчика — значит поставить будущее приложения в зависимость от одной компании, и мы этого не предлагаем |
| В работе | Список поддерживаемых устройств растёт, и каждая новая модель приносит свои особенности | Останавливаемся и режем список по вашей же статистике: поддерживаем то, на чём сидит большинство ваших людей. Поддерживать всё сразу — способ не выпустить приложение никогда |
Про деньги при остановке — общее для студии и написано на странице оплаты и гарантий. Остановка на разборе не стоит ничего: разбор бесплатный.
От чего зависит цена
Своей сметы у формата нет. Первая версия под одну платформу — вход в направление, от 150 000 ₽, срок 6–9 недель. Разброс внутри задают четыре вещи, и три из них — про устройства и доставку, а не про функции.
-
Насколько широкий парк поддерживаем
Корпоративный парк из одинаковых устройств — самая дешёвая ситуация: проверки короткие, сюрпризов мало. Массовая аудитория с разными телефонами и старыми версиями системы означает диапазон раскладок, обходные решения и заметно больше проверок на живых устройствах. Это главный фактор сметы на этой платформе.
-
Сколько каналов доставки
Один магазин — одна учётная запись, одна страница, одна выкладка. Три канала — это три комплекта того же самого при каждом обновлении, плюс своя проверка в каждом. Разовые затраты здесь небольшие, а постоянные заметные, и считать надо именно постоянные.
-
Насколько критичны уведомления и фоновая работа
Вспомогательные уведомления делаются просто. Сообщение, которое обязано дойти немедленно, требует отдельной работы с экономией заряда на разных оболочках и проверки на конкретных марках телефонов. Фоновая синхронизация — то же самое: там, где система выгружает приложение из памяти, придётся искать обходной путь.
-
Есть ли у вас работающая серверная часть
Если сайт, бот или Mini App уже работают со своим бэкендом, приложение подключается к нему. Если серверной части нет, она входит в объём. Отдельно закладывается совместимость: сервер должен понимать и новую версию приложения, и ту, что осталась у людей.
Три сметы направления с составом и сроками — на странице мобильных приложений. Стоимость учётных записей в магазинах и их комиссии мы не называем: это чужие тарифы, вы платите их напрямую площадкам.
Эта страница — один из форматов направления
Здесь написано только про эту платформу: парк устройств, каналы доставки и ключ подписи. Выбор между PWA, Mini App и приложением, три сметы и общие правила магазинов — на странице направления.
Общие правила магазинов и тест «нужно ли вам приложение» — на странице направления. Своей сметы у этой страницы нет намеренно: приложение под одну платформу и есть вход в направление. Мобильные приложения
Когда приложение для Android вам не нужно
Четыре случая. Первые два — этажом ниже по лестнице, третий про соседнюю платформу, четвёртый — про то, что установка не окупится ни при каком качестве.
-
Если обновление должно доезжать до всех сразу
Установленное приложение обновляется постепенно и не у всех: кто-то отключил автообновление, у кого-то нет места. У PWA, от 40 000 ₽, этой проблемы нет вовсе — правка уходит к людям в тот же день, потому что приложение и есть сайт. Там, где цена расхождения версий высока, это решает.
-
Если ваши люди живут в мессенджере
Ставить приложение готовы не все, а открыть экран внутри Telegram готов каждый, кто там есть. Ни установки, ни разрешений, ни разговора про экономию заряда. Это Mini App, от 50 000 ₽, и ограничения у него тоже есть — они названы на его странице.
-
Если по вашей статистике почти все на технике Apple
Такое бывает в отдельных отраслях и в отдельных городах, и решается это не рыночными долями, а вашим счётчиком за прошлый год. Тогда первой разумнее взять соседнюю платформу: там однородный парк и другие расходы.
-
Если приложение будут открывать реже раза в месяц
Телефоны здесь часто недорогие, память на них кончается быстро, и первое, что удаляют, — приложения, которыми не пользуются. Там, где к вам обращаются несколько раз в год, установка не доживёт до второго обращения. Полезнее сайт, письмо или сообщение в мессенджер.
Куда идти, если задача звучит иначе
Четыре страницы. Первые две — этажом ниже по лестнице, третья — если приложение нужно сотрудникам, а не клиентам, четвёртая — если серверной части ещё нет.
Разработка приложения для Android: что стоит знать до заказа
Главные расходы этой платформы лежат не в написании экранов, а в двух вещах: разнообразии устройств и доставке обновлений. Парк разный — экраны, оболочки производителей, версии системы, которые живут годами, и своя политика экономии заряда у каждой марки. Магазинов больше одного, а часть приложений вообще раздают файлом. Всё это считается до сметы, потому что именно отсюда берётся разброс в цене.
Почему приложение ведёт себя по-разному на разных телефонах
Пять причин. Разные размеры и плотность экранов: макет под один размер на другом либо обрезается, либо расползается. Оболочки производителей: уведомления, разрешения и системные диалоги показываются по-своему, и часть отличий заметна только на телефонах одной марки. Агрессивная экономия заряда: система выгружает приложение из памяти, и уведомления приходят с задержкой или не приходят. Старые версии системы, которые остаются в ходу. И устройства без привычного набора сервисов, где карты и уведомления недоступны — там нужен запасной путь.
Проверяется это не в эмуляторе, а на живых устройствах тех марок, что чаще встречаются у вашей аудитории. Какие именно — смотрим по вашему счётчику посещений: он отвечает на вопрос точнее любых рыночных долей.
Ключ подписи — единственный необратимый риск
Каждая сборка подписывается ключом, и телефон обновляет приложение только сборкой с тем же ключом. Если ключ потерян, выпустить обновление уже установленного приложения невозможно: придётся публиковать новое, а отзывы, оценки и накопленная история останутся у старого. Поэтому ключ хранится у вас, с резервной копией, а вопрос «где он будет лежать» стоит задать подрядчику на первом разговоре.
Обновление выпустить и доставить — разные события
Магазин раскатывает новую версию постепенно, автообновление включено не у всех, а при раздаче файлом обновление не приходит вовсе. Отсюда два следствия для архитектуры. Первое: серверная часть обязана какое-то время понимать и новую версию приложения, и ту, что осталась у людей. Второе: всё, что может понадобиться поменять срочно, держится на сервере, а не внутри сборки, — тогда правка доезжает мгновенно и ко всем.
Сколько стоит приложение для Android
Первая версия под одну платформу — вход в направление мобильной разработки, от 150 000 ₽, срок 6–9 недель. Разброс внутри ступени задают четыре вещи: насколько широкий парк устройств поддерживаем, сколько каналов доставки, насколько критичны уведомления и фоновая работа, есть ли у вас работающая серверная часть.
Отдельно стоит считать не разовые, а постоянные расходы: каждый дополнительный магазин — это своя учётная запись, своя страница и своя выкладка при каждом обновлении. Стоимость учётных записей и комиссии площадок мы числами не называем: это чужие тарифы, вы платите их напрямую, и они меняются.
Вопросы про приложение для Android
Шесть вопросов, которые задают именно про эту платформу. Про договор, этапы оплаты и гарантии — на странице оплаты и гарантий.
Остался вопрос?
Написать в Telegram, отвечаем за 30 минутСмотрим по аудитории. Если ваши люди привыкли ставить приложения из одного магазина и он у них работает, одного достаточно. Если заметная часть сидит на устройствах, где привычного набора сервисов нет, нужен второй канал. Помните про постоянные расходы: каждый магазин — это своя учётная запись, своя страница и своя выкладка при каждом обновлении. Мы называем эту добавку до сметы, а не после третьего обновления.
Для сотрудников и подрядчиков — да, это рабочий и распространённый путь. Для клиентов — плохо: установка из файла требует разрешить неизвестный источник, и часть людей на этом останавливается, а обновления до них не дойдут вовсе. Если приложение для внешней аудитории, магазин нужен. Если для своих — файловая раздача экономит и время, и деньги, а вместе с ней имеет смысл обсудить вариант вообще без установки
Из-за экономии заряда: многие оболочки выгружают приложение из памяти и ограничивают ему фоновую работу. Это делается ради времени работы телефона, и отключить это за пользователя нельзя. Что можно: выбрать правильный способ доставки уведомлений, попросить пользователя один раз снять ограничение для вашего приложения и проверить поведение на телефонах популярных у вас марок. Обещать, что дойдёт всё и мгновенно, мы не станем — это зависит не от нас.
Ровно настолько, насколько они есть у вашей аудитории, — и это видно в вашем счётчике посещений. Каждый шаг в прошлое добавляет обходных решений и проверок, то есть денег. Обычный разумный порядок: посмотреть распределение версий за прошлый год, отрезать длинный хвост и назвать это решением вслух, а не молча. Тем, кто остался за границей, приложение просто не предложат к установке — сайт при этом продолжит работать у всех.
У вас: в вашем хранилище паролей или у вашего технического специалиста, с резервной копией в другом месте. Мы используем его для сборки, но не остаёмся единственным держателем. Часть магазинов предлагает хранить ключ на своей стороне — это снимает риск потери и добавляет зависимость от площадки; решение принимаете вы, зная обе стороны. Потеря ключа не лечится ничем: обновить уже установленное приложение будет нельзя.
Они будут работать, и долго. Поэтому серверная часть проектируется так, чтобы понимать и новую версию, и предыдущие: изменение формата обмена «одним днём» сломает приложение у тех, кто не обновился. Когда поддерживать старую версию больше нельзя, приложение показывает экран с просьбой обновиться — мягко, если изменение косметическое, и жёстко, если работать дальше действительно невозможно. Этот механизм закладывается сразу.
Пришлите статистику — скажем, какой парк придётся держать в виду
- Разбор 30 минут: устройства, версии системы, каналы доставки, уведомления
- Скажем, что поддерживать, а что отрезать, и в какие магазины выкладываться
- Если хватит PWA или Mini App, услышите это первым и бесплатно
Заявка принята
Вернёмся в течение рабочего дня. Если срочно — напишите в Telegram.
Или напишите сразу:
Telegram · отвечаем лично за 30 минут