Найти в Дзене
Пиробайт

IT изнутри: что скрыто за календарем в приложении, которым вы пользуетесь

Оглавление

Что такое календарь рассказывать не буду, хочу рассказать о том, как календари создаются и с какими сложностями может столкнуться заказчик или разработчик ПО, внедряя этот инструмент в свой сервис.

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

Но так ли это на самом деле?

Календари встречаются на ресурсах, связанных с арендой, путешествиями, развлечениями и т.п.

Условно можно разделить на три типа:

1. Простой календарь;

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

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

2. Многофункциональный;

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

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

Оператору остается только подтвердить заказ и пожелать счастливого пути.

Такими календарями пользуются крупные агрегаторы по типу Booking, Airbnb, Aviasales.

3. Календарь-планировщик;

Портативный ежедневник, как правило, с большим количеством функций.

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

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

Как выбрать?

Перед тем как выбрать календарь, нужно ответить на несколько вопросов:

  • Что должен делать календарь;
  • Для чего будет использоваться;
  • Каким образом будет работать.

На основе этого строится логическая цепочка. Звенья, по которым нельзя дать четкого однозначного ответа, можно или отложить, или вовсе исключить.

Разберем на примерах:

1. Приложение для каршеринга.

-2

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

Можно включить следующие функции:

  • Отслеживание времени начала и окончания отмены;
  • Отображение информации о владельце машины;
  • Аналитика потраченного времени и расчет стоимости: если возврат машины задерживается, система будет информировать о дополнительных списаниях;
  • Интеграция данных с CRM;
  • Предварительный расчет итоговой суммы на основании выбранной даты, времени и дополнительных опций.

2. Сайт для покупки билетов.

-3

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

  • Предупреждать пользователя о количестве оставшихся свободных мест;
  • Указывать стоимость билетов по запросу;
  • Рассчитывать сумму в зависимости от количества занятых мест;

Подобные функции, например, мы реализовали в приложении сети Киномир, посмотреть можно ТУТ

Как создается календарь.

Взято из открытых источников
Взято из открытых источников

Простой путь:

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

Но так ли это просто?

С какими сложностями можно столкнутся выбрав шаблонный вариант?

Расскажем на примере нашего проекта.

История Trainet

Trainet – сервис онлайн тренировок, который предполагает общение тренера и спортсмена по видео связи в процессе выполнения упражнений. А для того, чтобы и тренер, и спортсмен могли вовремя прийти на занятие, в приложении предусмотрен календарь, вдохновленный одноименным сервисом Google.

-5

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

Календарь в нашем случае – одна из основополагающих опций.

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

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

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

-6

Выбирая шаблон, в преимуществах мы получаем:

  • Снижение стоимости разработки;
  • Уменьшение времени, необходимого для создания сервиса;
  • Уже готовый функционал.

Недостатки:

  • Придется бороться с костылями – условностями, которые есть в готовом шаблоне;
  • Придется отказаться от идей, которые невозможно реализовать шаблоном;
  • Дизайн может не лечь на шаблон так, как было задумано изначально;
  • Если у шаблона будет сложная архитектура, его интеграция с другими опциями сайта или приложения скажется на времени и стоимости разработки.

Подробно можно посмотреть сам кейс на нашем сайте

Сложный путь:

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

Именно такой подход мы реализовали при разработке сервиса для аренды яхт.

История сайта Yaves

Yaves – сервис для аренды яхт, который мы создавали, вдохновляясь Booking.

Оба сайта объединяет одно: процесс бронирования происходит на странице с интерактивным календарем.

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

Мы же в свою очередь решились доработать уже существующую систему, улучшив ее и сделав календарь главной фишкой сайта.

Конечно, при таком подходе шаблон выбирать нельзя.

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

-7

Создав календарь для проекта мы добились следующего:

  • Реализовали возможность настраивать время, дату путешенствия, выбирать дополнительные опции аренды, просматривать доступность яхты в указанные даты и т.п;
  • Со стороны судовладельца в календаре реализовали возможность смотреть информацию о том кто, на сколько и с какими опциями арендует судно, а также статус бронирования;
  • При бронировании судовладельцу и арендатору автоматически отправляются уведомления в соответствии с ролью;
  • При этом оставили возможность, добавлять или убирать функции при дальнейшем развитии проекта;
  • Сам календарь органично вписывается в дизайн сайта;
  • Оптимизировали скорость обработки информации в календаре без потерь в функционале, используя метод нормализации и денормализации данных;
  • Сделали классный рабочий вариант, который устраивает заказчика;
  • Снизили количество действий пользователя по бронированию яхты с 11 до 7 кликов.

На данный момент сайт аренды уже запущен и можно оценить визуал и функции календаря, а так же ближе к сезону забронировать себе яхту, сделать это можно по ссылке https://yaves.ru/

-8

Выбрать шаблонное решение или разрабатывать с нуля?

Все зависит от видения сайта или приложения, кто целевая аудитория, какую функцию несет календарь, как часто будет использоваться.

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

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

Единственное, что можно однозначно сказать наверняка – какой бы вариант вы ни выбрали, команда Pyrobyte готова помочь с разработкой. Расскажите о проекте, и мы поможем подобрать лучший вариант для его реализации.