Salta al contenuto principale

Roam Trabajo Planeado

Trabajo Completado para la Próxima Actualización

  • Se añadieron widgets de control: Reproducir, Silenciar, Cambiar Volumen y Seleccionar desde el centro de control!
  • Se mejoró el manejo del campo de texto para muchas aplicaciones de Roku
    • Apertura automática del campo de texto cuando la edición de texto está disponible
    • Copiar, cortar, pegar desde macOS (con el teclado)
    • Copiar, cortar, pegar + edición generalizada en iOS
  • Mejor reporte alrededor de los permisos de la red local y la conectividad
  • Mejora en la funcionalidad del teclado
  • Mejoras en la estabilidad de la conexión

Próximamente

  • Añadir opciones de presionar y mantener a las teclas

    • Mantén presionada la flecha derecha para avanzar rápido
    • Mantén presionada la flecha izquierda para retroceder rápido
    • Mantén presionado el botón de silencio para silenciar durante mucho tiempo
      • Hacer que los +30 sean configurables a 30, 15, opciones de silencio de 60 segundos
      • Muestra el banner con +30 seg, x para cancelar, indicador de progreso lineal de fondo
        • Muestra debajo del panel principal de botones para que esté cerca del botón de silencio
      • Se cancela al silenciar de nuevo (y también hace una llamada a la API)
  • Solucionar los widgets de macOS

  • Futuro: Proporcionar una vista minimalista opcional en iOS que replica de cerca la vista del mando de Siri

Ideas Generales para el Futuro

Corrección de Errores

  • Averiguar si el bucle de llamadas a nextPacket tiene sentido.
    • En lugar de hacer un bucle cada 10ms y esperar que el tiempo sea correcto, ¿debería estar haciendo un bucle sobre los paquetes recibidos e intentando programarlos a la hora del host 10ms * globalSequenceNumber + startHostTime y sampleTime a sequenceNumber * Int64(lastSampleTime.sampleRate) / packetsPerSec + startSampleTime
    • Entonces puedo cambiar de un bucle for await sobre el reloj a un bucle while !Task.isCancelled con un Task.sleep en él.
    • Bueno, entonces necesitamos hacer un bucle cada 10 ms e intentar sacar el último paquete y luego programarlo en ese momento
    • Cada vez que hacemos una sincronización de audio
      • Tenemos lastRenderTime + un paquete de sincronización
      • Estimar el número de paquete que deberíamos estar enviando + el tiempo de sincronización
        • Render Time + adicional

Mejorar la comunicación del usuario alrededor de la gestión de información/estado/capacidades

  • Cuando se enciende el dispositivo con WOL y no se conecta después de 5 segundos, o cuando se enciende el dispositivo e inmediatamente falla, mostrar un mensaje de advertencia debajo del wifi
    • "No pudimos despertar tu Roku" (Descubre más) (No mostrar de nuevo para este dispositivo), (X)
    • Descubre más muestra algunas razones por las que
      • No estás conectado a la misma red (Mostrar el último nombre de la red del dispositivo. Pregúntale al usuario si está conectado a esta red)
      • Tu dispositivo está en sueño profundo (no se ha apagado recientemente) y no se puede despertar
        • Tu dispositivo no soporta WWOL y está conectado al wifi
        • Tu dispositivo no soporta WWOL o WOL
      • Tu red no está configurada para permitirnos enviar comandos de despertar al dispositivo
  • Cuando se hace clic en un botón deshabilitado, se muestra una notificación indicando por qué está deshabilitado
    • ¿Mostrar un indicador de información en el botón para indicar que se puede recibir información cuando se hace clic en él?
    • Modo auriculares deshabilitado -> porque el dispositivo no soporta el modo auriculares para esta aplicación
    • Control de volumen deshabilitado -> ¿porque el audio se está transmitiendo a través de HDMI que no soporta controles de volumen?
  • Cuando se está buscando activamente dispositivos y no se encuentran nuevos, mostrar un mensaje de advertencia debajo de la lista de dispositivos
    • "No pudimos despertar tu Roku" (Descubre por qué), (X)
    • Descubre más muestra una ventana emergente con algunas razones por las que esto puede estar ocurriendo
  • Añadir distintivo para supportsWakeOnWLAN y supportsAudioControls

Para actualizar cuando se deje de soportar iOS 17/macOS 14 (Febrero 2026)

  • Ir alrededor y eliminar las etiquetas @available(iOS 18)
  • Uso de rasgos de previsualización para inyectar datos de muestra en las previsualizaciones
  • SwiftData
    • Usar la nueva macro #Index para modelos
    • Usar la nueva macro #Unique para modelos
    • Uso de la eliminación en lote
  • TipKit