Привет! Я разработчик iOS‑приложения Music Player в компании MediaRise. Хотел поделиться инженерной частью: как мы организовали импорт музыки из Files, автосканирование, защиту от дубликатов и стабильное воспроизведение.

Задача:
Хотелось простого и предсказуемого плеера для локальных файлов, без стриминговой обвязки.
Ключевые требования:
1. Импорт музыки из Files.app и Finder/iTunes
2. Хранение файлов внутри контейнера приложения
3. Автосканирование папок приложения при запуске
4. Отсутствие дубликатов
5. Нормальное автопереключение следующего трека
6. UX‑фокус: как пользователь добавляет музыку
Мы решили поддерживать два сценария:
Через Files.app — пользователь кладёт файлы в Documents/Music
Через кнопку «+» — выбор файлов в интерфейсе
Плюс отдельно добавили вкладку Storages, где можно открыть папку приложения или Documents/Music напрямую. Это существенно снизило количество вопросов «где лежит папка приложения».
Через Files.app — пользователь кладёт файлы в Documents/Music
Через кнопку “+” — выбор файлов в интерфейсеПлюс отдельно добавили вкладку Storages, где можно открыть папку приложения или Documents/Music напрямую. Это существенно снизило количество вопросов «где лежит папка приложения».
Инстру��ция в UI
В пустой библиотеке показываем короткие шаги:
Открыть Files.app
Перейти в «На iPhone → Music Player»
Положить музыку в Documents/Music
Приложение само найдёт файлы
Воспроизведение: следующий трек
Оказалось, что автопереход на следующий трек «из коробки» не всегда стабилен, особенно если меняется AVPlayerItem. Решение — подписка на AVPlayerItemDidPlayToEndTime:
Событие конца трека
Вызываем nextTrack()
Удаляем наблюдатель при остановке
Так автоплей работает стабильно.
Технические детали, которые сыграли роль
Security‑scoped bookmarks: на macOS важны, на iOS — не всегда, поэтому разделили поведение платформами.
Перескан метаданных: делаем после добавления, чтобы подтянуть artist/title/artwork.
Локализация: сразу поддержали несколько языков, чтобы UI не выглядел «сырым».
Что получилось
Простой импорт для обычного пользователя
Автосканирование без дубликатов
Предсказуемое воспроизведение
Удобный доступ к папкам приложения
Что дальше
Думаем добавить:
Ручную сортировку плейлиста
Быстрый поиск по библиотеке
Экспорт плейлистов
