SlideShare una empresa de Scribd logo
Introducción a
Flutter
• Victor Alfonso Rodas Ona
• Fb.com/victordevcode
• victordevcode@gmail.com
@VictorRancesCode
• Flutter es el SDK de aplicaciones móviles de Google para crear
interfaces nativas de alta calidad en iOS y Android en un tiempo
récord.
• Sirve para crear fácilmente app móviles modernas, bonitas y de
alto desempeño Funciona para Android y iOS Es una herramienta
open-source, desarrollada por Google* Tiene más de 100
colaboraciones de la comunidad open source
• Actualmente se encuentra en Beta 3 Listo para producción.
Qué es Flutter?
• ¿Qué tipo de aplicaciones puedo construir con Flutter?
• Flutter está optimizado para aplicaciones móviles 2D que desean
ejecutarse tanto en Android como en iOS.
• Puede crear aplicaciones completas con Flutter, que incluyen
cámara, geolocalización, red, almacenamiento, SDK de terceros y
más.
• ¿Con qué tecnología está fabricado Flutter?
• Flutter está construido con C, C ++, Dart y Skia (un motor de
renderización 2D).
• Los programadores de Google y de otros lugares usan Dart para crear
aplicaciones de misión crítica de alta calidad para iOS, Android y la web. Con
características destinadas al desarrollo del lado del cliente, Dart es ideal para
aplicaciones móviles y web.
Flutter y Dart
• Productivo
• La sintaxis de Dart es clara y concisa, sus herramientas son simples pero poderosas. El
mecanografiado sano te ayuda a identificar los errores sutiles temprano. Dart tiene bibliotecas
centrales endurecidas por la batalla y un ecosistema de miles de paquetes.
• Rápido
• Dart ofrece la optimización de la compilación anticipada para obtener un alto rendimiento
predecible y un inicio rápido en dispositivos móviles y la web.
• Portátil
• Dart compila código ARM y x86, de modo que las aplicaciones móviles Dart pueden ejecutarse
nativamente en iOS, Android y más. Para aplicaciones web, Dart transpila a JavaScript.
Dart
• Accesible
• Dart es familiar para muchos desarrolladores existentes, gracias a su orientación y sintaxis de
objetos no sorprendente. Si ya conoce C ++, C # o Java, puede ser productivo con Dart en solo
unos días.
• Reactivo
• Dart es muy adecuado para la programación reactiva, con soporte para administrar objetos de
corta duración, como widgets UI, a través de la asignación rápida de objetos de Dart y el
recolector de basura generacional. Dart es compatible con la programación asincrónica a través
de características de lenguaje y API que usan objetos Future y Stream.
Dart
• Diseñadores que desean una experiencia de marca
convergente tanto en Android como en iOS
• Prototipadores que buscan alta fidelidad y una forma
rápida de construir prototipos interactivos.
• Programadores que pueden beneficiarse de las
herramientas de desarrollo, un lenguaje sencillo y una
rica librería de widgets. Flutter ayuda a ahorrar tiempo
de desarrollo para crear experiencias memorables.
¿Para quién es Flutter?
Analogía de HTML/CSS con Flutter
var container = new Container( // grey box
child: new Text(
"Lorem ipsum",
style: new TextStyle(
fontSize: 24.0
fontWeight: FontWeight.w900,
fontFamily: "Georgia",
),
),
width: 320.0,
height: 240.0,
color: Colors.grey[300],
);
<div class="greybox">
Lorem ipsum
</div>
.greybox {
background-color: #e0e0e0; /* grey 300 */
width: 320px;
height: 240px;
font: 900 24px Georgia;
}
$ flutter doctor
Revisa el entorno y muestra un reporte en la ventana de la terminal
$ flutter upgrade
Actualiza tanto el SDK de Flutter así como los otros paquetes
pubspec.yaml
name: flutter_project
description: An amazing Flutter project using Firebase Auth
dependencies:
flutter:
sdk: flutter
firebase_auth: "^0.2.5"
pubspec.yaml
name: flutter_project
description: An amazing Flutter project using Firebase Auth
dependencies:
flutter:
sdk: flutter
firebase_auth: ">=0.1.2 <0.2.6"
$ flutter packages get
Revisa el entorno y muestra un reporte en la ventana de la terminal
$ flutter packages upgrade
Buscará la versión más reciente disponible del paquete
$ flutter format
Automáticamente formatea tu código de acuerdo al estilo de Flutter
$ flutter analyze
Analiza tu código y te ayuda a encontrar errores
Inserta código actualizado dentro
de la máquina virtual de Dart
que se está ejecutando
Stateful: El estado de la app se
mantiene después de la
actualización. Sirve para iterar
con rapidez en una pantalla que
se encuentra en un nivel de
navegación profundo dentro de tu
app
Hot Reload
Widgets que se ven bien y funcionan bien
• El equipo analizó aplicaciones populares y notó muchos widgets
personalizados. Así que Flutter está diseñado para permitir eso.
Todo es un Widget
new Center(
child: new Text('Texto Centrado', style: textStyle),
)
Estilos locales: Cada widget define su propio estilo. No hay
necesidad de decirle al widget padre que sus hijos se supone
que deben ir centrados.
Adiós, sistema de
posicionamiento global
El sistema de Widget de Flutter fue diseñado para ser
fácilmente personalizable.
Composición: Los widgets se construyen sobre widgets más
pequeños que se pueden reutilizar y combinar para hacer
widgets personalizados.
class RaisedButton extends StatelessWidget {
...
}
Personalizando y extendiendo
Widgets
Arquitectura
Skia Dart Text
Base
Animación Pintado
Renderizado
Widgets
Material
Gestos
Engine
(C++)
Framework
(Dart)
Cupertino
Skia es el mismo motor de gráficos que usa Android. Este está
construido directamente desde la fuente, compilado cada vez
que construyes Flutter El motor de texto es de Blink, el motor
de renderizado de Chromium.
Al utilizar canales de
plataforma podemos recibir
y enviar resultados.
Ejemplo: Obtener el estado de la batería*
class MainActivity() : FlutterActivity() {
private val CHANNEL = "samples.flutter.io/battery"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
GeneratedPluginRegistrant.registerWith(this)
MethodChannel(flutterView, CHANNEL).setMethodCallHandler { call, result ->
// TODO
}
}
}
* Example written in Kotlin for Android
Trabajando con el argumento de la respuesta*
MethodChannel(flutterView, CHANNEL).setMethodCallHandler { call, result ->
if (call.method == "getBatteryLevel") {
val batteryLevel = getBatteryLevel()
if (batteryLevel != -1) {
result.success(batteryLevel)
} else {
result.error("UNAVAILABLE", "Battery level not available.", null)
}
} else {
result.notImplemented()
}
}
* Example written in Kotlin for Android
Invocación desde Flutter de los métodos de plataforma
String _batteryLevel = 'Unknown battery level.';
Future<Null> _getBatteryLevel() async {
String batteryLevel;
try {
final int result = await platform.invokeMethod('getBatteryLevel');
batteryLevel = 'Battery level at $result % .';
} on PlatformException catch (e) {
batteryLevel = "Failed to get battery level: '${e.message}'.";
}
setState(() {
_batteryLevel = batteryLevel;
});
}
“Al correr a 60 fps, las interfases de usuario creadas con
Flutter tienen un mejor desempeño que las que fueron
creadas en otros frameworks de desarrollo
multiplataforma.”
code.tutsplus.com/tutorials/developing-an-android-app-with-flutter--cms-28270
“Programar con Dart y Flutter me ayudó a disfrutar de
nuevo lo que hacía cuando comencé a desarrollar para
móviles hace unos años..., sin $%&@”
traversoft.com/blog/2017/08/08/conference-app-flutter
"La UI es fluida y elegante (al compilar una versión de
producción), nunca había visto una app para Android tan
fluida"
Pascal Welsch, ponente en Droidcon Berlin
Recursos y Ejemplos
• Proyecto App Esperanza
• https://github.com/VictorRancesCode/Esperanza
• Proyecto Ebay Search
• https://github.com/VictorRancesCode/flutter-ebay-search
• Proyecto Lib. Json to Form
• https://github.com/VictorRancesCode/json_to_form
• Proyecto Lib. Flutter Dialogflow
• https://github.com/VictorRancesCode/flutter_dialogflow
• Awesome Flutter
• https://github.com/Solido/awesome-flutter
• Blog: What’s Revolutionary about Flutter por Wm Leler
• https://hackernoon.com/whats-revolutionary-about-flutter-946915b09514
• Flutter
• https://github.com/flutter
• https://flutter.io/
Gracias Hasta la Próxima

Más contenido relacionado

La actualidad más candente

Flutter introduction
Flutter introductionFlutter introduction
Flutter introduction
SheilaJimenezMorejon
 
Flutter for web
Flutter for webFlutter for web
Flutter for web
rihannakedy
 
Flutter state management from zero to hero
Flutter state management from zero to heroFlutter state management from zero to hero
Flutter state management from zero to hero
Ahmed Abu Eldahab
 
Flutter Festival - Intro Session
Flutter Festival - Intro SessionFlutter Festival - Intro Session
Flutter Festival - Intro Session
Google Developer Students Club NIT Silchar
 
Introduction to Flutter.pptx
Introduction to Flutter.pptxIntroduction to Flutter.pptx
Introduction to Flutter.pptx
DiffouoFopaEsdras
 
Mobile development with Flutter
Mobile development with FlutterMobile development with Flutter
Mobile development with Flutter
Awok
 
Flutter workshop
Flutter workshopFlutter workshop
Flutter workshop
Narayan Vyas
 
1.is.el software y la ingeniería del software
1.is.el software y la ingeniería del software1.is.el software y la ingeniería del software
1.is.el software y la ingeniería del software
Ramiro Estigarribia Canese
 
introduction to flutter ppt - free download
introduction to flutter ppt - free downloadintroduction to flutter ppt - free download
introduction to flutter ppt - free download
RajatPalankar2
 
Flutter
FlutterFlutter
Flutter
Dave Chao
 
Mapa conceptual de sistemas operativos de la computadora
Mapa conceptual de sistemas operativos de la computadoraMapa conceptual de sistemas operativos de la computadora
Mapa conceptual de sistemas operativos de la computadoracrissssssssss15
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativo
edwin quiroa
 
Sistema Operativo - Fedora
Sistema Operativo - FedoraSistema Operativo - Fedora
Sistema Operativo - Fedora
Adriana Zzayetsi
 
Kotlin Basics & Introduction to Jetpack Compose.pptx
Kotlin Basics & Introduction to Jetpack Compose.pptxKotlin Basics & Introduction to Jetpack Compose.pptx
Kotlin Basics & Introduction to Jetpack Compose.pptx
takshilkunadia
 
Developer Student Clubs NUK - Flutter for Beginners
Developer Student Clubs NUK - Flutter for BeginnersDeveloper Student Clubs NUK - Flutter for Beginners
Developer Student Clubs NUK - Flutter for Beginners
Jiaxuan Lin
 
Getting started with flutter
Getting started with flutterGetting started with flutter
Getting started with flutter
rihannakedy
 
Flutter beyond hello world
Flutter beyond hello worldFlutter beyond hello world
Flutter beyond hello world
Ahmed Abu Eldahab
 
Almacenar Datos En Firebase con AndroidStudio
Almacenar Datos En Firebase con AndroidStudioAlmacenar Datos En Firebase con AndroidStudio
Almacenar Datos En Firebase con AndroidStudio
ANGELLEON93
 
INTRODUCCION AL LA PROGRAMACION WEB.ppt
INTRODUCCION AL LA PROGRAMACION WEB.pptINTRODUCCION AL LA PROGRAMACION WEB.ppt
INTRODUCCION AL LA PROGRAMACION WEB.ppt
TIRZOANTONIOMEDINACA
 

La actualidad más candente (20)

Flutter introduction
Flutter introductionFlutter introduction
Flutter introduction
 
Flutter for web
Flutter for webFlutter for web
Flutter for web
 
Flutter state management from zero to hero
Flutter state management from zero to heroFlutter state management from zero to hero
Flutter state management from zero to hero
 
Flutter Festival - Intro Session
Flutter Festival - Intro SessionFlutter Festival - Intro Session
Flutter Festival - Intro Session
 
Introduction to Flutter.pptx
Introduction to Flutter.pptxIntroduction to Flutter.pptx
Introduction to Flutter.pptx
 
Mobile development with Flutter
Mobile development with FlutterMobile development with Flutter
Mobile development with Flutter
 
Flutter workshop
Flutter workshopFlutter workshop
Flutter workshop
 
PHP
PHPPHP
PHP
 
1.is.el software y la ingeniería del software
1.is.el software y la ingeniería del software1.is.el software y la ingeniería del software
1.is.el software y la ingeniería del software
 
introduction to flutter ppt - free download
introduction to flutter ppt - free downloadintroduction to flutter ppt - free download
introduction to flutter ppt - free download
 
Flutter
FlutterFlutter
Flutter
 
Mapa conceptual de sistemas operativos de la computadora
Mapa conceptual de sistemas operativos de la computadoraMapa conceptual de sistemas operativos de la computadora
Mapa conceptual de sistemas operativos de la computadora
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativo
 
Sistema Operativo - Fedora
Sistema Operativo - FedoraSistema Operativo - Fedora
Sistema Operativo - Fedora
 
Kotlin Basics & Introduction to Jetpack Compose.pptx
Kotlin Basics & Introduction to Jetpack Compose.pptxKotlin Basics & Introduction to Jetpack Compose.pptx
Kotlin Basics & Introduction to Jetpack Compose.pptx
 
Developer Student Clubs NUK - Flutter for Beginners
Developer Student Clubs NUK - Flutter for BeginnersDeveloper Student Clubs NUK - Flutter for Beginners
Developer Student Clubs NUK - Flutter for Beginners
 
Getting started with flutter
Getting started with flutterGetting started with flutter
Getting started with flutter
 
Flutter beyond hello world
Flutter beyond hello worldFlutter beyond hello world
Flutter beyond hello world
 
