You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Android-приложение с 6 экранами: поиск музыки, медиатека (2 таба: избранное и плейлисты/альбомы), аудиоплеер, кино, погода, чат.
UI/Архитектура:
Jetpack Compose — экраны: Поиск музыки, Медиатека (2 таба), Настройки.
Fragments / Activities — для учебных целей и демонстрации многослойной навигации.
Навигация: кнопочная кастом-навигация + нижняя навигация, кастомный тулбар-«цветок» с actions.
Музыка: поиск треков; если есть видео — встроенное проигрывание; в ландшафте — полноэкранный режим. Шаринг: один трек из плеера или список треков из истории с экрана поиска.
Медиатека: ❤️ Избранное и 📝 Плейлисты/Альбомы; шаринг альбомов/плейлистов.
Кино (Activity): 3 режима просмотра — постер / список / детали (фрагменты с 2 табами); собственная нижняя навигация; перевод названий Ru→En; шаринг фильма.
Погода (Activity): Foreca API; при недоступности данных — фолбэк на открытые источники (аэропорты мира).
Чат (Fragment): Firebase (auth + database), личные сообщения и отправка картинок.
Гибридный стек: Jetpack Compose + Fragments/Activities + многоэкранная навигация + кастомные анимации + работа с API + Firebase.
🏠 Экран "кнопочный рай"
Кнопочный экран
• 6 кнопок (3+3)
• Переключение по заголовку
• Тулбар + Dropdown
• EN: Фильтр и Dropdown ➕ добавлены 🙂 эмодзи для интуитивности 🌼
• RU: Фильтр и Dropdown «Ромашка» 🌼
• Без back stack, 6 анимаций
• На экране кнопок без нижней навигации 😕 (т.к. нижняя навигация его альтернатива).
🔽 🚗 Нижний навигатор
Нижняя навигация
• Отображается на 6 внутренних экранах.
• Каждый экран — 3 кнопки навигации.
• Синий цвет — активный экран, нажатие на него открывает вторую тройку кнопок.
• Переходы прямые, без stack, и с кастомной анимацией.
• Нажатие "заглавия" в тулбаре возвращает на первый набор по 3 кнопки из главного меню.
🔍 Экран Поиска музыки
Поиск музыки
• Хранит историю последних **10 треков** ➕ обновление на верхнюю строку в истории
• При переходе на трек — по умолчанию **горизонтальный скрол** всех треков из результата поиска.
• При клике на трек — переключение на вертикальный скрол
• Горизонтальный и вертикальные скролы реализованы на базе RecyclerView ➕ альтернатива на базе ViewPager2 в экране Кино
• Удаление треков из истории и списка — по **нажатию на стрелку**
• Варианты отображения:
- Верхний тулбар (всегда)
Нижний навигатор (список пуст, динамика)
Альтернативное исполнение: Автоматическая прозрачность на экране "Кино" при не пустом списке
• Переход на **экран AudioPlayer**
- Расширенные опции: смена темы, поделиться треком (в просмотре отдельного экрана) или треками(с экрана поиска-всеми треками из истории)
- При отправке трек оформление с именем исполнителя и названием трека(ов)
Поддержка переключения темы, шаринга 🎵 трека или 🎶 треков, смены цветов текста, кнопок и фона, все функции настроек с 🌼 тулбара
При импорте 🎵 трека или 🎶 треков поддерживается как вертикальный так и горизонтальный скролл
- Включении трека работает 🕒 трека и кнопки play, pause, favorite, share
- Просмотр отдельного трека, реализация ландскейпа, поддержка размеров на sw320dp, sw360dp, sw393dp
При отправке трек оформление с именем исполнителя и названием трека(ов)
В экране поиска длина названия или исполнителя трека ограничена в одну строку, тогда как при отдельном просмотре нет ограничений, доп. в ландскейпе скрол для теста
- DropDown 🌼 тулбара в виде вложенных кругов вращаются относительно центрального круга для расширения списка
- Переворот списка поиска (reverse scroll) — по фильтру тулбара, оповещение статуса связи
- Альтернативное бесплатная авто-поиск видео режима песен с тулбара + при отсутствии видео полное звуковая поддержка, при видео авто полно-экранное на ландскейпе, time bar для прокрутки назад-вперед
❤️ Медиатека 📝
❤️ Избранное
• Добавление треков в избранное
• Просмотр списка любимых композиций
• Локальное хранение избранных треков
• Управление цветами
📝 Создание плейлистов
• Создание пользовательских плейлистов
• Добавление обложки, названия и описания
• Добавление треков в плейлисты
• Управление плейлистами (редактирование, удаление)
• Импорт-экспорт плейлистами
⚙️ Экран Настроек
- Смена темы (глобально или через тулбар)
- Соглашение 📝, поддержка 🐶, поделиться 💌 — доступны через тулбар (`BaseActivity`)
🎞️ Экран Кино
Поиск фильмов:
Кнопка старта как альтернатива экрану поиска песен.
Автостарт реализован (и закомментирован в коде).
Результаты поиска при переходе на трек:
ViewPager2 с горизонтальным скролом (по умолчанию).
Переключение на вертикальный скрол — по кнопке.
Верхний тулбар и нижний навигатор доступны.
Деление фильмов на избранные (❤️).
При поиске объединяются и выдаются результаты двух режимов поиска:
Обычный — имена актёров.
Расширенный — краткое описание фильма.
При отдельном просмотре фильма как альтернатива экрану поиска песен — без тулбара и нижнего навигатора.
Переворот списка (reverse scroll) — по фильтру.
✨📽️💃 Шаринг кинофильма при просмотре в режиме просмотра постера фильма
Получение кинофильма и распознавание если она в вашем списке избранных
Переход на фрагменты, где имеется детали фильма, список и имена звезд и их фотографии
Ru версия, с определением языка из поля ввода поиска
Перевод названия фильма Ru->En альтернативно из ресурсов Википедия, тексты качества "прямого" перевода и все же "лучше чем ничего"
🌦️ Экран Погоды
Получение данных с Foreca API.
В связи с ограничением бесплатного пользования в 30 дней дополнено в случае отсуствия информации поиcк через бесплатные сервисы аэропортов мира
После ввода названия доп запрашивается код страны для нахождения определением через долготу и ширину
Верхний тулбар и нижний навигатор доступны.
Переключение темы и поддержка всех стандартных функций тулбара.
💠 Экран Чата
Используется:
Реализован на базе FireBase (личка, позже + групповой чат)
Отображает тулбар и доступ к теме, делиться и другим действиям.
экран регистрация пользователей (профиль)
экран списка контактов
экран обмена текстовыми сообщениями и картинками
🛠️ Технические особенности
Кастомные анимации переходов между экранами (6 видов).
Реализация Dropdown через вложенные вращающие круги.
Переключение языка и видимости UI в зависимости от локали.
Прямые переходы (без стека), максимально быстрый отклик и удаление блуждания при длинных переходах.
Удобный тулбар через BaseActivity.
В каждом экране реализовано сообщение на отсутсвии интернета экран очищается для показа ошибки на 3 секунды и затем все обратно
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
About
Android приложение: поиск музыки, плейлисты, медиатека, плеер, чат, погода, кино. Jetpack Compose + Fragments + Activities. Кастомная навигация, нижняя навигация, кастомный тулбар, анимации.