Учебный Android-проект, написанный с нуля в рамках курса Яндекс.Практикум — мобильная разработка на Android.
Актуальный APK доступен на странице Releases.
Playlist Maker — приложение для поиска треков через iTunes Search API, прослушивания превью и управления собственными плейлистами. Проект охватывает полный цикл разработки Android-приложения: от UI до работы с базой данных и сетью.
- Поиск по iTunes Search API в реальном времени
- История поиска с возможностью очистки
- Отображение обложки, названия, исполнителя и длительности
- Воспроизведение 30-секундного превью трека
- Прогресс-бар с таймером
- Кнопки «Добавить в избранное» и «Добавить в плейлист»
- Создание плейлиста с названием, описанием и обложкой
- Редактирование существующего плейлиста
- Добавление треков в плейлист прямо из плеера
- Удаление треков и плейлистов
- Шаринг плейлиста текстом в другие приложения
- Суммарная продолжительность треков
| Слой | Технологии |
|---|---|
| Язык | Kotlin |
| Архитектура | MVVM + Clean Architecture (Data / Domain / Presentation) |
| DI | Koin |
| База данных | Room (SQLite) |
| Сеть | Retrofit + Gson |
| Навигация | Navigation Component (Single Activity) |
| Изображения | Glide |
| Асинхронность | Coroutines + Flow |
| UI | ViewBinding, Material Design 3, ConstraintLayout, BottomSheet |
| Хранилище | SharedPreferences (настройки), FileSystem (обложки плейлистов) |
app/
├── data/
│ ├── db/ # Room entities, DAOs, AppDatabase
│ ├── network/ # Retrofit, ITunes API
│ └── repository/ # Реализации репозиториев
├── domain/
│ ├── api/ # Интерфейсы репозиториев и интеракторов
│ ├── impl/ # Реализации интеракторов
│ └── model/ # Доменные модели (Track, Playlist, ...)
├── presentation/
│ ├── media/ # Медиатека: Избранное, Плейлисты
│ │ └── playlists/ # Список, создание, редактирование, экран плейлиста
│ ├── search/ # Поиск треков
│ └── settings/ # Настройки (тема)
├── ui/
│ └── player/ # Аудиоплеер
└── di/
└── AppModules.kt # Koin-модули
- Клонируй репозиторий:
git clone https://github.com/YOUR_USERNAME/playlist-maker.git
- Открой в Android Studio Hedgehog или новее
- Синхронизируй Gradle
- Запусти на эмуляторе или устройстве с Android 10+ (API 29+)
./gradlew assembleReleaseФайл появится в app/build/outputs/apk/release/.
Проект разрабатывался поэтапно в рамках учебных спринтов:
- Вёрстка экранов, навигация, SharedPreferences
- Сеть — поиск треков через iTunes API, история поиска
- Аудиоплеер с MediaPlayer
- Clean Architecture, Koin, рефакторинг
- Coroutines, Room — избранные треки
- Плейлисты: создание, добавление треков, экран плейлиста, редактирование, шаринг