. Фудкорт изнутри. Или как программист делал фудкорт
Фудкорт изнутри. Или как программист делал фудкорт

Фудкорт изнутри. Или как программист делал фудкорт

У меня давно была мечта открыть свой ресторан, а к любой мечте нужно по-тихоньку двигаться. Этим летом я сделал первый шаг — открыл фуд-корт на маркете «4 сезона». Большую часть времени работал мобильным разработчиком и поэтому не обошлось без приложение для телефона, статистики, да и вообще UX-наработок в создании стенда и оформлении продукции.

  • про рынок,
  • идея,
  • мобильное приложение,
  • дизайн, лого,
  • UX и юзабилити в оффлайне,
  • ссылка на код,
  • линк в AppStore.
  • Что такое фуд-корт?
  • Что такое маркет?
  • Что нужно для участия?
  • Сколько это стоит?
  • Кто такие организаторы?
  • Что нужно делать на маркете?
  • Два зайца одним выстрелом
  • Проблемы участников маркета
  • Проблемы организаторов
  • Мобильное приложение
  • Требования к мобильному приложению
  • Интерфейс
  • Сторонние либы
  • Интро/обучение
  • Почему Swift?
  • Анимации
  • Лого
  • Дистрибуция
  • Результаты/Выводы
Что такое фуд-корт?

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

Что такое маркет?

Маркет — это модное слово для «ярмарки выходного дня» или мини-фестиваля.

Что нужно для участия?

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

Сколько это стоит?

Зависит от маркета и организаторов. Участие на «4 сезона» за 2 выходных дня стоило 10к рублей. Понятие площади и места там не было. «Ламбада-маркет» уже имеет стоимость порядка 10к за день. Периодические тематические фудкорты в Сокольниках и ПГ могут стоит до 25к за день в праздники или 25к за обычные выходные. Площадь фиксированная — в вашем распоряжении один домик. Первый Веган-фест в парке Сокольники стоил от 5000р за 1 кв.м. Стоимость увеличивалась в зависимости от кв.м. и «проходимости» предложенного участка (об этом будет ниже отдельно).

Кто такие организаторы?

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

Что нужно делать на маркете?

В общем на маркете нужно что-то продавать. Так как вы уже заплатили некоторую сумму за участие и скорее всего потратились на товар или работы по его приготовлению (если вы только не продаете воздух или проводите лотерею). Ещё данное мероприятие можно рассматривать как неплохую рекламу, можно даже ничего не продавать. Например, на маркете «4 сезона» участвовал экстрасенс 14-его сезона битвы на ТНТ.

Два зайца одним выстрелом

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

Проблемы участников маркета
  • Участники (это те, кто продают свою позиции) сильно рискуют (особенно те, кто продают скоропортящиеся товары, как еда и напитки).
  • Организатор говорит некоторую абстрактную цифру, которая называется «проходимость», например: 5000 человек в день. Что это значит для участника? — Ничего.
  • Можно ли из этого «преувеличенного», «абстрактного» числа приблизительно понять сколько человек пройдет у твоего прилавка, сколько что-то купит, чтобы понять сколько тебе продукции нужно закупить, сколько пространства, техники тебе нужно? — Почти нет.
  • К концу дня всегда куча вопросов: сколько выручка, сколько прибыль, сколько позиций продано, сколько еще ингредиентов есть на завтра, что люди покупали, а что нет?
Проблемы организаторов
  • Окупить ту сумму, которые они потратили на аренду помещения, палаток, электричества и так далее.
  • Пригласить и заинтересовать как можно больше народу — тем самым, увеличив «проходимость» мероприятия.
  • Оставить участников довольными, иначе, в следующий раз к ним они уже скорее всего не придут.
  • Понять популярен ли маркет, который они организуют.
Мобильное приложение
  • Узнать сколько человек прошло мимо моего корта
  • Узнать сколько позиций я продал и каких именно
  • Точно знать выручку на текущий час в течение всего дня — потому что от этого зависит насколько сильно нужно рвать жопу волосы и придумывать как увеличить оборот продаж.
Требования к мобильному приложению
  • Человек прошел
  • Человек заинтересовался
  • Человек купил
  • В приложении всегда должны быть доступны 3 функции: посчитать прошедшего человека, посчитать заинтересовавшегося и занести продажу,
  • В приложении можно формировать список продукции и цену заранее, чтобы каждый раз не вводить её при продаже,
  • Приложение должно быть удобным, без лишних экранов и переходов,
  • Приложение должны быстро выводить некоторые показатели: выручка, проданные позиции,
  • Приложение должно быть надежным и не удалять внесенные данные без команды.
