SlideShare una empresa de Scribd logo
1 de 49
Lo que tienes que saber
de Dart para Backend,
Frontend y Mobile.
Sergio Antonio Ochoa Martinez
Developer OpenKM
Developer Freelancer
gnu.java.sergio@gmail.com
sochoa@openkm.com
Quien soy yo
Historia
- 2011: Se dio a conocer antes que sea estable
- Alternativa: Es una alternativa a Javascript
- Google: Es el desarrollador principal
- Maquina virtual: Google Chrome tiene una maquina virtual incluida para trabajar
con dart
- 2013: Salio la versión estable la version 1.0
Actualidad
- 2.x: Utilizar la versión 2.0 de Dart es la mejor opción para tener las nuevas
actualizaciones que tendrá
- SDK: Kit de desarrollo
- Chromium: Implementa la VM de Dart
Porque Dart?
● Los desarrolladores de Google y otros sitios utilizan Dart
para crear aplicaciones de alta calidad y misión crítica para
iOS, Android y la web. Con características dirigidas al
desarrollo del lado del cliente.
● Dart es ideal para aplicaciones móviles y web.
Características
● Dart fue creada no para reemplazar javascript sino para tener una opción más
moderna en la web
● Dart es free y opensource https://www.dart.dev
● Dart tiene alguna similitud o fue influenciado por los siguientes lenguajes de
programación
○ Java
○ Go
○ Javascript
○ C
Características(cont.)
● Es un lenguaje Orientado a Objetos
● JIT Y AOT
○ AOT (Ahead Of Time): Compilado rápido y predecible código nativo. Totalmente
personalizable
○ Puede se JIT (Just In Time): Compilado para una velocidad excepcional de desarrollo. (Esto
incluye el popular **Hot Reload**)
● Hace fácil la creación de animaciones y transiciones que corren a
60fps(frames por segundo).
Características(cont.)
● Al ser compilado a código nativo, no hay puentes innecesarios para correr el
código.
● Dart le permite a Flutter evitar el desarrollo de diseños en archivos
independientes como JSX, XML o bien interfaces separadas.
● Dart es relatimamente facil de aprender.
Herramientas
(La estándar y las de terceros)
Dartpad
● Editor online
https://dart.dev/tools/dartpad
IDEs y Editores
Pub https://dart.dev/tools/pub/cmd
● Administrar dependencias de paquetes
● Ejecutar aplicaciones de línea de comandos
● Implementar paquetes y aplicaciones
Pub comandos
Lenguaje
(La estándar y las de terceros)
Variables
Variable: Espacios en memoria para almacenar un valor
● Variables sin tipo
○ var
● Variable con tipo
○ int
○ double
○ String
○ bool
● Variables dinamicas
○ dynamic
Tipos de datos
● Los tipos de datos en Dart son Objetos
● Valor inicial de los tipos de datos sera null.
○ num
○ int
○ double
○ String
○ bool
○ Lists(Array) => Colecciones
○ Maps(Dictionary) => Colecciones
Operadores
Operadores
Operadores
Estructuras
If-else
Estructuras
Switch/Case
Estructuras Repetivas
For/For...in/foreach
Estructuras repetitivas
while/do while
Funciones
● Funciones main
● Funciones
● Funciones con parametros opcionales
● Funciones con parametros nombrados
● Funciones con paremtros por defecto
● Funciones Arrow => Fat Arrow
● Funciones anonimas(Lambda)
Programación Orientada a Objetos
● Classes Objetos
POO
● Métodos en una clase
● Metodos con parametros obligatorios.
● Metodos con parametros opcionales posicionales.
● Metodos con parametros opcionales nombrados.
● Métodos con valores por defecto.
● Métodos con funciones arrow.
● Metodos con parametros como función.
POO
● Constructores
● Set y Get
● Herencia
● Sobreescritura de métodos
● Clases Abstractas y métodos abstractos
● Interfaces implicitas
● Metodos y atributos estáticos
Conceptos avanzados
● Colecciones
○ List y Set
○ Map
● Importar librerías propias y de terceros
● Excepciones
● Mixis
● Futures
● Async Await
Stagehand
stagehand
● Stagehand es un scaffolding para generar
proyectos en dart, herramienta inspirada en
yeoman y start kit.
Stagehand template
● console-full - A command-line application sample.
● package-simple - A starting point for Dart libraries or applications.
● server-shelf - A web server built using the shelf package.
● web-angular - A web app with material design components.
● web-simple - A web app that uses only core Dart libraries.
● web-stagexl - A starting point for 2D animation and games.
Comandos stagehand
● Instalar y actualizar
○ pub global activate stagehand
Backend
Backend
● Aqueduct
● Jaguar
○ MVC
○ ORM
○ Auth
○ Security
● Angel
○ Framework Completo (Testing, Rest, DI, MVC, Command Line)
○ Documentación bastante explicada
● Redstone
○ Micro-Framework
Aqueduct
● Multi-threaded
● Routing
● ORM
● Database Migration
● OAuth 2.0 Server
● Test Library
● TravisCI - Ingregración Continua
● OpenAPI 3
○ Generar documentacion de tu API REST
● Logging
Projecto
● pub global activate aqueduct
● aqueduct create aqueductrest
● config.yaml
● aqueduct document client
● aqueduct db upgrade --connect
postgres://username:password@localhost:5432/name_database
● aqueduct serve
Frontend
Frontend
● AngularDart - https://angulardart.dev/
● MDL/Dart - http://www.material-design-lite.pub/
● OverReact -
https://workiva.github.io/over_react/
● VueDart - https://refi64.com/vuedart/
AngularDart - https://angulardart.dev/guide/setup
● Modules
● Components
● Templates
● Metadata
● Data binding
● Directives
● Services
● Dependency injection
● Pipes
● Router
● Testing
Flutter
Flutter
Compilación Nativa
● Compilación en Tiempo Real
● Compilación Anticipada
Desarrollo Rápido
Gran Experiencia de Usuario
Unico codigo base para IOS y
Android
No Bridges
Flutter es un Framework muy Joven
May 2017
Google I/0
Alpha Kit
May 2018
Google I/O
Beta 3 - Listo para
Producción
Flutter Soporte en los Editores
● Visual Studio Code
● Android Studio
● IntelliJ IDEA
● O cualquier otro editor de texto
○ flutter-cli
Nota: Es mejor hacerlo en Visual Studio Code o Android
Studio porque te ayuda en la compilación
Recursos
Recursos
● https://github.com/gnujavasergio/dart-experiments
● https://dart.dev/guides/language/specifications/DartLangSpec-v2.2.pdf
● https://pub.dev/
● https://github.com/gnujavasergio/dart-experiments
● https://codelabs.developers.google.com/codelabs/from-java-to-
dart/index.html#0
● https://medium.com/flutter-community/code-sharing-with-bloc-b867302c18ef
Muchas Gracias
Preguntas?
Sergio Antonio Ochoa Martinez
Developer OpenKM
Developer Freelancer
https://github.com/gnujavasergio
gnu.java.sergio@gmail.com
sochoa@openkm.com

