Programmation : comment fonctionne Duet Display ? Avec beaucoup d'Open Source !
Par Didier Pulicani - Publié le
Hier, nous avons publié un test assez complet de Duet Display, cette petite app iOS qui permet d'utiliser son iPad comme second écran avec de bonnes performances. Développé par des anciens d'Apple en quelques semaines seulement, la technique utilisée a éveillé la curiosité d'un développeur, qui détaille grossièrement comme le programme fonctionne.
Comme évoqué ensemble, la latence de l'app n'est pas nulle -contrairement à ce qui est affirmé- car les développeurs utilisent en fait plusieurs protocoles encapsulés les uns dans les autres
Duet Display se base en fait beaucoup sur CocoaSplit, une librairie OpenSource sous licence GPL qui permet de capturer ce qui se passe à l'écran en temps réel. C'est comme cela que Duet récupère l'image avant de la compresser et de l'envoyer sur l'USB. Même si beaucoup d'autres ne respectent pas non plus la règle, à aucun moment l'application ne mentionne l'usage de la bibliothèque. Pour d'anciens de Cupertino, c'est un peu dommage.
Duet utilise ensuite PeerTalk, une bibliothèque qui utilise le protocole usbmux d'iTunes. Sans rentrer dans les détails, usbmux crée une sorte de connexion TCP à travers l'USB. Apple s'en sert pour échanger des données entre le Mac et l'iPhone et il parait assez étonnant que les lutins aient validé son usage dans une app iOS. Pour Dean, c'est une bonne nouvelle, car logiquement, d'autres éditeurs devraient être également en mesure de l'utiliser à leur tour. Petit détail qui a son importance, les développeurs de Duet ont
Enfin, Duet se base sur GPUImage, une célèbre librairies iOS de traitement d'image utilisant OpenGL. Là, pas de surprise, ce composant est intégré dans de nombreuses apps iOS.
Source
Comme évoqué ensemble, la latence de l'app n'est pas nulle -contrairement à ce qui est affirmé- car les développeurs utilisent en fait plusieurs protocoles encapsulés les uns dans les autres
C'est une sorte de VNC over TCP over UDPrésume assez bien Dean McNamee.
Duet Display se base en fait beaucoup sur CocoaSplit, une librairie OpenSource sous licence GPL qui permet de capturer ce qui se passe à l'écran en temps réel. C'est comme cela que Duet récupère l'image avant de la compresser et de l'envoyer sur l'USB. Même si beaucoup d'autres ne respectent pas non plus la règle, à aucun moment l'application ne mentionne l'usage de la bibliothèque. Pour d'anciens de Cupertino, c'est un peu dommage.
Duet utilise ensuite PeerTalk, une bibliothèque qui utilise le protocole usbmux d'iTunes. Sans rentrer dans les détails, usbmux crée une sorte de connexion TCP à travers l'USB. Apple s'en sert pour échanger des données entre le Mac et l'iPhone et il parait assez étonnant que les lutins aient validé son usage dans une app iOS. Pour Dean, c'est une bonne nouvelle, car logiquement, d'autres éditeurs devraient être également en mesure de l'utiliser à leur tour. Petit détail qui a son importance, les développeurs de Duet ont
préfixécertaines classes, une pratique un peu bizarre quand on pioche ouvertement dans du code OpenSource.
Enfin, Duet se base sur GPUImage, une célèbre librairies iOS de traitement d'image utilisant OpenGL. Là, pas de surprise, ce composant est intégré dans de nombreuses apps iOS.
Source