Ouvrir le menu principal

MacGeneration

Recherche

Lyft raconte le voyage en Swift de son app iOS

Florian Innocente

vendredi 18 septembre 2015 à 16:00 • 15

iOS

Est-il raisonnable aujourd'hui de réécrire entièrement son app iOS en Swift, le tout nouveau langage de développement dévoilé par Apple en juin 2014 ? Lyft a tenté l'aventure et se dit aujourd'hui satisfait du résultat.

Lyft est un système de covoiturage payant. Lancé à San Francisco en 2012, il est présent maintenant dans 60 villes américaines de 30 États. C'est le numéro 2 du secteur derrière Uber. Les conducteurs et leurs passagers se mettent aussi en relation au moyen d'une app pour iPhone.

L'app de Lyft

Lyft a raconté à FastCompany son voyage en Swift, sans entrer dans les arcanes techniques du langage mais plutôt pour relater le déroulement de cette opération. Chris Lambert, le directeur technique de Lyft, a d'abord observé d'un oeil circonspect l'arrivée de ce langage et la perspective de l'utiliser pour l'app « Au tout début, on a vu ça sous l'angle d'une expérimentation, de quelque chose de très risqué ».

Évaluation en septembre

Un an plus tard, l'app a été revue de fond en comble à l'intérieur et elle fonctionne sans accroc majeur. Lyft a adopté Swift à 100% et juge son processus de développement plus efficace.

Initialement, un développeur de l'équipe a jaugé la faisabilité de cette reconversion et conclut qu'il était possible d'avoir une app réécrite de zéro, et fonctionnelle, avec les outils existants.

Martin Conte Mac Donell, le premier développeur sur l'app en Swift, à droite. Crédit FastCompany

L'éditeur n'a pas réalisé cet effort pour la simple beauté du geste, c'était aussi un moyen de remettre à neuf une app dont les fondations se faisaient vieillissantes. Lyft est né en 2012, sur la bases d'un précédent service de covoiturage lancé plusieurs années auparavant. Une app iOS a donc été conçue en 2012 et reçu plusieurs évolutions au fil de la croissance de l'entreprise et de ses services.

Nous étions une entreprise très différente en 2012 lorsqu'on a commencé à travailler sur ça. On a, grosso modo, bricolé Lyft à deux en l'espace de 15 jours. Une bonne partie des "péchés capitaux" qui datent de cette époque nous suivent encore aujourd'hui. Mais c'est toujours ainsi que l'on commence.

Durant ces trois dernières années, la plupart du code avait été réécrit, explique Chris Lambert, le directeur technique, « toutefois certains gros morceaux essentiels faisaient de la résistance. On aurait fait une app très différente si on avait tout repris depuis le début. »

Le basculement sur Swift pouvait être l'occasion de le faire et de gommer les défauts accumulés dans l'app. Mais il n'y avait pas d'assurance absolue que cela fonctionne. Un développeur qui venait d'être embauché — Martin Conte Mac Donell — a donc été affecté à ce projet en septembre 2014.

Feu vert en janvier

Il a fait ses premières armes avec Swift et obtenu un prototype au bout d'un mois. Une version sommaire de l'app qui permettait de commander une voiture. Un premier jet qui s'est avéré aussi surprenant que prometteur « J'ai été capable d'être vraiment très productif sur une période temps assez réduite » dit-il.

Forte de la bonne impression de son développeur, la direction de Lyft a décidé, en janvier, de poursuivre l'aventure et d'y mettre plus de moyens. En mars, des développeurs supplémentaires ont été affectés au projet. Les deux versions Objective-C et Swift ont reçu en parallèle les mêmes nouvelles fonctions.

Basculement au printemps

