La keynote Apple vient de se terminer, et dans les cercles d'amis, la moitié des gens discutent de la couleur du nouvel iPhone, tandis que l'autre moitié — surtout ceux qui codent — partagent des liens dans les groupes en demandant « Qui a un bon générateur d'UUID à recommander ? ». Pour les non-initiés, cela semble sortir de nulle part : quel rapport entre la keynote et les UUID ? En réalité, cela n'a rien d'étonnant.
À chaque fois qu'Apple lance un nouveau système ou un nouveau matériel, les développeurs doivent s'adapter. Cette année est particulièrement mouvementée : iOS 18 a modifié la logique sous-jacente des autorisations de confidentialité. Pour accéder à certains identifiants d'appareil, les applications doivent passer par un nouveau processus d'autorisation. Auparavant, beaucoup d'équipes prenaient des raccourcis en utilisant directement l'ID de l'appareil comme identifiant unique de l'utilisateur. Maintenant, cette voie est complètement bloquée. Que faire ? Il faut générer un UUID, le stocker dans le trousseau et l'utiliser comme ID utilisateur anonyme. Résultat : dès la fin de la keynote, les recherches pour ce petit outil qu'est le générateur d'UUID ont été multipliées par plus de dix.
L'UUID, de son nom complet « identifiant unique universel », est en fait une chaîne de caractères qui semble désordonnée, comme « 550e8400-e29b-41d4-a716-446655440000 ». Sa valeur principale tient en un mot : l'unicité. En théorie, même si vous en générez cent millions par seconde pendant cent ans, la probabilité de collision est plus faible que celle d'être frappé par une météorite. Pour les développeurs, c'est comme délivrer une carte d'identité aux données : utilisateurs, commandes, journaux, sessions, tout peut en recevoir une.
Mais voilà le problème : les générateurs d'UUID pullulent, alors pourquoi tout le monde en cherche-t-il soudainement après la keynote Apple ? Parce qu'il y a un piège cette fois. iOS 18 impose des exigences sur la version de l'UUID : la version v4 doit utiliser un générateur de nombres aléatoires cryptographiquement sûr, et non plus un simple pseudo-aléatoire. Certains anciens outils génèrent des UUID qui semblent corrects, mais dont la source aléatoire n'est pas assez robuste, ce qui peut entraîner un rejet lors de la validation par Apple. De plus, les modifications de la synchronisation du trousseau dans le nouveau système exigent que le même UUID reste cohérent entre les appareils d'un même compte iCloud, ce qui nécessite que le générateur prenne en charge l'exportation et l'importation de clés. Ces détails, que personne ne remarque habituellement, sont tous mis en évidence lors de l'adaptation集中 après la keynote.
Je connais un développeur indépendant qui fait une application de suivi d'habitudes. Le soir de la keynote, il se plaignait dans un groupe : l'ancienne version de son application fonctionnait mal sur le nouveau système, toutes les données utilisateur étaient désordonnées, car le générateur d'UUID utilisé auparavant ne prenait pas en compte la synchronisation iCloud. Après un changement d'appareil, un nouvel ID était généré et tout l'historique était perdu. Il a passé la nuit à changer pour un outil en ligne prenant en charge l'exportation de clés, à migrer les données des utilisateurs, et s'est affairé jusqu'à quatre heures du matin. Il a dit une phrase intéressante : « La keynote Apple, c'est le gala du Nouvel An chinois pour les consommateurs, et l'examen final pour les développeurs. »
Alors, quels outils les développeurs ordinaires utilisent-ils maintenant ? D'après mes observations, il y a trois écoles. La première utilise la ligne de commande : Linux et macOS ont uuidgen intégré, une touche Entrée et c'est fait, simple et brutal, mais pas de génération par lots, et pas pratique pour la synchronisation multiplateforme. La deuxième utilise des outils en ligne : on ouvre une page web, on clique pour générer, on copie et on part, adapté à un usage temporaire, mais il faut choisir des sites fiables. Certains sites enregistrent les UUID générés côté serveur, ce qui revient à exposer les ID utilisateur. La troisième utilise des bibliothèques de programmation : le module uuid de Python, le package uuid de JavaScript, intégrés directement dans le code, c'est la solution la plus sûre, mais il faut exécuter un script à chaque fois, ce qui n'est pas très pratique pour le débogage.
Donc les développeurs vraiment expérimentés gardent généralement un ou deux signets de générateurs d'UUID en ligne dans leur téléphone, en privilégiant ceux qui génèrent entièrement côté client, sans connexion réseau, avec exportation par lots et choix de version. Après la keynote Apple, le trafic de ces outils a explosé, non pas parce que les gens ont soudainement oublié comment coder, mais parce que lors de l'adaptation au nouveau système, il faut vérifier rapidement, générer en masse et comparer les effets des différentes versions. Un ami qui fait du backend m'a dit qu'il avait généré plus de deux mille UUID ces deux derniers jours avec un outil en ligne, juste pour tester la logique de synchronisation du trousseau du nouveau système et voir lesquels entraient en conflit.
En fin de compte, le générateur d'UUID n'est qu'un marteau : habituellement il prend la poussière dans la boîte à outils, mais dès qu'on rénove, on s'aperçoit qu'on en a besoin partout. La keynote Apple est cette notification de rénovation qui dit aux développeurs : il est temps de sortir le marteau. Et cette fois, les travaux sont importants : confidentialité, synchronisation, sécurité, trois dimensions modifiées simultanément, personne n'ose prendre à la légère. Si vous êtes développeur, ou si vous avez des amis développeurs, il vaut mieux avoir récemment un générateur d'UUID fiable sous la main, pour ne pas devoir en chercher un après un rejet de validation.
Enfin, un conseil : soyez vigilant dans le choix de l'outil. Ceux qui vous demandent de vous connecter dès l'ouverture et qui affichent des publicités après la génération, fermez-les directement. Un bon générateur d'UUID devrait être comme l'air : présent quand vous en avez besoin, totalement discret quand vous n'en avez pas besoin. Les keynotes Apple ont lieu chaque année, et l'examen final des développeurs aussi. Avoir quelques petits outils pratiques de plus dans sa boîte à outils ne fait jamais de mal.