Passer au contenu principal

Plan de route Roam

Travaux terminés pour la prochaine mise à jour

  • Ajout de widgets de contrôle : Lecture, Muet, Changer le volume et Sélection depuis le centre de contrôle !
  • Amélioration du traitement du champ de texte pour de nombreuses applications roku
    • Ouverture automatique du champ de texte lorsque l'édition du texte est disponile
    • Copier, Couper, Coller depuis macOS (avec le clavier)
    • Copier, Couper, Coller + Édition généralisée sur iOS
  • Meilleur reporting autour des autorisations de réseau local et de la connectivité
  • Amélioration de la fonctionnalité du clavier
  • Améliorations de la stabilité de la connexion

À venir bientôt

  • Ajout d'options de pression longue aux touches

    • Appui long sur la flèche droite pour avancer rapide
    • Appui long sur la flèche gauche pour reculer rapide
    • Appui long sur la touche mute pour un mute longue durée
      • Rendre le +30 configurable à 30, 15, 60 options de mute de secondes
      • Afficher une bannière avec +30 sec, x pour annuler, indicateur de progression linéaire en arrière-plan
        • Montrer sous le panneau principal de bouton afin qu'il soit proche du mute
      • Annule lors de la mise en sourdine à nouveau (et effectue également un appel api)
  • Syx macOS widgets

  • Futur : fournir une vue minimaliste optionnelle sur iOS qui reproduit de près la vue de la télécommande siri

Idées générales pour le futur

Corrections de bugs

  • Vérifier si la boucle d'appels à nextPacket est logique.
    • Au lieu de boucler toutes les 10ms et espérer que le timing soit correct, devrais-je plutôt boucler sur les paquets reçus et essayer de les programmer à l'heure de l'hôte 10ms * globalSequenceNumber + startHostTime et sampleTime à sequenceNumber * Int64(lastSampleTime.sampleRate) / packetsPerSec + startSampleTime
    • Alors je peux passer d'une boucle for await sur l'horloge à une boucle while !Task.isCancelled avec un Task.sleep dedans.
    • Donc, nous avons besoin de boucler toutes les 10 ms et d'essayer de sortir le dernier paquet puis de le programmer à ce moment-là
    • Chaque fois que nous faisons une synchronisation audio
      • Nous avons lastRenderTime + un paquet de synchronisation
      • Estimer le numéro de paquet que nous devrions envoyer à + l'heure de synchronisation
        • Render Time + additional

Améliorer la communication de l'utilisateur autour de la gestion de l'information/du statut/des capacités

  • Lors de la mise sous tension de l'appareil avec WOL et non connecté après 5 secondes, ou lors de la mise sous tension de l'appareil et de l'échec immédiat, afficher un message d'avertissement sous le wifi un
    • “Nous n'avons pas pu réveiller votre Roku” (En savoir plus) (Ne plus afficher pour cet appareil), (X)
    • En savoir plus montre certaines raisons pour lesquelles
      • Vous n'êtes pas connecté au même réseau (Afficher le dernier nom de réseau de l'appareil. Demander à l'utilisateur s'il est connecté à ce réseau)
      • Votre appareil est en veille profonde (n'a pas été éteint récemment) et ne peut pas être réveillé
        • Votre appareil ne supporte pas le WWOL et est connecté au wifi
        • Votre appareil ne supporte ni le WWOL ni le WOL
      • Votre réseau n'est pas configuré de manière à nous permettre d'envoyer des commandes de réveil à l'appareil
  • Lors de l'appui sur un bouton désactivé, afficher une notification indiquant pourquoi il est désactivé
    • Afficher un indicateur d'information sur le bouton pour indiquer que des informations peuvent être reçues lorsqu'il est cliqué ?
    • Mode écouteurs désactivé -> car l'appareil n'accepte pas le mode écouteurs pour cette application
    • Contrôle du volume désactivé -> car l'audio est transmis par HDMI qui ne supporte pas les contrôles de volume ?
  • Lors de la recherche active d'appareils et qu'aucun nouveau n'est trouvé, afficher un message d'avertissement sous la liste d'appareils
    • “Nous n'avons pas pu réveiller votre Roku” (Découvrez pourquoi), (X)
    • En savoir plus montre une popup avec quelques raisons pour lesquelles ceci pourrait se produire
  • Ajouter un badge pour supportsWakeOnWLAN et supportsAudioControls

À mettre à jour lorsque l'on abandonne le support pour iOS 17/macOS 14 (février 2026)

  • Parcourir et supprimer les tags @available(iOS 18)
  • Utiliser les traits de prévisualisation pour injecter des données d'exemple dans les prévisualisations
  • SwiftData
    • Utiliser le nouveau macro #Index pour les modèles
    • Utiliser le nouveau macro #Unique pour les modèles
    • Utiliser une suppression par lots
  • TipKit