Что такое бэкенд и когда он нужен
Мобильные приложения можно условно поделить на те, которые не отправляют запросы удалённой базе данных, и те, которые отправляют. К первой группе относятся приложения вроде таймеров, будильников, наборов стикеров, некоторых игр и редакторов для обработки фото. Ко второй группе относятся приложения, в которых нужно как минимум регистрировать пользователей и хранить их имя, фамилию и телефон. Для хранения этих данных нужно отдельное место, и это место называют серверной частью, или бэкендом, а мобильная разработка такого приложения ведётся с помощью
Клиентская часть — это мобильное приложение, которое показывает пользовательский интерфейс и функции для достижения пользовательских целей. Если взять за пример приложение
Серверная часть (бэкенд) — это компьютер с работающей на нём программой для обработки данных. Как и мобильное приложение, эта программа тоже является кодом и его тоже нужно программировать. Приложение
Хороший бэкенд обладает:
- гибкостью, позволяющей
бэкенд-разработчикам добавлять новые возможности без проблем и костылей и тем самым развивать приложение; - возможностью масштабирования;
- активной техподдержкой, способной дать быстрый ответ на вопрос, быстро исправить ошибку, сделать нужное изменение в интересах продукта.
Пользователь не видит бэкенд, но его роль важна. Это самостоятельная часть вашего цифрового сервиса, в которую нужно вкладываться. И если не понимать бэкенд как отдельный продукт, то он обесценится до одной лишь документации к API.
Что такое API
API (Application Programming Interface) — это часть бэкенда, играющая роль языка общения между сервером и клиентом (в нашем случае — с мобильным приложением). API служит для представления серверных данных в формате, удобном для этого общения.
Когда мы говорим «API мобильного приложения», мы имеем в виду не только формат представления данных, но приложение, которое берёт данные, обрабатывает их и отдаёт клиенту в этом формате. Когда мы говорим «пишем API», это значит, что мы программируем
Для хорошего API характерны:
- следование общим принципам разработки,
- актуальная и полная документация,
- стабильность работы,
- быстрое время ответа на запрос от клиента,
- версионирование.
Бывает так, что
Почему заказ бэкенда у студии мобильной разработки повысит качество продукта и снизит бюджет
Каждый раз, когда к нам приходит проект, бэкендом которого занимается команда на стороне клиента, наши мобильные разработчики закладывают в оценку дополнительный бюджет. Причиной тому — возможные издержки и непредсказуемость процесса. И то, и другое значительно снизится, если команды мобильной и серверной разработки будут рядом.
Качество и стоимость процесса создания мобильного приложения стоят на трёх аспектах отношений команд мобильной и
Стандартизированные процессы
Существуют разные форматы написания API. Если мобильные разработчики знают, в каком формате пишут
Стандартизация помогла нам сэкономить время на написании таймера для ограничения количества отправленных СМС при регистрации. Впервые мы сделали его для приложения Киноголик, а позже воспроизвели в приложении Мой Доктор.
Ограничить время отправки важно по двум причинам:
- За СМС платит владелец приложения, и многократное нажатие кнопки «отправить» разоряет его.
- СМС доставляются с задержкой. Если запросить много кодов подряд, то они придут разом и запутают пользователя.
Таймер — это не только обратный отсчёт времени, который пользователь видит в интерфейсе, но и
- Если злоумышленник взломает приложение, или кнопка отправки зависнет, а таймер сбросится, то бэкенд всё равно не позволит отправлять СМС до истечения времени.
- Если пользователь закроет приложение и снова откроет, то бэкенд отправит приложению оставшееся количество секунд до повторной отправки СМС и пользователю не придётся ждать всё время сначала.
- Во время тестирования время на таймере можно установить поменьше, а если у провайдера проблемы, то побольше.
Несмотря на то, что задача небольшая, нужно согласовать схему взаимодействия бэкенда и мобильного приложения и договориться, в каком формате будет отправляться количество оставшегося времени и попыток.
Если на каждом проекте, где есть такой таймер, принцип передачи информации будет разным, то задача каждый раз будет отнимать большое количество часов. Наши команды мобильной и серверной разработки стандартизировали этот процесс, чем и ускорили его. В этом одно из преимуществ, которое вы получите, если закажете
Заказывая разработку API у нас, мы гарантируем, что документацию к нему подготовит либо аналитик, либо
Другие риски связаны с тем, что клиент не всегда может нанять такого
Все эти технические неурядицы звучат для наших клиентов одинаково: сроки горят, а деньги уходят не туда. Решить значительную их часть можно, когда обе команды рядом.
Быстрая и доверительная коммуникация
Есть две команды, совершенно не знающие характеров друг друга, не имеющие общих интересов и не общающиеся на обедах и перекурах. Сколько времени им потребуется, чтобы сработаться? Похожий пример: будь у вас финансовые проблемы, кто быстрее вошёл бы в ваше положение — первый встречный или родственники и ближайшие друзья?
Хорошая коммуникация между отделами обусловлена возможностью в любой момент пройти несколько метров из одного кабинета в другой и обсудить проблему лично. Наша команда была лишена этой возможности на одном из проектов, где за бэкенд отвечал разработчик из Европы. Пятичасовая разница во времени ставила всех в затруднительное положение:
Пока наша команда устраняет последствия подобных событий, клиенты подсчитывают убытки — и финансовые, и репутационные. Вот ещё несколько запомнившихся кейсов:
- В одном из приложений есть кнопка для отмены подписки. Сторонние
бэкенд-разработчики решили изменить интерфейс метода отписки от рассылок, но не поставили нас в известность. Работа клиента и сервера рассинхронизировалась, поэтому письма продолжали приходить пользователям. Кнопка не работала 3 месяца, что привело к гневным отзывам от пользователей и удару по имиджу компании. - Пользователи не могли сделать через приложение заказ на адрес, включающий знак «/». Чтобы сервер перестал считать их невалидными,
бэкенд-команде нужно было вставить этот знак в регулярное выражение в коде, которое проверяет адреса. Между обнаружением проблемы и её решением прошла неделя — достаточно, чтобы потерятькакое-то количество пользователей. - Перед нами был выбор: своими силами внести правки в приложении или дождаться буквально одной манипуляции от серверных разработчиков. Когда ждать было больше нельзя, мы приняли меры, но финансовые издержки неприятно впечатляют: оплата работы iOS и
Android-разработчиков , полный регресс, тестирование, релиз — за всё это платит клиент.
Когда команды работают по одну сторону, они находят решение без стресса, споров и необходимости зарабатывать авторитет в глазах друг друга. В то же время в руках менеджеров находятся рычаги давления, которых они лишены, когда команда удалённая. Всё это ускорит темпы работы над вашим проектом.
В ситуациях, когда
Актуальная документация
Интеграция мобильного приложения с готовым сторонним сервисом — типичная для разработки история: писать платёжные сервисы и чаты под одно приложение с нуля невыгодно. Как и всякие другие, эти сервисы и их API развиваются и обновляются, что должно отражаться в документации, которая доступна на официальном сайте сервиса.
Но что, если разработчики сервиса не сделают этого своевременно? Тогда наша команда будет настраивать интеграцию по неактуальной документации, и приложение не будет понимать, на каком языке сервис общается с ним. Служба поддержки доступна только тем, кто оплатил аккаунт, но представим, что он не оплачен. В результате разработчик от беспомощности строит предположения, гуглит форумы и тратит на задачу больше времени, чем мог бы. А вместе со временем он тратит ваши деньги.
Те же трудности могут испытать мобильные разработчики студии, когда будут интегрироваться с бэкендом, сделанным на стороне. Устаревшая документация — результат человеческого фактора: не все изменения вносятся своевременно. Любой связанный с этим конфуз команды, находящиеся по одну сторону, решают диалогом. Но если вы захотите передать проект, разработанный у нас, на поддержку другой студии, то можете быть уверены: вы получите документацию, в которой разберётся иновичок.
Что помогает нам в работе
Гладкое взаимодействие между отделами мобильной и
- При написании API мы придерживаемся общепринятой архитектуры REST. Это позволяет разработчикам интуитивно понимать работу API.
- Для повышения качества кода у нас отлажен процесс
код-ревью . Его смысл в том, чтобы любые изменения, вносимые программистом, попадали в основное хранилище кода и в релизную версию приложения только после того, как их проверят остальные участники команды. Качественный код лучше воспринимается даже теми разработчиками, которые прежде не работали на проекте, проще улучшается и изменяется, лучше поддерживается и тестируется. Подробнее о том, что такоекод-ревью , читайте в статье нашего аналитика. - Для описания документации мы используем сервисы, например, Apiary и Swagger. С ними документация читается просто, а пишется быстро.
- Для автоматизированного запуска тестов и сборки приложения используем принцип Continuous Integration. Он освобождает нас от ручной работы и уменьшает количество ошибок, которые мог бы допустить разработчик.
- Для быстрых и регулярных релизов у нас отлажен процесс автоматизированного деплоя, то есть запуска кода для выполнения новой версии программы на сервере. Чтобы не делать это вручную, мы используем специальные скрипты. С автоматизацией снижается риск ошибки и тратится меньше времени. Это значит, что каждый деплой обходится для вас дешевле.
Закажите бэкенд-разработку в студии Лайв Тайпинг
Если вашему приложению требуется бэкенд, важно позаботиться о его качестве, слаженности работы команд серверной и мобильной разработки, об актуальности документации и отточенных процессах при разработке. А если вас заинтересовала разработка бэкенда у нас, оставьте заявку на бесплатную консультацию.
Компания Live Typing занимается проектированием, дизайном и разработкой мобильных приложений и
Для серверной разработки мы используем язык PHP и фреймворки Laravel и Yii.
В 2019 году мы занимались разработкой и развитием API для приложений магазинов парфюмерии и косметики