En juin dernier, tous les développeurs iOS de l'entreprise — leur nombre n'est pas donné — travaillaient sur la version en Swift. Il a fallu 2 à 3 semaines en moyenne à chacun pour qu'il s'acclimate à ce langage (depuis l'année dernière, Apple y a aussi apporté de multiples améliorations et lancé la version 2 à la WWDC 2015, ndr).

Pendant cette période, l'application Lyft a été réaménagée pour améliorer son fonctionnement lorsqu'on avait réservé un véhicule. Ce qui a occupé quelques personnes pendant un peu plus d'un mois, a pu être effectué en Swift par un seul ingénieur en une semaine, constate Martin Conte Mac Donell.

La précédente app représentait environ 75 000 lignes de code tandis que sa cousine en Swift, pour les mêmes fonctions, a été ramenée à un moins d'un tiers de ce volume. Un allègement bénéfique pour la relecture et la maintenance du logiciel.

Apple a suivi de près cette opération de réécriture, les concepteurs de Swift travaillaient avec leurs homologues chez Lyft : « On était l'un des plus gros projets de réécriture en Swift, ce qui nous a naturellement confrontés aux plus gros écueils » poursuit Martin Conte Mac Donell.

Les gens d'Apple ont utilisé les retours sur ce projet pour corriger au fur et à mesure leur propre langage. Il y avait des échanges réguliers entre Lyft et Apple lorsque quelque chose bloquait. Une assistance toute particulière dont tous les éditeurs engagés dans le même processus ne peuvent évidemment bénéficier.

Une fois l'app suffisamment avancée, elle a commencé à être testée par des passagers et conducteurs (conducteurs parmi lesquels se trouvent justement des salariés de Lyft qui mettent ainsi du beurre dans les épinards tout en testant leur service). Un bêta-test à petite échelle qui a permis de repérer quelques bugs ici ou là.

L'étape suivante était la plus périlleuse puisqu'il s'agissait de mettre la nouvelle app entre les mains de tous les utilisateurs. Un quitte ou double, explique Chris Lambert en comparant avec son expérience sur Android.

L'une des problématiques c'est que vous ne pouvez pas distribuer la mise à jour d'une app iOS de manière graduelle. Android a un petit avantage sur ce point, vous pouvez décider de lancer auprès de 1%, 5% ou 10% des utilisateurs. Avec iOS, c'est tout ou rien. Si c'est disponible, ça l'est pour tout le monde. Ce qui met une pression importante sur les ingénieurs. Tous les utilisateurs qui ont activé la mise à jour automatique recevront la nouvelle app dans l'heure qui suit.

La version Swift de Lyft — 3.1 — a été lancée le 16 juillet, avec comme seule indication que tout avait été refait mais sans citer spécifiquement le langage. Aucun problème majeur n'est venu entacher ce lancement, à en croire ses auteurs.

L'app suit un rythme de révisions quasi hebdomadaire. Les notes de versions des 7 dernières mises à jour montrent qu'il s'agit uniquement de correctifs. Cependant, c'était déjà le cas avant cette mouture en Swift. Les nouvelles versions de Lyft ne se reposaient jamais très longtemps sur l'App Store. La refonte n'a pas empêché cette stratégie de révisions rapides.

Swift présenté en juin 2014

Désormais que Lyft a son app en Swift, le plus gros du travail est fait, estime Conte Mac Donell. L'entreprise est maintenant sur les rails pour suivre la direction qu'entend donner Apple : «Utiliser des outils modernes nous ouvre les portes pour tout ce qu'Apple a en tête — nouvelles plateformes, nouveaux appareils. Tout va tourner autour de Swift ». Pour cet éditeur, il ne sera pas nécessaire de courir pour se mettre au diapason de ces éventuelles nouveautés.

Source :

Soutenez MacGeneration sur Tipeee

MacGeneration a besoin de vous

Vous pouvez nous aider en vous abonnant ou en nous laissant un pourboire

Soutenez MacGeneration sur Tipeee

macOS 15.7 ainsi qu'iOS 18.7 corrigent des failles de sécurité, et l'iPhone 6s a aussi droit à sa mise à jour 🆕

16/09/2025 à 22:31

• 27


ChatGPT va essayer de deviner l’âge de ses utilisateurs pour protéger les ados

16/09/2025 à 21:50

• 4


Revue de tests des Apple Watch SE 3, Series 11 et Ultra 3 : des fortunes très diverses

16/09/2025 à 19:13

• 46


Sur iOS 26, Apple Plans se rapproche un petit peu de Waze

16/09/2025 à 19:13

• 87


iOS 26 : notre guide des nouveautés est en vente !

16/09/2025 à 18:10

• 83


À quoi ressemble le nouvel Assistant de réparation de macOS Tahoe 26

16/09/2025 à 17:13

• 8


Back to School : Microsoft Office 2021 à vie pour Mac à prix cassé 📍

16/09/2025 à 16:01

• 0


SFR Box 10+ : la box Wi-Fi 7 de SFR est disponible pour tous

16/09/2025 à 15:43

• 21


macOS Tahoe : Safari disparait de la partition de restauration (ou presque)

16/09/2025 à 15:15

• 11


watchOS 26 apporte les notifications d’hypertension sur plusieurs Apple Watch

16/09/2025 à 12:27

• 58


Free Mobile inclut un VPN gratuit, qui permet par hasard de contourner le blocage anti-porno

16/09/2025 à 12:08

• 60


Liquid Glass sur le web : c’est possible, mais c’est compliqué

16/09/2025 à 12:00

• 3


Astuce : récupérer les icônes dans les boîtes grises sur macOS Tahoe

16/09/2025 à 09:28

• 54


L'alimentation adaptative activée par défaut sur les iPhone 17

16/09/2025 à 09:06

• 20


Amazon annonce le retour des « Jours Flash Prime », les 7 et 8 octobre 2025

16/09/2025 à 08:13

• 14


iOS 26 : les six nouveautés pour vos AirPods

16/09/2025 à 06:38

• 23