<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Navidrome on Pierre</title>
        <link>https://ulm0.com/tags/navidrome/</link>
        <description>Recent content in Navidrome on Pierre</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>es-cl</language>
        <lastBuildDate>Sun, 09 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://ulm0.com/tags/navidrome/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>Armpit: un cliente de Navidrome nativo para iPhone, Mac, Apple TV y Watch</title>
            <link>https://ulm0.com/p/armpit-un-cliente-de-navidrome-nativo-para-iphone-mac-apple-tv-y-watch/</link>
            <pubDate>Sun, 09 Aug 2026 00:00:00 +0000</pubDate>
            <guid>https://ulm0.com/p/armpit-un-cliente-de-navidrome-nativo-para-iphone-mac-apple-tv-y-watch/</guid>
            <description>&lt;img src=&#34;https://ulm0.com/p/armpit-un-cliente-de-navidrome-nativo-para-iphone-mac-apple-tv-y-watch/cover.png&#34; alt=&#34;Featured image of post Armpit: un cliente de Navidrome nativo para iPhone, Mac, Apple TV y Watch&#34; /&gt;&lt;p&gt;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.&lt;/p&gt;&#xA;&lt;h2 id=&#34;de-qué-se-trata&#34;&gt;&lt;a href=&#34;#de-qu%c3%a9-se-trata&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;De qué se trata&#xA;&lt;/h2&gt;&lt;p&gt;Es una app SwiftUI nativa, escrita en Swift 6 con concurrencia estricta, y con una sola dependencia de terceros: el motor de audio &lt;a class=&#34;link&#34; href=&#34;https://github.com/dimitris-c/AudioStreaming&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;AudioStreaming&lt;/a&gt;. Todo lo demás es framework de Apple.&lt;/p&gt;&#xA;&lt;p&gt;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.&lt;/p&gt;&#xA;&lt;p&gt;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.&lt;/p&gt;&#xA;&lt;h2 id=&#34;por-qué-existe&#34;&gt;&lt;a href=&#34;#por-qu%c3%a9-existe&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Por qué existe&#xA;&lt;/h2&gt;&lt;p&gt;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.&lt;/p&gt;&#xA;&lt;p&gt;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.&lt;/p&gt;&#xA;&lt;p&gt;Además es un rewrite nativo: antes era una app en React Native. La versión actual no comparte nada con esa.&lt;/p&gt;&#xA;&lt;h2 id=&#34;plataformas&#34;&gt;&lt;a href=&#34;#plataformas&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Plataformas&#xA;&lt;/h2&gt;&lt;p&gt;Una sola compra cubre todo (universal purchase, es un mismo registro en el App Store):&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Plataforma&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Qué corre ahí&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;iOS · iPadOS 26+&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;La app completa, más CarPlay&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;macOS 26+&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;App de escritorio: layout de ventana completa, barra de menú, atajos de teclado&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;tvOS 26+&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;El reproductor completo en la tele, con Top Shelf&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;watchOS 26+&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;App de reloj independiente: reproduce en streaming y offline sin el teléfono&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;La interfaz está localizada en español, inglés, alemán y francés.&lt;/p&gt;&#xA;&lt;h2 id=&#34;qué-necesitas&#34;&gt;&lt;a href=&#34;#qu%c3%a9-necesitas&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Qué necesitas&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Un servidor &lt;strong&gt;Subsonic, OpenSubsonic o Navidrome&lt;/strong&gt; al que puedas llegar.&lt;/li&gt;&#xA;&lt;li&gt;Un dispositivo con iOS/iPadOS 26, macOS 26, tvOS 26 o watchOS 26.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Nada más. No hay cuenta de Armpit que crear, porque no existe tal cosa.&lt;/p&gt;&#xA;&lt;h2 id=&#34;primer-uso&#34;&gt;&lt;a href=&#34;#primer-uso&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Primer uso&#xA;&lt;/h2&gt;&lt;p&gt;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.&lt;/p&gt;&#xA;&lt;p&gt;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.&lt;/p&gt;&#xA;&lt;h2 id=&#34;qué-trae-adentro&#34;&gt;&lt;a href=&#34;#qu%c3%a9-trae-adentro&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Qué trae adentro&#xA;&lt;/h2&gt;&lt;details&gt;&#xA;&lt;summary&gt;Biblioteca y navegación&lt;/summary&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;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.&lt;/li&gt;&#xA;&lt;li&gt;Pantallas de detalle para álbum, artista (biografía, top de canciones, artistas similares, discografía), género, podcast y playlist.&lt;/li&gt;&#xA;&lt;li&gt;Búsqueda sobre artistas y canciones, con historial de búsquedas recientes.&lt;/li&gt;&#xA;&lt;li&gt;Marcar favoritos y poner rating; ambas cosas se reflejan de vuelta en la pestaña de Favoritos.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/details&gt;&#xA;&lt;details&gt;&#xA;&lt;summary&gt;Reproducción&lt;/summary&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Motor de audio en proceso: reproducción progresiva de archivos locales y streams HTTP, sin la pausa de &amp;ldquo;descargar y recién ahí sonar&amp;rdquo;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Gapless&lt;/strong&gt; de verdad: el siguiente track se precarga y se encola en el motor antes de que termine el actual.&lt;/li&gt;&#xA;&lt;li&gt;Radio y podcasts pasan por el mismo motor.&lt;/li&gt;&#xA;&lt;li&gt;Cola con shuffle, repetición (off / todo / uno), siguiente, anterior, salto directo y scrub.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Sleep timer&lt;/strong&gt; por minutos o hasta el final del track.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Autoplay&lt;/strong&gt;: cuando la cola se acaba, la extiende con canciones similares, y si no hay, con aleatorias.&lt;/li&gt;&#xA;&lt;li&gt;Scrobbling de &amp;ldquo;sonando ahora&amp;rdquo; y de track terminado.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/details&gt;&#xA;&lt;details&gt;&#xA;&lt;summary&gt;Ecualizador y volumen&lt;/summary&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Ecualizador paramétrico de 10 bandas dentro del grafo de audio, no un filtro pegado encima. Los cambios se escuchan al instante.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;ReplayGain&lt;/strong&gt; por track y por álbum, solo atenuando, con prevención de clipping. Los álbumes suenan como fueron masterizados, sin saltos de volumen entre canciones.&lt;/li&gt;&#xA;&lt;li&gt;El volumen es el del sistema: los botones del dispositivo y el Control Center mandan, como en cualquier app de audio decente.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/details&gt;&#xA;&lt;details&gt;&#xA;&lt;summary&gt;Pantalla de bloqueo, AirPlay y letras&lt;/summary&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Metadata y carátula en pantalla de bloqueo y Control Center.&lt;/li&gt;&#xA;&lt;li&gt;Comandos remotos: play, pausa, siguiente, anterior y scrub.&lt;/li&gt;&#xA;&lt;li&gt;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.&lt;/li&gt;&#xA;&lt;li&gt;Selector nativo de AirPlay y salida de audio.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Letras sincronizadas&lt;/strong&gt; que hacen scroll con la reproducción cuando el servidor las entrega, con fallback a letra plana o a nada.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/details&gt;&#xA;&lt;details&gt;&#xA;&lt;summary&gt;Descargas y modo offline&lt;/summary&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Descarga de tracks con carátula incluida; si el archivo está en disco, suena desde ahí.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Modo offline&lt;/strong&gt; que muestra solo lo descargado y corta las consultas al servidor.&lt;/li&gt;&#xA;&lt;li&gt;Borrar una descarga libera el archivo y las carátulas que quedaron huérfanas.&lt;/li&gt;&#xA;&lt;li&gt;Lo que escuchas en streaming también se cachea en disco, con desalojo FIFO y tope de tamaño configurable.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/details&gt;&#xA;&lt;details&gt;&#xA;&lt;summary&gt;Playlists y smart lists&lt;/summary&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Vista de listas con las playlists del servidor y las &lt;strong&gt;smart lists&lt;/strong&gt; locales.&lt;/li&gt;&#xA;&lt;li&gt;Crear, renombrar y borrar playlists, y agregar o sacar tracks.&lt;/li&gt;&#xA;&lt;li&gt;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.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/details&gt;&#xA;&lt;details&gt;&#xA;&lt;summary&gt;Apple Watch&lt;/summary&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;App independiente, no un control remoto: descarga música al reloj y la reproduce sin el teléfono cerca.&lt;/li&gt;&#xA;&lt;li&gt;Streaming directo desde el reloj cuando hay red.&lt;/li&gt;&#xA;&lt;li&gt;Pantalla de descargas propia para manejar qué llevas puesto.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/details&gt;&#xA;&lt;details&gt;&#xA;&lt;summary&gt;Apple TV y CarPlay&lt;/summary&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;En Apple TV corre el reproductor completo, con su propia navegación de biblioteca, búsqueda, cola y ajustes.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Top Shelf&lt;/strong&gt;: los álbumes que escuchaste hace poco y los recién agregados aparecen en el estante de la pantalla de inicio del Apple TV.&lt;/li&gt;&#xA;&lt;li&gt;En el auto, CarPlay con la biblioteca y los controles de reproducción.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/details&gt;&#xA;&lt;details&gt;&#xA;&lt;summary&gt;Personalización&lt;/summary&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Tema claro y oscuro, más un set acotado de colores de acento que se aplica a toda la app en vivo.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Ícono de app dinámico&lt;/strong&gt; que sigue el acento y el modo claro/oscuro elegido, sin el cartel del sistema cada vez que cambia.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Perfiles de streaming por red&lt;/strong&gt;: 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.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/details&gt;&#xA;&lt;details&gt;&#xA;&lt;summary&gt;iCloud y compartir&lt;/summary&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Sincronización por iCloud (key-value store) de preferencias, presets del ecualizador y el servidor guardado, entre iPhone, iPad y Mac.&lt;/li&gt;&#xA;&lt;li&gt;Acciones explícitas para restaurar desde iCloud, borrar los datos de iCloud, o imponer la configuración de este dispositivo por sobre la sincronizada.&lt;/li&gt;&#xA;&lt;li&gt;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.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/details&gt;&#xA;&lt;details&gt;&#xA;&lt;summary&gt;Privacidad y seguridad&lt;/summary&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Autenticación con token salteado de Subsonic (&lt;code&gt;token = md5(password + salt)&lt;/code&gt;). La contraseña en claro no se persiste ni viaja.&lt;/li&gt;&#xA;&lt;li&gt;Credenciales en el &lt;strong&gt;Keychain&lt;/strong&gt;, sincronizable, así que restaurar desde iCloud en un equipo nuevo te deja la conexión funcionando. Ni &lt;code&gt;UserDefaults&lt;/code&gt; ni el registro de iCloud guardan la credencial.&lt;/li&gt;&#xA;&lt;li&gt;Toggle opt-in para &lt;strong&gt;certificados autofirmados&lt;/strong&gt;, 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.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Cero analytics, cero telemetría, cero llamadas a terceros.&lt;/strong&gt; Tus datos quedan en tu dispositivo y en tu iCloud.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/details&gt;&#xA;&lt;h2 id=&#34;cómo-se-ve&#34;&gt;&lt;a href=&#34;#c%c3%b3mo-se-ve&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Cómo se ve&#xA;&lt;/h2&gt;&lt;p&gt;&lt;img alt=&#34;Armpit en macOS&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;384px&#34; data-flex-grow=&#34;160&#34; height=&#34;1000&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://ulm0.com/p/armpit-un-cliente-de-navidrome-nativo-para-iphone-mac-apple-tv-y-watch/mac-home.png&#34; srcset=&#34;https://ulm0.com/p/armpit-un-cliente-de-navidrome-nativo-para-iphone-mac-apple-tv-y-watch/mac-home_hu_6ffdb57f80dc0e2d.png 800w, https://ulm0.com/p/armpit-un-cliente-de-navidrome-nativo-para-iphone-mac-apple-tv-y-watch/mac-home.png 1600w&#34; width=&#34;1600&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;Armpit en Apple TV&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;426px&#34; data-flex-grow=&#34;177&#34; height=&#34;900&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://ulm0.com/p/armpit-un-cliente-de-navidrome-nativo-para-iphone-mac-apple-tv-y-watch/tv-now-playing.png&#34; srcset=&#34;https://ulm0.com/p/armpit-un-cliente-de-navidrome-nativo-para-iphone-mac-apple-tv-y-watch/tv-now-playing_hu_5f7485469674fecd.png 800w, https://ulm0.com/p/armpit-un-cliente-de-navidrome-nativo-para-iphone-mac-apple-tv-y-watch/tv-now-playing.png 1600w&#34; width=&#34;1600&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;Armpit en Apple Watch&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;197px&#34; data-flex-grow=&#34;82&#34; height=&#34;514&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://ulm0.com/p/armpit-un-cliente-de-navidrome-nativo-para-iphone-mac-apple-tv-y-watch/watch-now-playing.png&#34; width=&#34;422&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;dónde-descargarlo&#34;&gt;&lt;a href=&#34;#d%c3%b3nde-descargarlo&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Dónde descargarlo&#xA;&lt;/h2&gt;&lt;p&gt;Está en el App Store: &lt;a class=&#34;link&#34; href=&#34;https://apps.apple.com/app/armpit/id6783437224&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;apps.apple.com/app/armpit&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;La página del proyecto, con más capturas, la política de privacidad, soporte y las notas de cada versión, está en &lt;a class=&#34;link&#34; href=&#34;https://armpit.ulm0.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;armpit.ulm0.com&lt;/a&gt;.&lt;/p&gt;</description>
        </item></channel>
</rss>
