Code Once, Pin Everywhere: Multiplatform Widgets for Android & iOS - Andrea Della Porta

Code Once, Pin Everywhere: Multiplatform Widgets for Android & iOS - Andrea Della Porta

Codez une fois, épinglez partout : widgets multiplateformes pour Android et iOS - Andrea Della Porta

🎙 Andrea Della Porta 👥 230K 📅 13 octobre 2026 ⏱ 50 min 👁 24 📄 opinion experte 🧭 2026-10-13
Disponible en : Français (actuel) English

Mots-clés

KMPWidgetGlanceWidgetKitPartage de code

Résumé

L’orateur, Andrea Della Porta, présente une architecture pour partager la logique des widgets d’écran d’accueil entre Android et iOS via Kotlin Multiplatform (KMP). Il commence par souligner le problème : un widget est petit mais sa mise en œuvre sur deux plateformes engendre une duplication considérable. Il propose de partager environ 90% de la logique (fetch, modèle de données, politique de mise à jour) tout en gardant la partie UI native (le rendu) séparée. Il explique la ligne de partage idéale : le code partagé gère la logique et l’UI native gère l’affichage. Il présente une démo avec l’app MatchPin, montrant un module Kotlin partagé qui alimente deux widgets natifs. Il aborde ensuite les défis concrets : les limites de rafraîchissement imposées par les systèmes (40 à 70 mises à jour par jour sur iOS, minimum 15 minutes sur Android), la contrainte mémoire des extensions iOS, et la nécessité d’utiliser des app groups pour partager des données. Il insiste sur le fait qu’un widget n’est pas une app, mais un instantané, et que l’on ne peut pas avoir de réactivité en temps réel. Il conclut sur une note pratique : il faut garder le widget natif et mince, et utiliser le code partagé pour la logique.

206 mots

Évaluation critique

Valeur des informations & solidité de l’argumentation

L’exposé apporte une valeur claire en présentant un cas réel de partage de code pour des widgets, avec une démonstration visible. L’argumentation est structurée : identification du problème de duplication, proposition de solution, démonstration pratique, puis analyse des limites. L’orateur fait preuve d’honnêteté en soulignant les difficultés et en citant des chiffres précis (budgets de rafraîchissement, limite mémoire). La démarche est pragmatique et l’architecture proposée (90% partagé, 10% natif) est bien justifiée par les contraintes techniques des plateformes.

Rigueur scientifique, qualité des sources, adéquation du titre

La qualité scientifique est bonne pour une conférence technique : l’orateur cite des exemples réels (John O’Reilly, Pat Widget, une app RSS) et donne des références aux documentations Apple et Android. Il mentionne également le plugin Sky. Cependant, les sources ne sont pas référencées par des liens dans la vidéo, mais le discours est étayé par des expériences concrètes. Le titre est bien adapté au contenu, même si la promesse « Codez une fois » est nuancée par les limites exposées. L’adéquation est donc bonne.

178 mots

Adéquation titre / contenu

Le titre résume bien le contenu : la promesse de coder une fois pour les widgets sur deux plateformes est clairement traitée.

Qualité & fiabilité

8/10

La vidéo présente une approche concrète avec du code réel, une démonstration et des références précises aux contraintes des plateformes. L'expertise de l'orateur en développement mobile et KMP est évidente. Cependant, il s'agit d'une opinion personnelle basée sur l'expérience, non d'une étude validée.

Moments clés

Sources citées

  • NDC Conferences — Site officiel des conférences NDC où le talk a été enregistré.
  • NDC Oslo — Page de la conférence NDC Oslo spécifique.

Apport & nouveautés

L’apport principal est de démontrer que le partage de logique de widgets entre Android et iOS est non seulement possible, mais efficace, en présentant une architecture concrète et une démonstration. L’orateur identifie précisément la ligne de partage entre logique partagée et UI native, et fournit des conseils pratiques pour gérer les limites des plateformes. Il déconstruit le mythe de la réactivité des widgets en expliquant leur nature de snapshot.

Pour aller plus loin :

  • Kotlin Multiplatform — Documentation officielle pour comprendre les bases de KMP.
  • Glance — Bibliothèque Android pour créer des widgets en Compose.
  • WidgetKit — Framework iOS pour les widgets d’écran d’accueil.
  • Sky (Touchlab) — Plugin KMP pour exposer les Flows en Swift async sequences.

117 mots

Profil radar

Le profil radar montre un niveau technique élevé (9/10), indiquant un contenu spécialisé. La fiabilité (8/10) et la qualité de l'information (8/10) sont bonnes, mais la quantité d'information (8/10) est moyenne. Cela reflète un exposé dense en détails techniques mais ciblé sur un sujet restreint.

Fiabilité 8/10