Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Android приложение: поиск музыки, плейлисты, медиатека, плеер, чат, погода, кино. Jetpack Compose + Fragments + Activities. Кастомная навигация, нижняя навигация, кастомный тулбар, анимации.

Notifications You must be signed in to change notification settings

amanzhola/playList_Maker

Repository files navigation

Android Kotlin Compose Firebase

🎧 📱 PlayList Maker — мультимедиа приложение

Цвет интерфейса: мягкий синий (#4F8DF7) · Стиль баннера: 2 (светлый)

РусскийEnglish


Описание (RU)

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.


🏠 Экран "кнопочный рай"

left

Кнопочный экран

• 6 кнопок (3+3)
• Переключение по заголовку
• Тулбар + Dropdown
• EN: Фильтр и Dropdown ➕ добавлены 🙂 эмодзи для интуитивности 🌼
• RU: Фильтр и Dropdown «Ромашка» 🌼
• Без back stack, 6 анимаций
• На экране кнопок без нижней навигации 😕 (т.к. нижняя навигация его альтернатива).

right-1 right-2

🔽 🚗 Нижний навигатор

left left left

Нижняя навигация

• Отображается на 6 внутренних экранах.
• Каждый экран — 3 кнопки навигации.
• Синий цвет — активный экран, нажатие на него открывает вторую тройку кнопок.

right-1 right-1

• Переходы прямые, без stack, и с кастомной анимацией.
• Нажатие "заглавия" в тулбаре возвращает на первый набор по 3 кнопки из главного меню.


🔍 Экран Поиска музыки

left left

Поиск музыки

• Хранит историю последних **10 треков** ➕ обновление на верхнюю строку в истории
• При переходе на трек — по умолчанию **горизонтальный скрол** всех треков из результата поиска.

right-1 right-2 right-2

• При клике на трек — переключение на вертикальный скрол
• Горизонтальный и вертикальные скролы реализованы на базе RecyclerView ➕ альтернатива на базе ViewPager2 в экране Кино

left left

• Удаление треков из истории и списка — по **нажатию на стрелку**
• Варианты отображения:
- Верхний тулбар (всегда)

right-1 right-2 right-2
  • Нижний навигатор (список пуст, динамика)
  • Альтернативное исполнение: Автоматическая прозрачность на экране "Кино" при не пустом списке
left left left

• Переход на **экран AudioPlayer**
- Расширенные опции: смена темы, поделиться треком (в просмотре отдельного экрана) или треками(с экрана поиска-всеми треками из истории)
- При отправке трек оформление с именем исполнителя и названием трека(ов)

right-1 right-2
  • Поддержка переключения темы, шаринга 🎵 трека или 🎶 треков, смены цветов текста, кнопок и фона, все функции настроек с 🌼 тулбара
  • При импорте 🎵 трека или 🎶 треков поддерживается как вертикальный так и горизонтальный скролл
left

- Включении трека работает 🕒 трека и кнопки play, pause, favorite, share
- Просмотр отдельного трека, реализация ландскейпа, поддержка размеров на sw320dp, sw360dp, sw393dp

right-1 right-2 right-2
  • При отправке трек оформление с именем исполнителя и названием трека(ов)
  • В экране поиска длина названия или исполнителя трека ограничена в одну строку, тогда как при отдельном просмотре нет ограничений, доп. в ландскейпе скрол для теста
left

- DropDown 🌼 тулбара в виде вложенных кругов вращаются относительно центрального круга для расширения списка
- Переворот списка поиска (reverse scroll) — по фильтру тулбара, оповещение статуса связи

- Альтернативное бесплатная авто-поиск видео режима песен с тулбара + при отсутствии видео полное звуковая поддержка, при видео авто полно-экранное на ландскейпе, time bar для прокрутки назад-вперед

right-1

❤️ Медиатека 📝

❤️ Избранное
• Добавление треков в избранное
• Просмотр списка любимых композиций
• Локальное хранение избранных треков
• Управление цветами

right-1 right-1

📝 Создание плейлистов
• Создание пользовательских плейлистов
• Добавление обложки, названия и описания

• Добавление треков в плейлисты
• Управление плейлистами (редактирование, удаление)
• Импорт-экспорт плейлистами


⚙️ Экран Настроек

shot-1

- Смена темы (глобально или через тулбар)
- Соглашение 📝, поддержка 🐶, поделиться 💌 — доступны через тулбар (`BaseActivity`)

shot-2 shot-3

🎞️ Экран Кино

  • Поиск фильмов:
    • Кнопка старта как альтернатива экрану поиска песен.
    • Автостарт реализован (и закомментирован в коде).
  • Результаты поиска при переходе на трек:
    • ViewPager2 с горизонтальным скролом (по умолчанию).
    • Переключение на вертикальный скрол — по кнопке.
  • Верхний тулбар и нижний навигатор доступны.
  • Деление фильмов на избранные (❤️).
  • При поиске объединяются и выдаются результаты двух режимов поиска:
    • Обычный — имена актёров.
    • Расширенный — краткое описание фильма.
  • При отдельном просмотре фильма как альтернатива экрану поиска песен — без тулбара и нижнего навигатора.
  • Переворот списка (reverse scroll) — по фильтру.
  • ✨📽️💃 Шаринг кинофильма при просмотре в режиме просмотра постера фильма
  • Получение кинофильма и распознавание если она в вашем списке избранных
  • Переход на фрагменты, где имеется детали фильма, список и имена звезд и их фотографии
  • Ru версия, с определением языка из поля ввода поиска
  • Перевод названия фильма Ru->En альтернативно из ресурсов Википедия, тексты качества "прямого" перевода и все же "лучше чем ничего"

🌦️ Экран Погоды

  • Получение данных с Foreca API.
  • В связи с ограничением бесплатного пользования в 30 дней дополнено в случае отсуствия информации поиcк через бесплатные сервисы аэропортов мира
  • После ввода названия доп запрашивается код страны для нахождения определением через долготу и ширину
  • Верхний тулбар и нижний навигатор доступны.
  • Переключение темы и поддержка всех стандартных функций тулбара.

💠 Экран Чата

  • Используется:
  • Реализован на базе FireBase (личка, позже + групповой чат)
  • Отображает тулбар и доступ к теме, делиться и другим действиям.
  • экран регистрация пользователей (профиль)
  • экран списка контактов
  • экран обмена текстовыми сообщениями и картинками

🛠️ Технические особенности

  • Кастомные анимации переходов между экранами (6 видов).
  • Реализация Dropdown через вложенные вращающие круги.
  • Переключение языка и видимости UI в зависимости от локали.
  • Прямые переходы (без стека), максимально быстрый отклик и удаление блуждания при длинных переходах.
  • Удобный тулбар через BaseActivity.
  • В каждом экране реализовано сообщение на отсутсвии интернета экран очищается для показа ошибки на 3 секунды и затем все обратно

✌️ Стек технологий

* Kotlin * Android SDK * ViewModel + LiveData * Coroutines * Retrofit * Koin (DI) * ViewPager2 * RecyclerView * SharedPreferences

🚀 Будущие доработки

  • Расширение возможностей экрана ExtraOption (сделано)
  • Оптимизация истории поиска треков и фильмов. (сделано)
  • Поддержка более длительного токена погоды. (сделано)
  • Возможность синхронизации истории с облаком. (сделано)

⚙️ Установка и запуск

  1. Клонировать репозиторий: git clone https://github.com/amanzhola/playList_Maker
  2. Открыть проект в Android Studio
  3. Собрать и запустить на эмуляторе или устройстве

🧑‍💻 Автор / Команда

Имя: Аманжол Аимов Почта: amanzholaimov@gmail.com
GitHub: github.com/amanzhola



Overview (EN)

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. Кастомная навигация, нижняя навигация, кастомный тулбар, анимации.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /