![](https://habrastorage.org/getpro/habr/upload_files/584/fc0/98d/584fc098d7058cc4a478cdd7f2f40cdf.png)
Всем привет! Меня зовут Алиса и в этом году я закончила 10 класс и IT Школу (Samsung Innovation Campus), где в рамках обучения я разработала свое первое крупное Android приложение. Сегодня я расскажу вам о моем проекте Coffee meet-up от задумки до реализации и тестирования.
В будущем я планирую развивать приложение дальше, поэтому мне важно услышать мнение аудитории Хабра. Надеюсь, что вы расскажете мне о ваших впечатлениях от идеи приложения в комментариях, а, может, даже станете одним из будущих пользователей.
ВВЕДЕНИЕ
Идея создания приложения Coffee meet up пришла мне осенью прошлого года, когда я только переехала в Москву. Как и у многих, кто осваивается на новом месте, возник вопрос, как построить новый круг знакомств и найти друзей. Оказалось, что это непростая задача. Постоянно ускоряющийся темп жизни практически не оставляет нам свободного времени, поэтому даже в мегаполисах, наполненных людьми, встретить подходящего человека очень сложно. И, как многим, первое, что пришло мне в голову, - это использовать приложение для знакомств. И я углубилась в их изучение.
Проблематика
В настоящий момент количество онлайн-знакомств постоянно растет. Согласно некоторым исследованиям, более 50% подростков заводят друзей в интернете . Сервисы для знакомств выполняют важную роль посредника между виртуальным и живым общением, поэтому выпускать и развивать такие продукты актуально и важно.
Как известно, современный рынок приложений для знакомств вращается вокруг поиска романтического партнера. Как правило подобные приложения строятся по классической анкетной “tinder-формуле”:
свайп - метч - свидание
В 2022-ом году каждое из топ-3 популярных приложений для знакомств в России имело именно такую структуру.
![Топ 3 приложения для знакомств в России в 2022, ресурс: https://livetyping.com/ Топ 3 приложения для знакомств в России в 2022, ресурс: https://livetyping.com/](https://habrastorage.org/getpro/habr/upload_files/055/e0a/712/055e0a7126fd6d7aa4c471ceb6724234.png)
Тем не менее у этого подхода есть несколько существенных минусов:
Свайпы и Скроллы - это долго
Огромное количество “потенциальных партнеров” на экране телефона создает иллюзию, что подходящий человек найдется очень быстро. Однако часто желанный “метч” происходит только через несколько дней после начала пользования. Более того, вероятность метча возрастает с количеством просмотренных анкет, что вынуждает пользователя регулярно тратить время на монотонные операции.
![Опыт мужчин и женщин в Tinder, ресурс: https://duro.data Опыт мужчин и женщин в Tinder, ресурс: https://duro.data](https://habrastorage.org/getpro/habr/upload_files/6af/c12/2e5/6afc122e57408e18e61e082c66968f21.png)
На этом дело не заканчивается: после взаимного лайка нужно назначить свидание, а это тоже время. Еще есть риск, что пользователь не останется удовлетворенным встречей, и столь большая трата усилий будет вызывать фрустрацию.
![Топ 5 причин удаления дейтинговых приложений ресурс: https://www.prnewswire.com/ Топ 5 причин удаления дейтинговых приложений ресурс: https://www.prnewswire.com/](https://habrastorage.org/getpro/habr/upload_files/3b6/1a1/376/3b61a1376086505729a5ac8899b5724b.png)
Малая безопасность
Пожалуй, это настолько наболевшая тема для пользователей подобных приложений, что вместо того, чтобы описывать проблему, можно просто вспомнить сериал Tinder Swindler или предложить читателям открыть поисковик и самим убедиться в наличии многочисленных “скелетов в шкафу” рынка дейтинговых приложений.
Многих потенциальных пользователей отталкивает именно этот пункт, поэтому важно предлагать новые безопасные концепции приложений или дорабатывать старые.
Не даем шансов тем, кто их заслуживает
Когда нам становится доступен на первый взгляд бесконечный объем красивых и интересных людей, наши стандарты зачастую резко повышаются, в результате чего мы нередко пролистываем тех, кто на самом деле может быть “тем самым”.
“Умные алгоритмы”, которыми кишат подобные приложения, иногда только ухудшают ситуацию, частично решая за нас, кого выбрать.
Как решать эти проблемы?
Способы решения
Ну начнем с пункта про время. Можно банально ограничить самих пользователей. Так, например, поступает Breakfast. Приложение работает так:
“1. Если вы готовы позавтракать в ближайшее время — жмёте кнопку на главном экране.
2. Умный алгоритм подбирает потенциального собеседника в течение нескольких часов. Основатели называют это шанс (ченс, от англ. chance).
Дальше у двух людей есть 24 часа, чтобы договориться о встрече, иначе ченс исчезнет. В сутки можно получить только один ченс на завтрак.
3. Встречаетесь с человеком и классно проводите время за завтраком. Или нет. Если беседа не сложилась — это тоже нормально. Нужно просто дождаться другого ченса и не сильно заморачиваться по этому поводу.”
![Breakfast, ресурс: https://thebreakfast.app/ Breakfast, ресурс: https://thebreakfast.app/](https://habrastorage.org/getpro/habr/upload_files/0fc/649/d6a/0fc649d6af61bd1eeb6790028aca6b93.png)
Подобные “мгновенные встречи” решают не только вопрос о времени, но и о безопасности, так как привязаны к публичным местам. Тем не менее, все равно придется успеть самим договориться и быстро выбрать место встречи.
Другое приложение, которое может сэкономить ваше время, - это SkyLove. Здесь нету “свайпов”, вместо этого вы создаете мероприятие и назначаете место и время встречи. Уже после этого будут приходить запросы от людей, которые хотят составить вам компанию.
![Skylove, ресурс: https://skylove.su/ Skylove, ресурс: https://skylove.su/](https://habrastorage.org/getpro/habr/upload_files/952/a58/5a9/952a585a9209dd46cd2411b90c878f18.png)
Для инициатора встречи это значительно ускоряет процесс отбора, а имплементация карты помогает посетителю выбрать ближайшее и наиболее удобное событие. Тем не менее, здесь как будто бы можно ожидать какой-то “подставы” от организатора встречи, поэтому за критерий безопасности SkyLove от меня полный балл не получил.
Концепцию “событий” также использует, например, приложение Fitil. Оно позиционирует себя как сервис для серьезных знакомств на основе психоаналитики (в начале вам придется пройти тест из 111 вопросов), где вам подбирают потенциального партнера, основываясь на совместимости. Однако, просто так написать ему вы не сможете, придется покупать билет на одно из мероприятий, которые организует фирма (типы мероприятий варьируются: от походов до мастер-классов и т.д.).
![Fitil, ресурс: https://fitil.club/ Fitil, ресурс: https://fitil.club/](https://habrastorage.org/getpro/habr/upload_files/a68/ade/882/a68ade8828435d447dbdb61a61aead53.png)
Безопасно? Очень даже, но оооочень долго.
В итоге, ни одно приложение мне не пришлось по душе. Выход оставался один: самой создать достойную альтернативу, которая смогла бы соответствовать всем моим требованиям.
Итак, что нам нужно? Публичное место, где мы с высокой вероятностью окажемся минут, скажем, на 15, чтобы провести часть своего досуга. Чтобы это могло быть?! Думаю, многие скажут “кофейня”. Так подумала и я. Это было отправной точкой в создании Coffee meet-up.
Концепция приложения
Задумка была такова:
В начале пользователь создает аккаунт, после чего ему становится доступна карта с ближайшими кофейнями, он выбирает подходящую и прокладывает маршрут. Когда он доходит до кофейни, то становится видимым людям поблизости. После этого другие пользователи могут отправлять ему запрос на встречу, и он сможет решить, с кем сегодня он хотел бы разделить чашку кофе.
Изначально планировалось, что видны будут все кофейни, но возникли проблемы с базой данных и движком для карты, и было решено, что пользователю будут доступны кофейни какой-либо одной фирмы. Так как тестировать приложение я планировала в Москве, мой выбор пал на одну сеть известных кофеен, в столице вы можете увидеть их буквально на каждом углу. Это сделало идею еще более продаваемой и внедряемой, ведь вы можете заменить эту сеть на любую другую (а, может, даже и на вашу) фирму.
Я хотела абстрагироваться от идеи приложений сугубо для поиска романтических отношений, в Coffee meet-up “знакомства” - это скорее про поиск интересных собеседников и друзей, а не только потенциальных партнеров.
Кроме того, раз уж я решила сделать приложение для знакомств в кофейнях, я никак не могла не добавить опцию “коворкинг”. Поиск партнеров для совместной работы может дать буст и помощь в работе и учебе, а помимо вашего черного кофе, подбадривать вас перед дедлайном сможет и ваш новый знакомый.
Также хотелось, чтобы люди знакомились без предубеждений и ожиданий. Поэтому было решено, что фильтрации по алгоритму подбора не будет, можно только настроить фильтры на возраст (от и до), тип встречи (коворкинг/знакомства) и пол (м/ж).
Работа над проектом
И вот, после проработки концепции приложения, пришло время его реализовывать.
Над проектом я работала с октября по май и, в целом, добилась желаемого результата за 8 месяцев.
Здесь стоит отметить, что это был не просто мой первый опыт написания приложения под Android, я впервые бралась за создание крупного проекта. До этого у меня был опыт работы с Python, но он ограничивался решением задач и телеграм-ботами, ни о каких больших программах речи не шло. Осенью я поступила в IT Школу Samsung в РУДН (в Москве, на ул. Орджоникидзе) и именно благодаря учебе и практике там реализация моей задумки стала возможна.
На момент начала работы мои знания Java и Android были почти что на уровне “Hello world”, поэтому я разделила проект на несколько частей, имплементируя вначале более простые компоненты, затем более сложные.
Работу я начала с подключения Firebase, реализации профиля, регистрации и входа. Итого получилось 5 Активностей.
![](https://habrastorage.org/getpro/habr/upload_files/0d2/438/ea6/0d2438ea6514c24fbb02346678ab6aae.png)
![](https://habrastorage.org/getpro/habr/upload_files/293/587/402/293587402e452b714646eba06c0ccbed.png)
![](https://habrastorage.org/getpro/habr/upload_files/1cd/1a2/a3d/1cd1a2a3d0acb992f841fcd8b592af7c.png)
![](https://habrastorage.org/getpro/habr/upload_files/f05/007/6e3/f050076e3ca40ba5baefc256d4d1fc51.png)
![Структура профиля в Coffee meet-up Структура профиля в Coffee meet-up](https://habrastorage.org/getpro/habr/upload_files/864/894/448/8648944483e6b9d059ec4128ff73b1df.png)
Далее пришло время реализации чата, куда же без него в приложении для знакомств? Специальных библиотек для реализации чата я не использовала, только firebase для получения и обмена данными, поэтому с этим пунктом пришлось повозиться. Тут были реализованы две активности RecentConversationsActivity (“Недавние диалоги”) и сама ChatActivity
![Работы чата в Coffee meet-up Работы чата в Coffee meet-up](https://habrastorage.org/getpro/habr/upload_files/453/c61/36f/453c6136fa0d699a77eb661d20d67c6b.png)
И вот пришло время делать самое сложное: подключать карту и программировать логику встреч. Для этого я выбрала движок OSMdroid, может, не самый лучший, но зато бесплатный и надежный. На реализацию ушли 4 Активности и несколько фрагментов.
Процесс встреч я освещу подробнее в отдельном пункте позже, так как это главная “фича” Coffee meet-up.
Много внимания я уделила UI. Хотелось, чтобы он был понятным, соответствующим тематике кофеен, а также, чтобы он выделялся. Для этого я регулярно консультировалась со своими знакомыми и друзьями. Так, в частности, совместными усилиями был создан маскот приложения.
![Маскот приложения Маскот приложения](https://habrastorage.org/getpro/habr/upload_files/ec9/3f5/055/ec93f5055b34c9d5981dca857d733e8e.png)
Про то, что существуют такие волшебные вещи как Clean Architecture и Navigation Graph я узнала в мае, когда решила самостоятельно подробнее изучать Android разработку на Kotlin, поэтому Coffee meet-up хорошей архитектурой похвастаться не может. Кроме того есть memory leaks и некоторые deprecated методы. Но, несмотря на все это, Coffee meet-up прекрасно справляется со своей задачей быть “прототипом” для реализации идеи приложения.
Встречи
А теперь вишенка на торте! Как проходят встречи в Coffee meet-up и что делает их безопасными, быстрыми и интересными?
Как уже было сказано, есть два сценария развития событий: первый для инициатора встречи, второй - для посетителя.
Инициатор Встречи
Допустим, перед походом на работу или в учебное заведение вы решили найти кофейню около дома, а заодно разделить свою первую чашечку кофе с новым другом. Ваш план действий таков:
![Встреча с точки зрения инициатора Встреча с точки зрения инициатора](https://habrastorage.org/getpro/habr/upload_files/eb4/16d/671/eb416d671dfc6b690d984eca07ae9e9f.png)
1. Открываете приложение и переходите в карту
2. Выбираете опцию “Свободные кофейни”
3. Теперь просто выбираете свободную кофейню
4. Прокладываете маршрут
5. Доходите до кофейни и активируетесь
6. Выбираете понравившегося пользователя и переходите в чат
7. Если вы решили встретиться, то скидываете локацию
8. А теперь ждите (можете даже заказать посетителю кофе)
Посетитель
Что же делает в это время ваш будущий “сокофейник”?
Его алгоритм таков:
![Встреча с точки зрения посетителя Встреча с точки зрения посетителя](https://habrastorage.org/getpro/habr/upload_files/b13/6cb/f57/b136cbf578bef35e265e6692a7c05b7f.gif)
1. Открывает приложение и переходит в карту
2. Выбираете опцию “Активные точки”
3. Из доступных людей выбирает вас
4. Отправляет запрос
5. Получает от вас сообщение и вступает в переписку
6. Получает от вас локацию и переходит в “Маршрут”
7. Идет к вам и ждет не дождется встречи (и кофе, конечно же)
![Взаимодействие участников встречи Взаимодействие участников встречи](https://habrastorage.org/getpro/habr/upload_files/f31/5ac/fc9/f315acfc9a17fc2f43d1311d4513031f.gif)
Отмечу, что посетитель не знает, в какой именно кофейне вы находитесь (это безопасность), зато может быть уверен, что вы точно не дальше, чем в 1 км от него (а это скорость).
Каждый из пользователей может отменить встречу, если заподозрит что-то неладное. Также и активация, и встреча отменяется, если инициатор встречи покинул кофейню.
![](https://habrastorage.org/getpro/habr/upload_files/94b/a50/802/94ba5080234bf42906ce63ac2fc2f76e.png)
Бета-тестирование
Весной после успешной проверки работы на эмуляторах, я начала подключать своих друзей для тестирования, всего было 8 участников, включая меня. Вначале мы заранее договаривались, кто и в какой кофейне будет встречаться, и проверяли работу приложения. Затем мы выбирали район и тестировали приложение Coffee meet-up, не договариваясь заранее о месте встречи. Последний этап был организовать встречу незнакомым друг с другом людям.
Благодаря тестированию мне удалось выявить и устранить некоторые баги, а также сделать интерфейс более понятным для пользователей. Кроме того, мы просто хорошо провели время, а также получили много приятных и смешных воспоминаний.
В итоге, нам удалось организовать несколько успешных встреч, а участники третьего этапа даже продолжили общаться после тестирования.
В июне мы провели повторное тестирование с двумя новыми участниками, которые заранее не знали о том, как работает приложение. Ребятам удалось разобраться в общем функционале, и благодаря помощи других тестировщиков они смогли сами организовать встречу.
![Сохранившаяся переписка бета-тестеров Сохранившаяся переписка бета-тестеров](https://habrastorage.org/getpro/habr/upload_files/d32/ab0/361/d32ab0361404035490062aaded03555f.png)
Все бета тестеры остались довольны работой приложения и теперь ждут дальнейшего развития проекта.
Результаты
Приложение Coffee meet-up продолжает развиваться и уже делает первые успехи.
Я защитила этот проект как свой выпускной в IT Школе Samsung и получила 10 из возможных 10 баллов, стала победителем первого и второго этапов конкурса “IT Школа выбирает сильнейших!” и заняла второе место в номинации“Социальные приложения” в финале конкурса.
Я верю, что это не конец, а только начало. В будущем я планирую сделать полноценный сервис, доступный не только на Android, сотрудничать с реальными кофейнями и, конечно же, помочь людям найти новых друзей, чтобы разделить с ними вкусный кофе.
![](https://habrastorage.org/getpro/habr/upload_files/44b/7a8/49d/44b7a849d77115ec7ecf9f2e9c91f68d.png)
trawl
Я считаю, что подтверждение почты должно быть обязательным до начала использования. Особенно в дейтинге. Пару лет назад один парень повадился регистрироваться на каких-то сомнительных сайтах знакомств с моим емейлом. Он общался, а мне в почту летели уведомления о новых сообщениях и прочих активностях. В итоге мне пришлось сбрасывать его пароль, чтобы войти в его аккаунт. Мне было очень дискомфортно это делать, но только так я смог доказать супруге, что это не мой аккаунт (хорошо, что тот парень был из другого города).