- Необходимо предварительно установить 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: