Featured image of post Armpit: un cliente de Navidrome nativo para iPhone, Mac, Apple TV y Watch

Armpit: un cliente de Navidrome nativo para iPhone, Mac, Apple TV y Watch

Un reproductor de música nativo para tu servidor Subsonic, OpenSubsonic o Navidrome. Ecualizador real, gapless, descargas offline y cero tracking.

Armpit es un reproductor de música nativo para tu servidor Subsonic, OpenSubsonic o Navidrome. Corre en iPhone, iPad, Mac, Apple TV y Apple Watch, con una sola compra. Sin cuentas, sin ads, sin tracking.

De qué se trata

Es una app SwiftUI nativa, escrita en Swift 6 con concurrencia estricta, y con una sola dependencia de terceros: el motor de audio AudioStreaming. Todo lo demás es framework de Apple.

La estética es deliberada: tipografía mono, controles duros, mucho naranja. Si te gustan las cajas de Teenage Engineering, vas a entender de qué va.

Te conectas a tu servidor, navegas tu biblioteca y suena. La música es tuya y vive en tu servidor; la app solo habla con él.

Por qué existe

Si ya tienes un Navidrome andando, el eslabón débil suele ser el cliente. Los que hay o son web envuelta en una app, o son nativos pero a medias: sin ecualizador de verdad, con silencios entre tracks de un mismo álbum, sin descargas usables, sin app de reloj, sin Apple TV.

Armpit es el intento de que el cliente esté a la altura del servidor: motor de audio en proceso, gapless real, ReplayGain, offline que funciona, y la misma app en todas las pantallas de la casa.

Además es un rewrite nativo: antes era una app en React Native. La versión actual no comparte nada con esa.

Plataformas

Una sola compra cubre todo (universal purchase, es un mismo registro en el App Store):

Plataforma Qué corre ahí
iOS · iPadOS 26+ La app completa, más CarPlay
macOS 26+ App de escritorio: layout de ventana completa, barra de menú, atajos de teclado
tvOS 26+ El reproductor completo en la tele, con Top Shelf
watchOS 26+ App de reloj independiente: reproduce en streaming y offline sin el teléfono

La interfaz está localizada en español, inglés, alemán y francés.

Qué necesitas

  • Un servidor Subsonic, OpenSubsonic o Navidrome al que puedas llegar.
  • Un dispositivo con iOS/iPadOS 26, macOS 26, tvOS 26 o watchOS 26.

Nada más. No hay cuenta de Armpit que crear, porque no existe tal cosa.

Primer uso

En el primer arranque pones la URL del servidor, usuario y contraseña, y un nombre para mostrar si quieres. La conexión se valida antes de dejarte entrar, así que si te equivocaste en algo te enteras ahí mismo y no tres pantallas después.

Las credenciales quedan en el Keychain. La contraseña en texto plano no se guarda ni se transmite: la autenticación usa el esquema de token con salt de Subsonic.

Qué trae adentro

Biblioteca y navegación
  • Pestañas de biblioteca: Favoritos, Álbumes, Artistas, Canciones, Géneros, Radio, Podcasts y Descargas. Cada una recuerda su propio criterio de orden, y las que no uses se ocultan desde Settings.
  • Pantallas de detalle para álbum, artista (biografía, top de canciones, artistas similares, discografía), género, podcast y playlist.
  • Búsqueda sobre artistas y canciones, con historial de búsquedas recientes.
  • Marcar favoritos y poner rating; ambas cosas se reflejan de vuelta en la pestaña de Favoritos.
Reproducción
  • Motor de audio en proceso: reproducción progresiva de archivos locales y streams HTTP, sin la pausa de “descargar y recién ahí sonar”.
  • Gapless de verdad: el siguiente track se precarga y se encola en el motor antes de que termine el actual.
  • Radio y podcasts pasan por el mismo motor.
  • Cola con shuffle, repetición (off / todo / uno), siguiente, anterior, salto directo y scrub.
  • Sleep timer por minutos o hasta el final del track.
  • Autoplay: cuando la cola se acaba, la extiende con canciones similares, y si no hay, con aleatorias.
  • Scrobbling de “sonando ahora” y de track terminado.