Más contenido relacionado

La actualidad más candente

Database Cloud Services Office Hours : Oracle sharding hyperscale globally d...
Database Cloud Services Office Hours : Oracle sharding  hyperscale globally d...Database Cloud Services Office Hours : Oracle sharding  hyperscale globally d...
Database Cloud Services Office Hours : Oracle sharding hyperscale globally d...Tammy Bednar
 
Fundamentos de bases de datos
Fundamentos de  bases de datosFundamentos de  bases de datos
Fundamentos de bases de datosyumitacohen
 
Clasificacion de los sistemas de base de datos
Clasificacion de los sistemas de base de datosClasificacion de los sistemas de base de datos
Clasificacion de los sistemas de base de datosManuel Gutiérrez
 
Presentacion de almacenamiento en la nube
Presentacion de almacenamiento en la nubePresentacion de almacenamiento en la nube
Presentacion de almacenamiento en la nubeheidymenjivar
 
Sistema Operativo Solaris
Sistema Operativo SolarisSistema Operativo Solaris
Sistema Operativo SolarisMONSE100
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas OperativosDaniel
 
Etapas en el diseño de Base de Datos
Etapas en el diseño de Base de DatosEtapas en el diseño de Base de Datos
Etapas en el diseño de Base de DatosAnielka Reyes
 
Clasificacion de las Metodologias de Desarrollo de Software
Clasificacion de las Metodologias de Desarrollo de SoftwareClasificacion de las Metodologias de Desarrollo de Software
Clasificacion de las Metodologias de Desarrollo de Softwaremireya2022
 
cuadro comparativo de gmail y hotmail
cuadro comparativo de gmail y hotmailcuadro comparativo de gmail y hotmail
cuadro comparativo de gmail y hotmaillizmunozp93
 
Visual Basic .NET
Visual Basic .NETVisual Basic .NET
Visual Basic .NETDavid
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoMarvin Zumbado
 
Curso de visual fox pro - Desprotejido para Imprimirlo
Curso de visual fox pro - Desprotejido para ImprimirloCurso de visual fox pro - Desprotejido para Imprimirlo
Curso de visual fox pro - Desprotejido para Imprimirlohmosquera
 
Comparativa herramientas ETL
Comparativa herramientas ETLComparativa herramientas ETL
Comparativa herramientas ETLJorge Bustillos
 

La actualidad más candente (20)

Database Cloud Services Office Hours : Oracle sharding hyperscale globally d...
Database Cloud Services Office Hours : Oracle sharding  hyperscale globally d...Database Cloud Services Office Hours : Oracle sharding  hyperscale globally d...
Database Cloud Services Office Hours : Oracle sharding hyperscale globally d...
 
Uml clase 02_uml_casos_de_uso
Uml clase 02_uml_casos_de_usoUml clase 02_uml_casos_de_uso
Uml clase 02_uml_casos_de_uso
 
Fundamentos de bases de datos
Fundamentos de  bases de datosFundamentos de  bases de datos
Fundamentos de bases de datos
 
Google Drive
Google DriveGoogle Drive
Google Drive
 
Clasificacion de los sistemas de base de datos
Clasificacion de los sistemas de base de datosClasificacion de los sistemas de base de datos
Clasificacion de los sistemas de base de datos
 
Almacenamiento en la nube
Almacenamiento en la nubeAlmacenamiento en la nube
Almacenamiento en la nube
 
Vision del producto app delivery
Vision del producto   app delivery Vision del producto   app delivery
Vision del producto app delivery
 
Presentacion de almacenamiento en la nube
Presentacion de almacenamiento en la nubePresentacion de almacenamiento en la nube
Presentacion de almacenamiento en la nube
 
Clonezilla Server linux
Clonezilla Server linuxClonezilla Server linux
Clonezilla Server linux
 
Sistema Operativo Solaris
Sistema Operativo SolarisSistema Operativo Solaris
Sistema Operativo Solaris
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Etapas en el diseño de Base de Datos
Etapas en el diseño de Base de DatosEtapas en el diseño de Base de Datos
Etapas en el diseño de Base de Datos
 
Clasificacion de las Metodologias de Desarrollo de Software
Clasificacion de las Metodologias de Desarrollo de SoftwareClasificacion de las Metodologias de Desarrollo de Software
Clasificacion de las Metodologias de Desarrollo de Software
 
Google drive
Google driveGoogle drive
Google drive
 
cuadro comparativo de gmail y hotmail
cuadro comparativo de gmail y hotmailcuadro comparativo de gmail y hotmail
cuadro comparativo de gmail y hotmail
 
Visual Basic .NET
Visual Basic .NETVisual Basic .NET
Visual Basic .NET
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modelado
 
Curso de visual fox pro - Desprotejido para Imprimirlo
Curso de visual fox pro - Desprotejido para ImprimirloCurso de visual fox pro - Desprotejido para Imprimirlo
Curso de visual fox pro - Desprotejido para Imprimirlo
 
Comparativa herramientas ETL
Comparativa herramientas ETLComparativa herramientas ETL
Comparativa herramientas ETL
 
Google Chrome os
Google Chrome osGoogle Chrome os
Google Chrome os
 

Similar a Lo que tienes que saber de Dart para Backend, frontend y Mobile..pptx

Entonamiento y perfilado de Drupal
Entonamiento y perfilado de DrupalEntonamiento y perfilado de Drupal
Entonamiento y perfilado de Drupalcamposer
 
