Разработка приложения и сайта. Где есть подвох?

Денис Гордиенко, генеральный директор Bright Mobile, об отличиях в разработке приложения и сайта для заказчика

Я вижу, что всё больше людей, имеющих опыт заказа сайта для собственного бизнеса, хочет заказать ещё и мобильное приложение. Сегодня я хочу разобрать актуальный вопрос. Речь идёт об отличиях в разработке приложения и сайта со стороны заказчика.

Разработка сайта и приложения – вещи разные, и есть ряд отличий, которые при заказе приложения могут стать ключевыми. В этой статье я разберу детали и подводные камни, которые могут ввести в затруднение при заказе приложения, даже если у вас есть опыт заказа сайта.

1. Компилируемость

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

Мобильное приложение компилируемо: прежде чем пользователи смогут увидеть внесённые в него изменения, программист должен его собрать, выложить в стор, тот проводит его модерацию, которая занимает около двух суток, и только после этого клиенты смогут увидеть обновления, установив свежую версию приложения. Что это значит?

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

С приложением такое не получится: обновление нужно собрать в apk-файл для Android, сделать линк для iOS-устройства, и вы сможете посмотреть все изменения, но пользователям они будут доступны только по прохождении модерации в сторе. Поэтому важно:

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

Учитывайте всё это с точки зрения маркетинга, тестирования и ожидания: помните, что при разработке приложения исправление даже мельчайшей ошибки займёт ~два дня – даже если программист устранит её в ту же минуту.

2. Hазделение серверной и клиентской части.

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

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

Какие в этом плане преимущества у приложения?

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

Приложение в этом случае будет локальным: Интернета у водителя попросту нет, но даже в этом случае он может продолжать им пользоваться: записывать, сколько потратил топлива, сколько проехал километров и пр. Приложение сохраняет эти данные, а затем отправляет на сервер, когда появится сеть.

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

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

3. Ресурсы

Для сайта среднего размера достаточно обычного хостинга за 200-300р в мес. Если не хватает – просто покупается больший тариф. Приложению нужен сервер – виртуальный, если у вас что-то простенькое, или выделенный, нужный для более серьёзного продукта.

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

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

4. Исправление ошибок

Помимо задержек с размещением исправленной версии при разработке приложения работает не один-два специалиста (программист+верстальщик, которые при фул-стек разработке могут легко совмещаться в одном лице), а несколько.

Кто-то отвечает за серверную часть, кто-то – за клиентскую, и предъявлять претензии по багам серверной части программисту по клиентской части бессмысленно. И это нормально, ведь там совершенно разные языки, поэтому фул-стек разработчика по приложениям, понимающего и клиентскую, и серверную часть, найти крайне трудно.

Языков разработки намного больше чем при разработке сайтов. У сайтов в 95% случаев используется PHP. Да, бывают разные системы управления сайтами, но PHP остаётся. Редко встречается Python, ещё реже – всё остальное.

В мобильной разработке всё сложнее. Она бывает нативная (приложение пишется отдельно для Андроида и для iOS, т.е. над ним работают два разных человека), кросс-платформенная, включающая Angular, React, Dart и менее популярные. Отдельно выделяется ещё webview-разработка: когда делается мобильный сайт и оборачивается как приложение.

Серверную часть тоже можно реализовать в разных форм-факторах: на PHP, если нет супервысоких требований по обработке данных, на C++, C#, Node.JS и т.д. Распределение огромно: если в веб-разработке PHP – монополист, то в мобильной разработке главного монополиста нет. Мало того, что мобильного разработчика и так найти сложнее в 10 раз, трудно ещё и найти их в нужном стеке.

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

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

5. Наличие системы управления контентом.

В случае сайтов её наличие уже давно стало нормой. Кратко для тех, кто не знает: CMS – это некая заготовка, на базе которой можно изменить только то, что нужно вам. Чаще всего это внедрение дизайна и какие-нибудь небольшие доработки функционала. Всё остальное за вас уже сделал производитель этой системы управления.

CMS очень сильно удешевляет разработку: например, вам не нужно платить за разработку каталога: вы платите только за его дизайн, вёрстку и внедрение вёрстки в каталог, уже созданный в системе управления сайтом. Чаще всего, если эта система популярна, все баги уже проверены и протестированы, так что вам остаётся только протестировать те, что могли возникнуть при внедрении и разработке индвидуального функционала.

При разработке приложений используются фреймворки. Это более низкоуровневая разработка, в которой нет заготовок, поэтому вам придётся платить за:

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