Almacenar Datos En Firebase con AndroidStudio
Almacenar Datos En Firebase con AndroidStudioAlmacenar Datos En Firebase con AndroidStudio
Almacenar Datos En Firebase con AndroidStudio
 
INTRODUCCION AL LA PROGRAMACION WEB.ppt
INTRODUCCION AL LA PROGRAMACION WEB.pptINTRODUCCION AL LA PROGRAMACION WEB.ppt
INTRODUCCION AL LA PROGRAMACION WEB.ppt
 

Similar a introducción a flutter

Introduccion android
Introduccion androidIntroduccion android
Introduccion android
Jose Luis Ayerdis Espinoza
 
1. flutter introduccion v2
1.  flutter introduccion v21.  flutter introduccion v2
1. flutter introduccion v2
Felipe Hernandez Palafox
 
DotNetDom: El futuro de Xamarin
DotNetDom: El futuro de XamarinDotNetDom: El futuro de Xamarin
DotNetDom: El futuro de Xamarin
Javier Suárez Ruiz
 
La magia de Flutter
La magia de FlutterLa magia de Flutter
La magia de Flutter
Mauricio Angulo Sillas
 
Lo que tienes que saber de Dart para Backend, frontend y Mobile..pptx
Lo que tienes que saber de Dart para Backend, frontend y Mobile..pptxLo que tienes que saber de Dart para Backend, frontend y Mobile..pptx
Lo que tienes que saber de Dart para Backend, frontend y Mobile..pptx
Sergio Antonio Ochoa Martinez
 
Desarrollo de aplicaciones android con Python
Desarrollo de aplicaciones android con PythonDesarrollo de aplicaciones android con Python
Desarrollo de aplicaciones android con Python
Manuel Pérez
 
TRABAJO.ppt
TRABAJO.pptTRABAJO.ppt
Desarrollando una Extensión para Docker
Desarrollando una Extensión para DockerDesarrollando una Extensión para Docker
Desarrollando una Extensión para Docker
Angel Borroy López
 
Gwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoGwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoManuel Carrasco Moñino
 
Introducción al desarrollo de aplicaciones para Android
Introducción al desarrollo de aplicaciones para AndroidIntroducción al desarrollo de aplicaciones para Android
Introducción al desarrollo de aplicaciones para Android
Armando Picón Z.
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
Borja García Cueto
 
Curso de programacion en android
Curso de programacion en androidCurso de programacion en android
Curso de programacion en android
Escurra Walter
 
Open Source Tools for Java Projects
Open Source Tools for Java ProjectsOpen Source Tools for Java Projects
Open Source Tools for Java Projects
Jose Gutierrez
 
6 Lenguajes para dispositivos móviles
6 Lenguajes para dispositivos móviles 6 Lenguajes para dispositivos móviles
6 Lenguajes para dispositivos móviles
RAUL Velez
 
Taller mobile by trustparency
Taller mobile by trustparencyTaller mobile by trustparency
Taller mobile by trustparency
trustparency
 
Software en la actualidad
Software en la actualidadSoftware en la actualidad
Software en la actualidad
Raelyx Cordero
 
An evening with ... Ionic Framework Meetup
An evening with ... Ionic Framework Meetup An evening with ... Ionic Framework Meetup
An evening with ... Ionic Framework Meetup
Arkhotech
 
App engine
App engineApp engine
App engine
ThirdWay
 
Presentacion phonegap phonegapbuilt
Presentacion phonegap phonegapbuiltPresentacion phonegap phonegapbuilt
Presentacion phonegap phonegapbuiltChristhiam Cabrera
 

Similar a introducción a flutter (20)

Introduccion android
Introduccion androidIntroduccion android
Introduccion android
 
1. flutter introduccion v2
1.  flutter introduccion v21.  flutter introduccion v2
1. flutter introduccion v2
 
DotNetDom: El futuro de Xamarin
DotNetDom: El futuro de XamarinDotNetDom: El futuro de Xamarin
DotNetDom: El futuro de Xamarin
 
La magia de Flutter
La magia de FlutterLa magia de Flutter
La magia de Flutter
 
DAM-S4.pptx
DAM-S4.pptxDAM-S4.pptx
DAM-S4.pptx
 
Lo que tienes que saber de Dart para Backend, frontend y Mobile..pptx
Lo que tienes que saber de Dart para Backend, frontend y Mobile..pptxLo que tienes que saber de Dart para Backend, frontend y Mobile..pptx
Lo que tienes que saber de Dart para Backend, frontend y Mobile..pptx
 
Desarrollo de aplicaciones android con Python
Desarrollo de aplicaciones android con PythonDesarrollo de aplicaciones android con Python
Desarrollo de aplicaciones android con Python
 