Workshop docker: Iniciando en el Mundo de los Contenedores
Workshop docker: Iniciando en el Mundo de los ContenedoresWorkshop docker: Iniciando en el Mundo de los Contenedores
Workshop docker: Iniciando en el Mundo de los ContenedoresJesús A. Rodríguez B.
 
Introducción a Google Dart + HTML5
Introducción a Google Dart + HTML5Introducción a Google Dart + HTML5
Introducción a Google Dart + HTML5Avanet
 
Vaadin y Grails Barcamp 2013
Vaadin y Grails Barcamp 2013Vaadin y Grails Barcamp 2013
Vaadin y Grails Barcamp 2013Carlos Camacho
 
Dragome en JavaConf Buenos Aires 2014
Dragome en JavaConf Buenos Aires 2014 Dragome en JavaConf Buenos Aires 2014
Dragome en JavaConf Buenos Aires 2014 Fernando Petrola
 
Drupal 7 para sitios de alto rendimiento y alta disponibilidad
Drupal 7 para sitios de alto rendimiento y alta disponibilidadDrupal 7 para sitios de alto rendimiento y alta disponibilidad
Drupal 7 para sitios de alto rendimiento y alta disponibilidadIván Campaña Naranjo
 
Desarrollo de aplicaciones .net
Desarrollo de aplicaciones .netDesarrollo de aplicaciones .net
Desarrollo de aplicaciones .netJefersonGuevara1
 
Desarrollo de aplicaciones .net
Desarrollo de aplicaciones .netDesarrollo de aplicaciones .net
Desarrollo de aplicaciones .netJefersonGuevara1
 
Desarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos BásicosDesarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos BásicosGabriel Huecas
 
Android apps: un dia sin dex2jar y sin apktool
Android apps: un dia sin dex2jar y sin apktoolAndroid apps: un dia sin dex2jar y sin apktool
Android apps: un dia sin dex2jar y sin apktoolSalvador Mendoza
 
Drupal 8 WorkShop - e-Ghost 2015
Drupal 8 WorkShop - e-Ghost 2015  Drupal 8 WorkShop - e-Ghost 2015
Drupal 8 WorkShop - e-Ghost 2015 Keopx
 
Gwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoGwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoManuel Carrasco Moñino
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA_es
 
Desarrollando una Extensión para Docker
Desarrollando una Extensión para DockerDesarrollando una Extensión para Docker
Desarrollando una Extensión para DockerAngel Borroy López
 

Similar a Lo que tienes que saber de Dart para Backend, frontend y Mobile..pptx (20)

introducción a flutter
introducción a flutterintroducción a flutter
introducción a flutter
 
Entonamiento y perfilado de Drupal
Entonamiento y perfilado de DrupalEntonamiento y perfilado de Drupal
Entonamiento y perfilado de Drupal
 
Workshop docker: Iniciando en el Mundo de los Contenedores
Workshop docker: Iniciando en el Mundo de los ContenedoresWorkshop docker: Iniciando en el Mundo de los Contenedores
Workshop docker: Iniciando en el Mundo de los Contenedores
 
Introducción a Google Dart + HTML5
Introducción a Google Dart + HTML5Introducción a Google Dart + HTML5
Introducción a Google Dart + HTML5
 
01 - Introducción al lenguaje C
01 - Introducción al lenguaje C01 - Introducción al lenguaje C
01 - Introducción al lenguaje C
 
TECNIRIS47-1b.pdf
TECNIRIS47-1b.pdfTECNIRIS47-1b.pdf
TECNIRIS47-1b.pdf
 
Vaadin y Grails Barcamp 2013
Vaadin y Grails Barcamp 2013Vaadin y Grails Barcamp 2013
Vaadin y Grails Barcamp 2013
 
Acercádonos a dart
Acercádonos a dartAcercádonos a dart
Acercádonos a dart
 
Dragome en JavaConf Buenos Aires 2014
Dragome en JavaConf Buenos Aires 2014 Dragome en JavaConf Buenos Aires 2014
Dragome en JavaConf Buenos Aires 2014
 
Drupal 7 para sitios de alto rendimiento y alta disponibilidad
Drupal 7 para sitios de alto rendimiento y alta disponibilidadDrupal 7 para sitios de alto rendimiento y alta disponibilidad
Drupal 7 para sitios de alto rendimiento y alta disponibilidad
 
