Après avoir téléchargé les Graphics Tools for Xcode de Xcode et les avoir installé, j'ai donc lancé Quartz Composer et je me suis alors retrouvé dans un environnement de développement très différents de ceux auxquels je suis habitué.

En effet, il est quasi intégralement graphique et il n'est absolument pas nécessaire de taper des kilomètres de lignes de code pour obtenir un résultat impressionnant.

En effet, il suffit de disposer des blocs, appelés patch dans le vocabulaire de Quartz Composer,  par glisser-déposer et ensuite de les relier entre eux de la manière adéquate toujours par glisser-déposer et enfin d'ajuster quelques paramètres pour générer en temps réel une image ou une animation.

Quartz Composer

Quartz Composer est en effet un éditeur graphique conçu pour permettre au développeur d'utiliser facilement et directement directement les services graphiques de MacOS X, y compris OpenCL.

Pour cela, il utilise une approche du développement très différente de celle que j'applique au quotidien, mais comme cela était exactement ce que je recherchais, cela n'a pas été un problème, même si techniquement, elle m'a au final posé pas mal de problèmes.

Il ne me restait donc plus qu'à trouver un concept d'économiseur d'écran original mais simple, car je ne voulais pas me lancer dans un projet complexe et/ou de longue haleine.

L'article ayant suscité mon envie de me lancer dans cette aventure ayant eu pour objet un économiseur prenant la forme d'une horloge, j'ai décidé de continuer dans cette voie.

Au départ, j'étais parti pour en faire un simple clone, mais je me suis vite rendu compte que cela n'avait vraiment rien de complexe et ne représentait donc strictement aucun intérêt et j'ai donc cherché une alternative.

Or, depuis maintenant plusieurs années, je porte à mon poignet une montre offerte par ma femme qui présente l'originalité de représenter l'instant présent sous une forme binaire, et j'ai donc décidé de transposer le concept dans mon économiseur d'écran.

Les premières étapes du développement ont été relativement simple puisqu'elles ont consisté à concevoir les patchs permettant de décomposer un nombre en base 10 respectivement sur 4 et 6 bits, même si j'ai été obligé de réviser mon calcul binaire à l'aide d'un papier et d'un crayon.

La suite s'est par contre révélée un peu plus complexe puisque je me suis retrouvé dans un premier temps totalement incapable de dessiner le moindre cercle alors qu'ils sont à la base du design que je souhaitais obtenir.

Et pour le coup, Google n'a pas été mon ami, car les ressources disponibles sur Internet relative à Quartz Composer sont très peu nombreuses et pour la plupart complètement dépassée par rapport à la version dont je disposais.

Heureusement, à contrario, il est possible de trouver énormément de fichiers .qtz, y compris au niveau de MacOS X lui-même.

En effet, quelques économiseurs d'écran parmi ceux fournis en standard sont des animations réalisées avec Quartz Composer et il suffit donc d'éditer le fichier correspondant pour pouvoir en analyser le fonctionnement.

C'est donc grâce à l'économiseur Arabesque que j'ai appris à dessiner des cercles et avec l'aide d'autres fichiers glanés au hasard de mes recherches sur Internet que je suis parvenu à faire approximativement ce que je voulais.

Binary clock à 18 h 45

Je dis approximativement, car paradoxalement, s'il est possible de réaliser très facilement des effets complexes puisque les patchs nécessaires sont fournis clef en main, des opérations plus basiques ou bas niveau telles que la colorisation de texte ou la gestion d'une variation de transparence ne le sont pas et leur réalisation nécessite une bonne dose de réflexion ainsi que la mise en œuvre d'un nombre parfois conséquent de patch de base.

Cependant, en tant que néophyte, j'ai certainement fais très mal un certain nombre de choses et il y a probablement une façon plus simple de faire certaines choses.

En effet, rien qu'au niveau de l'organisation des patchs, je sais très bien qu'il est possible de faire bien mieux à l'aide des macros.

C'est la raison pour laquelle j'ai mis le fichier .qtz contenant mon horloge binaire sur github, dans l'espoir qu'un gourou passe par là et y apporte quelques corrections et optimisations.

Au final, l'expérience fut donc intéressante et concluante, puisque en cinq ou six heures, je suis parvenu à atteindre mon objectif alors que la documentation disponible est succincte, que je ne maîtrise absolument pas les services graphiques de Mac OS X (alors que je pense que cela me serait très utile) et que de plus, Quartz Composer semble avoir un certain nombre de bugs, allant même parfois jusqu'à se bloquer ou à quitter inopinément.