Articulo de referencia

Flutter (software)

Flutter es un kit de desarrollo de software de interfaz de usuario de código abierto creado por Google . Se puede utilizar para desarrollar aplicaciones multiplataforma a partir...

Flutter es un kit de desarrollo de software de interfaz de usuario de código abierto creado por Google . Se puede utilizar para desarrollar aplicaciones multiplataforma a partir de una única base de código para la web , [4] Fuchsia , Android , iOS , Linux , macOS y Windows . [5] Descrito por primera vez en 2015, [6] [7] Flutter se lanzó en mayo de 2017. Flutter es utilizado internamente por Google en aplicaciones como Google Pay [8] [9] y Google Earth [10] [11] así como por otros desarrolladores de software como ByteDance [12] [13] y Alibaba . [14] [15]

Flutter ofrece aplicaciones con su propio motor de renderizado que envía directamente los datos de píxeles a la pantalla. [16] [17] Esto contrasta con muchos otros marcos de interfaz de usuario que dependen de la plataforma de destino para proporcionar un motor de renderizado, como las aplicaciones nativas de Android que dependen del SDK de Android a nivel de dispositivo o React Native que utiliza dinámicamente la pila de interfaz de usuario integrada de la plataforma de destino. El control de Flutter de su canal de renderizado simplifica la compatibilidad con múltiples plataformas, ya que se puede utilizar un código de interfaz de usuario idéntico para todas las plataformas de destino. [17]

Arquitectura

El componente básico de un programa Flutter es un "widget", que a su vez puede constar de otros widgets. [18] Un widget describe la lógica, la interacción y el diseño de un elemento de la interfaz de usuario con una implementación similar a React . [18] A diferencia de otros kits de herramientas multiplataforma como React Native y Xamarin que dibujan widgets utilizando componentes nativos de la plataforma, Flutter renderiza los widgets por sí mismo en función de cada píxel. Flutter tiene dos tipos de widgets: sin estado y con estado . Los widgets sin estado solo se actualizan si sus entradas cambian, lo que significa que de lo contrario no necesitarán reconstruirse cuando otros elementos de la pantalla cambien, mientras que los widgets con estado pueden llamar al setState()método para actualizar un estado interno y volver a dibujar. [18] [19] Aunque los widgets son el método principal para construir aplicaciones Flutter, también se pueden omitir a favor de dibujar directamente en un lienzo. Esta característica se ha utilizado ocasionalmente para implementar motores de juegos en Flutter. [20]

El marco Flutter contiene dos conjuntos de widgets que se ajustan a lenguajes de diseño específicos: los widgets Material Design implementan el lenguaje de diseño de Google del mismo nombre, y los widgets Cupertino implementan las pautas de interfaz humana de iOS de Apple . [21] [22] Flutter permite al desarrollador usar cualquiera de los conjuntos de widgets en cualquiera de las plataformas. Los desarrolladores pueden usar widgets Cupertino en Android.

Las aplicaciones Flutter están escritas en el lenguaje Dart . Las versiones de lanzamiento de las aplicaciones Flutter en todas las plataformas utilizan la compilación anticipada (AOT) [23] excepto en la Web donde el código se transpila a JavaScript o WebAssembly. [24] [25] Flutter hereda el administrador de paquetes Pub y el repositorio de software de Dart , que permite a los usuarios publicar y usar paquetes personalizados, así como complementos específicos de Flutter. [26] La biblioteca Foundation, escrita en Dart , proporciona clases y funciones básicas que se utilizan para construir aplicaciones utilizando Flutter, como API para comunicarse con el motor. [22] [27]

El motor de Flutter, escrito principalmente en C++ , proporciona soporte de renderizado de bajo nivel utilizando la biblioteca de gráficos Skia de Google o la capa de gráficos personalizada "Impeller", que está habilitada de forma predeterminada en iOS y está en versión beta en Android. [28] [29] [30] El motor interactúa con SDK específicos de la plataforma, como los proporcionados por Android e iOS, para implementar funciones como accesibilidad, E/S de archivos y redes, compatibilidad con complementos nativos, etc. [22]

Historia

La primera versión de Flutter se conocía como "Sky" y se ejecutaba en el sistema operativo Android . [31] Se presentó en la cumbre de desarrolladores de Dart de 2015 con la intención declarada de poder renderizar de manera constante a 120 cuadros por segundo . [31] El 4 de diciembre de 2018, se lanzó Flutter 1.0 en la conferencia Flutter en Londres. [32]

El 6 de mayo de 2020, se lanzó la versión 2.8 del kit de desarrollo de software ( SDK ) de Dart y Flutter 1.17.0, agregando soporte para la API Metal . [33]

El 3 de marzo de 2021, Google lanzó Flutter 2 durante un evento en línea Flutter Engage. [8] [34] Agregó un renderizador basado en Canvas para la web además del renderizador basado en HTML y soporte de aplicaciones de escritorio de acceso temprano para Windows , macOS y Linux . [34] [8] También se envió con Dart 2.0 que incluía soporte para seguridad nula . [8] [35] La seguridad nula inicialmente era opcional ya que era un cambio importante y se hizo obligatoria en Dart 3 lanzado en 2023. [35] [36]

El 12 de mayo de 2022, se lanzaron Flutter 3 y Dart 2.17 con soporte para todas las plataformas de escritorio como estables. [37]

El 27 de octubre de 2024, varios desarrolladores de la comunidad de Flutter anunciaron Flock , una bifurcación de Flutter destinada a ser más fácil de contribuir y, al mismo tiempo, mantenerse sincronizada con todos los cambios realizados en la base de código ascendente. [38] [39]

Véase también

Referencias

  1. ^ Chris Bracken. "Versión v0.0.6: Rev versión de la rama alpha a 0.0.6, flutter 0.0.26 (#10010) · flutter/flutter". GitHub . Archivado desde el original el 2019-02-05 . Consultado el 2018-08-08 .
  2. ^ https://github.com/flutter/flutter/releases/tag/3.24.5. {{cite web}}: Falta o está vacío |title=( ayuda )
  3. ^ "Preguntas frecuentes sobre Flutter". Archivado desde el original el 23 de febrero de 2019. Consultado el 8 de agosto de 2018 .
  4. ^ Amadeo, Ron (27 de febrero de 2018). "Google comienza a impulsar el desarrollo de aplicaciones multiplataforma con Flutter SDK". Ars Technica . Archivado desde el original el 8 de octubre de 2021 . Consultado el 11 de junio de 2021 .
  5. ^ Amadeo, Ron (8 de mayo de 2017). «El sistema operativo para teléfonos inteligentes «Fuchsia» de Google deja de lado a Linux y presenta una nueva interfaz de usuario alocada». Ars Technica. Archivado desde el original el 26 de septiembre de 2019. Consultado el 18 de marzo de 2018 .
  6. ^ "Con Flutter, Google lleva Dart al desarrollo cruzado de aplicaciones móviles". InfoQ . Archivado desde el original el 28 de abril de 2022 . Consultado el 17 de marzo de 2022 .
  7. ^ "Google anuncia Flutter 1.0, la primera versión estable de su kit de herramientas de desarrollo móvil multiplataforma". Android Police . 2018-12-05. Archivado desde el original el 2022-05-25 . Consultado el 2022-03-17 .
  8. ^ abcd Claburn, Thomas (3 de marzo de 2021). "El framework de aplicaciones multiplataforma de Google, Flutter, llega a la versión 2 y se expande a la web". theregister.com .
  9. ^ "Google Pay se vuelve global con Flutter". Archivado desde el original el 2024-03-31 . Consultado el 2024-04-02 .
  10. ^ Schoon, Ben (26 de septiembre de 2023). "Google Earth obtiene una aplicación de Android rediseñada con soporte para Proyectos y elimina Voyager". 9to5google.com .
  11. ^ "Echa un vistazo al nuevo @googleearth para iOS, Android y la web con una interfaz de usuario creada con Flutter, todo desde una única base de código". Archivado desde el original el 2 de abril de 2024. Consultado el 2 de abril de 2024 .
  12. ^ Lardinois, Frederic (11 de mayo de 2022). "Flutter 3 de Google agrega soporte para aplicaciones de escritorio de macOS y Linux". TechCrunch . En el sector móvil, empresas como WeChat, ByteDance, Betterment, SHEIN y BMW ahora apuestan por Flutter, al igual que el propio Google.
  13. ^ "Aumento de la productividad en un 33 % en ByteDance con Flutter". Archivado desde el original el 2 de abril de 2024. Consultado el 2 de abril de 2024 .
  14. ^ Lardinois, Frederic (4 de diciembre de 2018). "El kit de herramientas de interfaz de usuario multiplataforma Flutter de Google llega a la versión 1.0". TechCrunch .
  15. ^ "Alibaba amplía el mercado de segunda mano más grande de China con Flutter". Archivado desde el original el 2024-03-30 . Consultado el 2024-04-02 .
  16. ^ "Descripción general de la arquitectura de Flutter". docs.flutter.dev . Consultado el 26 de julio de 2024 .
  17. ^ ab Claburn, Thomas (12 de noviembre de 2021). "Las aplicaciones creadas con Flutter de Google pueden desperdiciar ciclos de CPU. Esto es lo que el gigante de la web pretende hacer al respecto". theregister.com . Lo hace apoyándose en gran medida en Skia, un motor de renderizado de gráficos escrito en C/C++ que utiliza la CPU o GPU de un dispositivo para dibujar interfaces de aplicaciones por sí solo, sin depender de bibliotecas de interfaz de plataforma nativas.
  18. ^ abc Windmill, Eric; Rischpater, Ray (2020). Flutter en acción . Shelter Island, NY: Manning Publications Co. págs. 12, 16. ISBN 9781617296147.
  19. ^ "Introducción a los widgets". docs.flutter.dev . Archivado desde el original el 2022-10-06 . Consultado el 2022-10-06 .
  20. ^ "Flame". flame-engine.org . Archivado desde el original el 2022-09-27 . Consultado el 2022-10-06 .
  21. ^ Anderson, Tim (5 de agosto de 2020). "Google informa de un aumento del 80 % en el número de aplicaciones creadas con Flutter en Play Store con el lanzamiento de la versión 1.20". theregister.com . En general, el estilo de diseño sigue las pautas de Material Design de Google, lo que lo hace particularmente adecuado para Android (como cabría esperar de Google), pero también hay compatibilidad con widgets de Cupertino para lograr una apariencia nativa de iOS.
  22. ^ abc "Descripción técnica de Flutter". flutter.dev . Archivado desde el original el 2020-06-16 . Consultado el 2017-12-13 .
  23. ^ stephenwzl (1 de agosto de 2018). "Patrones de compilación de Flutter". ProAndroidDev . Archivado desde el original el 9 de junio de 2020 . Consultado el 6 de diciembre de 2018 .
  24. ^ Lardinois, Frederic (25 de enero de 2023). "Flutter de Google muestra nuevas capacidades gráficas, compatibilidad con WebAssembly y RISC-V". TechCrunch .
  25. ^ Thomsen, Michael (14 de mayo de 2024). "Lanzamiento de Flutter 3.22 y Dart 3.4 en Google I/O 2024". Flutter . Consultado el 17 de mayo de 2024 .
  26. ^ "Uso de paquetes". docs.flutter.dev . Archivado desde el original el 2022-10-06 . Consultado el 2022-10-06 .
  27. ^ "biblioteca de base - API de Dart". docs.flutter.dev . Archivado desde el original el 2020-06-16 . Consultado el 2017-12-13 .
  28. ^ "Descripción general de la arquitectura de Flutter". docs.flutter.dev . Consultado el 26 de julio de 2024 .
  29. ^ "Motor de renderizado Impeller". docs.flutter.dev . Consultado el 17 de mayo de 2024 .
  30. ^ Bradshaw, Kyle (25 de enero de 2023). "Google lanza Flutter 3.7 y adelanta el futuro del marco de desarrollo de aplicaciones". 9to5google.com .
  31. ^ ab Amadeo, Ron (1 de mayo de 2015). «El lenguaje Dart de Google en Android apunta a aplicaciones sin Java y con 120 FPS». Ars Technica . Archivado desde el original el 6 de mayo de 2015. Consultado el 13 de diciembre de 2017 .
  32. ^ Amadeo, Ron (4 de diciembre de 2018). "Google une el desarrollo de Android y iOS con Flutter 1.0". Ars Technica .
  33. ^ Siddiqui, Aamir (6 de mayo de 2020). "Google lanza los SDK estables de Flutter 1.17 y Dart 2.8 para el desarrollo de aplicaciones". XDA . Flutter ahora usa Metal de manera predeterminada al compilar para dispositivos iOS compatibles, lo que hace que las aplicaciones de Flutter se ejecuten más rápido.
  34. ^ ab Lardinois, Frederic (3 de marzo de 2021). "La versión 2 del kit de herramientas Flutter de Google agrega compatibilidad con aplicaciones web y de escritorio". TechCrunch .
  35. ^ ab Wander, Zachary (3 de marzo de 2021). "Se lanzó Dart 2.12, con seguridad nula e interoperabilidad con C". XDA .
  36. ^ Claburn, Thomas (9 de diciembre de 2022). "El lenguaje Dart de Google pronto no aceptará el valor nulo como respuesta". theregister.com .
  37. ^ Claburn, Thomas (11 de mayo de 2022). "El marco de desarrollo de aplicaciones Flutter de Google ahora es estable en todas las plataformas". theregister.com .
  38. ^ Larabel, Michael (29 de octubre de 2024). "Google's Flutter UI Toolkit Forked As Flock" (El kit de herramientas de interfaz de usuario de Flutter de Google se bifurcó como Flock). phoronix.com . Consultado el 30 de octubre de 2024 .
  39. ^ Krill, Paul. "El framework Flutter de Google ha sido bifurcado". InfoWorld .
Retrieved from "https://en.wikipedia.org/w/index.php?title=Flutter_(software)&oldid=1259246096"