Наш блог

Тестовый пост 1

Масштабируемая архитектура мобильного приложения: чеклист 

Мы в команде 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 ваше приложение будет масштабируемым в той мере, в который вы этого хотите и нуждаетесь.