Sábado, 27 de diciembre de 2025 Sáb 27/12/2025
RSS Contacto
MERCADOS
Cargando datos de mercados...
Tecnología

He vivido el "milagro" del vibe coding: así es como he programado una app de Android TV sin tener ni idea de programar

He vivido el "milagro" del vibe coding: así es como he programado una app de Android TV sin tener ni idea de programar
Artículo Completo 3,398 palabras
Ya lo conté hace tiempo, pero esto es un TOC, así que tengo que insistir. Tengo una pequeña obsesión con el tema de las fotos. No con hacerlas, sino con gestionarlas.  Llevo años buscando la forma perfecta de hacerlo sin depender de Google Photos, y hace algo más de un año encontré una alternativa que era perfecta para mí tras un larguísimo (e instructivo) proceso de búsqueda.  Se trata de la aplicación Open Source Immich, que cualquiera puede instalarse en su PC o servidor/NAS para montarse "un Google Photos autohospedado" y que permite evitar la dependencia de servicios en la nube.  Immich es casi perfecta, pero falla en una cosa: Android TV Immich es fantástica por muchas cosas, pero si hubiera que ponerle un pero yo se lo pondría al hecho de que no es una aplicación pensada para la TV. En realidad ninguna suele serlo, pero un gestor de fotos, que se supone que está pensado para dejarte disfrutar de las fotos, sí debería tener esa parte mejor contemplada. El proyecto Open Source Immich permite contar con una fantástica alternativa a Google Photos. Fuente: Immich (GitHub) En Immich no es así. Hay versiones fácilmente instalables para Docker Compose, Portainer, Unraid (la que yo uso en mi NAS) o TrueNAS Scale. Además hay aplicaciones móviles para Android y iOS que permiten que nos conectemos desde el móvil a nuestro servidor Immich y podamos disfrutar de esas fotos y vídeos desde dichos dispositivos.  Sin embargo, no hay una aplicación oficial para Android TV / Google TV, y tampoco para tvOS. No tengo Apple TV, pero lo que sí me interesaba era tener precisamente esas versiones para Android TV. Ahí es donde entra en juego un proyecto paralelo llamado Immich-Android-TV cuyo desarrollador, que usa el alias giejay en GitHub, mantiene activo desde hace unos años.  Cuando descubrí este proyecto creí que por fin podría disfrutar de las fotos cómodamente en la tele del salón con mis peques, pero la expectación inicial pronto se convirtió en decepción. Aunque la aplicación ofrece la posibilidad de ver las fotos, yo encontraba muchas limitaciones.  En Xataka Quería montar mi propio Google Fotos. Lo he logrado gracias a una maravillosa alternativa Open Source La principal, la de no poder acceder fácilmente a fotos de hace años. En Immich y en Immich-Android-TV se muestran las fotos con un orden cronológicamente inverso: primero las más nuevas, y luego las más antiguas.  En la versión web, Android y iOS el cliente de Immich sí permite disfrutar de una línea de tiempo, una barra en la parte derecha de la interfaz con la que es fácil seleccionar las fotos del día, mes y año quieres ver. En el el cliente para Android TV eso no existe. Si quería disfrutar de fotos recientes no había problema, pero no había forma rápida de  acceder a fotos de hace una década. Tenía que ir hacia abajo en la matriz de fotos hasta llegar a esas fechas. Con pocas fotos eso puede ser fácil, pero en mi biblioteca actual tengo unas 155.000 fotos y unos 23.000 vídeos. Desplazarme a 2015 me hubiera llevado probablemente horas de darle al botón de "abajo" en el mando de mi dispositivo Google TV. Había otras limitaciones importantes, y el problema de depender de un proyecto Open Source como este es que a menudo solo hay una persona detrás. Y a menudo esa persona hace esto por afición. Y a menudo eso implica que su dedicación al proyecto es limitada. Puedes pedir cosas, pero pueden no ser prioritarias para el futuro del proyecto en su opinión, o si lo son puede que tarden en llegar. Y si llega, puede que lo hagan de forma distinta a las que esperabas.  Eso era antes.  Porque ahora mucha gente —no diré que prácticamente cualquiera, pero sí mucha gente— puede coger cualquier idea para una aplicación y convertirla en realidad.  En Xataka Los programadores ya no pueden vivir sin la IA. Pero saben que no se pueden fiar al 100% de ella La cosa es aún más potente cuando tienes puntos de partida en forma de proyectos Open Source: ahí está todo el código necesario para empezar, así que buena parte del trabajo suele estar hecho: solo tienes que modificarlo a tu gusto.  Que es justo lo que he hecho con Immich-Android-TV. Hace aproximadamente dos semanas disfruté de unos días de vacaciones que tenía pendientes, pero no me fui a ningún lado. Ya había hecho algún experimento programando con IA, pero aquello —un contador de puntos para el juego de cartas de la "pocha"—, fue casi insignificante.  Esto iba mucho más allá. Quería coger el código de Immich-Android-TV para que hiciese todo lo que yo quería y como yo quería. Así que uno de esos días por la mañana y entonces se me ocurrió probar una locura. Sin niguna expectativa. Sin esperanza.  Qué equivocado estaba.  Yo pido, la IA programa Pequeño aviso: esta parte del artículo quizás os resulte algo más pesada, pero podéis saltárosla si lo preferís para ir a la siguiente. Para mí es importante contar cómo es ese proceso de "vibe coding" en el que básicamente chateas con una IA para pedirle que programe por ti. En mi caso abrí una terminal en mi Mac mini M4. Por otro, en el navegador creé un fork del proyecto de giejay en GitHub. Luego cloné el repositorio en mi Mac con un "git clone" y lancé Droid, una herramienta que estaba probando casi como un juguete. Es parecida a Claude Code, Codex o Gemini Cli que te permite usar claves para acceder a las APIs de diversas plataformas de IA como las mencionadas.  Nada más lanzarlo, Droid —que tenía configurado con una clave API de gpt-5.1— detectó mi directorio, y me presentó la caja de texto para que a partir de ahí le pidiera lo que quería. Que es justo lo que hice: como se ve en la imagen, le expliqué (en inglés, aunque acabé saltando al español más tarde, no hay diferencia) qué era el proyecto Immich-Android -TV y qué es lo que quería lograr.  Que en esencia era una opción "Línea de tiempo" (Timeline) que me permitiera navegar por meses y años rápidamente para ver las fotos de ese mes y año concretos. Era algo que no existía en el proyecto oficial y que como comentaba yo quería tener desde que descubrí dicho desarrollo.  A partir de ahí Droid/gpt-5.1 se puso a pensar su plan de acción, y tras lo que creo recordar que fueron tres o cuatro minutos, creó una hoja de ruta súper detallada y dividida en varias fases. Tras leer el plan solo me quedó decir "go ahead" ("adelante") y esperar.  Terminó de modificar el código poco después. Yo no sabía qué hacer a continuación, ¿cómo probarlo?. Una vez más, solo bastaba con preguntar. La Ia me indicó las instrucciones para instalar Android Studio y lanzar un emulador de una Smart TV con Android TV en resolución 1080p.  El emulador de Android TV en Android Studio a la izquierda (con el simulador del mando debajo), Gemini 3 Pro a la derecha. Tras el emulador, la terminal donde voy editando los ficheros con nano, copiando y pegando salidas en Gemini y compilando. Una vez hecho esto, podía probar mi fork tras una compilación del código Kotlin (./gradlew installDebug) que directamente instalaba el paquete APK creado en el emulador vía ADB. A partir de ahí empezó un proceso de depuración sorprendente: la compilación fallaba, yo copiaba la salida del comando que compila, se la pasaba a Droid, y él detectaba el problema, lo intentaba corregir y me volvía a decir que probase. Cuando por fin compiló bien y pude probarlo, la opción estaba ahí, entre las otras secciones, pero no funcionaba.  Y para saber por qué, una vez más, bastaba preguntar, aunque esta vez siempre tratando de ser proactivo. Así, a la pregunta le añadí un "dime qué puedo hacer y qué necesitas que haga para lograr detectar el problema", o algo parecido. La IA me indicó que debía ejecutar un comando para que copiara y pegara la salida. Tras varios mensajes el chatbot no parecía dar con la clave, y el Timeline siempre se quedaba tratando de acceder a la API de Immich y devolvía un error 400 que gpt-5.1, al menos en mi prueba, no lograba solventar.  Gemini 3 Pro en acción. En ese momento había cierto problema con la ejecución del Timeline. Gemini me indicó que creara un log con un comando específico, y simplemente copié y pegué la salida en la terminal para que detectara el problema. Fue entonces cuando cambié a Gemini 3 Pro, que ya se puede usar de forma gratuita tanto en modo Fast como en Thinking en el sitio web oficial de Gemini. Primero, eso sí, le pedí a Droid que me generara un fichero txt con un prompt detallando qué quería lograr, qué problema se estaba encontrando y cuáles estaban siendo los ficheros implicados. Ese fichero era un prompt clarísimo de todo ese proceso, y nada más cargarlo en Gemini el modelo se puso a trabajar en la solución.  Ahí se inició la continuación de la conversación anterior con Droid, pero esta vez en la web. En realidad esta forma de vibe coding no es la ideal, porque el usuario (en este caso, yo) tiene que ir contándole a la IA todo el rato lo que pasa. Te pasas el rato copiando y pegando texto además de dando alguna instrucción o aclaración. Eso tiene una desventaja clara —es un poco pesado— pero una ventaja igualmente clara: eres mucho más consciente de qué está haciendo la IA en cada momento. Hay herramientas como Claude Code o Gemini CLI que automatizan aún más las cosas, y aunque las acabé probando más adelante, esta primera fase del desarrollo la realicé en modo "copia-pega".  Esto parece un milagro El proceso con Gemini 3 Pro fue idéntico, pero la sorpresa aquí fue que la IA logró avanzar y corregir tanto ese problema con el que me había quedado atascado en ese primer intento como los que surgieron después. No recuerdo bien cuánto tardé en total, pero serían menos de cuatro horas, y al cabo de ese tiempo, logré lo que tanto había querido tener: un Immich-Android-TV con Timeline: La interfaz no era maravillosa, ni mucho menos, pero ni siquiera eso me importaba demasiado. Lo importante es que funcionaba. Si quería ver fotos de mis enanos de hace una década, no tenía que estar manteniendo el botón "abajo" del mando durante horas. Bastaba buscar el año y el mes y entrar en dicho momento del tiempo.  La sensación de haber logrado así es difícil de explicar. Y lo es porque es algo que jamás pensé que podría hacer (aunque en realidad no lo he hecho yo, claro). Estudié ingeniería superior de informática, pero de aquello hace ya mucho tiempo y nunca me atrajo demasiado programar. Si dedico algo de tiempo al tema, soy capaz de entender qué pasa en cierto código, la base, la estructura, pero eso me cuesta mucho trabajo.  Crear ese código, sobre todo en ciertos lenguajes, sería inviable. Pero la IA resuelve todo eso, y se comporta como un programador bastante decente que ejecuta e implementa lo que quieres. Tú solo tienes que tener claro lo que quieres, y si encima tienes ciertas nociones, tienes ventaja. Si además eres programador, entiendo que la ventaja ya es extraordinaria. En Xataka El problema no es que la IA no sea capaz de leer la hora. El problema es confirmar que no razona y solo repite lo que ha visto Pero para mí, insisto, lograr esto era prácticamente impensable. Lo que había leído por todos lados, lo que quienes ya habían hecho algo así contaban... al fin lo entendía de verdad. Puede que la IA sea una decepción para muchos en muchos ámbitos. Puede que el 95% de las empresas no obtengan retorno de la inversión, puede que no sepa contar erres, puede que a veces aconseje locuras como usar pegamento para el queso de la pizza. Entiendo que eso genere críticas, bromas y decepciones. Entiendo que haya quien afirme que la IA es tontísima. Pero lograr algo como esto, en mi opinión, demuestra que en muchos otros ámbitos la IA puede ser maravillosa. Incluso aunque no mejorara más, incluso aunque se confirmara que el escalado no funciona... convertir una idea en algo real sin tener ni idea de cómo hacerlo es algo mágico, casi milagroso.  Pero es que luego hubo más. El epílogo: haz (casi) lo que quieras con tu app Lograr tener un Timeline en Immich-Android-TV me hizo darme cuenta de que en realidad podía adaptar la aplicación todo lo que quisiera y como yo quisiera, así que en los últimos días he ido aprovechando ratos libres para ir modificando aún más el proyecto oficial y convirtiéndolo en lo que yo quería que fuese.  En ese vídeo que compartí en el subrredit r/Immich no están incluidos los últimos cambios, pero da un poco la idea de lo que conseguí en esos primeros días. Pero es que como digo, luego hubo más. Interfaz de la versión oficial de Immich-Android-TV De hecho, una de las cosas que me echaban para atrás del proyecto oficial era la interfaz. Y aquí una vez más solo bastaba pedir. Y como bastaba pedir, pedí. En concreto, que hubiera una opción en Settings que me permitiera no mostrar los nombres de fichero, que siempre salen en la oficial, y que a mí me parece que afean la usabilidad.  Y ya puestos, que las miniaturas aparecieran con equinas redondeadas. Y ya puestos (II), que pudiera seleccionar si quería una rejilla de tres, cuatro o cinco columnas, porque el oficial solo deja cuatro de forma permanente. Los cambios me llevaron apenas un par de horas más:  La interfaz de mi fork de Android-Immich-TV. Tres columnas, esquinas redondeadas, sin nombres de foto, y con sincronización de favoritos. Y ya puestos (III), le pedí algo que también era especialmente importante para mí: poder tener gestión de favoritos desde la app de Android TV. En Immich puedes marcar o desmarcar fotos y vídeos como favoritos, pero en la versión oficial de Immich-Android-TV ni muestra esa información ni se puede controlar.  Otro par de horas más —aquí puede que algo más, tuve problemas con esa gestión en el Timeline— y de nuevo, magia. Ya podía marcar fotos y vídeos como favoritas con una pulsación larga del botón central del mando.  El diseño de la sección Settings en la versión oficial. Y la que he acabado logrando en mi fork. Esos cambios a la interfaz también acabé aplicándolos a otras secciones como la del Timeline o los ajustes (Settings) del cliente, que quise modificar con algunas sugerencias de interfaces de usuario creadas —cómo no— por la IA.  Stitch, la app de Google para diseñar interfaces de usuario, en acción. El diseño del Timeline central era estupendo, pero tras varias horas intentando que la IA lo convirtiese en código no había más que problemas. Al final opté por volver al principio y aplicar el tercer rediseño, que fue el que la IA no tuvo problema en programar. En concreto por Stitch, un servicio de Google Labs que te permite convertir en bocetos y diseños esas ideas de UX/UI que tienes en mente. Y de nuevo con un lenguaje natural: puedes describir lo que quieres, aunque es cierto que si partes de una imagen inicial eso suele ayudar mucho. Yo aquí utilicé la primera versión del Timeline que obtuve y a partir de ahí le pedí ideas para mejorar esa interfaz. Lo último que he logrado este fin de semana es crear otras dos secciones que no existían en la versión de Immich-Android-TV oficial. La primera, la del "On this day" que muestra las fotos de hoy hechas en años anteriores. La segunda, la que muestre una sección en la que solo aparezcan las fotos y vídeos marcadas como Favoritas.  Sección Favoritos y solo con vídeos. Mi TikTok familiar para ver vídeos de mis enanos sin parar. Mágico. Y por rizar el rizo, quise tener una opción en Settings para que cuando navego por las secciones solo se muestren vídeos. Si tenéis niños y grabáis mil vídeos como yo, creedme: esto es como un TikTok familiar maravilloso en el que no paras de ver uno tras otro casi en modo doomscrolling de forma fantástica en la tele de casa y con una simple pulsación del mando de mi dispositivo Google TV. Repito: la IA, en este caso, me ha parecido mágica y casi milagrosa. Aquí, aclaración necesaria: esto es un proyecto personal, y como tal tiene la ventaja de poder ser maravillosamente imperfecto. Es muy probable que el código que ha generado la IA no sea el mejor. Y también que los cambios que yo he hecho no son los que otros habrían hecho. Y también que la interfaz no sea perfecta o del gusto de todos. Pero este es un proyecto en pleno desarrollo, vivo, que no perjudica a nadie y que me hace especialmente feliz.  Pero insisto: es imperfecto. Si queréis echar un vistazo o incluso probarlo, aquí está el repositorio GitHub y aquí la sección Releases, donde están las que voy liberando. No puedo garantizar que os funcionarán o que no tendrán fallos, y desde luego no puedo garantizar que si os interesa y comentáis o realicéis peticiones para modificarlo las haga, pero si no lo hago yo... también podéis hacerlo vosotros como yo lo he hecho. Es de nuevo la maravillosa combinación del Open Source y esa capacidad que plantea  la IA. Hay algo más. Mi capacidad de asombro tecnológico es limitada desde hace tiempo. Seguramente me pase como a muchos de nuestros lectores: la tecnología avanza de forma fulgurante, pero a menudo esos cambios son difícilmente apreciables porque suele tratarse de mejoras iterativas.  La mayoría de las cosas ya no sorprenden, o lo hacen durante un intervalo de tiempo pequeño. Me emocionaron las Vision Pro, pero no pagaría 4.000 euros por ella, y los smartphones, que nos entusiasmaban cuando empezamos a verlos en acción, se han convertido en una commodity. Como lo han hecho el PC —igual de transformador— o internet —absolutamente disruptivo—.  Para mí la IA ya ha logrado lo que el PC o internet. Pase lo que pase en el futuro, aunque no mejore ya mucho más, va a transformar nuestra forma de trabajar y disfrutar. Eso es así. ¿Falla? Por supuesto. ¿Es imperfecta e incluso peligrosa? Igual que lo era y lo es internet. ¿Hay burbuja? Seguro. Pero esto tiene el potencial de ser aún más. Este pequeño proyecto me ha hecho reafirmarme en esa creencia. En Xataka | Tenemos un problema filosófico con las IA generativas: nos están dando la razón en todo lo que les pedimos - La noticia He vivido el "milagro" del vibe coding: así es como he programado una app de Android TV sin tener ni idea de programar fue publicada originalmente en Xataka por Javier Pastor .
2025-12-27T13:01:00Z

Javier Pastor

Editor Senior - Tech

Javier Pastor

Editor Senior - Tech Linkedintwitter9804 publicaciones de Javier Pastor

Ya lo conté hace tiempo, pero esto es un TOC, así que tengo que insistir. Tengo una pequeña obsesión con el tema de las fotos. No con hacerlas, sino con gestionarlas. 

Llevo años buscando la forma perfecta de hacerlo sin depender de Google Photos, y hace algo más de un año encontré una alternativa que era perfecta para mí tras un larguísimo (e instructivo) proceso de búsqueda

Se trata de la aplicación Open Source Immich, que cualquiera puede instalarse en su PC o servidor/NAS para montarse "un Google Photos autohospedado" y que permite evitar la dependencia de servicios en la nube. 

Immich es casi perfecta, pero falla en una cosa: Android TV

Immich es fantástica por muchas cosas, pero si hubiera que ponerle un pero yo se lo pondría al hecho de que no es una aplicación pensada para la TV. En realidad ninguna suele serlo, pero un gestor de fotos, que se supone que está pensado para dejarte disfrutar de las fotos, sí debería tener esa parte mejor contemplada.

El proyecto Open Source Immich permite contar con una fantástica alternativa a Google Photos. Fuente: Immich (GitHub)

En Immich no es así. Hay versiones fácilmente instalables para Docker Compose, Portainer, Unraid (la que yo uso en mi NAS) o TrueNAS Scale. Además hay aplicaciones móviles para Android y iOS que permiten que nos conectemos desde el móvil a nuestro servidor Immich y podamos disfrutar de esas fotos y vídeos desde dichos dispositivos. 

Sin embargo, no hay una aplicación oficial para Android TV / Google TV, y tampoco para tvOS. No tengo Apple TV, pero lo que sí me interesaba era tener precisamente esas versiones para Android TV. Ahí es donde entra en juego un proyecto paralelo llamado Immich-Android-TV cuyo desarrollador, que usa el alias giejay en GitHub, mantiene activo desde hace unos años. 

Cuando descubrí este proyecto creí que por fin podría disfrutar de las fotos cómodamente en la tele del salón con mis peques, pero la expectación inicial pronto se convirtió en decepción. Aunque la aplicación ofrece la posibilidad de ver las fotos, yo encontraba muchas limitaciones. 

En XatakaQuería montar mi propio Google Fotos. Lo he logrado gracias a una maravillosa alternativa Open Source

La principal, la de no poder acceder fácilmente a fotos de hace años. En Immich y en Immich-Android-TV se muestran las fotos con un orden cronológicamente inverso: primero las más nuevas, y luego las más antiguas. 

En la versión web, Android y iOS el cliente de Immich sí permite disfrutar de una línea de tiempo, una barra en la parte derecha de la interfaz con la que es fácil seleccionar las fotos del día, mes y año quieres ver. En el el cliente para Android TV eso no existe.

Si quería disfrutar de fotos recientes no había problema, pero no había forma rápida de  acceder a fotos de hace una década. Tenía que ir hacia abajo en la matriz de fotos hasta llegar a esas fechas. Con pocas fotos eso puede ser fácil, pero en mi biblioteca actual tengo unas 155.000 fotos y unos 23.000 vídeos. Desplazarme a 2015 me hubiera llevado probablemente horas de darle al botón de "abajo" en el mando de mi dispositivo Google TV.

