Building in Public, Day 7: La verdad técnica sobre vibe coding y sus retos en síntesis de voz multiplataforma

Building in Public, Day 7: La verdad técnica sobre vibe coding y sus retos en síntesis de voz multiplataforma

Building in Public, Day 7: La verdad técnica sobre vibe coding y sus retos en síntesis de voz multiplataforma

En este artículo analizamos en profundidad vibe coding, un paradigma emergente de desarrollo asistido por IA, a partir del contenido del video Building in Public, Day 7. Especialmente nos enfocamos en las dificultades técnicas derivadas del uso de herramientas como Lovable para desarrollar aplicaciones con síntesis de voz y resaltado de texto sincronizado en iOS y otras plataformas.

¿Qué es el vibe coding?

El vibe coding fue introducido por Andrej Karpathy en 2025 como un modelo de desarrollo donde un desarrollador describe en lenguaje natural lo que quiere construir, y un modelo de lenguaje grande (LLM) genera gran parte o la totalidad del código funcional.
A diferencia de la programación tradicional, en este enfoque no es necesario revisar línea por línea el código generado, sino que se itera rápido: se prueba el resultado, se observa el comportamiento y se retroalimenta a la IA para corregir o refinar la aplicación.

Características del vibe coding

  • Iteración rápida y basada en observación de la aplicación.
  • Dependencia fuerte de prompts en lenguaje natural y capacidades del LLM.
  • Menor énfasis en revisión o comprensión detallada del código subyacente.
  • Limitaciones en el manejo de casos complejos, particularmente multiplataforma.

Desafíos técnicos en síntesis de voz en iOS: el caso del video Building in Public, Day 7

El video documenta el desarrollo de una aplicación de cuentos para niños con Lovable, que requiere:

  • Síntesis de voz para narrar cada página.
  • Resaltado de palabras sincronizado con la narración.

Pero la aplicación presenta fallos en iOS relacionados con las limitaciones de la Web Speech API y restricciones del sistema operativo. Estas son algunas causas técnicas clave:

  • La síntesis de voz se detiene cuando Safari pasa a segundo plano. iOS interrumpe automáticamente la reproducción de audio en aplicaciones web cuando pierden foco.
    (Fuente: WebOutLoud)
  • Eventos de sincronización de palabras no se disparan completa o consistentemente. Esto impide la actualización correcta del texto resaltado.
  • Restricciones de permisos y políticas de autoplay en iOS bloquean la reproducción automática sin interacción explícita del usuario.
  • Limitación técnica: accesos a APIs específicas de audio nativas de iOS no disponibles desde aplicaciones web.

Estos problemas son difíciles de solucionar únicamente con prompts de lenguaje natural y generación automática, ya que implican conocimiento profundo y específico de la plataforma iOS.


Principales tipos de bugs en código generado por IA en vibe coding

Estudios recientes identifican patrones de bugs comunes en código generado por LLMs:

  • Malinterpretaciones: el código no cumple correctamente con el requisito funcional. (20.77% casos)
  • Casos de esquina faltantes: no se manejan bien escenarios raros o estados límite. (15.27% casos)
  • Objetos alucinados: referencias a variables o funciones que no existen. (9.57% casos)

En el contexto multiplataforma, el más frecuente es la malinterpretación de requisitos específicos, por ejemplo, asumir que la síntesis de voz funciona igual en iOS y Android cuando no es así.
Esto genera bugs silenciosos y difíciles de detectar.


Limitaciones de APIs y arquitectura multiplataforma en síntesis de voz

La síntesis de voz en aplicaciones web se basa en la Web Speech API, dividida en reconocimiento y síntesis (TTS).
Aunque tiene soporte en la mayoría de navegadores modernos, en iOS Safari:

  • La API tiene comportamientos degradados.
  • Imposibilidad de reproducir audio en segundo plano.
  • Restricciones de inicio automático de audio (autoplay).

Las alternativas, como usar APIs nativas tipo AVSpeechSynthesizer o servicios en la nube para TTS, no son accesibles desde código web puro.
Esto limita las opciones cuando se genera código automáticamente sin adaptar a estas restricciones.


Debugging en vibe coding: diferencias y retos

El debugging tradicional implica examinar detalladamente el código, entender la arquitectura y corregirla.
En vibe coding, la depuración se basa en describir problemas observados al LLM y esperar arreglos automáticos.
Esto genera brechas técnicas graves cuando los bugs son productos de limitaciones específicas del sistema o plataforma.

Metodología típica para debugging asistido por IA

  • Reproducir el error con el mínimo código posible.
  • Cuestionar las suposiciones generadas.
  • Verificar la adecuación a la plataforma (iOS, Android, desktop).
  • Probar incrementalmente soluciones propuestas.

Pero en ambiente vibe coding, esta metodología suele ser limitada por falta de conocimiento experto del usuario.


Otras dificultades: sincronización del resaltado y políticas de iOS

El resaltado sincronizado de palabras demanda eventos precisos (onboundary) durante la reproducción de voz. En iOS Safari:

  • Estos eventos pueden no dispararse al poner Safari en segundo plano.
  • La función nativa Speak Screen reporta fallos en resaltado dentro de apps nativas como Archivos.

Esto obliga a implementar lógicas fallback basadas en estimaciones de timing, algo que los LLMs no suelen generar sin instrucciones muy precisas.


Conclusiones y recomendaciones

  • Vibe coding funciona bien para tareas simples, multiplataforma y bien documentadas.
  • Para funcionalidades complejas multiplataforma, requiere soporte humano técnico para debugging y adaptación.
  • Se recomienda pruebas sistemáticas en dispositivos reales y múltiples plataformas desde fases tempranas.
  • Adoptar un enfoque híbrido: vibe coding para scaffolding, implementación manual para características críticas.
  • Documentar decisiones tomadas por la IA durante generación facilita mantenimiento futuro.

El caso Building in Public, Day 7 es un ejemplo valioso que muestra los límites actuales del vibe coding, sobre todo en escenarios con restricciones arquitectónicas específicas como las de iOS en síntesis de voz y sincronización.


Fuentes y lecturas recomendadas

Etiquetado: