SlideShare una empresa de Scribd logo
La magia de Flutter
Chema Molins Edgar González
@jmolins @efgpdev
¿Qué es Flutter?
Flutter.io: “Flutter is Google’s mobile app SDK for crafting high-quality native interfaces on iOS and
Android in record time. Flutter works with existing code..., and is free and open source*.”
Un SDK open-source multiplataforma creado por Google para
● construir
● aplicaciones nativas
● atractivas
● en tiempo récord
* Actualmente in Beta
1. Construir aplicaciones nativas
1. Construir
Construir aplicaciones móviles
Flutter no es solo un framework.
Es un SDK completo para construir UIs.
● Independiente de la plataforma: incluye el
runtime y el renderer
● Similar a los motores de juegos
● “Forward-looking”: nuevos sistemas, fuchsia
2. Aplicaciones nativas
¿Qué significa nativo para móvil?
● Plataformas OEM “Nativas” (iOS, Android)
● Widgets “Nativos” (React Native, Xamarin Native)
● Definición de Nativo:
An executable program coded in the machine language of the
hardware platform it is running in. A native application has been
compiled into the machine language of that CPU.
2. Aplicaciones nativas
Flutter es Nativo por definición!
● Compila a código máquina nativo (ARM)
○ Compilación AoT (Ahead of Time)
○ Las apps son nativas en cada sistema
○ No hay máquina virtual (JVM)
○ No hay bridge javascript
● Acelaración GPU, 60 fps
● Animaciones suaves sin “jank”
Único SDK reactivo que es nativo
Único SDK reactivo que es nativo
● Vistas reactivas, sin un bridge JavaScript
● Lleva Reactivo al siguiente nivel
○ Solo re-renderiza lo que ha cambiado
○ El scrolling se ha implementado usando layout
● Streams incluidos (+ extensiones opcionales Rx)
○ Simplifica el código, evita condiciones de carrera.
● Hot-reload stateful
Flutter lleva la plataforma a la aplicación
Similar a motores de juegos, como Unity
Los motores de juegos incluyen su renderizador y todo lo
que renderizan (widgets)
Flutter es básicamente un motor pero para aplicaciones
en vez de juegos
What’s Revolutionary about Flutter
3. En tiempo récord
En tiempo récord
● Hot-reload stateful
○ Gracias al compilador JIT
● Prototipado rápido
● Herramientas y
documentación
excepcionales
Hot Reload
Se inyectan los ficheros fuente modificados en la MV Dart en ejecución
Stateful: El estado de la app se mantiene después de la recarga.
Iterar rápidamente en una pantalla profunda de la aplicación.
Hot-reload no es única parte de la historia
Compatibilidad
Testing & QA
Mantenimiento
Material funcionando en Android Jelly Bean
¿Cómo es posible?
Flutter renderiza directamente
en el canvas de la plataforma
Las librerías de compatibilidad no son necesarias.
Diferentes versiones de OS no “rompen” la app.
Las nuevas funcionalidades funcionan en móviles
antiguos
Widget Inspector
Analizar el árbol de widgets.
Diagnosticar errores de layout
- Sistema de tipos sólido
- Tree Shaking
- Rico conjunto de librerías
- GC Multi-generacional sin bloqueo
- Why Flutter uses Dart
Superpotenciado por Dart
2. Aplicaciones “atractivas”
Widgets bonitos y rápidos
Experiencias de usuario atractivas
Disponibilidad de un conjunto de widgets Material y Cupertino (iOS) construidos
en el propio SDK de flutter.
● Bonitos
● Rápidos
● Personalizables y extensibles
Capacidad de realizar diseños de marca sin las limitaciones de los widgets de
plataforma.
Why Flutter doesn’t use OEM widgets
Personalizando y extendiendo los widgets
El sistema de widgets de Flutter se diseñó para que fuera fácilmente
personalizable
Composición: Los widgets se construyen con widgets más pequeños que puedes
reusar y combinar de maneras novedosas para hacer otro widget.
class RaisedButton extends StatelessWidget {
...
}
Todo es un Widget
Each layer
builds upon
the
previous
layer
Skia Dart Text
Foundation
Animation Painting
Rendering
Widgets
Material
Gestures
Engine
(C++)
Framework
(Dart)
Cupertino
Miscelánea
Usar “platform channels”
permite recibir llamadas
de métodos y devolver
resultados del/al
Sistema operativo
Platform Channels
Recursos adicionales
Blog: What’s Revolutionary about Flutter por Wm Leler: goo.gl/bZcFR9
Video: Flutter's Rendering Pipeline por Adam Barth: youtu.be/UUfXWzp0-DU
Video: The Mahogany Staircase por Ian Hickson: youtu.be/dkyY9WCGMi0
Y por supuesto: github.com/flutter & flutter.io
Gracias
Chema Molins Edgar González
@jmolins @efgpdev

Más contenido relacionado

La actualidad más candente

Java
JavaJava
ANdroid studio
ANdroid studioANdroid studio
ANdroid studio
arrietajp
 
Android studio
Android studioAndroid studio
Android studio
NEFRE MASHINGASH ALVAN
 
Android studio - Carlos Piñan
Android studio - Carlos PiñanAndroid studio - Carlos Piñan
Android studio - Carlos Piñan
Quickdev
 
Android studio
Android studioAndroid studio
Android studio
Efrein Puwanch Chumpi
 
GWT - EL ESCRITORIO EN LA WEB
GWT - EL ESCRITORIO EN LA WEBGWT - EL ESCRITORIO EN LA WEB
GWT - EL ESCRITORIO EN LA WEB
VLASLOV
 
ANDROID STUDIO-VICTOR
ANDROID STUDIO-VICTORANDROID STUDIO-VICTOR
ANDROID STUDIO-VICTOR
manuelconstantinoestela
 
Android studio
Android studioAndroid studio
Android Studio - Ventajas y desventajas
Android Studio - Ventajas y desventajasAndroid Studio - Ventajas y desventajas
Android Studio - Ventajas y desventajas
Jorge Martín Espinosa
 
Netbeans Ide ENFEES
Netbeans Ide ENFEESNetbeans Ide ENFEES
Netbeans Ide ENFEES
Enrique Ferrando
 
Presentacion eclipse - grupo 6
Presentacion   eclipse - grupo 6Presentacion   eclipse - grupo 6
Presentacion eclipse - grupo 6
Maga Lasic
 
Android studio
Android studioAndroid studio
Android studio
Android studioAndroid studio
Desarrollo de apps híbridas HTML5 con intel XDK
Desarrollo de apps híbridas HTML5 con intel XDKDesarrollo de apps híbridas HTML5 con intel XDK
Desarrollo de apps híbridas HTML5 con intel XDK
Software Guru
 
Proyecto 1
Proyecto 1Proyecto 1
Proyecto 1
Eduardo Fermin
 
Android studio
Android studioAndroid studio
Android studio
Android studioAndroid studio
Android studio
Gómez Albino
 
App inventor
App inventorApp inventor
App inventor
Eddy Lopez
 

La actualidad más candente (18)

Java
JavaJava
Java
 
ANdroid studio
ANdroid studioANdroid studio
ANdroid studio
 
Android studio
Android studioAndroid studio
Android studio
 
Android studio - Carlos Piñan
Android studio - Carlos PiñanAndroid studio - Carlos Piñan
Android studio - Carlos Piñan
 
Android studio
Android studioAndroid studio
Android studio
 
GWT - EL ESCRITORIO EN LA WEB
GWT - EL ESCRITORIO EN LA WEBGWT - EL ESCRITORIO EN LA WEB
GWT - EL ESCRITORIO EN LA WEB
 
ANDROID STUDIO-VICTOR
ANDROID STUDIO-VICTORANDROID STUDIO-VICTOR
ANDROID STUDIO-VICTOR
 
Android studio
Android studioAndroid studio
Android studio
 
Android Studio - Ventajas y desventajas
Android Studio - Ventajas y desventajasAndroid Studio - Ventajas y desventajas
Android Studio - Ventajas y desventajas
 
Netbeans Ide ENFEES
Netbeans Ide ENFEESNetbeans Ide ENFEES
Netbeans Ide ENFEES
 
Presentacion eclipse - grupo 6
Presentacion   eclipse - grupo 6Presentacion   eclipse - grupo 6
Presentacion eclipse - grupo 6
 
Android studio
Android studioAndroid studio
Android studio
 
Android studio
Android studioAndroid studio
Android studio
 
Desarrollo de apps híbridas HTML5 con intel XDK
Desarrollo de apps híbridas HTML5 con intel XDKDesarrollo de apps híbridas HTML5 con intel XDK
Desarrollo de apps híbridas HTML5 con intel XDK
 
Proyecto 1
Proyecto 1Proyecto 1
Proyecto 1
 
Android studio
Android studioAndroid studio
Android studio
 
Android studio
Android studioAndroid studio
Android studio
 
App inventor
App inventorApp inventor
App inventor
 

Similar a La magia de Flutter

DAM-S4.pptx
DAM-S4.pptxDAM-S4.pptx
Andrid studio
Andrid studioAndrid studio
Andrid studio
jorgerodriguezsaavedra
 
Winulator grupo6
Winulator grupo6Winulator grupo6
Winulator grupo6
Daniel Flores
 
Desarrollo de apps multiplataforma Movil
Desarrollo de apps multiplataforma MovilDesarrollo de apps multiplataforma Movil
Desarrollo de apps multiplataforma Movil
Ing Erick Guardado
 
Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? ...
Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? ...Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? ...
Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? ...
Software Guru
 
Curso Iniciacion android
Curso Iniciacion androidCurso Iniciacion android
Curso Iniciacion android
Zix Stdio
 
App inventor
App inventorApp inventor
App inventor
Mariaelena Moscoso
 
introducción a flutter
introducción a flutterintroducción a flutter
introducción a flutter
Victor Alfonso Rodas Oña
 
Presentación PhoneGap
Presentación PhoneGap Presentación PhoneGap
Presentación PhoneGap
cccori
 
Consideraciones al escoger apps híbridas vs nativas
Consideraciones al escoger apps híbridas vs nativasConsideraciones al escoger apps híbridas vs nativas
Consideraciones al escoger apps híbridas vs nativas
Software Guru
 
App inventor
App inventorApp inventor
App inventor
Ricardo Crespo
 
02 5 o8a-10231485-2-7t
02 5 o8a-10231485-2-7t02 5 o8a-10231485-2-7t
02 5 o8a-10231485-2-7t
Gabo Mizhel
 
Share point y los dispositivos moviles
Share point y los dispositivos movilesShare point y los dispositivos moviles
Share point y los dispositivos moviles
Adrian Diaz Cervera
 
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
Luis Beltran
 
Android
AndroidAndroid
Android
Ingridpena
 
Android
AndroidAndroid
Android
Ingridpena
 
Una Mirada a Ionic framework.
Una Mirada a Ionic framework.Una Mirada a Ionic framework.
Una Mirada a Ionic framework.
Luis Toscano
 
Presentacion para la Flagship Store de Telefónica
Presentacion para la Flagship Store de TelefónicaPresentacion para la Flagship Store de Telefónica
Presentacion para la Flagship Store de Telefónica
Javier Tellez Dones
 
Apps Days Firefox OS
Apps Days Firefox OSApps Days Firefox OS
Apps Days Firefox OS
Pablo Sepulveda P.
 
App inventor
App inventorApp inventor
App inventor
nilton crispin pari
 

Similar a La magia de Flutter (20)

DAM-S4.pptx
DAM-S4.pptxDAM-S4.pptx
DAM-S4.pptx
 
Andrid studio
Andrid studioAndrid studio
Andrid studio
 
Winulator grupo6
Winulator grupo6Winulator grupo6
Winulator grupo6
 
Desarrollo de apps multiplataforma Movil
Desarrollo de apps multiplataforma MovilDesarrollo de apps multiplataforma Movil
Desarrollo de apps multiplataforma Movil
 
Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? ...
Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? ...Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? ...
Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? ...
 
Curso Iniciacion android
Curso Iniciacion androidCurso Iniciacion android
Curso Iniciacion android
 
App inventor
App inventorApp inventor
App inventor
 
introducción a flutter
introducción a flutterintroducción a flutter
introducción a flutter
 
Presentación PhoneGap
Presentación PhoneGap Presentación PhoneGap
Presentación PhoneGap
 
Consideraciones al escoger apps híbridas vs nativas
Consideraciones al escoger apps híbridas vs nativasConsideraciones al escoger apps híbridas vs nativas
Consideraciones al escoger apps híbridas vs nativas
 
App inventor
App inventorApp inventor
App inventor
 
02 5 o8a-10231485-2-7t
02 5 o8a-10231485-2-7t02 5 o8a-10231485-2-7t
02 5 o8a-10231485-2-7t
 
Share point y los dispositivos moviles
Share point y los dispositivos movilesShare point y los dispositivos moviles
Share point y los dispositivos moviles
 
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
 
Android
AndroidAndroid
Android
 
Android
AndroidAndroid
Android
 
Una Mirada a Ionic framework.
Una Mirada a Ionic framework.Una Mirada a Ionic framework.
Una Mirada a Ionic framework.
 
Presentacion para la Flagship Store de Telefónica
Presentacion para la Flagship Store de TelefónicaPresentacion para la Flagship Store de Telefónica
Presentacion para la Flagship Store de Telefónica
 
Apps Days Firefox OS
Apps Days Firefox OSApps Days Firefox OS
Apps Days Firefox OS
 
App inventor
App inventorApp inventor
App inventor
 

Último

primer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporteprimer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporte
eliersin13
 
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
Maria Celeste Trujillo Cruz
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 
Buscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - BuscafiestaBuscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - Buscafiesta
holabuscafiesta
 
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
dayronfabricioruizmo
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcelherramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
Eduardo455921
 
Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
PaulDelgadoSoto
 

Último (8)

primer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporteprimer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporte
 
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 
Buscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - BuscafiestaBuscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - Buscafiesta
 
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcelherramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
 
Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
 