Había otras limitaciones importantes, y el problema de depender de un proyecto Open Source como este es que a menudo solo hay una persona detrás. Y a menudo esa persona hace esto por afición. Y a menudo eso implica que su dedicación al proyecto es limitada. Puedes pedir cosas, pero pueden no ser prioritarias para el futuro del proyecto en su opinión, o si lo son puede que tarden en llegar. Y si llega, puede que lo hagan de forma distinta a las que esperabas. 

Eso era antes. 

Porque ahora mucha gente —no diré que prácticamente cualquiera, pero sí mucha gente— puede coger cualquier idea para una aplicación y convertirla en realidad. 

En XatakaLos programadores ya no pueden vivir sin la IA. Pero saben que no se pueden fiar al 100% de ella

La cosa es aún más potente cuando tienes puntos de partida en forma de proyectos Open Source: ahí está todo el código necesario para empezar, así que buena parte del trabajo suele estar hecho: solo tienes que modificarlo a tu gusto. 

Que es justo lo que he hecho con Immich-Android-TV.

Hace aproximadamente dos semanas disfruté de unos días de vacaciones que tenía pendientes, pero no me fui a ningún lado. Ya había hecho algún experimento programando con IA, pero aquello —un contador de puntos para el juego de cartas de la "pocha"—, fue casi insignificante. 

