Skip to content

Repository files navigation

BigDisplayProject, проект для большого экрана в локации ИИТ

Инструкция по запуску

  • Необходимо предварительно установить VLCJ-плеер на компьютер
  • Необходимо предварительно развернуть сервис для управления рукой при помощи Киннекта
  • ./gradlew run

Архитектура и дизайн

  • MVIKotlin
  • Clean architecture
  • Dependency Injection (Koin)
  • Для каждого экрана есть свой package в UI слое, содержащий Store, который отвечает за состояние и обработку UI событий
  • Новости для слайдера и вкладки списка новостей подтягиваются из ручек API Вики
  • Расписание получаем тоже через API в виде .iCal файла, парсим и отображаем
  • Управление осуществляется через Киннект при помощи запросов к UDP сервису Роберта, развёртываемому на компьютере (Unity), на котором запускаем приложение

Требуется доработка

  • Воспроизведение видео из новостей Вики, получаемых для вкладки со списком новостей

    Из API получаем только ссылку на видео в VK, которую не удаётся отобразить. Необходимо получить прямую ссылку на .mp4 путём парсинга кода страницы VK, либо настройкой официального API ВК и работы с ним.

    Есть вариант создать отдельную ручку для получения исходников, если это возможно.

    Также я пробовал настроить и использовать KMP WebView для отображения имеющихся VK ссылок: https://github.com/KevinnZou/compose-webview-multiplatform/tree/main

    Который использует:

    https://github.com/DatL4g/KCEF/tree/master

    Однако при инициализации KCEF появилась непонятная ошибка. Исправить её не удалось. Подробнее здесь:

    KevinnZou/compose-webview-multiplatform#384

    В Store для News есть логика, которая позволяет предзагружать видео из всех новостей, у которых они есть, и нумеровать их, чтобы отображать затем в NewsDetails. Данная логика бесполезна, тк загрузить видео по имеющейся в API ссылке пока что никак. Но я оставляю её, тк она может быть полезна после добавления логики парсинга, работы с API VK, либо же замены ручки на ту, в которой будут .mp4 ссылки.

    Также происходит предзагрузка видео для слайдера, однако пока что решено воспроизводить их по прямым ссылкам, тк там они ведут на .mp4.

  • Киннект

    Возможно надо сделать заполнение курсора при нажатии, как сделано в нынешнем приложении. Это позволит понимать, как расположить руку, чтобы нажатие совершилось.

    Необходимо развернуть приложение на каком-то из экранов и в удобном формате протестировать всю работу курсора. Это необходимо, чтобы можно было откалибровать курсор, а также окончательно удостовериться в работоспособности нажатий, удержаний.

    Курсор становится обычным, если залезть за границу экрана. Надо как-то это проверять, фиксить.

  • Отображение расписания во время сессии

    Во время сессии парсинг расписания работает неверно

    Исправить в данный момент нет возможности, тк нужен файл с расписанием для сессии

    Соответственно, необходимо это доработать уже во время сессии. Логика парсинга находится в CalendarParser

Прочие особенности

  • Вычисление номера и чётности текущей недели

    В функциях getWeekNumber, getParity в файле CalendarParser нужно обновить дату первого учебного дня для нового семестра при его наступлении.

    Помечено TODO, в комментариях также есть объяснения

  • Некоторые моменты, на которые возможно стоит обратить внимание, помечены TODO:

About

A project for display close to IIT location in RTU MIREA.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages