Entretien avec Steven Troughton-Smith, le développeur qui révèle les secrets d'iOS

Stéphane Moussie |

Saviez-vous qu'avec un peu d'huile de coude il est possible d'avoir un mode Picture in Picture sur Apple TV ? Saviez-vous qu'il est possible de fenêtrer des applications sur iOS comme on le ferait sur OS X avec seulement 500 lignes de code ?

Si vous suivez le compte Twitter de Steven Troughton-Smith, vous le savez. Depuis des années, ce développeur explore les entrailles d'iOS à la recherche de fonctionnalités encore gardées secrètes par Apple. Son compte est une vraie mine d'or remplie de découvertes et expérimentations en tout genre. Steven Troughton-Smith a accepté de se livrer pour MacGeneration.

Steven Troughton-Smith

MacGeneration : Peux-tu te présenter ?

Steven Troughton-Smith : Je suis un développeur indépendant basé en Irlande. Je crée des apps principalement pour iOS, comme Speed, un calculateur de vitesse, ou Grace, une application aidant les autistes à communiquer.

Pourquoi passes-tu iOS au peigne fin à la recherche de nouveautés ? Est-ce simplement par curiosité, pour le challenge ou les deux ?

Les deux en effet, mais en premier lieu pour comprendre comment les choses fonctionnent et pour repousser les limites de ce qui est théoriquement faisable. C'est également utile pour comprendre parfaitement ce qu'il se passe lorsqu'un problème surgit.

La curiosité aide à se préparer aux choses qu'Apple est en train de mettre en place mais qu'elle n'a pas encore annoncées. C'est le cas par exemple du multi-fenêtrage sur iPad. Si vous y prêtez très attentivement attention, vous remarquez que certains de ces gros changements sont télégraphiés plus d'un an à l'avance. Pour quelque chose qui demande autant de travail que rendre une application redimensionnable, c'est un tuyau important. Inspecter iOS aide aussi à vérifier les rumeurs. S'il y a une mention directe dans le code, il y a de grandes chances que la rumeur soit exacte et vous pouvez commencer à vous y préparer.

Le multi-fenêtrage est un excellent exemple en effet. Juste après la sortie d'iOS 8 en bêta, tu as déniché le code servant à mettre deux applications côte à côte sur iPad, une fonction qui n'a été proposée qu'un an plus tard avec iOS 9. Comment tu l'expliques et comment se fait-il qu'Apple, si secrète d'ordinaire, laisse de tels indices ?

Les ingénieurs d'Apple sont toujours en train de travailler sur des choses qui ne sont pas vraiment finalisées pour la prochaine version du système. Comme tellement de choses sont interdépendantes, on peut facilement imaginer que le code inusité a été laissé parce que quelque chose d'autre en dépend en partie. Et puis, bien sûr, les ingénieurs ne s'attendent pas à ce quelqu'un aille fouiller ou comprenne ce code dormant.

Démonstration du multi-fenêtrage sur iOS 8 en juin 2014

Quels outils utilises-tu pour tes recherches ?

Je travaille sur un iMac 27". Il est non Retina, mais je l'utilise dans une résolution Retina. J'utilise principalement Hopper, que j'adore, comme désassembleur (un outil de rétro-ingénierie permettant d'étudier le fonctionnement interne de logiciels, ndlr). J'utilise aussi à côté class-dump (un outil qui affiche toutes les déclarations de classes Objective-C, ndlr) et l'utilitaire nm/otool de Xcode.

SwitchResX à la rescousse pour changer la definition sur l'iMac non Retina — Cliquer pour agrandir

Quelle est ta méthode pour trouver de nouvelles choses dans iOS ? Est-ce que la chance joue un rôle ?

Pour les gros éléments, c'est facile avec class-dump de dissocier par exemple les classes contenues dans iOS 9.0 et iOS 9.1. On voit immédiatement ce qui est nouveau et ce qui a changé de manière notable. Faire ensuite appel à son intuition et observer attentivement le code pour savoir où chercher prend aussi une grande partie du temps. Cela vient avec la pratique et la compréhension des rouages de l'OS. Généralement la chance n'entre pas en compte.

Quelle est la découverte dont tu es le plus fier ?

Je ne saurais pas dire. Il y a toujours quelque chose de nouveau à découvrir ou à vérifier, et une fois que cette chose devient publique, ce n'est plus « excitant ». Je pense que la découverte la plus importante a été le multi-fenêtrage sur iPad, en cela que cette fonction a fondamentalement changé la plateforme — de manière positive — et a demandé aux développeurs une charge de travail significative pour la prendre en charge. Une année supplémentaire pour réfléchir à comment rendre son application redimensionnable est inestimable.

Le « hack » dont je suis le plus fier est d'avoir fait en sorte que watchOS fasse tourner des applications réalisées avec UIKit (le framework pour créer des applications iOS, alors que l'Apple Watch a normalement WatchKit, ndlr). Je n'étais pas sûr que ce soit réalisable.

Comment fais-tu avec l'engagement de confidentialité auquel sont tenus les développeurs ? As-tu déjà été contacté par Apple pour retirer quelque chose de ton compte Twitter ?

Non, on ne m'a jamais demandé de retirer quoi que ce soit de Twitter. En général, j'attends que les logiciels soient rendus publics pour les désassembler, mais comme le NDA d'Apple est devenu moins strict au fil du temps, cela importe de moins en moins. Les bêtas comme les sessions de la WWDC ne sont plus confidentielles, et Apple a mis en place un programme de bêta publique. S'il y avait le moindre problème avec ce que je raconte, un paquet de personnes chez Apple m'auraient prévenu.

Qu'est-ce que tu attends d'iOS 10 ?

Je n'ai pas de prédictions vérifiées pour l'instant ! Je m'attends à voir le système d'extensions (introduit dans iOS 8, ndlr) renforcer l'interconnexion des applications sur la plateforme. Je pense que l'iPad doit voir ses capacités augmentées pour se distancier d'iOS. iOS 9 a commencé à donner cette impulsion.

Je crois par ailleurs que watchOS doit se tourner vers les applications UIKit pour devenir une vraie plateforme applicative. WatchKit ne représente pas l'avenir à mon avis.

Concernant tvOS, beaucoup de fonctionnalités d'iOS, comme le multi-fenêtrage ou le mode image dans l'image, vont sans nul doute finir par être intégrées. C'est une évolution assez évidente.

Démonstration du mode Image dans l'image sur Apple TV en janvier 2016

Penses-tu comme d'autres développeurs qu'Apple va ou doit sortir un « padOS », c'est-à-dire un système d'exploitation exclusif à l'iPad ?

tvOS, iOS, watchOS... ce sont juste iOS sous des noms différents. Ils partagent tous le même code, avec simplement une application différente au-dessus servant d'écran d'accueil. Apple devrait absolument permettre à l'iPad de faire des choses impossibles pour l'iPhone. On commence à le voir avec le multitâche. En dessous, il faut que ça reste la même plateforme pour les développeurs, mais avec la possibilité de tirer partie des différents form factor.

Ce que j'aimerais voir le plus, c'est une plateforme d'applications partagée entre iOS et OS X, et la dépréciation d'AppKit. Ces deux plateformes devraient grandir ensemble, et non pas l'une aux dépens de l'autre. Apple considère clairement cela comme un problème, il n'y aurait pas UXKit sinon. Ce framework est là pour rendre l'utilisation d'AppKit plus proche de celle d'UIKit. Je pense que le moment est venu.

  • UXKit est une réplique d'UIKit (le framework pour créer des apps iOS) construite au-dessus d'AppKit (celui pour créer des apps Mac). UXKit a été utilisé par Apple pour l'application Photos sur Mac. Apple n'a pas encore permis son utilisation par les développeurs. Pour en savoir plus : UXKit, la surprise cachée de Photos

Donc si je comprends bien, tu aimerais pouvoir développer une application iOS et une application Mac avec UXKit ? Ça fait penser à l'approche de Microsoft avec Windows 10 et son Universal Windows Platform. On obtiendrait alors des applications vraiment « universelles ».

Oui, OS X est l'intrus actuellement. Il devrait y avoir beaucoup plus de code partagé entre lui et iOS. Les applications tvOS sont parfaitement adaptées aux téléviseurs, en dépit du fait qu'elles sont créées avec le même UIKit que nous utilisons pour les apps iOS. OS X devrait s'insérer dans cette plateforme. Les applications écrites pour iPad devraient pouvoir être portées facilement sur OS X, et vice versa. L'innovation pourrait circuler dans les deux sens. Ça ne devrait être qu'une seule et unique plateforme.

À l'instar de tvOS, ça ne signifierait pas qu'OS X aurait de simples applications iOS. Ça signifie au contraire que les développeurs pourraient concevoir et fabriquer des applications sans se soucier d'un second paradigme. C'est la même idée que l'Universal Windows Platform de Microsoft : il n'y a pas de version « desktop » ou « mobile », il y a juste une app qui évolue sur le bureau et le mobile en même temps. Je ne pense pas qu'UXKit soit la réponse définitive, c'est plutôt une solution intermédiaire, mais Apple explore clairement cette voie.

Est-il difficile de gagner sa vie en tant que développeur indépendant ?

Oui, je pense qu'il est difficile pour les indés de vivre des App Store. On a trop souvent vu des développeurs respectés retirer leur app du Mac App Store dernièrement. Dans le dernier billet de blog de Panic, Cabel (le cofondateur du studio, ndlr) écrit « Je commence de plus en plus à penser que nous avons tout simplement créé le mauvais type d’applications iOS — nous avons créé des outils professionnels qui ne sont pas vraiment recherchés sur cette plateforme — et que le prix n’est pas le problème, c’est leur pertinence. » C'est un reflet incroyablement triste de l'environnement dans lequel on essaie de gagner notre vie, je trouve. Si Panic n'y arrive pas, qui le peut ?

Cela étant dit, il n'y a pas de pénurie de travail sur iOS si vous êtes prêt à renoncer à contrôler votre destin. Vous pouvez réaliser des commandes d'applications ou rejoindre une entreprise de développement. Le reste des développeurs semble quitter le navire et travailler maintenant pour des plateformes comme Facebook.

Pour conclure, quelles sont tes applications Mac et iOS préférées ?

J'adore voir les applications iPad repousser les limites de la plateforme, comme Pythonista ou Workflow, ou proposer des expériences que l'on ne peut pas retrouver sur OS X, comme Adobe Illustrator Draw. À part ça, j'utilise Reeder, MindNode et le client Twitter officiel. Sur OS X, il y a dans mon Dock Twitterrific, Hopper, Hex Fiend, EyeTV et Photoshop.

avatar Rez2a | 

Merci pour cette interview très intéressante. C'est bien de reparler d'UXKit, je suis curieux de voir si Apple se le réserve à un usage interne en attendant de pondre un meilleur truc :)

avatar reborn | 

"tvOS, iOS, watchOS... ce sont juste iOS sous des noms différents"

Voila, c'est évident mais ça fera taire les trolls de la soit disant fragmentation de l'écosystème d'Apple..

avatar Kayli | 

Article terrible !
Merci pour cette interview, à l'interviewer comme à l'invité !

avatar enzo0511 | 

Merci pour cet interview comme on aimerait en lire davantage

avatar cv21 | 

Interview passionnante, merci.

avatar aldomoco | 

...très intéressant en effet, je pinaille peut-être un peu mais la démonstration du multi-fenêtrage en vidéo ne m'a pas trop convaincu !

avatar Florian Innocente | 

@aldomoco :
C'était un peu pareil pour sa démo du multifenetrage mais vu qu'il découvre des fonctions encore inachevées c'est normal que ça soit assez brouillon.

avatar fousfous | 

Quand les processeurs ARM seront sur les Mac plus de problèmes pour les apps

avatar Henri_MTL | 

@fousfous: Tu vois, il n'utilise pas un iPad sans clavier ni souris pour décortiquer iOS :)

avatar Glop | 

@fousfous
Quand les processeurs ARM seront sur les Mac plus de problèmes pour les apps
Quel rapport entre les applications et le fait d'avoir d'avoir un processeur ARM ? Xcode génère aussi bien du code ARM qu'Intel. Je ne sais pas si tu as vu comment fonctionne Xcode. Le simulateur permettant de tester les applications sur un Mac, avant de les déployer sur device, produit du code Intel ! Et c'est bien pratique.

Techniquement rien n'empêche d'avoir des "applications universelles" encapsulant du code Intel et du code ARM, pouvant tourner sur les "anciens Mac Intel" et les futurs (peut-être) Mac ARM.

