CompEduX - это мультиплатформенное образовательное приложение, разработанное с использованием Kotlin Multiplatform. Оно предоставляет единую кодовую базу для приложений Android, iOS и веб, разделяя бизнес-логику и сохраняя при этом нативный пользовательский интерфейс.
Проект следует принципам Чистой архитектуры и организован в несколько модулей:
- core:domain - Содержит бизнес-логику, сущности и интерфейсы
- core:utils - Утилитные классы, логирование и общая функциональность
- core:network - API-клиент, сетевое взаимодействие и объекты передачи данных
- core:data - Реализация репозиториев и источники данных
- app - Платформо-специфичные приложения (Android, iOS, Web)
- Мультиплатформенная поддержка: Единая кодовая база работает на нескольких платформах
- Чистая архитектура: Разделение ответственности с инверсией зависимостей
- Внедрение зависимостей: Использует Kodein для DI во всех модулях
- Реактивное программирование: Реактивная архитектура на основе Flow
- Кроссплатформенная работа с сетью: HTTP-клиент с Ktor
- Система логирования: Унифицированное логирование на всех платформах
- Kotlin Multiplatform - Для кроссплатформенной разработки
- Kodein - Фреймворк для внедрения зависимостей
- Ktor - HTTP-клиент для API-коммуникации
- Kotlinx Serialization - Сериализация/десериализация JSON
- Kotlinx Coroutines - Асинхронное программирование
- Kotlinx DateTime - Работа с датой и временем
- Napier - Фреймворк для логирования
- JDK 11 или выше
- Kotlin 1.8 или выше
- Android Studio/IntelliJ IDEA
- Клонируйте репозиторий:
git clone https://github.com/yourusername/CompEduX.git
-
Откройте проект в Android Studio или IntelliJ IDEA
-
Соберите проект:
./gradlew build
- Android: Запустите конфигурацию Android-приложения
- iOS: Соберите iOS-фреймворк и запустите в Xcode
- Web: Соберите и запустите JS-приложение
app (UI layer)
│
├─ core:data (Repository implementations)
│ │
│ ├─ core:network (API client)
│ │ │
│ │ └─ core:utils (Utilities)
│ │
│ └─ core:domain (Business logic)
│ │
│ └─ core:utils (Utilities)
│
└─ core:utils (Utilities)
- Форкните проект
- Создайте ветку с новой функциональностью (
git checkout -b feature/amazing-feature) - Зафиксируйте изменения (
git commit -m 'Add some amazing feature') - Отправьте ветку (
git push origin feature/amazing-feature) - Откройте Pull Request
Этот проект лицензируется по лицензии MIT - подробности см. в файле LICENSE.