Проект
Заметки по дизайну
Какие решения по раскладке Nuvo делит с другими музыкальными плеерами и что сделано специально для Nuvo.
Что Nuvo делит с другими музыкальными плеерами
Музыкальные плееры сошлись на нескольких раскладках, потому что они работают. Nuvo использует их сознательно.
- Панель навигации слева: «Главная», «Поиск» и «Медиатека».
- Панель управления внизу: обложка, название, play, предыдущий, следующий, полоса перемотки, громкость, очередь.
- Обложки сеткой для альбомов и плейлистов и строки для треков.
- Полноэкранный текст песни с подсвеченной текущей строкой и прокруткой в такт.
- Панель очереди, поле поиска со страницей результатов и контекстное меню у каждого трека.
- Страница настроек, разделённая на секции.
Если вы пользовались любым современным плеером, вы сориентируетесь в Nuvo. Ради этого эти решения и сохранены.
Что сделано для Nuvo
У этих частей собственный дизайн и собственный код в этом репозитории.
- Локальный демон как слой данных. Служба на Rust
nuvo-coreхранит медиатеку в зашифрованной базе данных SQLCipher. Окно общается с ней через unix-сокет с токеном на каждый запуск. Сервера Nuvo и аккаунта Nuvo нет. - Фраза восстановления. Мастер-ключ лежит в системном хранилище ключей и соответствует фразе из 24 слов, которая восстанавливает медиатеку.
- Зашифрованный кэш аудио. Аудио хранится в запечатанных частях по 64 КиБ, поэтому перемотка работает без расшифровки всего файла.
- Notch. Небольшой «остров» вверху экрана с текущим треком, живым текстом и управлением, который размещается отдельно для каждой сессии рабочего стола.
- Эквалайзер. Десять полос на одной кривой поверх живого спектра, с пресетами, автоусилением и запоминанием кривой для каждого трека.
- Инструменты воспроизведения. Плавный переход с запасным вариантом без пауз, выравнивание громкости, пресеты скорости и высоты тона с реверберацией, таймер сна, цикл A-B.
- Ссылки для обмена. Песня или плейлист превращается в одну компактную ссылку, которая несёт список треков. Nuvo получателя собирает его заново локально.
- Вставьте что угодно. Поиск принимает ссылки из нескольких сервисов и превращает их в треки или в предпросмотр импорта.
- Локальные рекомендации. Миксы и радио ранжируются на вашем компьютере по вашим прослушиваниям, лайкам и выбору «Не интересно».
- Темы. Девять стилей, редактор цветов с предупреждениями о контрасте, файлы тем и поле для своего CSS со строгой проверкой и безопасным режимом оформления.
- Локальные файлы. Слежение за папками, чтение тегов и обложек, а перемещённые файлы сохраняют свои лайки.
- Проверка сети. Строки DNS, TCP и HTTPS для каждого хоста, прокси, расхождение часов и состояние инструментов в одном отчёте.
- Набор иконок и текст интерфейса. Иконки нарисованы на одной сетке 24 px по материалам из THIRD-PARTY-NOTICES. Текст интерфейса есть на русском и английском.
Где читать дальше
- Возможности: начните с введения
- Как это устроено: обзор архитектуры
- Условия лицензии на код и на сторонние части: лицензия, THIRD-PARTY-NOTICES