Описание: Mediclub – это приложение для улучшения ментального здоровья через ежедневные медитации и мотивационные аффирмации. Интуитивно понятный интерфейс с информацией, разделенной на тематические блоки. Аффирмации возможно добавить в календарь и получать вдохновляющие уведомления в нужное время. Медитации также возможно добавлять в Избранное, благодаря чему их поиск станет еще проще. Постановка задачи Мы знаем на собственном опыте, как сложно восстановить свое моральное состояние после сложных трудовых будней. Когда работаешь по 16 часов в сутки, медитации здорово выручают. Именно по этой причине наша команда задалась целью создать удобное и простое приложение для медитаций. Такое, которым бы пользовались сами: с разноплановыми медитациями, большим набором аффирмаций и простым интерфейсом. Результат Регистрацию/авторизацию в приложении мы реализовали через номер телефона. Предусмотрели также возможность восстановления аккаунта: На Главной мы разделили информацию на блоки с полезными статьями, популярными медитациями, аффирмацией дня, а также каруселью тематик медитаций. В раздел аффирмаций и медитаций пользователь может перейти из Главной, или же выбрав соответствующую вкладку меню. В списке доступных медитаций пользователь может выбрать понравившуюся, добавить ее в Избранное. При старте прослушивания в трее появится иконка Mediclub, а также плеер с возможностью нажать паузу или перейти в предыдущей/следующей медитации. Сделали удобным прослушивание – без прекращения воспроизведения при выходе с экрана медитации. Платные медитации возможно оплатить в несколько кликов, с помощью Yookassa. Раздел Избранное помогает пользователю быстро найти нужную медитацию или аффирмацию, сохраненные ранее Календарь показывает пользователю график push-уведомлений с аффирмациями. При этом мы предусмотрели возможность настраивать график уведомлений – от единоразовых до ежедневных в течение заданного периода. А также право в любой момент изменить график или удалить аффирмацию из календаря вовсе. Профиль пользователя мы не стали перегружать лишней информацией. Только основные данные, как имя, пол и возраст. Плюс возможность установить аватар – фото из галереи устройства. Техническая составляющая Работая над современным кроссплатформенным приложением, мы, конечно же, выбрали мобильный фреймворк Flutter. Из ценных библиотек, использованных при разработке, важно отметить следующие: graphql_flutter – библиотека для работы со стандартом graphql. Основа Mediclub, удобное и гибкое решение, выполняющее роль API для работы с данными. Выбрали, т.к. GraphQL отлично подходит для приложений с большим объемом данных, хранящихся в разных базах. А также из-за простого масштабирования – возможно добавлять новые типы и поля, не затрагивая существующие запросы, не создавая несколько версий одного и того же API; get_it – сервис локатор, который позволяет получить доступ к любому зарегистрированному в нем объекту из любого места. Мы использовали по причине необходимости вызова метода блока (BLoC) в месте, куда не может быть передан контекст; dio, как надежный just_audio – позволяет воспроизводить аудио в формате стриминга (потоковое аудио); video_player для воспроизведения видео с какого-нибудь облачного хранилища или с устройства локально; youtube_player_flutter для воспроизведения видео из YouTube; Мы целенаправленно выбрали разные библиотеки, ввиду безопасности работы нескольких одновременно, без каких-либо конфликтов; rxdart, которая должна привносить реактивность в Dart. Несет в себе дополнительную обертку над обычными потоками данных привнося BehaviourSubject. Основной плюс является в том, что он сохраняет последнее свое значение, в отличие от обычного потока, где не отловленное значение теряется; flutter_bloc – пакет от felix angelov, который позволяет легко и быстро реализовать BLoC-pattern в проекте (BLoC – Business Logic Component). Содержит в себе урезанную часть блока под названием Cubit. Последний, в отличие от блока, принимает на вход не Stream (поток данных), а функцию; firebase messaging – конечно же, мы не могли обойти стороной крупнейшую платформу для разработки мобильных приложений от Google, с самыми современными функциями. В данном проекте мы использовали уведомления и вход через Google из библиотек Firebase. В качестве СУБД выступает PostgreSQL – давно зарекомендовавшее себя решение, подходящее для систем любой сложности. Имеет место быть сервис на языке программирования Python, выполняющий функции доставки пуш-уведомлений, системы оплат, подписок, промокодов. Сервис написан на быстром асинхронном фреймворке FastAPI. Интеграция оплат с Yookassa API – прозрачный инструмент, отлично выполняющий свои задачи. Авторизацией/регистрацией занимается микросервис на Ruby. ![]() Просмотров: 13 ![]() Рубрика: Разработка мобильных приложений ![]() Дата добавления: 19.12.2022 в 15:21 ![]() Оценки: отлично 0, хорошо 0, нормально 0, плохо 0, очень плохо 0
|
|