Esto iba mucho más allá. Quería coger el código de Immich-Android-TV para que hiciese todo lo que yo quería y como yo quería. Así que uno de esos días por la mañana y entonces se me ocurrió probar una locura. Sin niguna expectativa. Sin esperanza. 

Qué equivocado estaba. 

Yo pido, la IA programa

Pequeño aviso: esta parte del artículo quizás os resulte algo más pesada, pero podéis saltárosla si lo preferís para ir a la siguiente. Para mí es importante contar cómo es ese proceso de "vibe coding" en el que básicamente chateas con una IA para pedirle que programe por ti.

En mi caso abrí una terminal en mi Mac mini M4. Por otro, en el navegador creé un fork del proyecto de giejay en GitHub. Luego cloné el repositorio en mi Mac con un "git clone" y lancé Droid, una herramienta que estaba probando casi como un juguete. Es parecida a Claude Code, Codex o Gemini Cli que te permite usar claves para acceder a las APIs de diversas plataformas de IA como las mencionadas. 

Nada más lanzarlo, Droid —que tenía configurado con una clave API de gpt-5.1— detectó mi directorio, y me presentó la caja de texto para que a partir de ahí le pidiera lo que quería. Que es justo lo que hice: como se ve en la imagen, le expliqué (en inglés, aunque acabé saltando al español más tarde, no hay diferencia) qué era el proyecto Immich-Android -TV y qué es lo que quería lograr. 