TRABAJO.ppt
TRABAJO.pptTRABAJO.ppt
TRABAJO.ppt
 
Desarrollando una Extensión para Docker
Desarrollando una Extensión para DockerDesarrollando una Extensión para Docker
Desarrollando una Extensión para Docker
 
Gwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoGwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrasco
 
Introducción al desarrollo de aplicaciones para Android
Introducción al desarrollo de aplicaciones para AndroidIntroducción al desarrollo de aplicaciones para Android
Introducción al desarrollo de aplicaciones para Android
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Curso de programacion en android
Curso de programacion en androidCurso de programacion en android
Curso de programacion en android
 
Open Source Tools for Java Projects
Open Source Tools for Java ProjectsOpen Source Tools for Java Projects
Open Source Tools for Java Projects
 
6 Lenguajes para dispositivos móviles
6 Lenguajes para dispositivos móviles 6 Lenguajes para dispositivos móviles
6 Lenguajes para dispositivos móviles
 
Taller mobile by trustparency
Taller mobile by trustparencyTaller mobile by trustparency
Taller mobile by trustparency
 
Software en la actualidad
Software en la actualidadSoftware en la actualidad
Software en la actualidad
 
An evening with ... Ionic Framework Meetup
An evening with ... Ionic Framework Meetup An evening with ... Ionic Framework Meetup
An evening with ... Ionic Framework Meetup
 
App engine
App engineApp engine
App engine
 
Presentacion phonegap phonegapbuilt
Presentacion phonegap phonegapbuiltPresentacion phonegap phonegapbuilt
Presentacion phonegap phonegapbuilt
 

Último

NORMATIVA AMERICANA ASME B30.5-2021 ESPAÑOL
NORMATIVA AMERICANA ASME B30.5-2021 ESPAÑOLNORMATIVA AMERICANA ASME B30.5-2021 ESPAÑOL
NORMATIVA AMERICANA ASME B30.5-2021 ESPAÑOL
Pol Peña Quispe
 
LA SEÑALES ANALOGICAS Y LAS SEÑALES DIGITALES
LA SEÑALES ANALOGICAS Y LAS SEÑALES DIGITALESLA SEÑALES ANALOGICAS Y LAS SEÑALES DIGITALES
LA SEÑALES ANALOGICAS Y LAS SEÑALES DIGITALES
LuisLobatoingaruca
 
Análisis Combinatorio ,EJERCICIOS Y PROBLEMAS RESUELTOS
Análisis Combinatorio ,EJERCICIOS Y PROBLEMAS RESUELTOSAnálisis Combinatorio ,EJERCICIOS Y PROBLEMAS RESUELTOS
Análisis Combinatorio ,EJERCICIOS Y PROBLEMAS RESUELTOS
ppame8010
 
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptxTEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
maitecuba2006
 
UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.
UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.
UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.
HaroldKewinCanaza1
 
Las Fuentes de Alimentacion Conmutadas (Switching).pdf
Las Fuentes de Alimentacion Conmutadas (Switching).pdfLas Fuentes de Alimentacion Conmutadas (Switching).pdf
Las Fuentes de Alimentacion Conmutadas (Switching).pdf
NicolasGramajo1
 
MATERIALES MAGNETICOS EN EL CAMPO SIDERURGICO.pptx
MATERIALES MAGNETICOS EN EL CAMPO SIDERURGICO.pptxMATERIALES MAGNETICOS EN EL CAMPO SIDERURGICO.pptx
MATERIALES MAGNETICOS EN EL CAMPO SIDERURGICO.pptx
Fernando Benavidez
 
Hidrostatica_e_Hidrodinamica.pdggggggggf
Hidrostatica_e_Hidrodinamica.pdggggggggfHidrostatica_e_Hidrodinamica.pdggggggggf
Hidrostatica_e_Hidrodinamica.pdggggggggf
JavierAlejosM
 
Siemens----Software---Simatic----HMI.pdf
Siemens----Software---Simatic----HMI.pdfSiemens----Software---Simatic----HMI.pdf
Siemens----Software---Simatic----HMI.pdf
RonaldRozoMora
 
1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV
CarlosAroeira1
 
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdfPLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
MariaCortezRuiz
 
IMPORTANCIA DE LOS LIPIDOS EN FARMACIA.pdf
IMPORTANCIA DE LOS LIPIDOS EN FARMACIA.pdfIMPORTANCIA DE LOS LIPIDOS EN FARMACIA.pdf
IMPORTANCIA DE LOS LIPIDOS EN FARMACIA.pdf
JonathanFernandoRodr
 
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptxDesbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
ValGS2
 
Medicina Peruana en el siglo XX y XXI- Julio Gabriel Pereda Sanchez.pptx
Medicina Peruana en el siglo XX y XXI- Julio Gabriel  Pereda Sanchez.pptxMedicina Peruana en el siglo XX y XXI- Julio Gabriel  Pereda Sanchez.pptx
Medicina Peruana en el siglo XX y XXI- Julio Gabriel Pereda Sanchez.pptx
gabrielperedasanchez
 
PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...
PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...
PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...
CarlitosWay20
 
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
JhonatanOQuionesChoq
 
Criterios de la primera y segunda derivada
Criterios de la primera y segunda derivadaCriterios de la primera y segunda derivada
Criterios de la primera y segunda derivada
YoverOlivares
 
CONTROL DE MOTORES DE CORRIENTE ALTERNA PPT
CONTROL DE MOTORES DE CORRIENTE ALTERNA  PPTCONTROL DE MOTORES DE CORRIENTE ALTERNA  PPT
CONTROL DE MOTORES DE CORRIENTE ALTERNA PPT
LuisLobatoingaruca
 
Distribución Muestral de Diferencia de Medias
Distribución Muestral de Diferencia de MediasDistribución Muestral de Diferencia de Medias
Distribución Muestral de Diferencia de Medias
arielemelec005
 
Seguridad en mineria los Controles criticos
Seguridad en mineria los Controles criticosSeguridad en mineria los Controles criticos
Seguridad en mineria los Controles criticos
Melvin191754
 

Último (20)

NORMATIVA AMERICANA ASME B30.5-2021 ESPAÑOL
NORMATIVA AMERICANA ASME B30.5-2021 ESPAÑOLNORMATIVA AMERICANA ASME B30.5-2021 ESPAÑOL
NORMATIVA AMERICANA ASME B30.5-2021 ESPAÑOL
 
LA SEÑALES ANALOGICAS Y LAS SEÑALES DIGITALES
LA SEÑALES ANALOGICAS Y LAS SEÑALES DIGITALESLA SEÑALES ANALOGICAS Y LAS SEÑALES DIGITALES
LA SEÑALES ANALOGICAS Y LAS SEÑALES DIGITALES
 
Análisis Combinatorio ,EJERCICIOS Y PROBLEMAS RESUELTOS
Análisis Combinatorio ,EJERCICIOS Y PROBLEMAS RESUELTOSAnálisis Combinatorio ,EJERCICIOS Y PROBLEMAS RESUELTOS
Análisis Combinatorio ,EJERCICIOS Y PROBLEMAS RESUELTOS
 
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptxTEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
 
UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.
UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.
UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.
 
Las Fuentes de Alimentacion Conmutadas (Switching).pdf
Las Fuentes de Alimentacion Conmutadas (Switching).pdfLas Fuentes de Alimentacion Conmutadas (Switching).pdf
Las Fuentes de Alimentacion Conmutadas (Switching).pdf
 
MATERIALES MAGNETICOS EN EL CAMPO SIDERURGICO.pptx
MATERIALES MAGNETICOS EN EL CAMPO SIDERURGICO.pptxMATERIALES MAGNETICOS EN EL CAMPO SIDERURGICO.pptx
MATERIALES MAGNETICOS EN EL CAMPO SIDERURGICO.pptx
 
Hidrostatica_e_Hidrodinamica.pdggggggggf
Hidrostatica_e_Hidrodinamica.pdggggggggfHidrostatica_e_Hidrodinamica.pdggggggggf
Hidrostatica_e_Hidrodinamica.pdggggggggf
 
Siemens----Software---Simatic----HMI.pdf
Siemens----Software---Simatic----HMI.pdfSiemens----Software---Simatic----HMI.pdf
Siemens----Software---Simatic----HMI.pdf
 
1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV
 
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdfPLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
 
IMPORTANCIA DE LOS LIPIDOS EN FARMACIA.pdf
IMPORTANCIA DE LOS LIPIDOS EN FARMACIA.pdfIMPORTANCIA DE LOS LIPIDOS EN FARMACIA.pdf
IMPORTANCIA DE LOS LIPIDOS EN FARMACIA.pdf
 
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptxDesbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
 
Medicina Peruana en el siglo XX y XXI- Julio Gabriel Pereda Sanchez.pptx
Medicina Peruana en el siglo XX y XXI- Julio Gabriel  Pereda Sanchez.pptxMedicina Peruana en el siglo XX y XXI- Julio Gabriel  Pereda Sanchez.pptx
Medicina Peruana en el siglo XX y XXI- Julio Gabriel Pereda Sanchez.pptx
 
PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...
PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...
PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...
 
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
 
Criterios de la primera y segunda derivada
Criterios de la primera y segunda derivadaCriterios de la primera y segunda derivada
Criterios de la primera y segunda derivada
 
