RSShool2021-Android-task6-Music-App

Цель – реализовать простой музыкальный плеер на Android 🎵

Требования:

  • Данные о треках считываются с JSON-файла. Пример файла находится тут. Можете использовать данный или создать свой. JSON-файл добавляем в проект, в assets или res/raw. Необходимо распарсить JSON в список треков и работать с этим списком.
  • Плеер должен проигрывать треки по uri, которые вы получили из JSON. Минимум поддерживаемых контроллов: Play, Pause, PlayNext & PlayPrevious. Плеер показывает данные о текущем треке – название, автор и картинка.
  • Если трек играет, приложение показывает нотификацию (MediaStyle) с данными о треке (название, автор, картинка) и контроллами (Play/Pause, PlayNext & PlayPrevious)
  • Реализация поддержки rotation (состояние не сбрасывается). Реализация поддержки разных версий layout для portrait и landscape режимов
  • Вы должны выбрань одну из архитектур – MVP или MVVM – и реализовать её. View не должно хранить состояния, а получать их из Presenter (MVP) или ViewModel (MVVM) 👆.

Дополнительные требования:

  • Поддержка AudioFocus
  • Реализация DI (e.g. Dagger)

См. best partices тут: https://developer.android.com/guide/topics/media-apps/audio-app/building-an-audio-app

для нотификаций: https://developer.android.com/reference/android/app/Notification.MediaStyle

Пример: см. демо-видео https://youtu.be/NYMURgYAibg

Пример экранов:

quiz app

quiz app

Удачи! 😎

GitHub

View Github