Que en esencia era una opción "Línea de tiempo" (Timeline) que me permitiera navegar por meses y años rápidamente para ver las fotos de ese mes y año concretos. Era algo que no existía en el proyecto oficial y que como comentaba yo quería tener desde que descubrí dicho desarrollo. 

A partir de ahí Droid/gpt-5.1 se puso a pensar su plan de acción, y tras lo que creo recordar que fueron tres o cuatro minutos, creó una hoja de ruta súper detallada y dividida en varias fases. Tras leer el plan solo me quedó decir "go ahead" ("adelante") y esperar. 

Terminó de modificar el código poco después. Yo no sabía qué hacer a continuación, ¿cómo probarlo?. Una vez más, solo bastaba con preguntar. La Ia me indicó las instrucciones para instalar Android Studio y lanzar un emulador de una Smart TV con Android TV en resolución 1080p. 

El emulador de Android TV en Android Studio a la izquierda (con el simulador del mando debajo), Gemini 3 Pro a la derecha. Tras el emulador, la terminal donde voy editando los ficheros con nano, copiando y pegando salidas en Gemini y compilando.

Una vez hecho esto, podía probar mi fork tras una compilación del código Kotlin (./gradlew installDebug) que directamente instalaba el paquete APK creado en el emulador vía ADB. A partir de ahí empezó un proceso de depuración sorprendente: la compilación fallaba, yo copiaba la salida del comando que compila, se la pasaba a Droid, y él detectaba el problema, lo intentaba corregir y me volvía a decir que probase. Cuando por fin compiló bien y pude probarlo, la opción estaba ahí, entre las otras secciones, pero no funcionaba. 

Y para saber por qué, una vez más, bastaba preguntar, aunque esta vez siempre tratando de ser proactivo. Así, a la pregunta le añadí un "dime qué puedo hacer y qué necesitas que haga para lograr detectar el problema", o algo parecido. La IA me indicó que debía ejecutar un comando para que copiara y pegara la salida. Tras varios mensajes el chatbot no parecía dar con la clave, y el Timeline siempre se quedaba tratando de acceder a la API de Immich y devolvía un error 400 que gpt-5.1, al menos en mi prueba, no lograba solventar. 

Gemini 3 Pro en acción. En ese momento había cierto problema con la ejecución del Timeline. Gemini me indicó que creara un log con un comando específico, y simplemente copié y pegué la salida en la terminal para que detectara el problema.

Fue entonces cuando cambié a Gemini 3 Pro, que ya se puede usar de forma gratuita tanto en modo Fast como en Thinking en el sitio web oficial de Gemini. Primero, eso sí, le pedí a Droid que me generara un fichero txt con un prompt detallando qué quería lograr, qué problema se estaba encontrando y cuáles estaban siendo los ficheros implicados. Ese fichero era un prompt clarísimo de todo ese proceso, y nada más cargarlo en Gemini el modelo se puso a trabajar en la solución. 

