Android Kotlin Compose Firebase
Цвет интерфейса: мягкий синий (#4F8DF7) · Стиль баннера: 2 (светлый)
Android-приложение с 6 экранами: поиск музыки, медиатека (2 таба: избранное и плейлисты/альбомы), аудиоплеер, кино, погода, чат.
- UI/Архитектура:
- Jetpack Compose — экраны: Поиск музыки, Медиатека (2 таба), Настройки.
- Fragments / Activities — для учебных целей и демонстрации многослойной навигации.
- Навигация: кнопочная кастом-навигация + нижняя навигация, кастомный тулбар-«цветок» с actions.
- Музыка: поиск треков; если есть видео — встроенное проигрывание; в ландшафте — полноэкранный режим. Шаринг: один трек из плеера или список треков из истории с экрана поиска.
- Медиатека: ❤️ Избранное и 📝 Плейлисты/Альбомы; шаринг альбомов/плейлистов.
- Кино (Activity): 3 режима просмотра — постер / список / детали (фрагменты с 2 табами); собственная нижняя навигация; перевод названий Ru→En; шаринг фильма.
- Погода (Activity): Foreca API; при недоступности данных — фолбэк на открытые источники (аэропорты мира).
- Чат (Fragment): Firebase (auth + database), личные сообщения и отправка картинок.
- UI/UX: кастомные анимации, темы, выбор цветов (иконки, текст, заглавие, фон), оффлайн-уведомления, мультиязычность.
Гибридный стек: Jetpack Compose + Fragments/Activities + многоэкранная навигация + кастомные анимации + работа с API + Firebase.
Кнопочный экран
• 6 кнопок (3+3)
• Переключение по заголовку
• Тулбар + Dropdown
• EN: Фильтр и Dropdown ➕ добавлены 🙂 эмодзи для интуитивности 🌼
• RU: Фильтр и Dropdown «Ромашка» 🌼
• Без back stack, 6 анимаций
• На экране кнопок без нижней навигации 😕 (т.к. нижняя навигация его альтернатива).
• Переходы прямые, без stack, и с кастомной анимацией.
• Нажатие "заглавия" в тулбаре возвращает на первый набор по 3 кнопки из главного меню.
• При клике на трек — переключение на вертикальный скрол
• Горизонтальный и вертикальные скролы реализованы на базе RecyclerView ➕ альтернатива на базе ViewPager2 в экране Кино
- Нижний навигатор (список пуст, динамика)
- Альтернативное исполнение: Автоматическая прозрачность на экране "Кино" при не пустом списке
- Поддержка переключения темы, шаринга 🎵 трека или 🎶 треков, смены цветов текста, кнопок и фона, все функции настроек с 🌼 тулбара
- При импорте 🎵 трека или 🎶 треков поддерживается как вертикальный так и горизонтальный скролл
- При отправке трек оформление с именем исполнителя и названием трека(ов)
- В экране поиска длина названия или исполнителя трека ограничена в одну строку, тогда как при отдельном просмотре нет ограничений, доп. в ландскейпе скрол для теста
- DropDown 🌼 тулбара в виде вложенных кругов вращаются относительно центрального круга для расширения списка
- Переворот списка поиска (reverse scroll) — по фильтру тулбара, оповещение статуса связи
- Альтернативное бесплатная авто-поиск видео режима песен с тулбара + при отсутствии видео полное звуковая поддержка, при видео авто полно-экранное на ландскейпе, time bar для прокрутки назад-вперед
❤️ Избранное
• Добавление треков в избранное
• Просмотр списка любимых композиций
• Локальное хранение избранных треков
• Управление цветами
📝 Создание плейлистов
• Создание пользовательских плейлистов
• Добавление обложки, названия и описания
• Добавление треков в плейлисты
• Управление плейлистами (редактирование, удаление)
• Импорт-экспорт плейлистами
- Поиск фильмов:
- Кнопка старта как альтернатива экрану поиска песен.
- Автостарт реализован (и закомментирован в коде).
- Результаты поиска при переходе на трек:
- ViewPager2 с горизонтальным скролом (по умолчанию).
- Переключение на вертикальный скрол — по кнопке.
- Верхний тулбар и нижний навигатор доступны.
- Деление фильмов на избранные (❤️).
- При поиске объединяются и выдаются результаты двух режимов поиска:
- Обычный — имена актёров.
- Расширенный — краткое описание фильма.
- При отдельном просмотре фильма как альтернатива экрану поиска песен — без тулбара и нижнего навигатора.
- Переворот списка (reverse scroll) — по фильтру.
- ✨📽️💃 Шаринг кинофильма при просмотре в режиме просмотра постера фильма
- Получение кинофильма и распознавание если она в вашем списке избранных
- Переход на фрагменты, где имеется детали фильма, список и имена звезд и их фотографии
- Ru версия, с определением языка из поля ввода поиска
- Перевод названия фильма Ru->En альтернативно из ресурсов Википедия, тексты качества "прямого" перевода и все же "лучше чем ничего"
- Получение данных с Foreca API.
- В связи с ограничением бесплатного пользования в 30 дней дополнено в случае отсуствия информации поиcк через бесплатные сервисы аэропортов мира
- После ввода названия доп запрашивается код страны для нахождения определением через долготу и ширину
- Верхний тулбар и нижний навигатор доступны.
- Переключение темы и поддержка всех стандартных функций тулбара.
- Используется:
- Реализован на базе FireBase (личка, позже + групповой чат)
- Отображает тулбар и доступ к теме, делиться и другим действиям.
- экран регистрация пользователей (профиль)
- экран списка контактов
- экран обмена текстовыми сообщениями и картинками
- Кастомные анимации переходов между экранами (6 видов).
- Реализация
Dropdownчерез вложенные вращающие круги. - Переключение языка и видимости UI в зависимости от локали.
- Прямые переходы (без стека), максимально быстрый отклик и удаление блуждания при длинных переходах.
- Удобный тулбар через
BaseActivity. - В каждом экране реализовано сообщение на отсутсвии интернета экран очищается для показа ошибки на 3 секунды и затем все обратно
- Расширение возможностей экрана ExtraOption (сделано)
- Оптимизация истории поиска треков и фильмов. (сделано)
- Поддержка более длительного токена погоды. (сделано)
- Возможность синхронизации истории с облаком. (сделано)
- Клонировать репозиторий: git clone https://github.com/amanzhola/playList_Maker
- Открыть проект в Android Studio
- Собрать и запустить на эмуляторе или устройстве
Имя: Аманжол Аимов Почта: amanzholaimov@gmail.com
GitHub: github.com/amanzhola
PlayList Maker is a multifunctional Android multimedia application with 6 main screens:
Music Search, Media Library, Audio Player, Movies, Weather and Chat.
The project is intentionally built using different UI and navigation approaches:
| Feature | Implementation |
|---|---|
| Music Search, Media Library, Settings | Jetpack Compose UI |
| Chat (private messaging, Firebase) | Fragments + ViewModel |
| Movie Screen (poster preview, lists, details) | Activity + Fragments + ViewPager2 |
| Weather Screen (API + fallback sources) | Activity + ViewModel |
This structure demonstrates:
- Compose + Fragment hybrid architecture
- Shared ViewModels and state handling
- Multi-screen navigation without back stack confusion
- Custom toolbars and animated transitions
- Local + Remote data handling (API + Firebase)
Tech Stack
- Kotlin
- Jetpack Compose
- MVVM + ViewModel
- Coroutines
- Retrofit
- Firebase (Auth, Realtime DB)
- Coil
- RecyclerView / ViewPager2