Skip to content

Latest commit

 

History

History
96 lines (70 loc) · 4.25 KB

File metadata and controls

96 lines (70 loc) · 4.25 KB

CompEduX - Образовательная платформа

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

Настройка

  1. Клонируйте репозиторий:
git clone https://github.com/yourusername/CompEduX.git
  1. Откройте проект в Android Studio или IntelliJ IDEA

  2. Соберите проект:

./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)

Вклад в проект

  1. Форкните проект
  2. Создайте ветку с новой функциональностью (git checkout -b feature/amazing-feature)
  3. Зафиксируйте изменения (git commit -m 'Add some amazing feature')
  4. Отправьте ветку (git push origin feature/amazing-feature)
  5. Откройте Pull Request

Лицензия

Этот проект лицензируется по лицензии MIT - подробности см. в файле LICENSE.