Places // Часть 1 // Анализ идеи сервиса
Перед тем как разрабатывать сервис нужно понять насколько проблема поиска локаций актуальна и существуют ли сервисы, которые уже могут её решить. Я и сам своего рода сервис.
Другие части
- Часть 0 // Хочу создать сервис с подборками локаций с нуля
- Часть 2 // Пока доступна только моим подписчикам на госуслугах
Аналоги
Для начала проанализируем аналоги, чтобы выявить их основные функции, преимущества и недостатки.
Google Maps:
- Сервис в основном предназначен для поиска объектов на карте
- API платное, но позволяет совершить несколько запросов бесплатно
- Можно просматривать рейтинг мест и редактировать его
- Можно добавлять объекты на карту с помощью специальной формы
- Есть небольшие подборки от сервиса с ресторанами, отелями и т.д.
- Сервис не сильно развит в России
Яндекс Карты:
- Сервис в основном предназначен для поиска объектов на карте
- API платное, но позволяет совершить несколько запросов бесплатно
- Можно просматривать рейтинг мест и редактировать его
- Можно быстро редактировать карту
- Есть небольшие подборки от сервиса с ресторанами, отелями и т.д.
2GIS:
- Сервис в основном предназначен для поиска объектов на карте
- API платное, но позволяет совершить несколько запросов бесплатно
- Можно просматривать рейтинг мест и редактировать его
- Можно редактировать карту, но способ не очень удобен для пользователей
- Есть небольшие подборки от сервиса с ресторанами, отелями и т.д.
Tripadvisor:
- Сервис позволяет найти необходимое место по названию, адресу, рейтингу или другим параметрам
- API платное, но позволяет совершить несколько запросов бесплатно
- Можно просматривать рейтинг мест и редактировать его
- Сервис не сильно развит в России
- Есть подборки от сервиса с ресторанами, отелями и т.д.
KudaGo:
- Сервис позволяет найти необходимое место по названию, адресу, рейтингу или другим параметрам
- Бесплатное API
- Можно просматривать рейтинг мест и редактировать его
- Есть подборки от сервиса с ресторанами, отелями и т.д.
Tinkoff Город:
- Сервис позволяет найти необходимое место по названию, адресу, рейтингу или другим параметрам
- Нет AP
- Нет веб-версии
- Есть подборки от сервиса с ресторанами, отелями и т.д.
Что ж, основные аналоги предлагают функции поиска объектов на карте, просмотра и редактирования рейтингов мест, но имеют ограничения, такие как платные API и ограниченное развитие в России. Также сервисы не позволяют создавать свои подборки, что будет являться основной функциональностью Places.
Но чтобы более точно определить целевую аудиторию и боли пользователей в существующих аналогах был проведен опрос в Google Forms.
Опрос
В опросе поучаствовало 19 человек большая часть которых была возрастом от 18 до 24 лет.
Около 80% людей не знают куда можно сходить в свободное время. То есть проблема актуальна.
В основном для поиска локаций люди спрашивают знакомых, идут в знакомое место, в котором они уже были или используют специальные сервисы. Больше всего тех, кто спрашивает знакомых — их 13 человек. Также есть те, кто просто никуда не идет среди тех, кто ходит в знакомые места.
В следующем вопросе про мнение друзей большинство людей отвечает, что их вкусы могут совпадать. И будущий сервис как раз позволит людям увидеть подборки друзей и сходить в эти места.
Также сервис позволит создавать свои подборки. Так можно будет проще делиться своими местами с друзьями.
Для поиска мест в основном используют Яндекс Карты, хотя у них почти одинаковые функции с Google Maps или 2GIS. Это может быть связано с тем, что Яндекс Карты находятся в одной экосистеме всего Яндекса. Поэтому этим сервисом просто выгоднее пользоваться, чем остальными.
Ну и наконец, чтобы точно убедиться в том, что люди будут использовать подборки мест, был задан вопрос про их использование. И как видно на диаграмме, большинство опрашиваемых их используют.
В итоге, результаты опроса подтвердили, что большинство опрошенных часто сталкиваются с проблемами при поиске мест, с учетом существующих продуктов. Это говорит о высокой потребности в сервисе, который решит данные проблемы.
Используемые технологии
Выяснив, что сервис нужен не только мне, были выбраны технологии ниже.
- Система контроля версий: Git
- Языки программирования и фреймворки: Python, TypeScript, SvelteKit
- Система управления базами данных: PostgreSQL
- Технологии развертывания: Docker, Яндекс Облако, Github Actions
- Проектирование интерфейса: Figma
Почему именно они
Python, потому что он отлично подходит для бэкенда с фреймворком FastAPI и Sqlalchemy. Ну и я просто хотел поработать с последними, так как до этого опыта не было.
PostgreSQL, Docker, Яндекс Облако, Github Actions и Figma тоже норм сервисы. Почему бы и нет. Тут альтернатив много и наверно их выбрал просто потому что они наиболее популярные. Ну кроме Github Actions. Может Gitlab CI был бы более подходящим выбором с учетом того, что я пока планирую делать только MVP. Но с Github Actions просто давно не работал.
Основная сложность на этом этапе заключалась в выборе технологии для разработки пользовательской части. Тут я реально сидел пару недель и пытался выбрать лучший вариант. Рассматривались Flutter, Kotlin и React Native, React и SvelteKit, но в конечном итоге выбор пал на SvelteKit.
На самом деле, забегая вперед, выбор SvelteKit’а был ошибкой. Лучше бы использовал тот же React. Но подробнее напишу уже где-то в финальных частях.
Основные причины этого выбора — это желание поработать с ним, так как до этого не работал. Также слышал много хороших отзывов. От React отказался, так как с ним уже имелся опыт работы над другими проектами. А Flutter, Kotlin и React Native хотя и предлагают преимущества в разработке кроссплатформенных приложений, сложны в изучении, так как где-то нужно заранее разобраться с языком программирования, с которым используется фреймворк — типа Dart и Flutter.
Также я изначально не правильно понимал принцип кроссплатформенной разработки. Мне казалось, что она принесет только плюсы — универсальный интерфейс для всего сразу, написанный в одном месте. Но это оказалось не совсем так. Пруфы:
Что дальше
Часть 2 // Пока доступна только моим подписчикам на госуслугах
Там вообще жэст. Страшно представить. Гномы, базы данных, бэкенды, фронтенды.