Ecualizador y volumen
  • Ecualizador paramétrico de 10 bandas dentro del grafo de audio, no un filtro pegado encima. Los cambios se escuchan al instante.
  • ReplayGain por track y por álbum, solo atenuando, con prevención de clipping. Los álbumes suenan como fueron masterizados, sin saltos de volumen entre canciones.
  • El volumen es el del sistema: los botones del dispositivo y el Control Center mandan, como en cualquier app de audio decente.
Pantalla de bloqueo, AirPlay y letras
  • Metadata y carátula en pantalla de bloqueo y Control Center.
  • Comandos remotos: play, pausa, siguiente, anterior y scrub.
  • Se recupera solo de interrupciones de sesión de audio y de cambios de ruta, por ejemplo cuando entran los AirPods a mitad de canción.
  • Selector nativo de AirPlay y salida de audio.
  • Letras sincronizadas que hacen scroll con la reproducción cuando el servidor las entrega, con fallback a letra plana o a nada.
Descargas y modo offline
  • Descarga de tracks con carátula incluida; si el archivo está en disco, suena desde ahí.
  • Modo offline que muestra solo lo descargado y corta las consultas al servidor.
  • Borrar una descarga libera el archivo y las carátulas que quedaron huérfanas.
  • Lo que escuchas en streaming también se cachea en disco, con desalojo FIFO y tope de tamaño configurable.
Playlists y smart lists
  • Vista de listas con las playlists del servidor y las smart lists locales.
  • Crear, renombrar y borrar playlists, y agregar o sacar tracks.
  • Las smart lists se arman con reglas sobre datos que el servidor sabe responder: artista, género, favoritos, aleatorio, recientes y más escuchados. Se materializan de vuelta a tu servidor.
Apple Watch
  • App independiente, no un control remoto: descarga música al reloj y la reproduce sin el teléfono cerca.
  • Streaming directo desde el reloj cuando hay red.
  • Pantalla de descargas propia para manejar qué llevas puesto.
Apple TV y CarPlay
  • En Apple TV corre el reproductor completo, con su propia navegación de biblioteca, búsqueda, cola y ajustes.
  • Top Shelf: los álbumes que escuchaste hace poco y los recién agregados aparecen en el estante de la pantalla de inicio del Apple TV.
  • En el auto, CarPlay con la biblioteca y los controles de reproducción.
Personalización
  • Tema claro y oscuro, más un set acotado de colores de acento que se aplica a toda la app en vivo.
  • Ícono de app dinámico que sigue el acento y el modo claro/oscuro elegido, sin el cartel del sistema cada vez que cambia.
  • Perfiles de streaming por red: uno para Wi-Fi, otro para celular y otro para descargas, cada uno con formato y bitrate. En conexiones medidas se usa el de celular automáticamente.
iCloud y compartir
  • Sincronización por iCloud (key-value store) de preferencias, presets del ecualizador y el servidor guardado, entre iPhone, iPad y Mac.
  • Acciones explícitas para restaurar desde iCloud, borrar los datos de iCloud, o imponer la configuración de este dispositivo por sobre la sincronizada.
  • Compartir vía la API de share del servidor, que copia un link. Si el servidor dice que no soporta compartir, la opción no aparece.
Privacidad y seguridad
  • Autenticación con token salteado de Subsonic (token = md5(password + salt)). La contraseña en claro no se persiste ni viaja.
  • Credenciales en el Keychain, sincronizable, así que restaurar desde iCloud en un equipo nuevo te deja la conexión funcionando. Ni UserDefaults ni el registro de iCloud guardan la credencial.
  • Toggle opt-in para certificados autofirmados, con la excepción de confianza acotada al host de tu servidor. Igual conviene HTTPS: sobre HTTP plano el token viaja sin cifrar, y la app te lo recuerda al conectar.
  • Cero analytics, cero telemetría, cero llamadas a terceros. Tus datos quedan en tu dispositivo y en tu iCloud.

Cómo se ve

Armpit en macOS

Armpit en Apple TV

Armpit en Apple Watch

Dónde descargarlo

Está en el App Store: apps.apple.com/app/armpit.

La página del proyecto, con más capturas, la política de privacidad, soporte y las notas de cada versión, está en armpit.ulm0.com.

Beep boop
Creado con Hugo
Tema Stack diseñado por Jimmy