Расписание пар, заметки, личный кабинет БАРС и крутая карта для студентов и преподавателей НИУ МЭИ. Самое функциональное, легковесное и стабильное МЭИшное приложение.
Фичи приложения:
- Просмотр расписаний групп и преподавателей
- Карта корпусов, общежитий, мест общепита, известных мест кампуса МЭИ и кафедр.
- Добавление заметок к парам.
- Просмотр ЛК БАРС.
- Дашборд с ближайшими парами, заметками, расписанием сессии и объявлениями.
- Быстрое переключение между избранными расписаниями.
- Переключение между ТЁМНОЙ ТЕМОЙ и светлой темой.
- Переключение между русским и английским языком в приложении.
- Поиск по заметкам, карте, группам и преподавателям.
- Предпросмотр расписаний групп и преподавателей прямо с экрана поиска.
- Кэширование расписаний и геометок на устройстве.
- Поддержка версии для планшетов.
- Самый маленький вес приложения по сравнению с конкурентами.
- Открiтый исходнiй код.
- Меми.🤗💪😸😃
Пулл реквесты приветствуются.
- Android 5.0 Lollipop и выше (Api V21+)
- Доступ к интернету
- TEA/ELM для presenter слоя на базе Vivid Money Elmslie
- Навигация в Jetpack Compose на базе Appyx
- Retrofit для REST Api
- Kotlin Coroutines + Flow + немножко RxJava 3 (скоро будет полностью выпилена)
- Room + KSP для хранения в БД заметок и избранных расписаний
- Firebase: Crashlytics, Analytics, Remote Config
- Picasso для загрузки картинок
- DI Koin
- Для тестирования используется JUnit 5 + Kotest
- Композитный билд и кастомные Gradle плагины: много всяких интересных штук смотри в
./build-logic
В проекте используется Clean Architecture, в некоторых местах допускаются упрощения.
Если хотите разобраться в устройстве проекта, специально для вас создан файлик ARCHITECTURE.md.
- В самое ближайшее время планируется переход с RxJava на Kotlin Coroutines, как более легковесную альтернативу. Ну и потому что корутины теперь являются новым мейнстримом.
- Переход с Fragments на Jetpack Compose. Это позволит уменьшить вес приложения, увеличить скорость билда, да и в целом упростить поддержку кодовой базы, что положительно скажется на частоте обновлений приложения.
- Редизайн приложения в соответствии с новыми гайдлайнами Material.
- Полировка существующих фич и добавление нового функционала. Новые фичи сейчас на стадии рисовки в Figma. Добавляться будут только реально необходимые функции. Лишная фигня, которой пользуются раз в год и которую сложно поддерживать, в приложении появляться не будет.
-
Создайте на Firebase два конфига
google-services.json
:- Для release версии приложения (package name
kekmech.ru.mpeiapp
): положите конфиг в корень модуляapp
- Для debug версии приложения (package name
kekmech.ru.mpeiapp.dev
): положите конфиг вapp/src/debug
.
Инструкция по получению
google-services.json
. - Для release версии приложения (package name
-
В глобальный
gradle.properties
добавьте полеmpeiapp_google_maps_api_key="{SECRET}"
, где{SECRET}
- ключ от API Google Maps. Инструкция по получению ключа. -
Скачайте и установите JDK 17 версии, укажите в настройках проекта java 17 по умолчанию для Gradle и компилятора Kotlin:
File -> Settings -> Build, Execution, Deployment -> Build Tools -> Gradle
-
Установите плагин Kotest, с ним будет проще гонять тесты.
После первых двух пунктов проект соберется, после двух других начнут работать тесты. В связи с выходом Gradle 7.5.0 и AGP 7.4.0 проект перешел на Java 17.
По понятным причинам в репозитории не будут опубликованы оригинальные ключи от Google Maps API и Firebase API. Используйте свои ключики.