avatar marc_os | 

@fousfous :
Ça n'a aucun rapport !

avatar ipaforalcus | 

@fousfous :
Toujours autant à la ramasse !

avatar bonnepoire | 

Vraiment passionnant. On sent qu'il est passionné et qu'il maîtrise sa matière.

Apple construit son écosystème en proposant des bases solides orientées vers les applications là où Microsoft pense os unique et s'adapte après e, fonction des soucis. J'utilise la solution ms tous les jours et je la trouve boiteuse quel que soit l'usage là où un mac, un iPad ou un iPhone sont hyper adaptés à leur usage. Ils sont complémentaires là où Microsoft propose du redondant où chaque device n'est pas optimal pour ses usages.

avatar ever1 | 

c'est opposé à ce que dit cette personne, MS aurait fait le bon choix d'un OS unique tandis que Apple est bloqué dans son paradigme et devrait changer d'approche pour faire une base unique

avatar patrick86 | 

"c'est opposé à ce que dit cette personne, MS aurait fait le bon choix d'un OS unique tandis que Apple est bloqué dans son paradigme et devrait changer d'approche pour faire une base unique"

Entre les 2 je dirais.

Par exemple : les versions iPad et Apple TV d'une même apps partagent du code en commun et sont toutes deux développées avec UIkit, pourtant, elles sont respectivement adaptées aux paradigmes d'IHM 'écran tactile' et 'grand écran + Siri Remote'.

Le problème de la solution de Microsoft, c'est qu'elle permet d'emblée, nativement et sans bidouille, d'exécuter sur PC de bureau une app créé pour Modern UI et inversement.
C'est pas très grave d'avoir une app Modern UI sur PC, on a juste une interface plus simple qui tire moins parti du potentiel présent, mais c'est plus emmerdant de se retrouver sur tablette avec une app qui n'est pratique à utiliser qu'avec un souris.

Je pense qu'Apple cherche avec UXKit une solution qui facilite le portage des apps entre OS X et iOS, tout en ne tombant pas dans la même erreur que MS.

avatar malcolmZ07 | 

Très bon article , merci beaucoup à macg

avatar sapropelet (non vérifié) | 

Développer sur iPad !!! Un exploit bientôt dans les salles.

avatar Antony Matué | 

Le stylet, la souris bluetooth, le trackpad bluetooth...

Hérésie... Tout faire au doigt et patati, patata...

Ah, on en aura lu des positions tranchées sur le sujet.

Le stylet sur l'iPad Air fera hurler les puristes du fond de la tranchée.

Un peu de cosmétique et tout devient possible !

Le stylet, la souris bluetooth, le trackpad bluetooth... J'y crois et je le dis depuis l'iPad 1. Et des imbéciles imbus de leur doigt et prêts à mordre les miens, j'en à vu défiler dans ces contrées.

J'me marre !

avatar fousfous | 

@Antony Matué :
Et y aura encore des gens comme toi pour dire que l'interface naturel c'est de la merde...
Les gens qui vivent dans le passé y en a des tonnes, tu n'es pas unique, juste obsolète.

avatar tbr | 

@fousfous :
"@Antony Matué :
[...] Les gens qui vivent dans le passé y en a des tonnes, tu n'es pas unique, juste obsolète."

Non pas "obsolète". Juste différent... de toi.

Tu sais ce qui est rassurant ? C'est que d'ici peu — plus vite que tu ne le crois —, un jeune con (comme toi) te dira la même chose.
Si, je t'assure. Tu verras...

C'est la vie, dude. :-)

avatar Billytyper2 | 

@fousfous :
"@Antony Matué :
Et y aura encore des gens comme toi pour dire que l'interface naturel c'est de la merde...
Les gens qui vivent dans le passé y en a des tonnes, tu n'es pas unique, juste obsolète."
Pas mal...;)

avatar Pse | 

Merci beaucoup pour cet article.

avatar Aimstar95C | 

Super article enfin une interview d'un pro IT - n'hésitez pas à faire d'autre interview dans ce style - On adore :D

avatar Bruno de Malaisie | 

Passionnant.
Merci MacGé !!!!!

avatar dragon.k97 | 

Excellent, vos interviews sont définitivement les articles que je préfère lire chez vous ! Merci !

Pages

CONNEXION UTILISATEUR