Nuclear для Android
Порт на Android музыкального плеера с открытым кодом Nuclear, который раньше существовал только для десктопа, адаптированный и оптимизированный для смартфонов.
- Год
- 2026
- Роль
- Личный проект
- Сфера
- Открытый код
С чего всё началось
Nuclear — свободный музыкальный плеер без рекламы и слежки, написанный на Tauri: интерфейс на TypeScript и React, под капотом Rust. Он выходил только для Windows, macOS и Linux. Я перенёс его на Android в виде неофициального форка, и речь не о том, чтобы просто втиснуть десктопную версию в маленький экран.
Что я сделал
- Запуск на Android. Вынес из мобильной сборки интеграции, которые имеют смысл только на десктопе, и изменил создание HTTPS-клиентов: на Android стандартная проверка сертификатов приводила к тому, что любой запрос зависал.
- YouTube без yt-dlp. Android не умеет запускать скачанные бинарники, поэтому поиск и потоки идут через rustypipe и API плеера YouTube. Если Google ограничивает запросы, приложение делает паузу, а не повторяет их в цикле.
- Интерфейс под смартфон. Компактная раскладка на экранах уже 640 px: навигация и очередь в выдвижных панелях, читаемые таблицы треков без hover, кнопка «Назад» Android и системные отступы.
- Фоновое воспроизведение с уведомлением и управлением с экрана блокировки и гарнитуры.
- Нужный трек находится чаще, чем в оригинале. Результаты, длительность которых не совпадает с треком (полные EP, сборники, документальные фильмы), отбрасываются, а если альбом не сообщает длительность, она оценивается. Следующий трек готовится примерно за 15 секунд до конца текущего, так что переключение почти мгновенное.
- APK около 22 МБ вместо ~650 МБ у первых отладочных сборок — за счёт настройки релизной сборки Rust и удаления неиспользуемых ресурсов.
Результат
Проверено на эмуляторе и на реальном телефоне с Android 13: поиск, очередь, воспроизведение при заблокированном экране и вывод звука по Bluetooth. Десктопная версия не затронута: все 691 тест по-прежнему проходят.
Скриншоты


