блог
25
/10
/16

Как сэкономить 30% на создании клиент-серверного приложения

Русский

Собираетесь сделать клиент-серверное приложение, а вам говорят, что придется раскошелиться? Вот уж нет! Есть люди, которые знают, как сократить бюджет на разработку на 30%, сделать задачу быстрее, а качество при этом будет выше. Звучит немного голословно, но это мы, и мы можем доказать, что такое бывает.

Мое приложение — клиент-серверное?

Если перед вами стоит задача разработать мобильное приложение, с 90-процентной вероятностью речь идет о клиент-серверном приложении. «Клиент-серверное» означает, что часть данных обрабатывается и хранится не на телефоне пользователя, а где-то на сервере.

Вот список критериев, указывающих на то, что приложение клиент-серверное:

  • регистрация пользователей;
  • авторизация в приложении с помощью соцсетей;
  • поиск по материалам приложения;
  • постоянно обновляемый контент;
  • необходимость в интернет-подключении для работы.

У вас может создаться впечатление, что все приложения, которыми мы пользуемся — клиент-серверные. Верно, практически все. Не клиент-серверные только те, где пользователи никак не взаимодействуют с другими пользователями, например игра Angry Birds. Вы играете одни, других живых соперников нет. Но даже тут издатели используют альтернативу бэкэнду — например Game Center на iOS, чтобы пользователи могли видеть очки друг друга и появлялся соревновательный элемент. А также чтобы собирать данные о вас, конечно же. Еще пример — приложения, для работы которых не нужен интернет: фоторедакторы, калькуляторы, компас :)

Кто создает клиент-серверные приложения?

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

Фронтэнд-разработчик отвечает за ту часть приложения, с которой взаимодействует пользователь: что он видит у себя на экране, куда нажимает, что там происходит.

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

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

Как сэкономить на создании клиент-серверного приложения?

Мы в «Культпросвете» разрабатываем клиент-серверные приложения вот уже несколько лет. Всегда стремимся оптимизировать рутинные процессы и найти самое эффективное решение задачи, чтобы сэкономить время и средства клиента. Так выше шанс, что клиент вернется снова.

В процессе создания очередного приложения нашей команде пришла в голову мысль: а что, если не писать одинаковые компоненты для каждого клиента с нуля, а сделать универсальный шаблон, который бы потом можно было кастомизировать под нужды конкретного проекта?

Мы составили список наиболее часто встречающихся компонентов всех клиент-серверных приложений и создали шаблоны для них:

  • регистрация пользователей;
  • авторизация в приложении с помощью соцсетей;
  • поиск по материалам приложения;
  • встроенный чат;
  • звонки;
  • расчерченная таблица базы данных пользователей;
  • расчерченная таблица базы данных администраторов;
  • методы управления пользователями;
  • профиль пользователя и его редактирование;
  • настройки приложения;
  • управление уведомлениями;
  • смена пароля;
  • отображение версии приложения;
  • выход из приложения.

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

Для хостинга серверной части мы используем Amazon EC2, а Amazon S3 — в качестве хранилища больших файлов. Встроенные чаты и звонки делаем с помощью решения Twilio.

Сколько можно сэкономить?

По самым скромным нашим подсчетам, функционал приложений, который поддается шаблонированию, занимает минимум 30% всего кода. Кастомизировать готовый шаблон куда быстрее, чем писать с нуля. Для сравнения, разработка функции логина в приложение с автоматической отправкой письма обычно занимала неделю. Неделю, Карл! А теперь, когда у нас есть шаблон, на его кастомизацию уходит максимум день.

Давайте приведем примеры приложений из наших предыдущих статей:

 Стоимость разработки
бэкэнда при обычном
подходе
Стоимость разработки
бэкэнда с шаблонами
Tinder$4000$2800
Kayak$8500$5950
Uber$15 000$10 000

Как видите, экономия заметная. Надеемся, другие компании последуют нашему примеру: оптимизируют рутину, напишут шаблоны и порадуют клиентов меньшим бюджетом на задачу.