Skip to content

Max-Andersen/Mobile-Cinema

Repository files navigation

Cinema lab

Один из учебных проектов второго курса HITs TSU.
Мобильное приложение-кинотеатр с функционалом коллекций, подборок, обсуждением и просмотром фильмов(стоит точнить, что приложение не использовалось в коммерческих целях, авторские права не нарушены, для всех фильмов, кроме Смешариков были использованы трейлеры).
Я работал с уже заготовленной API

Описание API(когда-то её отключат и ссылка не будет загружаться) Auth Регистрация и получение токена

POST /auth​/register Регистрация
POST /auth​/login Аутентификация в системе
POST /auth​/refresh Обновление access token'a с помощью refresh token'а

Cover Обложка для приложения
GET /cover Получить информацию о фильме для обложки.

Movie Информация о киноновинках
GET /movies Получить список фильмов.
GET /movies​/{movieId}​/episodes Получить список эпизодов.
POST /movies​/{movieId}​/dislike Убрать фильм из подборки.

Collections Информация о коллекциях пользователя
GET /collections Список коллекций данного пользователя.
POST /collections Создать коллекцию.
DELETE /collections​/{collectionId} Удаление коллекции
GET /collections​/{collectionId}​/movies Получить список фильмов в коллекции
POST /collections​/{collectionId}​/movies Добавить фильм в коллекцию
DELETE /collections​/{collectionId}​/movies Удаление фильма из коллекции

Tags Информация о тегах
GET /tags Список всех тегов

Episodes Информация о эпизодах
GET /episodes​/{episodeId}​/comments Получить список комментариев к эпизоду.
POST /episodes​/{episodeId}​/comments Добавить комментарий.
GET /episodes​/{episodeId}​/time Получить текущую позицию.
POST ​/episodes​/{episodeId}​/time Сохранить текущую позицию эпизода.

Chats Информация о чатах
GET ​/chats Список чатов, в которых участвует данный пользователь.
GET ​/chats​/{chatId} Информация о чате.
GET ​/chats​/{chatId}​/messages Список сообщений чата.
POST ​/chats​/{chatId}​/messages Отправить сообщение.

History Информация об истории
GET ​/history История просмотров пользователя.

Preferences Информация о предпочтениях
GET ​/preferences Получить список предпочтений пользователя.
PUT ​/preferences Изменить предпочтения пользователя.

Profile Информация о профиле пользователя
GET ​/profile Получить информацию о пользователе
PATCH ​/profile Редактирование данных пользователя
POST ​/profile​/avatar Загрузка фотографии

Используемые библиотеки:

  • Retrofit - обёртка с кодогенерацией над OkHttp, упрощающая взаимодействие с REST API
  • OkHttp - Использовал WebSocket для работы чатов
  • Lottie - Анимация в ErrorDialog и Like/Dislike
  • Kotlin coroutines - Ассинхронная работа с интернет-запросами.
  • Security crypto - для хранения токена пользователя в EncryptedSharedPreferences
  • Room - Локальное сохранение и изменение картинки и названия коллекции.
  • CardStackView - Слайдер, как в Tinder
  • Glide - Загрузка фото через Интернет.

Особенности:

  • Live чаты на веб-сокетах
  • Single Activity
  • MVVM
  • Clean Architecture(далеко не идеальная, но за неимением времени пока что такая, в будущем планирую доделать)
  • Загрузка фото из галереи/камеры
  • Английская локализация

Визуальная составляющая:

(извиняюсь за качество, ошибку нашёл, но api уже не работает:( )

Launch&Register MainScreen EpisodeScreen
Collections CreateCollection EditCollection
Compilation ChatScreen

Releases

No releases published

Packages

No packages published

Languages