Как "выжить" при разработке мобильного приложения | OTUS

Как "выжить" при разработке мобильного приложения

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

photo_2019_06_21_08_23_45-1801-6971b3.jpg

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

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

Это одна из ключевых проблем работы с мобильными прилами -- команды вынуждены тратить ресурсы на поддержку огромного числа уже вышедших версий, если не хотят получить от пользователей хейт и сохранить продажи. Причем хейт от пользователей заразен и снижает конверсию на привлечении новых пользователей. Выкатив новую версию мобилки, нужно быть готовым, что она будет юзаться пользователями минимум год-полтора. Со всеми опечатками и глючащими экрана, которые крешат весь прил (например, платёжная система вдруг начала глючить). Не забываем юзать крешлитикс, чтобы видеть все такие креши.

902dd092436cf498acd0db7fb3ab28b7_1-1801-a1deeb.jpg

Как с этим жить?

Выстройте аккуратненькую систему роутинга для всех ключевых экранов -- тогда можно будет меню всего прила забирать с бекенда (с кешированием разумеется). Каждый пункт меню с бекенда приходит с названием, оформлением и статусом о том, рабочий он или нет. Например, при попытке перейти на экран, который вдруг оказался нерабочим, можно на бекенде указать алерт вместо него "Ой! Что-то случилось, но разработчиков уже заперли в офисе и они не выйдут, пока не починят!"

На такое меню можно прикреплять ссылочки на gzip экраны с html, в которых можно обновлять тексты, рекламные и маркетинговые материалы. Ими можно временно замещать нерабочие экраны. Умный прил в прозрачном режиме экраны выкачивает и кеширует у себя, чтобы отображать мгновенно. Не забудьте свериться с политиками аппстора/гуглплея о том, какие экраны можно таким образом загружать.

Обращаясь к бекенду надо бы указывать версию прила, а настроенный хорошими ребятам умный бекенд в ответ передаст ряд алертов, предназначенных для этой версии (например, о том, что в данной версии прила недоступна функция, вышедшая в новых версиях и для их использования прил надо обновить).

С запросами к бекенду надо быть аккуратным -- они по возможности должны быть асинхронными, чтобы сам прил на рендере экранов не тормозил. Такие тормоза ужасно бесят!

На бекенде хорошо бы поставить clickhouse, в котором логировать абсолютно все запросы и ответы мобилки. Очень помогает в расследовании инцидентов.

Переведите все библиотеки, которые возможно, в облако. Многие разработки используют сторонние библиотеки, в том числе и платные. Они могут в любой момент превратить ваш прил в тыкву. А если в это время ещё и аппстор/гуглплей вдруг заблокирует обновление, потребовав какие-то недостащие юридические документы, вечер перестанет быть томным.

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

1-1801-fa36b7.png

Договоритесь с девопсами, чтобы они через кубер регулировали количество инстансов и их балансировку по нагрузке. Таким образом вы избавитесь от громадного геморроя. Ну и от вендор-лока тоже спасете себя -- бизнес будет благодарен!

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

На уровне архитектуры важно воспринимать всю массу работающих приложений целиком, как неотъемлемую часть системы.

1-1801-fe3f1c.png

Больше полезных материалов смотрите на моем телеграм-канале: https://t.me/ctorecords.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто