Skip to content

007sunchela/lolify

Repository files navigation

LOLify

Логотип приложения

Описание приложения

LOLify — это развлекательное приложение для поиска и обмена мемами. Пользователи могут искать мемы на разные темы, сохранять их и делиться ими в Интернете.

Функции приложения

Backlog:

  • поиск мемов по фильтрам;
  • добавление мема в избранное;
  • скачивание мема на телефон;
  • обмен мемом в соцсетях;
  • генерация нового мема;
  • удаление мема из избранного;
  • смена цветовой темы.

Структура базы данных

База данных Таблица memes содержит три столбца:

  • id_meme (основной ключ, автоинкремент);
  • desc (уникальное описание, не NULL);
  • url (уникальный URL, не NULL).

Навигация приложения

Навигация

Навигация внутри приложения LOLify выглядит следующим образом:

  • Intro Page (Стартовая страница) ведет к Meme Page (странице мемов);
  • С Meme Page можно перейти на Generate Page (страницу генерации мемов), Favourite Page (страницу избранных мемов) и Settings Page (страницу настроек);
  • Страницы Generate Page, Favourite Page и Settings Page имеют связи с Meme Page, позволяя переходить туда для дальнейших действий.

Архитектура приложения

Архитектура

Архитектура приложения состоит из трёх основных компонентов:

  1. UI — фронтенд, построенный на Flutter, который отвечает за отображение экранов и взаимодействие с пользователем;
  2. Logic — представлена использованием Provider для управления состоянием и бизнес-логикой;
  3. Networking — здесь используются Humor API для получения данных с внешнего сервера и SQLite DB для хранения данных локально на устройстве.

UI взаимодействует с логикой через Provider, а логика обрабатывает запросы к API и базе данных.

Стек разработки

Стек приложения включает следующие компоненты:

  • API (Humor API): Для получения юмористического контента из внешнего источника;
  • Local Storage (SQFlite/SharedPreferences): Для хранения данных локально, например, мемов или настроек;
  • State Managment (Provider): Для управления состоянием приложения и связи с UI;
  • Navigation (namedRoute): Для управления навигацией между экранами приложения;
  • Native API (permission_handler): Для получения разрешений от устройства пользователя.

Обзор приложения

Вступительная заставка

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

Цветовая тема

Пользователь может выбрать приложение в светлой или темной теме. Последняя установленная пользователем тема приложения сохраняется при последующих запусках.

Поиск мемов

На странице поиска пользователь может выбрать поиск мемов по ключевым словам и количеству мемов. Мемы оформлены в виде списка из карточек с описанием и изображением мема. С каждым мемом есть три действия: добавить мем в избранное, скачать мем на телефон, поделиться мемом в Интернете.

Генерация мема

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

Избранное

На странице избранного пользователь может видеть добавленные мемы. Выбранный мем может удалить. (скачать или поделиться также есть)

Адаптивный дизайн

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