Ahí se inició la continuación de la conversación anterior con Droid, pero esta vez en la web. En realidad esta forma de vibe coding no es la ideal, porque el usuario (en este caso, yo) tiene que ir contándole a la IA todo el rato lo que pasa. Te pasas el rato copiando y pegando texto además de dando alguna instrucción o aclaración. Eso tiene una desventaja clara —es un poco pesado— pero una ventaja igualmente clara: eres mucho más consciente de qué está haciendo la IA en cada momento. Hay herramientas como Claude Code o Gemini CLI que automatizan aún más las cosas, y aunque las acabé probando más adelante, esta primera fase del desarrollo la realicé en modo "copia-pega". 

Esto parece un milagro

El proceso con Gemini 3 Pro fue idéntico, pero la sorpresa aquí fue que la IA logró avanzar y corregir tanto ese problema con el que me había quedado atascado en ese primer intento como los que surgieron después. No recuerdo bien cuánto tardé en total, pero serían menos de cuatro horas, y al cabo de ese tiempo, logré lo que tanto había querido tener: un Immich-Android-TV con Timeline:

La interfaz no era maravillosa, ni mucho menos, pero ni siquiera eso me importaba demasiado. Lo importante es que funcionaba. Si quería ver fotos de mis enanos de hace una década, no tenía que estar manteniendo el botón "abajo" del mando durante horas. Bastaba buscar el año y el mes y entrar en dicho momento del tiempo. 

La sensación de haber logrado así es difícil de explicar. Y lo es porque es algo que jamás pensé que podría hacer (aunque en realidad no lo he hecho yo, claro). Estudié ingeniería superior de informática, pero de aquello hace ya mucho tiempo y nunca me atrajo demasiado programar. Si dedico algo de tiempo al tema, soy capaz de entender qué pasa en cierto código, la base, la estructura, pero eso me cuesta mucho trabajo. 

Crear ese código, sobre todo en ciertos lenguajes, sería inviable. Pero la IA resuelve todo eso, y se comporta como un programador bastante decente que ejecuta e implementa lo que quieres. Tú solo tienes que tener claro lo que quieres, y si encima tienes ciertas nociones, tienes ventaja. Si además eres programador, entiendo que la ventaja ya es extraordinaria.

En XatakaEl problema no es que la IA no sea capaz de leer la hora. El problema es confirmar que no razona y solo repite lo que ha visto

Pero para mí, insisto, lograr esto era prácticamente impensable. Lo que había leído por todos lados, lo que quienes ya habían hecho algo así contaban... al fin lo entendía de verdad. Puede que la IA sea una decepción para muchos en muchos ámbitos. Puede que el 95% de las empresas no obtengan retorno de la inversión, puede que no sepa contar erres, puede que a veces aconseje locuras como usar pegamento para el queso de la pizza. Entiendo que eso genere críticas, bromas y decepciones. Entiendo que haya quien afirme que la IA es tontísima.

Pero lograr algo como esto, en mi opinión, demuestra que en muchos otros ámbitos la IA puede ser maravillosa. Incluso aunque no mejorara más, incluso aunque se confirmara que el escalado no funciona... convertir una idea en algo real sin tener ni idea de cómo hacerlo es algo mágico, casi milagroso. 

Pero es que luego hubo más.

El epílogo: haz (casi) lo que quieras con tu app

Lograr tener un Timeline en Immich-Android-TV me hizo darme cuenta de que en realidad podía adaptar la aplicación todo lo que quisiera y como yo quisiera, así que en los últimos días he ido aprovechando ratos libres para ir modificando aún más el proyecto oficial y convirtiéndolo en lo que yo quería que fuese. 

En ese vídeo que compartí en el subrredit r/Immich no están incluidos los últimos cambios, pero da un poco la idea de lo que conseguí en esos primeros días. Pero es que como digo, luego hubo más.

Interfaz de la versión oficial de Immich-Android-TV

De hecho, una de las cosas que me echaban para atrás del proyecto oficial era la interfaz. Y aquí una vez más solo bastaba pedir. Y como bastaba pedir, pedí. En concreto, que hubiera una opción en Settings que me permitiera no mostrar los nombres de fichero, que siempre salen en la oficial, y que a mí me parece que afean la usabilidad. 

Y ya puestos, que las miniaturas aparecieran con equinas redondeadas. Y ya puestos (II), que pudiera seleccionar si quería una rejilla de tres, cuatro o cinco columnas, porque el oficial solo deja cuatro de forma permanente. Los cambios me llevaron apenas un par de horas más: 

La interfaz de mi fork de Android-Immich-TV. Tres columnas, esquinas redondeadas, sin nombres de foto, y con sincronización de favoritos.

