ТЗ давал наставник. Основные технические требования:
- Минимальная версия iOS: 15.0
- Язык разработки: Swift
- Технология UI: на выбор - SwiftUI или UIKit
- Архитектура приложения: любая, кроме MVC (рекомендуется MVVM-C)
- Бэкенд: Firebase (Firestore, Firebase Auth, Firebase Storage)
- Обязательные компоненты: сетевой слой, локальное хранилище, аудиоплеер
Детализация требований
1. Бэкенд и аутентификация
Реализация через сервисы Firebase:
- Firebase Authentication для регистрации и входа
- Cloud Firestore для хранения данных
- Firebase Storage для хранения аудиофайлов и обложек
2. Структура экранов и навигация
Приложение должно содержать Tab Bar с 4 основными экранами.
Экран 1: Главная (Лента)
- Персонализированные плейлисты ("Снова играет", "Новые релизы")
- Рекомендации по жанрам
- Быстрый доступ к недавно прослушанным трекам
- Поиск по всей библиотеке
Экан 2: Поиск
- Поисковая строка с автодополнением
- Категории жанров (поп, рок, хип-хоп, электроника и т.д.)
- Чарты популярных треков
- Новые альбомы и исполнители
Экран 3: Медиатека
- Список любимых треков (лайкнунные)
- Созданные пользователем плейлисты
- Скачанные треки для офлайн-прослушивания
- История прослушивания
Экран 4: Профиль
- Информация о пользователе
- Настройки качества аудио
- Управление подпиской (статичная информация)
- Выход из аккаунта
3. Аудиоплеер
- Полноэкранный плеер с обложкой альбома
- Управление воспроизведением (play/pause, next/previous)
- Прогресс-бар с возможностью перемотки
- Кнопка "лайка" для добавления в избранное
- Режим повтора и перемешивания
4. Локальное хранение данных
- Кэш метаданных о треках и плейлистах
- Список избранных треков для офлайн-доступа
- Настройки пользователя (качество звука, тема)
- История прослушивания
5. Данные для Firebase
В Firestore необходимо создать коллекции:
- `users` - профили пользователей
- `tracks` - информация о треках (название, исполнитель, альбом, длительность)
- `playlists` - плейлисты (название, описание, список треков)
- `artists` - информация об исполнителях
- `favorites` - избранные треки пользователей
6. Дополнительно
- Использование AVFoundation для воспроизведения аудио
- Фоновая работа аудиоплеера
- Управление с заблокированного экрана (опционально)
- Поддержка интервалов воспроизведения (опционально)
Просмотр настоящего приложения Spotify для примера. Заготовка таббара для приложения. Загрузка обложек и треков на Firebase.
Первый экран.Сделал стартовый первый экран со строкой поиска по артисту и названию, разделами треков и сохранением истории прослушивания.
Сделал второй экран со строкой поиска. Разделами с альбомами, информацией про артистов, популярными треками и заглушками жанров.
Сделал третий экран с отображением понравившихся треков, треков скаченных офлайн, "моими плейлистами" и списком истории прослушивания
Так же сделан экран с отображением информации профиля, с кнопкой выйти и загрузками кнопками. Есть информация о количествах подписок и подписчиков.
Реализованы экрана логина и регистрации. А так же переведены некоторый элементы на английский и беларуский.
Приложения для загрузки, прослушивания и сохранением треков. Приложение для портфолио