Configurar y habilitar el modo desktop en Windows, en el canal stable.
NOTA: En esta sección se asume que ya tienes instalado el SDK de flutter y corriendo para como mínimo móvil.
Para el desarrollo de escritorio en Windows, además del SDK de Flutter, necesitamos instalar:
Visual Studio 2019 (no confundirse con Visual Studio Code )
Fuente: https://developers.googleblog.com/2021/03/announcing-flutter-2.html
Nuestra próxima generación de Flutter, creada para web, dispositivos móviles y computadoras de escritorio.
Hoy, anunciamos Flutter 2: una importante actualización de Flutter que permite a los desarrolladores crear aplicaciones hermosas, rápidas y portátiles para cualquier plataforma. Con Flutter 2, puede usar la misma base de código para enviar aplicaciones nativas a cinco sistemas operativos: iOS, Android, Windows, macOS y Linux; así como experiencias web dirigidas a navegadores como Chrome, Firefox, Safari o Edge. Flutter incluso se puede integrar en automóviles, televisores y electrodomésticos inteligentes, proporcionando la experiencia más universal y portátil para un mundo de computación ambiental.
Nuestro objetivo es cambiar fundamentalmente la forma en que los desarrolladores piensan sobre la creación de aplicaciones, comenzando no con la plataforma a la que se dirige, sino con la experiencia que desea crear. Flutter te permite crear experiencias hermosas en las que tu marca y diseño pasan a primer plano. Flutter es rápido, compila su fuente en código de máquina, pero gracias a nuestro soporte para la recarga en caliente con estado, aún obtiene la productividad de los entornos interpretados, lo que le permite realizar cambios mientras su aplicación se está ejecutando y ver los resultados de inmediato. Y Flutter es abierto, con miles de colaboradores añadiendo al nucleo del framework y lo amplían con un ecosistema de paquetes.
Aprenda a codificar en Dart de una manera que cualquier otro desarrollador pueda entender
Este artículo es una traducción de un artículo publicado originalmente en inglés por Nihad Delic en Medium. Por favor, visita el siguiente enlace y recomienda el artículo original si te gusta el contenido:
Estoy escribiendo este artículo porque uno de mis colegas me pidió que le ayudara a terminar la integración de una API dentro de una aplicación, que según él estaba terminada en un 95% y el trabajo restante necesitaba dos días. Al principio, acordamos que le echaría un vistazo al código fuente y le haría saber si podría ayudar o no. Soy una de las “personas rojas” y mis decisiones son rápidas, precisas, sin pensar mucho y estaba bastante seguro de que le diría que SÍ. Después de 5 horas de buscar y planear cual es la mejor manera de implementarlo, mi respuesta fue NO. La razón principal para tomar esta (para mí difícil decisión) radica en esta cita:
No hace falta mucha habilidad para escribir un programa que un ordenador entienda.
La habilidad es escribir programas que los humanos entiendan.
—
Robert C. Martin
Creo que no es una exageración decir que la mayoría del contenido sobre Flutter es sobre manejo de estado, o state management si sos bilingüe. Siendo un framework reactivo para el lado del cliente, Flutter tiene integrado desde su nacimiento el concepto de estado. Pero si haces un proyecto complejo, setState no va a resolverte, por eso hay manejadores de estado.
La herramienta que ayuda al manejo de estado más popular de Flutter es Provider. No lo digo yo, lo dice la ciencia:
Ahora: Vamos aletear
Cerrá tus ojos un momento.
Estás en primer año de tu carrera de TI, la que sea, acá no se discrimina. Vas a tu primera clase de programación y tu profesor empieza a explicarte qué es un algoritmo y cómo existen en todas partes aunque no se noten a simple vista.
De pronto introduce esta palabra de “programación” y te menciona que existen varios tipos, estilos o como suena más intelectual: paradigmas. Te dice que van a aprender el paradigma estructurado, porque es tu primera clase. Escuchas que también menciona el paradigma orientado a objetos, y tranquilo/a, eso lo vas a ver un semestre más adelante.
Una vez finalizada la capa de dominio y todos los comportamientos generales de nuestro proyecto mediante abstracción, ya podemos empezar a usar todas esas interfaces que hicimos para crear sus implementaciones.
Y bueno, al fin cambiamos de capa. Esta vez le toca a la capa de datos, empezando por los modelos.
Ya sea que estés empezando o lleves unos años usando Flutter, hay un tema que siempre sale a relucir y tiene mil perspectivas girando a su alrededor: manejo de estado, o state management si sos bilingüe.
El manejo de estado es esencial en Flutter. Muchos lo confunden con arquitectura o creen que una arquitectura depende de un manejador de estado en específico. Pero la verdad es que el manejo de estado es una pequeña parte de la gran arquitectura que puede tener un proyecto.
En ocasiones anteriores ya he hablado bastante sobre este tema, así que mejor les dejo referencias a estas pláticas que he dado:
Ya les he hablado sobre todas las bondades y por qué deberían utilizar herramientas de generación de código en sus proyectos. Si no has visto mi artículo sobre FlutterGen, te lo dejo por acá.
Así que no les voy a dar una introducción a generar código, más bien vamos a conocer una herramienta muy buena para generarlo. Esta herramienta se llama Freezed.
Freezed viene a ser un generador de código para clases inmutables y fue creado por Rémi Rousselet, que tal vez lo conozcan más por su paquete Provider.
Este artículo es una traducción de una página de la documentación oficial de Dart publicado originalmente en inglés en Medium. Por favor, visita el siguiente enlace y recomienda el artículo original si te gusta el contenido:
Este artículo enumera los cambios y adiciones notables al lenguaje de programación Dart. Si deseas detalles sobre el lenguaje actualmente soportado, vea el tour del lenguaje o la especificación del lenguaje en la documentación oficial.
Para utilizar una característica del lenguaje que haya sido introducida después de la versión 2.0, especifique las restricciones del SDK que no sean inferiores a la versión en la que la característica fue soportada por primera vez. Por ejemplo, para utilizar los métodos de extensión, que se admiten desde la versión 2.7, el archivo pubspec.yamlpuede tener la versión 2.7.0 como restricción inferior:
environment:
sdk: ">=2.7.0 <3.0.0"