Интерфейс

На скрине снизу Interface Roadmap (Делал в Sketch, серый фон только для различимости белых экранов):

Main — это главный экран, на нём 3 основные кнопки: посчитать прошедшего посетителя, заинтересовавшегося и оформить продажу. Приложение всегда лежит перед тобой с включенным экраном, поэтому сложность совершения основных действий — 1 клик. При клике на нижнюю кнопку — происходит переход к экрану Purchase и далее возврат к Main

Экран Positions служит для составления списка товаров (наименование и цена). Так как список может быть (да и должен быть) сформирован заранее, то на этот экран в течение нашего рабочего дня нам переходить нужно крайне редко.

Экран Stats — это доступ к реал-тайм статистике, она состоит из нескольких экранов и первый из них сразу отвечает на вопрос «Сколько мы заработали?». Также можно по piechart диаграмме сообразить, что мы успешно продаем, а что нет, или перейти к более детальной «списковой» форме.

Сторонние либы
  • CorePlot — для рисования диаграммы,
  • Amplitude — аналитика.
  • Crashlytics + Fabric — для сбора крешей.
Интро/обучение

Понятно, что разрабатываемое ПО — специализированное и нужно только целевой аудитории, то есть участникам фудкортов, выставок, маркетов. Так как приложение переходит из частного собственного пользования в продакшн для группы людей, то конечно же нужно показать им возможности приложения и обучить как им пользоваться. Изначально была идея делать при первом запуске листалку из не более 6-ти слайдов, где компактно и понятно объяснить, что происходит в приложении и для чего оно нужно. После того как я показал данный вариант хорошему дизайнеру/UX-еру услышал в ответ, что это неправильный формат и моя листалка больше подходит для предоставления информации, что нового, например, в апдейте и никак не закрепляет те действия, которые пользователь должен сделать.

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

Почему Swift?

Конечно приятный синтаксический сахар (например, guard), компактность по сравнению с obj-c, плюс сторонник строгой типизации. Протокольность Swiftа позволила сделать очень удобные решения, например, на Main и Stats есть одна и та же кнопка, реализацию которой получилось хорошо реализовать на протоколе с дефолтной имплементации. Как раз про данный функционал приводил код в предыдущей статье.

Анимации

Анимации были не важны, важен был MVP и UX: кликов должно быть мало, кнопки крупные и видные, когда нажимаешь на плюсик/минусек, то пальчик не загораживает число и т.д. Единственное, что я себе позволил как UX-эксперементатор — это новый тип перехода от главного экрана к списку товаров и статистике. Не хотел (не получались) обычных кнопок на navigation bar — не удобно тянуться, маленькие и так далее. Лишние элементы на экран тоже особо не лезли. Поэтому решил попробовать решение с переходами по свайпу. (Свайп уже вроде бы рутинный жест). Выглядит это вот так:

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

Лого

Так как дизайнером не являюсь, то создавать такую важную вещь, как логотип, иконку и Default-screen пришлось создавать самому. В общем в голове была самая навязчивая идея связать идею со словом «Food». Были идеи оживить буквы, но тогда была проблема в сочетаемости толщины шрифта и вообще стиля. Далее идёт список некоторых промежуточных вариантов:

Вариант, который в итоге в продакшне:

Дистрибуция

Самый резонный вопрос при разработке любого продукта: кому он нужен и как люди про него узнают? Вряд ли люди с хабры являются проженными фудкортерами и владельцами торговых точек (хотя надеюсь я кого-то вдохновил). Самые 2 крупные канала (причем уже проверены в действии на «предзаказах»): 1) Обход участников фестивалей вживую и раздача им буклетов с ссылкой на мобильное приложение, 2) Электронная рассылка участникам через организаторов (нужно согласие и интерес организаторов), 3) Каналы в специализированных сообществах — но их крайне мало, это не сильно развитая ниша в России.

Результаты/Выводы

2-ой реджект был из-за наличия Complication в часах, хотя по факту их не было, билд не прошёл из-за наличия в pliste файла пустово массива с complication.

📎📎📎📎📎📎📎📎📎📎