La magia de Flutter

  • 1. La magia de Flutter Chema Molins Edgar González @jmolins @efgpdev
  • 2. ¿Qué es Flutter? Flutter.io: “Flutter is Google’s mobile app SDK for crafting high-quality native interfaces on iOS and Android in record time. Flutter works with existing code..., and is free and open source*.” Un SDK open-source multiplataforma creado por Google para ● construir ● aplicaciones nativas ● atractivas ● en tiempo récord * Actualmente in Beta
  • 4. 1. Construir Construir aplicaciones móviles Flutter no es solo un framework. Es un SDK completo para construir UIs. ● Independiente de la plataforma: incluye el runtime y el renderer ● Similar a los motores de juegos ● “Forward-looking”: nuevos sistemas, fuchsia
  • 5. 2. Aplicaciones nativas ¿Qué significa nativo para móvil? ● Plataformas OEM “Nativas” (iOS, Android) ● Widgets “Nativos” (React Native, Xamarin Native) ● Definición de Nativo: An executable program coded in the machine language of the hardware platform it is running in. A native application has been compiled into the machine language of that CPU.
  • 6. 2. Aplicaciones nativas Flutter es Nativo por definición! ● Compila a código máquina nativo (ARM) ○ Compilación AoT (Ahead of Time) ○ Las apps son nativas en cada sistema ○ No hay máquina virtual (JVM) ○ No hay bridge javascript ● Acelaración GPU, 60 fps ● Animaciones suaves sin “jank”
  • 7. Único SDK reactivo que es nativo
  • 8.
  • 9.
  • 10.
  • 11. Único SDK reactivo que es nativo ● Vistas reactivas, sin un bridge JavaScript ● Lleva Reactivo al siguiente nivel ○ Solo re-renderiza lo que ha cambiado ○ El scrolling se ha implementado usando layout ● Streams incluidos (+ extensiones opcionales Rx) ○ Simplifica el código, evita condiciones de carrera. ● Hot-reload stateful
  • 12. Flutter lleva la plataforma a la aplicación
  • 13. Similar a motores de juegos, como Unity Los motores de juegos incluyen su renderizador y todo lo que renderizan (widgets) Flutter es básicamente un motor pero para aplicaciones en vez de juegos What’s Revolutionary about Flutter
  • 14. 3. En tiempo récord
  • 15. En tiempo récord ● Hot-reload stateful ○ Gracias al compilador JIT ● Prototipado rápido ● Herramientas y documentación excepcionales
  • 16. Hot Reload Se inyectan los ficheros fuente modificados en la MV Dart en ejecución Stateful: El estado de la app se mantiene después de la recarga. Iterar rápidamente en una pantalla profunda de la aplicación.
  • 17. Hot-reload no es única parte de la historia Compatibilidad Testing & QA Mantenimiento Material funcionando en Android Jelly Bean
  • 18. ¿Cómo es posible? Flutter renderiza directamente en el canvas de la plataforma Las librerías de compatibilidad no son necesarias. Diferentes versiones de OS no “rompen” la app. Las nuevas funcionalidades funcionan en móviles antiguos
  • 19. Widget Inspector Analizar el árbol de widgets. Diagnosticar errores de layout
  • 20. - Sistema de tipos sólido - Tree Shaking - Rico conjunto de librerías - GC Multi-generacional sin bloqueo - Why Flutter uses Dart Superpotenciado por Dart
  • 22. Widgets bonitos y rápidos
  • 23. Experiencias de usuario atractivas Disponibilidad de un conjunto de widgets Material y Cupertino (iOS) construidos en el propio SDK de flutter. ● Bonitos ● Rápidos ● Personalizables y extensibles Capacidad de realizar diseños de marca sin las limitaciones de los widgets de plataforma. Why Flutter doesn’t use OEM widgets
  • 24. Personalizando y extendiendo los widgets El sistema de widgets de Flutter se diseñó para que fuera fácilmente personalizable Composición: Los widgets se construyen con widgets más pequeños que puedes reusar y combinar de maneras novedosas para hacer otro widget. class RaisedButton extends StatelessWidget { ... }
  • 25. Todo es un Widget
  • 26. Each layer builds upon the previous layer Skia Dart Text Foundation Animation Painting Rendering Widgets Material Gestures Engine (C++) Framework (Dart) Cupertino
  • 28. Usar “platform channels” permite recibir llamadas de métodos y devolver resultados del/al Sistema operativo Platform Channels
  • 29. Recursos adicionales Blog: What’s Revolutionary about Flutter por Wm Leler: goo.gl/bZcFR9 Video: Flutter's Rendering Pipeline por Adam Barth: youtu.be/UUfXWzp0-DU Video: The Mahogany Staircase por Ian Hickson: youtu.be/dkyY9WCGMi0 Y por supuesto: github.com/flutter & flutter.io
  • 30. Gracias Chema Molins Edgar González @jmolins @efgpdev