CONTROL DE MOTORES DE CORRIENTE ALTERNA PPT
CONTROL DE MOTORES DE CORRIENTE ALTERNA  PPTCONTROL DE MOTORES DE CORRIENTE ALTERNA  PPT
CONTROL DE MOTORES DE CORRIENTE ALTERNA PPT
 
Distribución Muestral de Diferencia de Medias
Distribución Muestral de Diferencia de MediasDistribución Muestral de Diferencia de Medias
Distribución Muestral de Diferencia de Medias
 
Seguridad en mineria los Controles criticos
Seguridad en mineria los Controles criticosSeguridad en mineria los Controles criticos
Seguridad en mineria los Controles criticos
 

introducción a flutter

  • 1. Introducción a Flutter • Victor Alfonso Rodas Ona • Fb.com/victordevcode • victordevcode@gmail.com @VictorRancesCode
  • 2.
  • 3. • Flutter es el SDK de aplicaciones móviles de Google para crear interfaces nativas de alta calidad en iOS y Android en un tiempo récord. • Sirve para crear fácilmente app móviles modernas, bonitas y de alto desempeño Funciona para Android y iOS Es una herramienta open-source, desarrollada por Google* Tiene más de 100 colaboraciones de la comunidad open source • Actualmente se encuentra en Beta 3 Listo para producción. Qué es Flutter?
  • 4. • ¿Qué tipo de aplicaciones puedo construir con Flutter? • Flutter está optimizado para aplicaciones móviles 2D que desean ejecutarse tanto en Android como en iOS. • Puede crear aplicaciones completas con Flutter, que incluyen cámara, geolocalización, red, almacenamiento, SDK de terceros y más. • ¿Con qué tecnología está fabricado Flutter? • Flutter está construido con C, C ++, Dart y Skia (un motor de renderización 2D).
  • 5. • Los programadores de Google y de otros lugares usan Dart para crear aplicaciones de misión crítica de alta calidad para iOS, Android y la web. Con características destinadas al desarrollo del lado del cliente, Dart es ideal para aplicaciones móviles y web. Flutter y Dart
  • 6. • Productivo • La sintaxis de Dart es clara y concisa, sus herramientas son simples pero poderosas. El mecanografiado sano te ayuda a identificar los errores sutiles temprano. Dart tiene bibliotecas centrales endurecidas por la batalla y un ecosistema de miles de paquetes. • Rápido • Dart ofrece la optimización de la compilación anticipada para obtener un alto rendimiento predecible y un inicio rápido en dispositivos móviles y la web. • Portátil • Dart compila código ARM y x86, de modo que las aplicaciones móviles Dart pueden ejecutarse nativamente en iOS, Android y más. Para aplicaciones web, Dart transpila a JavaScript. Dart
  • 7. • Accesible • Dart es familiar para muchos desarrolladores existentes, gracias a su orientación y sintaxis de objetos no sorprendente. Si ya conoce C ++, C # o Java, puede ser productivo con Dart en solo unos días. • Reactivo • Dart es muy adecuado para la programación reactiva, con soporte para administrar objetos de corta duración, como widgets UI, a través de la asignación rápida de objetos de Dart y el recolector de basura generacional. Dart es compatible con la programación asincrónica a través de características de lenguaje y API que usan objetos Future y Stream. Dart
  • 8.
  • 9. • Diseñadores que desean una experiencia de marca convergente tanto en Android como en iOS • Prototipadores que buscan alta fidelidad y una forma rápida de construir prototipos interactivos. • Programadores que pueden beneficiarse de las herramientas de desarrollo, un lenguaje sencillo y una rica librería de widgets. Flutter ayuda a ahorrar tiempo de desarrollo para crear experiencias memorables. ¿Para quién es Flutter?
  • 10. Analogía de HTML/CSS con Flutter var container = new Container( // grey box child: new Text( "Lorem ipsum", style: new TextStyle( fontSize: 24.0 fontWeight: FontWeight.w900, fontFamily: "Georgia", ), ), width: 320.0, height: 240.0, color: Colors.grey[300], ); <div class="greybox"> Lorem ipsum </div> .greybox { background-color: #e0e0e0; /* grey 300 */ width: 320px; height: 240px; font: 900 24px Georgia; }
  • 11.
  • 12. $ flutter doctor Revisa el entorno y muestra un reporte en la ventana de la terminal $ flutter upgrade Actualiza tanto el SDK de Flutter así como los otros paquetes
  • 13. pubspec.yaml name: flutter_project description: An amazing Flutter project using Firebase Auth dependencies: flutter: sdk: flutter firebase_auth: "^0.2.5"
  • 14. pubspec.yaml name: flutter_project description: An amazing Flutter project using Firebase Auth dependencies: flutter: sdk: flutter firebase_auth: ">=0.1.2 <0.2.6"
  • 15. $ flutter packages get Revisa el entorno y muestra un reporte en la ventana de la terminal $ flutter packages upgrade Buscará la versión más reciente disponible del paquete
  • 16. $ flutter format Automáticamente formatea tu código de acuerdo al estilo de Flutter $ flutter analyze Analiza tu código y te ayuda a encontrar errores
  • 17. Inserta código actualizado dentro de la máquina virtual de Dart que se está ejecutando Stateful: El estado de la app se mantiene después de la actualización. Sirve para iterar con rapidez en una pantalla que se encuentra en un nivel de navegación profundo dentro de tu app Hot Reload
  • 18.
  • 19. Widgets que se ven bien y funcionan bien • El equipo analizó aplicaciones populares y notó muchos widgets personalizados. Así que Flutter está diseñado para permitir eso.
  • 20. Todo es un Widget
  • 21. new Center( child: new Text('Texto Centrado', style: textStyle), ) Estilos locales: Cada widget define su propio estilo. No hay necesidad de decirle al widget padre que sus hijos se supone que deben ir centrados. Adiós, sistema de posicionamiento global
  • 22. El sistema de Widget de Flutter fue diseñado para ser fácilmente personalizable. Composición: Los widgets se construyen sobre widgets más pequeños que se pueden reutilizar y combinar para hacer widgets personalizados. class RaisedButton extends StatelessWidget { ... } Personalizando y extendiendo Widgets
  • 23. Arquitectura Skia Dart Text Base Animación Pintado Renderizado Widgets Material Gestos Engine (C++) Framework (Dart) Cupertino Skia es el mismo motor de gráficos que usa Android. Este está construido directamente desde la fuente, compilado cada vez que construyes Flutter El motor de texto es de Blink, el motor de renderizado de Chromium.
  • 24.
  • 25.
  • 26. Al utilizar canales de plataforma podemos recibir y enviar resultados.
  • 27. Ejemplo: Obtener el estado de la batería* class MainActivity() : FlutterActivity() { private val CHANNEL = "samples.flutter.io/battery" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) GeneratedPluginRegistrant.registerWith(this) MethodChannel(flutterView, CHANNEL).setMethodCallHandler { call, result -> // TODO } } } * Example written in Kotlin for Android
  • 28. Trabajando con el argumento de la respuesta* MethodChannel(flutterView, CHANNEL).setMethodCallHandler { call, result -> if (call.method == "getBatteryLevel") { val batteryLevel = getBatteryLevel() if (batteryLevel != -1) { result.success(batteryLevel) } else { result.error("UNAVAILABLE", "Battery level not available.", null) } } else { result.notImplemented() } } * Example written in Kotlin for Android
  • 29. Invocación desde Flutter de los métodos de plataforma String _batteryLevel = 'Unknown battery level.'; Future<Null> _getBatteryLevel() async { String batteryLevel; try { final int result = await platform.invokeMethod('getBatteryLevel'); batteryLevel = 'Battery level at $result % .'; } on PlatformException catch (e) { batteryLevel = "Failed to get battery level: '${e.message}'."; } setState(() { _batteryLevel = batteryLevel; }); }
  • 30. “Al correr a 60 fps, las interfases de usuario creadas con Flutter tienen un mejor desempeño que las que fueron creadas en otros frameworks de desarrollo multiplataforma.” code.tutsplus.com/tutorials/developing-an-android-app-with-flutter--cms-28270
  • 31. “Programar con Dart y Flutter me ayudó a disfrutar de nuevo lo que hacía cuando comencé a desarrollar para móviles hace unos años..., sin $%&@” traversoft.com/blog/2017/08/08/conference-app-flutter
  • 32. "La UI es fluida y elegante (al compilar una versión de producción), nunca había visto una app para Android tan fluida" Pascal Welsch, ponente en Droidcon Berlin
  • 33. Recursos y Ejemplos • Proyecto App Esperanza • https://github.com/VictorRancesCode/Esperanza • Proyecto Ebay Search • https://github.com/VictorRancesCode/flutter-ebay-search • Proyecto Lib. Json to Form • https://github.com/VictorRancesCode/json_to_form • Proyecto Lib. Flutter Dialogflow • https://github.com/VictorRancesCode/flutter_dialogflow • Awesome Flutter • https://github.com/Solido/awesome-flutter • Blog: What’s Revolutionary about Flutter por Wm Leler • https://hackernoon.com/whats-revolutionary-about-flutter-946915b09514 • Flutter • https://github.com/flutter • https://flutter.io/
  • 34. Gracias Hasta la Próxima

Notas del editor

  1. Let’s focus on the blue bit for a second to understand how you’d do this on Android
  2. This works completely analog on iOS using Swift
  3. The call may fail – for example if the platform does not support the platform API (such as when running in a simulator), so we wrap the invokeMethod call in a try-catch statement.