Desarrollo de aplicaciones .net
Desarrollo de aplicaciones .netDesarrollo de aplicaciones .net
Desarrollo de aplicaciones .net
 
Desarrollo de aplicaciones .net
Desarrollo de aplicaciones .netDesarrollo de aplicaciones .net
Desarrollo de aplicaciones .net
 
Desarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos BásicosDesarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos Básicos
 
Android apps: un dia sin dex2jar y sin apktool
Android apps: un dia sin dex2jar y sin apktoolAndroid apps: un dia sin dex2jar y sin apktool
Android apps: un dia sin dex2jar y sin apktool
 
Drupal 8 WorkShop - e-Ghost 2015
Drupal 8 WorkShop - e-Ghost 2015  Drupal 8 WorkShop - e-Ghost 2015
Drupal 8 WorkShop - e-Ghost 2015
 
Gwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoGwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrasco
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a Docker
 
Manual free cad
Manual free cadManual free cad
Manual free cad
 
Kubuntu - Aplicaciones
Kubuntu - AplicacionesKubuntu - Aplicaciones
Kubuntu - Aplicaciones
 
Desarrollando una Extensión para Docker
Desarrollando una Extensión para DockerDesarrollando una Extensión para Docker
Desarrollando una Extensión para Docker
 

Último

La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 

Último (19)

La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 

