Middle
¿En qué capas arquitectónicas se divide Flutter?
sobes.tech AI
Respuesta de la IA
Flutter se divide en las siguientes capas arquitectónicas:
- Embedder: Encargado de interactuar con el sistema operativo. Proporciona una entrada específica de la plataforma para renderizar superficies, acceder a servicios de accesibilidad, entrada de usuario y gestión del ciclo de vida. El Embedder está escrito en un lenguaje adecuado para la plataforma específica (Java para Android, Objective-C/Swift para iOS, C++ para Windows/Linux/macOS).
- Engine: Núcleo del framework. Implementado principalmente en C/C++. Proporciona funcionalidades de bajo nivel: Skia (biblioteca gráfica 2D), Text (biblioteca para trabajar con texto), IO (entrada/salida), Dart Runtime, Flutter Engine (planificación de tareas, gestión del renderizado, composición).
- Framework: Escrito en Dart. Es la API de Dart con la que los desarrolladores de Flutter interactúan directamente. Consta de varios niveles:
- Foundation: Clases básicas y utilidades.
- Widgets: La base de la UI en Flutter. Los widgets describen la configuración de los elementos de la interfaz.
- Rendering: Abstracciones para el renderizado, que proporcionan objetos de bajo nivel para construir árboles de renderizado.
- Painting, Gestures, Animation, etc.: Niveles que proporcionan funcionalidades para dibujar, manejar gestos, animaciones, etc.
- Material/Cupertino Libraries: Conjuntos de widgets que implementan los sistemas de diseño Material Design y iOS Cupertino.
Aquí hay una representación simplificada de la jerarquía:
[Tu código de aplicación (Widgets Dart)]
|
[Framework (Dart)]
|
[Engine (C/C++)]
/ \
[Embedder] [Skia]
| |
[Sistema Operativo]
El Embedder inicia el Engine, que proporciona Dart Runtime y API. El Framework, escrito en Dart, interactúa con el Engine a través de la API de Dart. Tu código de aplicación usa los widgets del Framework para construir la interfaz de usuario. El Engine, a su vez, usa Skia para renderizar los elementos en el Canvas, proporcionado por el Embedder.