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): Для получения разрешений от устройства пользователя.

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

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

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

Логотип 1
Логотип 2
Логотип 3
Логотип 3

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

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

Логотип 1
Логотип 2
Логотип 3
Логотип 3
Логотип 1
Логотип 2
Логотип 3
Логотип 3

Поиск мемов

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

Логотип 1
Логотип 2
Логотип 3
Логотип 1
Логотип 2
Логотип 3
Логотип 1
Логотип 2

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

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

Логотип 2
Логотип 3
Логотип 1
Логотип 2
Логотип 3

Избранное

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

Логотип 2
Логотип 1

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

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

Логотип 1
Логотип 2

About

Meme App with HumorAPI

Topics

Resources

Stars

Watchers

Forks

Contributors