Мы в команде HOUSE OF APPS не раз акцентировали внимание на вопросе масштабируемой архитектуры при разработке мобильных приложений. В нынешних условиях эта тема стала еще более актуальной. С одной стороны, на рынке воцарилась атмосфера полной неопределенности. С другой стороны, эта неопределенность, требующая повышенной гибкости, усиливает смену поведенческих паттернов среди интернет-покупателей. Так что трансформация бизнеса из eCommerce в mCommerce — это вопрос не просто успеха, но и элементарного выживания. А в mCommerce без масштабируемости не обойтись.
Почему мы говорим о срочной необходимости адаптироваться не под электронную, а под мобильную коммерцию? Достаточно посмотреть на статистику. Так, по данным Insider Intelligence, на долю mCommerce в 2024 году будет приходится 620.97 миллиарда долларов. Это 42.9% от всего прогнозируемого объема электронной торговли.
При этом многие бизнесы продолжают действовать по-старому, все еще игнорируя тренды mobile first. И на это есть причина. Ведь этот новый мобильный мир требует кардинальной смены приоритетов, включая и архитектуру мобильных приложений. Вот что мы думаем об этом в HOUSE OF APPS.
Сегодняшний рынок мобильных приложений
Во-первых, сегмент мобильных приложений растет, и этот рост будет только усиливаться в ближайшей перспективе:
В 2021 году число скачиваний мобильных приложений достигло 230 миллиардов. Для сравнения, в 2019 их было 204 миллиарда;
Общий объем выручки, сгенерированной мобильным приложениями, превысил 400 миллиардов долларов. Ожидается, что в 2025 году он дойдет до отметки 613 миллиардов.
Если же посмотреть на тенденции в сегменте mCommerce, ключевом секторе для HOUSE OF APPS, рост окажется еще более весомым. Например, Insider Intelligence предсказывает что в 2024 объем мобильных продаж достигнет 4,5 триллиона долларов. Это будет почти 70% от всех eCommerce продаж.
При этом, чтобы воспользоваться этими новым возможностями, мобильные приложения также надо разрабатывать по-новому. Чтобы они могли справляться с растущим числом транзакций, обслуживать растущее число клиентов и подключать растущее число поставщиков, они должны быть действительно легко масштабируемыми.
А что такое “масштабируемость”?
Что мы подразумеваем под масштабируемостью и эластичностью применительно к мобильным приложениям? Это и просто, и сложно одновременно.
С технической точки зрения, по словам TechTarget, это способность приложения адекватно работать при постоянно растущем объеме обрабатываемых данных. Действительно, по мере того как у вашего приложения растет клиентская база и количество скачиваний, вам нужно не только обслуживать эти запросы, но и добавлять новые фичи для поддержки роста. Ключевым пунктом и и показателем эффективности становится число запросов, которые вы можете обработать без задержек или падения всей системы.
Вот это-то просто и сложно одновременно.
Здесь возможны два подхода (хотя в реальности они почти не применяются в чистом виде, речь, скорее, идет о той или иной комбинации):
Горизонтальное масштабирование: в этом случае вы просто добавляете все больше вычислительных мощностей за счет нового “железа”;
Вертикальное масштабирование, которое предполагает написание более оптимизированного кода и использование более продвинутых подходов к базам данных.
Как уже упоминалось, на практике применяется комбинация этих двух подходов. И данный баланс надо искать с учетом целого ряда факторов. В этом-то и сложность.
Основы масштабируемости
Масштабируемая архитектура, то есть, оптимальная комбинация софта и железа, должна быть выстроена так, чтобы ее можно было легко поддерживать и обновлять. Приоритетные факторы при поиске этой комбинации включают в себя:
Клиентский опыт (customer experience), сфокусированный на быстрых и интуитивно понятных действиях пользователя;
Серверную часть, дающую возможность справиться с любой реалистичной нагрузкой;
Эффективность в плане издержек и прибыли. То есть, те средства, которые вы собираетесь потратить на ваше приложение, должны быть ниже, чем доход, который вы собираетесь получать с него.
Собственно, чеклист
Начнем с ряда признаков масштабируемой архитектуры мобильных приложений:
1. Как можно меньше зависимостей. Здесь имеется в виду тот факт, что частное изменение в коде не должно порождать серьезных изменений в кодовой базе. Иными словами, новая фича не должна заставлять вас переписывать весь базовый код.
2. Тестируемость кода. Здесь речь идет об общей зоне ответственности инженеров и тестировщиков. Разработчики всегда должны помнить, что их код должен оставаться доступным для понимания QA-специалистов. Они не должны в нем теряться.
3. Повторное использование кода. Адекватное мобильное приложение должно основываться не на мифических “прорывных” подходах, а на понятных библиотеках. Эта схема сэкономит вам и время, и ресурсы.
4. Соблюдайте стандарты iOS или Android. Да, соответствовать всем их требованиям может показаться напрасной тратой ресурсов. Но поверьте, соблюдение их правил сильно сэкономит ваши ресурсы в будущем.
Параллельно, учитывайте эти два измерения масштабируемости:
Масштабируемость интерфейса, когда удобные интерфейсы нормально связаны с базами данных на серверах;
Масштабируемость самой серверной части в части расширения.
Естественно, соблюсти данный чеклист непросто. Ведь вам надо определиться с:
Базой данных (например, MongoDB, MySQL, PostgreSQL и др.)
Языком, который позволяет писать чистый код и использовать ресурсы для программистов;
Фреймворками с готовыми библиотеками.
Поиск идеальной комбинации может быть проблемой. Учесть все переменные трудно, если у вас нет многолетнего профильного опыта. Так что самый оптимальный вариант — работать с надежным вендором, который реализовал уже не один мобильный проект. Например, c HOUSE OF APPS.
В числе прочего, мы можем помочь вам с такими вопросами как:
Способом обработки данных, будь то централизованный подход или клиентская сторона;
Оптимальный вариант работы с сетью доставки и дистрибуции контента (Content Delivery Network) для работы в глобальном масштабе и соответствующего кеширования;
API, связывающие ваше мобильное приложение с другими приложениями и сервисами.
Заключение
Команда HOUSE OF APPS всегда готова принять участие в интересных проектах по мобильной разработке. Заботит ли вас внешний интерфейс и логика приложения, обработка и защита данных, или любой другой профильный вопрос — мы поможем вам реализовать задуманное!. С HOUSE OF APPS ваше приложение будет масштабируемым в той мере, в который вы этого хотите и нуждаетесь.