Y ya puestos (III), le pedí algo que también era especialmente importante para mí: poder tener gestión de favoritos desde la app de Android TV. En Immich puedes marcar o desmarcar fotos y vídeos como favoritos, pero en la versión oficial de Immich-Android-TV ni muestra esa información ni se puede controlar. 

Otro par de horas más —aquí puede que algo más, tuve problemas con esa gestión en el Timeline— y de nuevo, magia. Ya podía marcar fotos y vídeos como favoritas con una pulsación larga del botón central del mando. 

El diseño de la sección Settings en la versión oficial. Y la que he acabado logrando en mi fork.

Esos cambios a la interfaz también acabé aplicándolos a otras secciones como la del Timeline o los ajustes (Settings) del cliente, que quise modificar con algunas sugerencias de interfaces de usuario creadas —cómo no— por la IA. 

Stitch, la app de Google para diseñar interfaces de usuario, en acción. El diseño del Timeline central era estupendo, pero tras varias horas intentando que la IA lo convirtiese en código no había más que problemas. Al final opté por volver al principio y aplicar el tercer rediseño, que fue el que la IA no tuvo problema en programar.

En concreto por Stitch, un servicio de Google Labs que te permite convertir en bocetos y diseños esas ideas de UX/UI que tienes en mente. Y de nuevo con un lenguaje natural: puedes describir lo que quieres, aunque es cierto que si partes de una imagen inicial eso suele ayudar mucho. Yo aquí utilicé la primera versión del Timeline que obtuve y a partir de ahí le pedí ideas para mejorar esa interfaz.

Lo último que he logrado este fin de semana es crear otras dos secciones que no existían en la versión de Immich-Android-TV oficial. La primera, la del "On this day" que muestra las fotos de hoy hechas en años anteriores. La segunda, la que muestre una sección en la que solo aparezcan las fotos y vídeos marcadas como Favoritas. 

Sección Favoritos y solo con vídeos. Mi TikTok familiar para ver vídeos de mis enanos sin parar. Mágico.

Y por rizar el rizo, quise tener una opción en Settings para que cuando navego por las secciones solo se muestren vídeos. Si tenéis niños y grabáis mil vídeos como yo, creedme: esto es como un TikTok familiar maravilloso en el que no paras de ver uno tras otro casi en modo doomscrolling de forma fantástica en la tele de casa y con una simple pulsación del mando de mi dispositivo Google TV.

Repito: la IA, en este caso, me ha parecido mágica y casi milagrosa.

Aquí, aclaración necesaria: esto es un proyecto personal, y como tal tiene la ventaja de poder ser maravillosamente imperfecto. Es muy probable que el código que ha generado la IA no sea el mejor. Y también que los cambios que yo he hecho no son los que otros habrían hecho. Y también que la interfaz no sea perfecta o del gusto de todos. Pero este es un proyecto en pleno desarrollo, vivo, que no perjudica a nadie y que me hace especialmente feliz. 

Pero insisto: es imperfecto. Si queréis echar un vistazo o incluso probarlo, aquí está el repositorio GitHub y aquí la sección Releases, donde están las que voy liberando. No puedo garantizar que os funcionarán o que no tendrán fallos, y desde luego no puedo garantizar que si os interesa y comentáis o realicéis peticiones para modificarlo las haga, pero si no lo hago yo... también podéis hacerlo vosotros como yo lo he hecho. Es de nuevo la maravillosa combinación del Open Source y esa capacidad que plantea  la IA.

Hay algo más. Mi capacidad de asombro tecnológico es limitada desde hace tiempo. Seguramente me pase como a muchos de nuestros lectores: la tecnología avanza de forma fulgurante, pero a menudo esos cambios son difícilmente apreciables porque suele tratarse de mejoras iterativas. 

La mayoría de las cosas ya no sorprenden, o lo hacen durante un intervalo de tiempo pequeño. Me emocionaron las Vision Pro, pero no pagaría 4.000 euros por ella, y los smartphones, que nos entusiasmaban cuando empezamos a verlos en acción, se han convertido en una commodity. Como lo han hecho el PC —igual de transformador— o internet —absolutamente disruptivo—. 

Para mí la IA ya ha logrado lo que el PC o internet. Pase lo que pase en el futuro, aunque no mejore ya mucho más, va a transformar nuestra forma de trabajar y disfrutar. Eso es así. ¿Falla? Por supuesto. ¿Es imperfecta e incluso peligrosa? Igual que lo era y lo es internet. ¿Hay burbuja? Seguro. Pero esto tiene el potencial de ser aún más. Este pequeño proyecto me ha hecho reafirmarme en esa creencia.

En Xataka | Tenemos un problema filosófico con las IA generativas: nos están dando la razón en todo lo que les pedimos

Fuente original: Leer en Xataka
Compartir