Lo que tienes que saber de Dart para Backend, frontend y Mobile..pptx

  • 1. Lo que tienes que saber de Dart para Backend, Frontend y Mobile.
  • 2. Sergio Antonio Ochoa Martinez Developer OpenKM Developer Freelancer gnu.java.sergio@gmail.com sochoa@openkm.com Quien soy yo
  • 3.
  • 4. Historia - 2011: Se dio a conocer antes que sea estable - Alternativa: Es una alternativa a Javascript - Google: Es el desarrollador principal - Maquina virtual: Google Chrome tiene una maquina virtual incluida para trabajar con dart - 2013: Salio la versión estable la version 1.0
  • 5. Actualidad - 2.x: Utilizar la versión 2.0 de Dart es la mejor opción para tener las nuevas actualizaciones que tendrá - SDK: Kit de desarrollo - Chromium: Implementa la VM de Dart
  • 6. Porque Dart? ● Los desarrolladores de Google y otros sitios utilizan Dart para crear aplicaciones de alta calidad y misión crítica para iOS, Android y la web. Con características dirigidas al desarrollo del lado del cliente. ● Dart es ideal para aplicaciones móviles y web.
  • 7. Características ● Dart fue creada no para reemplazar javascript sino para tener una opción más moderna en la web ● Dart es free y opensource https://www.dart.dev ● Dart tiene alguna similitud o fue influenciado por los siguientes lenguajes de programación ○ Java ○ Go ○ Javascript ○ C
  • 8. Características(cont.) ● Es un lenguaje Orientado a Objetos ● JIT Y AOT ○ AOT (Ahead Of Time): Compilado rápido y predecible código nativo. Totalmente personalizable ○ Puede se JIT (Just In Time): Compilado para una velocidad excepcional de desarrollo. (Esto incluye el popular **Hot Reload**) ● Hace fácil la creación de animaciones y transiciones que corren a 60fps(frames por segundo).
  • 9. Características(cont.) ● Al ser compilado a código nativo, no hay puentes innecesarios para correr el código. ● Dart le permite a Flutter evitar el desarrollo de diseños en archivos independientes como JSX, XML o bien interfaces separadas. ● Dart es relatimamente facil de aprender.
  • 10. Herramientas (La estándar y las de terceros)
  • 13. Pub https://dart.dev/tools/pub/cmd ● Administrar dependencias de paquetes ● Ejecutar aplicaciones de línea de comandos ● Implementar paquetes y aplicaciones
  • 15. Lenguaje (La estándar y las de terceros)
  • 16. Variables Variable: Espacios en memoria para almacenar un valor ● Variables sin tipo ○ var ● Variable con tipo ○ int ○ double ○ String ○ bool ● Variables dinamicas ○ dynamic
  • 17. Tipos de datos ● Los tipos de datos en Dart son Objetos ● Valor inicial de los tipos de datos sera null. ○ num ○ int ○ double ○ String ○ bool ○ Lists(Array) => Colecciones ○ Maps(Dictionary) => Colecciones
  • 25. Funciones ● Funciones main ● Funciones ● Funciones con parametros opcionales ● Funciones con parametros nombrados ● Funciones con paremtros por defecto ● Funciones Arrow => Fat Arrow ● Funciones anonimas(Lambda)
  • 26. Programación Orientada a Objetos ● Classes Objetos
  • 27. POO ● Métodos en una clase ● Metodos con parametros obligatorios. ● Metodos con parametros opcionales posicionales. ● Metodos con parametros opcionales nombrados. ● Métodos con valores por defecto. ● Métodos con funciones arrow. ● Metodos con parametros como función.
  • 28. POO ● Constructores ● Set y Get ● Herencia ● Sobreescritura de métodos ● Clases Abstractas y métodos abstractos ● Interfaces implicitas ● Metodos y atributos estáticos
  • 29. Conceptos avanzados ● Colecciones ○ List y Set ○ Map ● Importar librerías propias y de terceros ● Excepciones ● Mixis ● Futures ● Async Await
  • 31. stagehand ● Stagehand es un scaffolding para generar proyectos en dart, herramienta inspirada en yeoman y start kit.
  • 32. Stagehand template ● console-full - A command-line application sample. ● package-simple - A starting point for Dart libraries or applications. ● server-shelf - A web server built using the shelf package. ● web-angular - A web app with material design components. ● web-simple - A web app that uses only core Dart libraries. ● web-stagexl - A starting point for 2D animation and games.
  • 33. Comandos stagehand ● Instalar y actualizar ○ pub global activate stagehand
  • 35. Backend ● Aqueduct ● Jaguar ○ MVC ○ ORM ○ Auth ○ Security ● Angel ○ Framework Completo (Testing, Rest, DI, MVC, Command Line) ○ Documentación bastante explicada ● Redstone ○ Micro-Framework
  • 36.
  • 37. Aqueduct ● Multi-threaded ● Routing ● ORM ● Database Migration ● OAuth 2.0 Server ● Test Library ● TravisCI - Ingregración Continua ● OpenAPI 3 ○ Generar documentacion de tu API REST ● Logging
  • 38. Projecto ● pub global activate aqueduct ● aqueduct create aqueductrest ● config.yaml ● aqueduct document client ● aqueduct db upgrade --connect postgres://username:password@localhost:5432/name_database ● aqueduct serve
  • 40. Frontend ● AngularDart - https://angulardart.dev/ ● MDL/Dart - http://www.material-design-lite.pub/ ● OverReact - https://workiva.github.io/over_react/ ● VueDart - https://refi64.com/vuedart/
  • 41.
  • 42. AngularDart - https://angulardart.dev/guide/setup ● Modules ● Components ● Templates ● Metadata ● Data binding ● Directives ● Services ● Dependency injection ● Pipes ● Router ● Testing
  • 44. Flutter Compilación Nativa ● Compilación en Tiempo Real ● Compilación Anticipada Desarrollo Rápido Gran Experiencia de Usuario Unico codigo base para IOS y Android No Bridges
  • 45. Flutter es un Framework muy Joven May 2017 Google I/0 Alpha Kit May 2018 Google I/O Beta 3 - Listo para Producción
  • 46. Flutter Soporte en los Editores ● Visual Studio Code ● Android Studio ● IntelliJ IDEA ● O cualquier otro editor de texto ○ flutter-cli Nota: Es mejor hacerlo en Visual Studio Code o Android Studio porque te ayuda en la compilación
  • 48. Recursos ● https://github.com/gnujavasergio/dart-experiments ● https://dart.dev/guides/language/specifications/DartLangSpec-v2.2.pdf ● https://pub.dev/ ● https://github.com/gnujavasergio/dart-experiments ● https://codelabs.developers.google.com/codelabs/from-java-to- dart/index.html#0 ● https://medium.com/flutter-community/code-sharing-with-bloc-b867302c18ef
  • 49. Muchas Gracias Preguntas? Sergio Antonio Ochoa Martinez Developer OpenKM Developer Freelancer https://github.com/gnujavasergio gnu.java.sergio@gmail.com sochoa@openkm.com

Notas del editor

  1. La compracion es para hablar de Java Moderno y JavaScript Moderno