21 points par xguru 2025-03-11 | 3 commentaires | Partager sur WhatsApp
  • Une alternative à React Native plus rapide et plus fluide, créée par TikTok (ByteDance)
  • Lynx est une famille de technologies qui aide à générer une UI native à l’aide de technologies web
    • Une base de code unique permet de couvrir diverses plateformes, dont le mobile et le web
  • Fournit une programmation d’UI centrée sur les performances et un outillage basé sur Rust pour des applications de grande ampleur comme TikTok
    • Décision de le rendre open source afin de dépasser les limites du développement cross-platform existant

Fournir des applications natives à grande échelle et à haute vitesse

  • Pour les utilisateurs d’applications mobiles, une expérience non native entraîne une perception négative
    • Écran vide, retard d’animation de 0,1 seconde, UI incohérente, etc. font baisser la confiance
  • Construire une expérience identique tout en prenant en charge différentes plateformes reste un problème difficile
  • Lynx prend en charge plusieurs plateformes à partir d’une base de code unique, ce qui permet de réduire le temps et les coûts de développement
  • TikTok a introduit Lynx progressivement et a obtenu des résultats concluants
    • Lynx est utilisé sur diverses plateformes comme TikTok Studio, Shop et LIVE
    • Lynx a aussi été utilisé lors de grands événements (Disney100, Met Gala, etc.)

Inspirer la communauté web et stimuler sa croissance

  • La plateforme web a d’abord été conçue autour des documents, mais elle a progressivement évolué en plateforme de développement d’applications
  • PhoneGap (Cordova) et React Native sont des exemples pionniers reliant technologies web et UI native
  • Lynx conserve les points forts des technologies web tout en proposant un modèle optimisé pour le développement d’applications grâce à des contraintes et des extensions clairement définies
    • Conformité aux technologies web : prise en charge du markup et du CSS
    • Extensions et différenciation : application d’intentions de conception claires, différentes du web

Concevoir à partir du markup et du CSS

  • Lynx conserve la familiarité du mode de développement web
    • Prise en charge des animations CSS et des effets de transition
    • Prise en charge des sélecteurs CSS et des variables pour configurer les thèmes
    • Prise en charge d’effets visuels CSS modernes comme le clipping et le masking

Utilisation efficace du thread principal

  • Les scripts utilisateur sont traités en les répartissant entre deux runtimes
    • Runtime du thread principal : basé sur PrimJS (moteur JavaScript), pour le rendu initial de l’UI et le traitement des événements prioritaires
    • Runtime en arrière-plan : exécution du code utilisateur principal
  • Deux fonctions clés sont fournies
    1. Instant First-Frame Rendering (IFR) : rendu immédiat de la première frame → élimination des écrans vides
    2. Main-Thread Scripting (MTS) : traitement fluide des événements à haute priorité
  • Les UI basées sur Lynx offrent en moyenne des performances d’exécution 2 à 4 fois supérieures

Lynx devient open source

  • Lynx est développé par ByteDance et largement utilisé par TikTok
  • TikTok prévoit de soutenir l’open source de Lynx et de contribuer au renforcement de la technologie, à l’animation de la communauté et à la croissance de l’écosystème

Démocratiser les technologies cross-platform

  • Jusqu’à présent, le développement cross-platform était dominé par quelques acteurs majeurs
  • Lynx ne fournit pas une solution unique, mais une méta-infrastructure → elle permet diverses approches
  • ReactLynx : prise en charge d’une UI déclarative et d’une composition de composants dans le style de React sur la base de Lynx
  • Rspeedy (bundler basé sur Rust) est proposé → builds rapides et prise en charge de la federation de modules
  • Lynx ne dépend ni d’un framework spécifique ni d’un backend de rendu particulier
    • Inspiré par des projets comme Chromium, Flutter et React Native
    • Lynx peut fonctionner dans le navigateur → extension possible vers desktop, TV, IoT, etc.

Un nouveau départ

  • Lynx est déjà utilisé en production et est publié en version 3.x
  • Le processus de développement sera rendu public de manière transparente via l’open source
  • Des composants supplémentaires, des renderers graphiques et des frameworks seront publiés ultérieurement
  • L’objectif est de dépasser les limites du développement cross-platform en collaborant avec la communauté open source
  • Les retours et contributions de la communauté sont les bienvenus

3 commentaires

 
halfenif 2025-03-12

J’ai l’impression que l’usage du Lynx Explorer précompilé ne concerne probablement que la phase de développement. En pratique, je comprends qu’il faut fournir un certain effort pour construire le Lynx Explorer.

 
caniel 2025-03-11

Je m’intéresse beaucoup à React Native, donc celui-ci m’intrigue aussi.

 
xguru 2025-03-11

Le contenu ci-dessus est repris de la présentation officielle Lynx: Unlock Native for More.