Очень часто спрашивают: почему простецкое приложение стоит полмиллиона? Именно поэтому. Такой же простецкий сайт будет стоит сто тысяч, а может, и полтинник, если заказывать его на фрилансе. А в мобильной разработке полмиллиона – это ещё и минимум. Всё из-за того, что с нуля нужно разрабатывать всё.

Само собой, студийные разработки у компаний имеются, но не нужно думать, что вам их будут отдавать просто так. К этому нужно быть готовым – в принципе, к разработке приложения нужно подходить имея в кармане как минимум полмиллиона: у нас средний чек составляет 0,7-1,2 млн. рублей.

Студии премиум сегмента, с прокаченным клиентским сервисом, берут от 5 миллионов, не зря расхожа поговорка, что приложение стоит столько же, сколько автомобиль. Можно купить жигуль за полмиллиона, а можно за пятнадцать взять Майбах: соотношение цены/качества в разработке приложений примерно такое же.

6. Смена программиста

Частично я этот вопрос уже затронул выше. При создании сайта никаких проблем нет, главное, чтобы была популярная система управления контентом. 1C-Битрикс, Wordpress, в общем, если это на слуху – всё в порядке, найти нового разработчика не составит никакой проблемы. Максимум переплатите 1-2 рабочих дня новому человеку, пока он будет въезжать в вашу задачу и проведёт предпроектную работу (хотя большинство веб-разработчиков даже это делает бесплатно, лишь бы заключить с вами контракт).

В мобильной разработке, где так много разных языков программирования и нет CMS, поиск программиста, а тем более двух программистов, работающих в одном стеке разработки клиентской и серверной части приложения, усложняется в разы. Вы намного более привязаны к разработчику, которого вы выбрали изначально. Это ему гораздо проще отказаться от вас и найти нового заказчика, чем вам – уволить его и нанять другого. Поэтому при заключении начального контракта важно:

  • не ориентироваться только на цену, а смотреть на опыт разработчика;
  • определить, насколько этот разработчик лоялен к вам;
  • понимать, что вся аналитика будет платной.

Важно понять, доведут ли вас до конца или попросту бросят на середине. Чем слаще стелют, тем больнее падать: скидки, у нормального разработчика с хорошо проработанной клиентской базой попросту не бывает. Редко, когда у него совсем нет заказов, может скинуть максимум 10%. Рассчитывать на скидки, как при разработке сайтов, бессмысленно.

Максимум, что могут сделать бесплатно – это составить поэкранную структуру: вникнуть в задачу, потратить пару часов времени, расписать структуру и посчитать смету. В случае веб-разработки часто бесплатно пишут ТЗ – с приложениями такого не бывает.

Нередко ко мне приходили клиенты, спустя 4-5 месяцев после обсуждения проекта, потому что им нужно было доделать то, что другие ребята забросили, прекратив поднимать трубку и отвечать на сообщения. При этом они уже успевали к тому времени оплатить 80% бюджета.

Бывают скидки, но на то должны быть причины.

Первая – можно увеличить сроки, если они для клиента непринципиальны. Такое приложение мы, к примеру, разрабатываем в дни, когда программисты простаивают. Причина такой скидки очевидна: так бы я платил разработчику из своего кармана, и мой специалист простаивал бы в минус. А так я делаю скидку – и занимаю программистов работой, которую они могут реализовывать в свободное время. Приложение будет делаться дольше, зато со скидкой. Выгодно и мне, и клиенту. В 2020 году это подошло 20% клиентов.

Второй вариант – когда нужна срочная оплата. У всех есть 10-е число и 25-е, но иногда бывают ситуации, когда деньги требуются здесь и сейчас: пополнить рекламный бюджет, например, или реализовать свои собственные инвестиционные проекты. В таком случае я могу предложить оплату разработки не на стандартные 5 этапов, а 100% предоплату, зато со скидкой в 10% «за доверие». Надо понимать, что я даю эту скидку не за красивые глаза, а за возможность использования средств клиента в текущий момент времени.

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

Больше про разработку и ведение проекта можно узнать на моём YouTube.

1414
5 комментариев

 Распределение огромно: если в веб-разработке PHP – монополист, то в мобильной разработке главного монополиста нет.

Android (Java и Kotlin) и iOS (Objective-C и Swift)! Давай похейтим пэхапэ в очередной раз, нам же не сложно

2
Ответить

Там контекст про язык для бэкэнда

Ответить

Много мягкого с теплым перепутано

1
Ответить

Ну не знаю, я заказываю и за бугра, там все знаю и умеют. Хотя кто знает, может и у нас все знаю.

Ответить

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

Ответить