Что такое календарь рассказывать не буду, хочу рассказать о том, как календари создаются и с какими сложностями может столкнуться заказчик или разработчик ПО, внедряя этот инструмент в свой сервис.
С точки зрения пользователя может показаться, что он не требует большого количества ресурсов и времени для разработки.
Но так ли это на самом деле?
Календари встречаются на ресурсах, связанных с арендой, путешествиями, развлечениями и т.п.
Условно можно разделить на три типа:
1. Простой календарь;
Подойдет, если нужно показывать только дату и время для совершения целевого действия (бронирования, покупки, и т.п.), а все остальные детали будет подтверждать по телефону менеджер.
В этом случае нам не нужно нагружать интерфейс лишними деталями, а значит можем снизить расходы на разработку за счет готовых решений.
2. Многофункциональный;
Подойдет, если помимо стандартных функций, календарь должен автоматизировать бизнес-процессы.
Такой календарь позволяет пользователю заранее указать время, дату и детали бронирования, указать дополнительные опции, количество людей, узнать итоговую сумму, далее информация передается в CRM.
Оператору остается только подтвердить заказ и пожелать счастливого пути.
Такими календарями пользуются крупные агрегаторы по типу Booking, Airbnb, Aviasales.
3. Календарь-планировщик;
Портативный ежедневник, как правило, с большим количеством функций.
Помимо перечисленных выше функций может отправлять уведомления, и помогать в планировании.
Подойдет, если проект связан с необходимостью планировать задачи и распределять время. Дополнительно он может отправлять уведомления, формировать отчеты и т.д. Один из самых популярных примеров - календарь от Google.
Как выбрать?
Перед тем как выбрать календарь, нужно ответить на несколько вопросов:
- Что должен делать календарь;
- Для чего будет использоваться;
- Каким образом будет работать.
На основе этого строится логическая цепочка. Звенья, по которым нельзя дать четкого однозначного ответа, можно или отложить, или вовсе исключить.
Разберем на примерах:
1. Приложение для каршеринга.
Каршеринг - сервис, который предлагает на время арендовать автомобиль для собственных нужд. Без календаря никуда, при том календарь должен быть многофункциональным.
Можно включить следующие функции:
- Отслеживание времени начала и окончания отмены;
- Отображение информации о владельце машины;
- Аналитика потраченного времени и расчет стоимости: если возврат машины задерживается, система будет информировать о дополнительных списаниях;
- Интеграция данных с CRM;
- Предварительный расчет итоговой суммы на основании выбранной даты, времени и дополнительных опций.
2. Сайт для покупки билетов.
Такой сервис также не обойдется без календаря. Много функций тут не понадобится, но в рамках выбора даты и времени можно:
- Предупреждать пользователя о количестве оставшихся свободных мест;
- Указывать стоимость билетов по запросу;
- Рассчитывать сумму в зависимости от количества занятых мест;
Подобные функции, например, мы реализовали в приложении сети Киномир, посмотреть можно ТУТ
Как создается календарь.
Простой путь:
Простой подразумевает использование уже готового решения, взятого из открытых источников и адаптирование под нужды сервиса.
Но так ли это просто?
С какими сложностями можно столкнутся выбрав шаблонный вариант?
Расскажем на примере нашего проекта.
История Trainet
Trainet – сервис онлайн тренировок, который предполагает общение тренера и спортсмена по видео связи в процессе выполнения упражнений. А для того, чтобы и тренер, и спортсмен могли вовремя прийти на занятие, в приложении предусмотрен календарь, вдохновленный одноименным сервисом Google.
Учитывая, что подобный формат календаря популярен, было принято решение не придумывать заново велосипед, а взять уже готовый шаблон из библиотеки Syncfusion и адаптировать под фирменный дизайн.
Календарь в нашем случае – одна из основополагающих опций.
Он нужен атлету, чтобы бронировать занятия у тренера и отслеживать дату следующего занятия. Тренеру календарь нужен также для отслеживания своего расписания и чтобы настроить дни, которые могут забронировать спортсмены.
В календаре должна быть возможность отметить спортивное мероприятие, а также настроить регулярные занятия.
При всем этом и у тренера, и у атлета должен отображаться их часовой пояс, чтобы не возникало путаницы, когда, например, атлет приходит на тренировку в 20:00 по своему времени, тогда как у тренера часовой пояс другой и у него до занятия еще несколько часов.
Выбирая шаблон, в преимуществах мы получаем:
- Снижение стоимости разработки;
- Уменьшение времени, необходимого для создания сервиса;
- Уже готовый функционал.
Недостатки:
- Придется бороться с костылями – условностями, которые есть в готовом шаблоне;
- Придется отказаться от идей, которые невозможно реализовать шаблоном;
- Дизайн может не лечь на шаблон так, как было задумано изначально;
- Если у шаблона будет сложная архитектура, его интеграция с другими опциями сайта или приложения скажется на времени и стоимости разработки.
Подробно можно посмотреть сам кейс на нашем сайте
Сложный путь:
Когда решение не укладывается в имеющиеся варианты шаблонов, либо нужно сделать нечто новое, нетривиальное, лучше создать календарь с нуля, чем адаптировать имеющиеся решения.
Именно такой подход мы реализовали при разработке сервиса для аренды яхт.
История сайта Yaves
Yaves – сервис для аренды яхт, который мы создавали, вдохновляясь Booking.
Оба сайта объединяет одно: процесс бронирования происходит на странице с интерактивным календарем.
Booking предлагает выбрать только длительность проживания и обозначить количество жильцов, в то время как дополнительные опции настроить нельзя: они заранее прописаны в карточке квартиры или дома и редко поддаются изменениям.
Мы же в свою очередь решились доработать уже существующую систему, улучшив ее и сделав календарь главной фишкой сайта.
Конечно, при таком подходе шаблон выбирать нельзя.
Когда мы делаем что-то уникальное, уже готовые решения могут только помешать реализации задумки. С Yaves это стало понятно еще на первых порах, так как заказчик регулярно докидывал нам новые идеи, в том числе, связанные с архитектурой будущего календаря.
Создав календарь для проекта мы добились следующего:
- Реализовали возможность настраивать время, дату путешенствия, выбирать дополнительные опции аренды, просматривать доступность яхты в указанные даты и т.п;
- Со стороны судовладельца в календаре реализовали возможность смотреть информацию о том кто, на сколько и с какими опциями арендует судно, а также статус бронирования;
- При бронировании судовладельцу и арендатору автоматически отправляются уведомления в соответствии с ролью;
- При этом оставили возможность, добавлять или убирать функции при дальнейшем развитии проекта;
- Сам календарь органично вписывается в дизайн сайта;
- Оптимизировали скорость обработки информации в календаре без потерь в функционале, используя метод нормализации и денормализации данных;
- Сделали классный рабочий вариант, который устраивает заказчика;
- Снизили количество действий пользователя по бронированию яхты с 11 до 7 кликов.
На данный момент сайт аренды уже запущен и можно оценить визуал и функции календаря, а так же ближе к сезону забронировать себе яхту, сделать это можно по ссылке https://yaves.ru/
Выбрать шаблонное решение или разрабатывать с нуля?
Все зависит от видения сайта или приложения, кто целевая аудитория, какую функцию несет календарь, как часто будет использоваться.
Если на нем не делать акцента, то и тратить дополнительные ресурсы на разработку не стоит, лучше подобрать уже проверенные готовые варианты.
Если календарь станет одной из ключевых фишек сайта, лучше разработать его с нуля, потратив чуть больше времени, при этом получив возможность в дальнейшем оптимизировать и дополнять функционал.
Единственное, что можно однозначно сказать наверняка – какой бы вариант вы ни выбрали, команда Pyrobyte готова помочь с разработкой. Расскажите о проекте, и мы поможем подобрать лучший вариант для его реализации.