Мобильное приложение для просмотра афиши кинотеатра, выбора мест и покупки билетов. Проект разработан в рамках дипломной работы с использованием современного стека Android-разработки.
Вы можете скачать последнюю версию приложения (APK) в разделе релизов:
Приложение предоставляет полный цикл взаимодействия пользователя с кинотеатром:
- 🎬 Афиша: Просмотр списка текущих и будущих фильмов с фильтрацией.
- ℹ️ Детали фильма: Описание, рейтинги (Кинопоиск/IMDb) и трейлеры.
- 🎟️ Бронирование: Интерактивная схема зала с выбором мест и расчетом стоимости в реальном времени.
- 👤 Личный кабинет: Просмотр истории покупок, активных билетов и QR-кодов для входа.
- 🔐 Авторизация: Безопасный вход и регистрация пользователей через Firebase.
- 💬 Рецензии: Возможность читать отзывы других зрителей и публиковать свои.
- 🏆 Геймификация: Система достижений за активность в приложении.
- 💎 Система лояльности: Накопление баллов за покупки и возможность оплаты ими части билета.
| Главный экран | Выбор мест | Билет | Профиль |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
Проект построен на базе Clean Architecture с использованием паттерна MVVM, что обеспечивает масштабируемость и тестируемость кода.
- Язык: Kotlin
- UI: Jetpack Compose (Material Design 3)
- Навигация: Navigation Compose
- Асинхронность: Coroutines + Flow
- DI (Внедрение зависимостей): Hilt
- Сеть: Retrofit + OkHttp (работа с API Кинопоиска)
- Загрузка изображений: Coil
- База данных & Auth: Firebase (Firestore, Authentication)
- Локальное хранение: DataStore Preferences (настройки темы)
- Перейдите в раздел Releases.
- Скачайте файл
KinoApp-v1.0-beta.apkна ваш Android смартфон. - Запустите файл. Если система запросит разрешение на установку из неизвестных источников — разрешите.
- Приложение готово к работе!
Для запуска проекта вам понадобится Android Studio Ladybug или новее.
- Клонируйте репозиторий:
git clone https://github.com/xckrt/kino.git
- Откройте проект в Android Studio.
- Дождитесь синхронизации Gradle.
- Запустите на эмуляторе или реальном устройстве.
com.example.cinemaapp
├── data # Data Layer: Репозитории, API, Firebase, DTO
├── domain # Domain Layer: UseCases, Интерфейсы репозиториев, Модели
├── presentation # UI Layer
│ ├── components # Переиспользуемые UI элементы (кнопки, карточки)
│ ├── dialogs # Модальные окна (Alerts, BottomSheets)
│ ├── theme # Тема приложения, цвета, шрифты
│ └── screens # Экраны приложения
│ ├── LoginScreen # Авторизация
│ ├── HomeScreen # Главная афиша
│ ├── BookingScreen # Выбор мест и покупка
│ ├── ProfileScreen # Профиль и настройки
│ ├── MovieDetailsScreen # Детали фильма
│ ├── RegisterScreen # Регистрация
│ ├── TicketScreen # Экран билетов
│ └── CinemaApp # Навигационный модуль
└── utils # Утилиты и константы (форматирование дат, логика валидации)



