Sobes.tech
Middle

Quelles sont les couches architecturales de Flutter?

sobes.tech IA

Réponse de l'IA

Flutter est divisé en les couches architecturales suivantes :

  1. Embedder : Responsable de l'interaction avec le système d'exploitation. Fournit une entrée spécifique à la plateforme pour le rendu de surface, l'accès aux services d'accessibilité, l'entrée utilisateur et la gestion du cycle de vie. L'Embedder est écrit dans un langage adapté à la plateforme spécifique (Java pour Android, Objective-C/Swift pour iOS, C++ pour Windows/Linux/macOS).
  2. Engine : Cœur du framework. Implémenté principalement en C/C++. Fournit des fonctionnalités de bas niveau : Skia (bibliothèque graphique 2D), Text (bibliothèque pour travailler avec du texte), IO (entrée/sortie), Dart Runtime, Flutter Engine (planification des tâches, gestion du rendu, composition).
  3. Framework : Écrit en Dart. C'est l'API Dart avec laquelle les développeurs Flutter interagissent directement. Composé de plusieurs niveaux :
    • Foundation : Classes de base et utilitaires.
    • Widgets : La base de l'UI dans Flutter. Les widgets décrivent la configuration des éléments de l'interface.
    • Rendering : Abstractions pour le rendu, fournissant des objets de bas niveau pour construire des arbres de rendu.
    • Painting, Gestures, Animation, etc. : Niveaux fournissant des fonctionnalités pour le dessin, la gestion des gestes, les animations, etc.
    • Material/Cupertino Libraries : Ensembles de widgets implémentant les systèmes de conception Material Design et iOS Cupertino.

Voici une représentation simplifiée de la hiérarchie :

[Votre code d'application (Widgets Dart)]
        |
    [Framework (Dart)]
        |
    [Engine (C/C++)]
      /        \
[Embedder]    [Skia]
   |            |
[Système d'exploitation]

L'Embedder lance l'Engine, qui fournit Dart Runtime et API. Le Framework, écrit en Dart, interagit avec l'Engine via l'API Dart. Votre code d'application utilise les widgets du Framework pour construire l'interface utilisateur. L'Engine, à son tour, utilise Skia pour rendre les éléments sur le Canvas, fourni par l'Embedder.