Ouvrir le menu principal

MacGeneration

Recherche

Les conseils du créateur de NetNewsWire pour développer une app rapide

Nicolas Furno

mardi 19 mai 2020 à 11:00 • 14

Logiciels

NetNewsWire est un client RSS pour macOS et iOS qui se distingue sur plusieurs points, mais notamment par sa rapidité. L’interface très simple et proche des standards de chaque plateforme évite au maximum les animations, ce qui donne une impression de vitesse à l’usage, mais l’app est aussi vraiment plus rapide que ses concurrentes dans toutes ses tâches. Brent Simmons, son principal développeur, explique sur son blog comment il a créé une app rapide.

N’espérez pas y trouver une solution facile, il n’y a pas de miracle : NetNewWire est une app rapide, parce que son créateur en a décidé ainsi dès le départ et parce qu’il a toujours fait très attention à ce point. Cela paraît évident, mais beaucoup de développeurs commencent par créer une app sans se soucier des performances ils ne s’intéressent à ce sujet que dans un deuxième temps.

NetNewsWire sur iPadOS.

Si vous suivez cette stratégie, votre app sera au mieux rapide qu’une partie du temps, quand vous avez le temps de vous pencher sur la question. Alors que Brent Simmons a décidé dès le départ que la performance sera au cœur de l’app, ce qui l’a obligé à prendre des décisions en respectant toujours ce critère. NetNewsWire a ainsi été rapide dès le premier jour et il devrait toujours le rester. En tout cas, tous les choix de développement sont liés à ce critère, ce qui n’est pas le cas de la majorité des apps.

L’article contient malgré tout quelques conseils pratiques utilisés pour NetNewsWire. Ils ne s’appliqueront pas forcément à votre app dans le détail, mais ils peuvent donner une idée des pistes à suivre pour placer la rapidité en tête des priorités. Par exemple, Brent Simmons a écrit son propre moteur pour lire le contenu des flux RSS, et il a utilisé pour cela une API de bas niveau, plus complexe et contraignante à mettre en place, mais qui offre des performances inégalées.

Autre exemple, NetNewsWire n’utilise pas CoreData pour stocker ses données, mais une base de données SQLite qui permet d’optimiser les requêtes ou encore d’avoir un système de cache très performant. Pour une app comme celle-ci, qui se résume en gros à extraire des informations depuis des flux RSS, les stocker dans une base de données et les afficher dans une interface, optimiser le stockage des données est un point essentiel.

L’autre point important concerne l’interface justement et Brent Simmons recommande de ne jamais utiliser les Stack Views et d’éviter d’utiliser Auto Layout dans les listes. Ces outils fournis par Apple simplifient le développement d’une app, mais ils ne sont pas aussi performants que des alternatives. C’est pourquoi les listes de flux RSS et d’articles dans NetNewsWire sont créées à la main, ce qui est plus fastidieux, mais c’est à ce prix que le défilement est aussi fluide.

Un extrait du code source de NetNewsWire affiché dans Xcode.

Les développeurs trouveront d’autres détails encore dans son article, mais on peut résumer l’esprit général en donnant deux points :

  • Penser aux performances dès le début et toujours garder cet objectif en tête ;
  • Mesurer continuellement les performances d’apps en utilisant les outils fournis par Apple et notamment Instruments, une app fournie avec Xcode qui peut servir à repérer les composants les plus lents d’une app.

NetNewsWire étant une app open-source codée en Swift, vous pouvez aussi consulter son code sur GitHub pour voir exactement comment ses développeurs ont réussi à créer une app rapide. Et si vous êtes juste un utilisateur, vous pouvez tester l’app en la téléchargeant gratuitement sur le site officiel pour les Mac ou sur l’App Store pour les iPhone et iPad.

illustration ulule

Plus que 0 heures pour commander notre livre

Précommandez-le dès maintenant et profitez-en pour découvrir nos nouveaux goodies, ou prolonger votre abonnement au Club iGen à tarif réduit.

Découvrez nos offres

Journée MacG du 18 avril : découvrez le programme et réservez votre place

17:30

• 3


Garmin Forerunner, Fenix, EPIX : quelle montre GPS choisir pour le sport ? 📍

12:19

• 0


Concours : un NAS QNAP TS-216G équipé de 1 disque WD Red Plus 4 To à gagner !

10:00

• 640


Intel booste Geekbench avec le BOT, les développeurs crient à la triche

08:00

• 15


Mac mini, Mac Studio : le bouton « Acheter » disparaît pour les grosses configurations

11/04/2026 à 19:24

• 30


Sécurité : Intego revoit sa gamme avec Intego ONE

11/04/2026 à 11:04

• 10


Notre livre des 50 ans d'Apple arrive chez vous ! Il n'est pas trop tard pour commander le vôtre !

11/04/2026 à 10:55

• 111


Jusqu’à 400 € de réduction sur les MacBook Pro M5 Pro

11/04/2026 à 09:00

• 15


MacBook Neo : à 599 $, est-ce le cauchemar tant annoncé des PC portables ?

11/04/2026 à 08:30

• 61


Seul au monde : l’iPhone ignore superbement la crise et dépasse Samsung

11/04/2026 à 08:21

• 61


Et si l’écran parfait existait ? Découvrez la série MA de BenQ et gagnez-le !

10/04/2026 à 23:35

• 0


La cour d’appel de Paris refuse de suspendre la condamnation d’Apple sur les clauses abusives des contrats iPhone

10/04/2026 à 22:15

• 14


Redonner vie à vos photos floues et anciennes sur Mac avec Aiarty Image Enhancer (-52 %, licence à vie avec mises à jour) 📍

10/04/2026 à 20:47

• 0


Tesla s'attaque au jailbreak qui permet d'obtenir la conduite autonome sans payer l'abonnement

10/04/2026 à 18:10

• 45


Test des AirPods Max 2 : le strict minimum pour seulement 579 €

10/04/2026 à 16:19

• 55


Forfait Free Max : quand l’illimité fâche les apôtres de la sobriété

10/04/2026 à 16:19

• 118