SlideShare a Scribd company logo
1 of 87
Download to read offline
Salenda
De Java a Swift pasando por Groovy
Codemotion ’16
Alberto De Ávila Hernández
S O B R E M Í
✴ Ingeniero Informático
✴ Team Lead en Salenda
✴ Groovy y Grails dev
✴ Aprendiz de Swift
@alberto_deavila
S O F T WA R E D E V E L O P M E N T
Desarrollos
personalizados
Atlassian
Experts
Formación y
consultoría
@alberto_deavila
E X P E R I E N C I A P E R S O N A L
@alberto_deavila
Mi experiencia personal
I N T R O D U C C I Ó N A L O S L E N G U A J E S
I N T R O D U C C I Ó N A L O S L E N G U A J E S
@alberto_deavila
I N T R O D U C C I Ó N A L O S L E N G U A J E S
@alberto_deavila
I N T R O D U C C I Ó N A G R O O V Y
@alberto_deavila
¿Qué es Groovy?
I N T R O D U C C I Ó N A G R O O V Y
@alberto_deavila
✴ Lenguaje ejecutado sobre JVM
✴ Fácil para desarrolladores Java
✴ Lenguaje dinámico y/o estático
✴ Más legible
✴ Scripting y Android
✴ Apps: Grails, Griffon, Grain y Plugins
I N T R O D U C C I Ó N A L O S L E N G U A J E S
@alberto_deavila
I N T R O D U C C I Ó N A L O S L E N G U A J E S
@alberto_deavila
I N T R O D U C C I Ó N A L O S L E N G U A J E S
@alberto_deavila
I N T R O D U C C I Ó N A S W I F T
@alberto_deavila
¿Qué es Swift?
I N T R O D U C C I Ó N A S W I F T
@alberto_deavila
✴ Lenguaje de desarrollo para iOS
✴ Sustituto de Objetive-C
✴ Lenguaje estático
✴ Expresivo, rápido y potente
✴ Frameworks web con Swift: Perfect, Vapor,
IBM Kitura...
I N T R O D U C C I Ó N A L O S L E N G U A J E S
@alberto_deavila
I N T R O D U C C I Ó N A L O S L E N G U A J E S
@alberto_deavila
I N T R O D U C C I Ó N A L O S L E N G U A J E S
@alberto_deavila
J AVA < - > G R O O V Y < - > S W I F T
@alberto_deavila
Tipos de datos
T I P O S D E D AT O S
@alberto_deavila
T I P O S D E D AT O S
@alberto_deavila
T I P O S D E D AT O S
@alberto_deavila
T I P O S D E D AT O S
@alberto_deavila
T I P O S D E D AT O S
@alberto_deavila
T I P O S D E D AT O S
@alberto_deavila
T I P O S D E D AT O S
@alberto_deavila
Quiz:
Tipos de datos
T I P O S D E D AT O S
@alberto_deavila
A. Error de compilación
B. NPE
C. 3 y 11
D. 0 y 11
T I P O S D E D AT O S
@alberto_deavila
A. Error de compilación
B. NPE
C. 3 y 11
D. 0 y 11
T I P O S D E D AT O S
@alberto_deavila
A.3 2 true null
B.3 2 MethodNotFound null
C.3 2 true MethodNotFound
D.3 MethodNotFound(x2) null
T I P O S D E D AT O S
@alberto_deavila
A.3 2 true null
B.3 2 MethodNotFound null
C.3 2 true MethodNotFound
D.3 MethodNotFound(x2) null
T I P O S D E D AT O S
@alberto_deavila
A.Codemotion ’16 3.3 Hola!
B.No compila
C.Codemotion ’16 3.3
D.Codemotion 3.3 Hola!
T I P O S D E D AT O S
@alberto_deavila
A.Codemotion ’16 3.3 Hola!
B.No compila
C.Codemotion ’16 3.3
D.Codemotion 3.3 Hola!
J AVA < - > G R O O V Y < - > S W I F T
@alberto_deavila
Operadores
O P E R A D O R E S
@alberto_deavila
✴ Arítmeticos
✴ Lógicos
✴ instanceof
✴ Bits
✴ Double colon (::)
O P E R A D O R E S
@alberto_deavila
@alberto_deavila
O P E R A D O R E S
✴ Groovy Truth*
✴ Elvis
✴ Spread
✴ Safe operator
✴ Sobrecarga de operadores
@alberto_deavila
O P E R A D O R E S
@alberto_deavila
O P E R A D O R E S
@alberto_deavila
O P E R A D O R E S
✴ Rangos
✴ Operadores de overflow
✴ Operador Nil-Coalescing
✴ Operador de comprobador de tipo
@alberto_deavila
O P E R A D O R E S
@alberto_deavila
O P E R A D O R E S
O P E R A D O R E S
@alberto_deavila
Quiz:
Operadores
O P E R A D O R E S
@alberto_deavila
A. true false false
B. false false false
C. Produce una excepción
D. true true false
O P E R A D O R E S
@alberto_deavila
A. true false false
B. false false false
C. Produce una excepción
D. true true false
O P E R A D O R E S
@alberto_deavila
A. 6
B. 7
C. optional(6)
D. optional(7)
O P E R A D O R E S
@alberto_deavila
A. 6
B. 7
C. optional(6)
D. optional(7)
J AVA < - > G R O O V Y < - > S W I F T
@alberto_deavila
Estructuras de control
M É T O D O S
@alberto_deavila
✴ for / while / do-while
✴ switch / if / else
✴ return / break
✴try / catch
@alberto_deavila
E S T R U C T U R A S D E C O N T R O L
✴ each / times
✴ switch
✴ collect
✴ find / findAll / count
@alberto_deavila
E S T R U C T U R A S D E C O N T R O L
@alberto_deavila
E S T R U C T U R A S D E C O N T R O L
@alberto_deavila
E S T R U C T U R A S D E C O N T R O L
@alberto_deavila
E S T R U C T U R A S D E C O N T R O L
✴ for-in
✴ repeat-while
✴ switch
✴ guard
@alberto_deavila
E S T R U C T U R A S D E C O N T R O L
@alberto_deavila
E S T R U C T U R A S D E C O N T R O L
E S T R U C T U R A S D E C O N T R O L
@alberto_deavila
Quiz:
Estructuras de control
@alberto_deavila
E S T R U C T U R A S D E C O N T R O L
A. 1
B. 2
C. 3
D. No compila
@alberto_deavila
E S T R U C T U R A S D E C O N T R O L
A. 1
B. 2
C. 3
D. No compila
J AVA < - > G R O O V Y < - > S W I F T
@alberto_deavila
Métodos
M É T O D O S
@alberto_deavila
✴ Public / Protected / Private
✴ void / return
✴ Permite sobrecarga
@alberto_deavila
M É T O D O S
✴ Parámetros por defecto
✴ Múltiples retornos
✴ Return no obligatorio
✴ Sobrecarga
✴ Closures
@alberto_deavila
M É T O D O S
@alberto_deavila
M É T O D O S
@alberto_deavila
M É T O D O S
✴ Parámetros por defecto
✴ Múltiples retornos*
✴ Argumentos etiquetados
✴ Argumentos especiales
@alberto_deavila
M É T O D O S
@alberto_deavila
M É T O D O S
@alberto_deavila
M É T O D O S
M É T O D O S
@alberto_deavila
Quiz:
Métodos
@alberto_deavila
M É T O D O S
A. No compila
B. No a String: y: 2016
C. y: 2016
D. -->y: 2016
@alberto_deavila
M É T O D O S
A. No compila
B. No a String: y: 2016
C. y: 2016
D. -->y: 2016
@alberto_deavila
M É T O D O S
A. No compila
B. 10
C. 100
D. 200
@alberto_deavila
M É T O D O S
A. No compila
B. 10
C. 100
D. 200
J AVA < - > G R O O V Y < - > S W I F T
@alberto_deavila
Clases
@alberto_deavila
C L A S E S
✴ Constructores
✴ Getters
✴ Setters
✴ Otros métodos particulares
@alberto_deavila
C L A S E S
✴ Constructores por defecto
✴ Getters y Setters solo para sobreescritura
@alberto_deavila
C L A S E S
@alberto_deavila
C L A S E S
✴ Clases y Estructuras
✴ Almacenan valores
✴ Constructores
✴ Métodos
@alberto_deavila
C L A S E S
@alberto_deavila
C L A S E S
@alberto_deavila
C L A S E S
✴ Capacidades solo en Clases
✴ Herencia
✴ Destructores
✴ Multiples referencias a una instancia
C L A S E S
@alberto_deavila
Quiz:
Clases
@alberto_deavila
C L A S E S
A. No compila
B. alberto de avila
C. albertodeavila
D. alberto deavila
@alberto_deavila
C L A S E S
A. No compila
B. alberto de avila
C. albertodeavila
D. alberto deavila
@alberto_deavila
C L A S E S
A. No compila
B. Error runtime
C. 1
D. 2
@alberto_deavila
C L A S E S
A. No compila
B. Error runtime
C. 1
D. 2
C O N C L U S I O N E S
@alberto_deavila
Conclusiones
B U S C A M O S C O M PA Ñ E R O S
Buscamos nuevos compañeros
Groovy / iOS + Android / Devops
hello@salenda.es
@alberto_deavila
Salenda
¡Muchas gracias!
@alberto_deavila
¿Preguntas?

More Related Content

Viewers also liked

Hacking the Grails Spring Security Plugins
Hacking the Grails Spring Security PluginsHacking the Grails Spring Security Plugins
Hacking the Grails Spring Security PluginsGR8Conf
 
Greach 2014 - Metaprogramming with groovy
Greach 2014 - Metaprogramming with groovyGreach 2014 - Metaprogramming with groovy
Greach 2014 - Metaprogramming with groovyIván López Martín
 
Hacking the Grails Spring Security 2.0 Plugin
Hacking the Grails Spring Security 2.0 PluginHacking the Grails Spring Security 2.0 Plugin
Hacking the Grails Spring Security 2.0 PluginBurt Beckwith
 
T3chFest 2016 - De Java a Groovy: ¡Hora de Aventuras!
T3chFest 2016 - De Java a Groovy: ¡Hora de Aventuras!T3chFest 2016 - De Java a Groovy: ¡Hora de Aventuras!
T3chFest 2016 - De Java a Groovy: ¡Hora de Aventuras!Iván López Martín
 
Advanced GORM - Performance, Customization and Monitoring
Advanced GORM - Performance, Customization and MonitoringAdvanced GORM - Performance, Customization and Monitoring
Advanced GORM - Performance, Customization and MonitoringBurt Beckwith
 
Little Did He Know ...
Little Did He Know ...Little Did He Know ...
Little Did He Know ...Burt Beckwith
 
Codemotion 2013 - Quiero tiempo real y lo quiero para ayer
Codemotion 2013 - Quiero tiempo real y lo quiero para ayerCodemotion 2013 - Quiero tiempo real y lo quiero para ayer
Codemotion 2013 - Quiero tiempo real y lo quiero para ayerIván López Martín
 
Fun With Spring Security
Fun With Spring SecurityFun With Spring Security
Fun With Spring SecurityBurt Beckwith
 
Api architectures for the modern enterprise
Api architectures for the modern enterpriseApi architectures for the modern enterprise
Api architectures for the modern enterpriseCA API Management
 
What is tackled in the Java EE Security API (Java EE 8)
What is tackled in the Java EE Security API (Java EE 8)What is tackled in the Java EE Security API (Java EE 8)
What is tackled in the Java EE Security API (Java EE 8)Rudy De Busscher
 

Viewers also liked (11)

Hacking the Grails Spring Security Plugins
Hacking the Grails Spring Security PluginsHacking the Grails Spring Security Plugins
Hacking the Grails Spring Security Plugins
 
Greach 2014 - Metaprogramming with groovy
Greach 2014 - Metaprogramming with groovyGreach 2014 - Metaprogramming with groovy
Greach 2014 - Metaprogramming with groovy
 
Hacking the Grails Spring Security 2.0 Plugin
Hacking the Grails Spring Security 2.0 PluginHacking the Grails Spring Security 2.0 Plugin
Hacking the Grails Spring Security 2.0 Plugin
 
T3chFest 2016 - De Java a Groovy: ¡Hora de Aventuras!
T3chFest 2016 - De Java a Groovy: ¡Hora de Aventuras!T3chFest 2016 - De Java a Groovy: ¡Hora de Aventuras!
T3chFest 2016 - De Java a Groovy: ¡Hora de Aventuras!
 
Advanced GORM - Performance, Customization and Monitoring
Advanced GORM - Performance, Customization and MonitoringAdvanced GORM - Performance, Customization and Monitoring
Advanced GORM - Performance, Customization and Monitoring
 
Little Did He Know ...
Little Did He Know ...Little Did He Know ...
Little Did He Know ...
 
Codemotion 2013 - Quiero tiempo real y lo quiero para ayer
Codemotion 2013 - Quiero tiempo real y lo quiero para ayerCodemotion 2013 - Quiero tiempo real y lo quiero para ayer
Codemotion 2013 - Quiero tiempo real y lo quiero para ayer
 
Fun With Spring Security
Fun With Spring SecurityFun With Spring Security
Fun With Spring Security
 
Api architectures for the modern enterprise
Api architectures for the modern enterpriseApi architectures for the modern enterprise
Api architectures for the modern enterprise
 
What is tackled in the Java EE Security API (Java EE 8)
What is tackled in the Java EE Security API (Java EE 8)What is tackled in the Java EE Security API (Java EE 8)
What is tackled in the Java EE Security API (Java EE 8)
 
Gorm for cassandra
Gorm for cassandraGorm for cassandra
Gorm for cassandra
 

Recently uploaded

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 

Recently uploaded (9)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 

De Java a Swift pasando por Groovy

  • 1. Salenda De Java a Swift pasando por Groovy Codemotion ’16 Alberto De Ávila Hernández
  • 2. S O B R E M Í ✴ Ingeniero Informático ✴ Team Lead en Salenda ✴ Groovy y Grails dev ✴ Aprendiz de Swift @alberto_deavila
  • 3. S O F T WA R E D E V E L O P M E N T Desarrollos personalizados Atlassian Experts Formación y consultoría @alberto_deavila
  • 4. E X P E R I E N C I A P E R S O N A L @alberto_deavila Mi experiencia personal
  • 5. I N T R O D U C C I Ó N A L O S L E N G U A J E S
  • 6. I N T R O D U C C I Ó N A L O S L E N G U A J E S @alberto_deavila
  • 7. I N T R O D U C C I Ó N A L O S L E N G U A J E S @alberto_deavila
  • 8. I N T R O D U C C I Ó N A G R O O V Y @alberto_deavila ¿Qué es Groovy?
  • 9. I N T R O D U C C I Ó N A G R O O V Y @alberto_deavila ✴ Lenguaje ejecutado sobre JVM ✴ Fácil para desarrolladores Java ✴ Lenguaje dinámico y/o estático ✴ Más legible ✴ Scripting y Android ✴ Apps: Grails, Griffon, Grain y Plugins
  • 10. I N T R O D U C C I Ó N A L O S L E N G U A J E S @alberto_deavila
  • 11. I N T R O D U C C I Ó N A L O S L E N G U A J E S @alberto_deavila
  • 12. I N T R O D U C C I Ó N A L O S L E N G U A J E S @alberto_deavila
  • 13. I N T R O D U C C I Ó N A S W I F T @alberto_deavila ¿Qué es Swift?
  • 14. I N T R O D U C C I Ó N A S W I F T @alberto_deavila ✴ Lenguaje de desarrollo para iOS ✴ Sustituto de Objetive-C ✴ Lenguaje estático ✴ Expresivo, rápido y potente ✴ Frameworks web con Swift: Perfect, Vapor, IBM Kitura...
  • 15. I N T R O D U C C I Ó N A L O S L E N G U A J E S @alberto_deavila
  • 16. I N T R O D U C C I Ó N A L O S L E N G U A J E S @alberto_deavila
  • 17. I N T R O D U C C I Ó N A L O S L E N G U A J E S @alberto_deavila
  • 18. J AVA < - > G R O O V Y < - > S W I F T @alberto_deavila Tipos de datos
  • 19. T I P O S D E D AT O S @alberto_deavila
  • 20. T I P O S D E D AT O S @alberto_deavila
  • 21. T I P O S D E D AT O S @alberto_deavila
  • 22. T I P O S D E D AT O S @alberto_deavila
  • 23. T I P O S D E D AT O S @alberto_deavila
  • 24. T I P O S D E D AT O S @alberto_deavila
  • 25. T I P O S D E D AT O S @alberto_deavila Quiz: Tipos de datos
  • 26. T I P O S D E D AT O S @alberto_deavila A. Error de compilación B. NPE C. 3 y 11 D. 0 y 11
  • 27. T I P O S D E D AT O S @alberto_deavila A. Error de compilación B. NPE C. 3 y 11 D. 0 y 11
  • 28. T I P O S D E D AT O S @alberto_deavila A.3 2 true null B.3 2 MethodNotFound null C.3 2 true MethodNotFound D.3 MethodNotFound(x2) null
  • 29. T I P O S D E D AT O S @alberto_deavila A.3 2 true null B.3 2 MethodNotFound null C.3 2 true MethodNotFound D.3 MethodNotFound(x2) null
  • 30. T I P O S D E D AT O S @alberto_deavila A.Codemotion ’16 3.3 Hola! B.No compila C.Codemotion ’16 3.3 D.Codemotion 3.3 Hola!
  • 31. T I P O S D E D AT O S @alberto_deavila A.Codemotion ’16 3.3 Hola! B.No compila C.Codemotion ’16 3.3 D.Codemotion 3.3 Hola!
  • 32. J AVA < - > G R O O V Y < - > S W I F T @alberto_deavila Operadores
  • 33. O P E R A D O R E S @alberto_deavila ✴ Arítmeticos ✴ Lógicos ✴ instanceof ✴ Bits ✴ Double colon (::)
  • 34. O P E R A D O R E S @alberto_deavila
  • 35. @alberto_deavila O P E R A D O R E S ✴ Groovy Truth* ✴ Elvis ✴ Spread ✴ Safe operator ✴ Sobrecarga de operadores
  • 36. @alberto_deavila O P E R A D O R E S
  • 37. @alberto_deavila O P E R A D O R E S
  • 38. @alberto_deavila O P E R A D O R E S ✴ Rangos ✴ Operadores de overflow ✴ Operador Nil-Coalescing ✴ Operador de comprobador de tipo
  • 39. @alberto_deavila O P E R A D O R E S
  • 40. @alberto_deavila O P E R A D O R E S
  • 41. O P E R A D O R E S @alberto_deavila Quiz: Operadores
  • 42. O P E R A D O R E S @alberto_deavila A. true false false B. false false false C. Produce una excepción D. true true false
  • 43. O P E R A D O R E S @alberto_deavila A. true false false B. false false false C. Produce una excepción D. true true false
  • 44. O P E R A D O R E S @alberto_deavila A. 6 B. 7 C. optional(6) D. optional(7)
  • 45. O P E R A D O R E S @alberto_deavila A. 6 B. 7 C. optional(6) D. optional(7)
  • 46. J AVA < - > G R O O V Y < - > S W I F T @alberto_deavila Estructuras de control
  • 47. M É T O D O S @alberto_deavila ✴ for / while / do-while ✴ switch / if / else ✴ return / break ✴try / catch
  • 48. @alberto_deavila E S T R U C T U R A S D E C O N T R O L ✴ each / times ✴ switch ✴ collect ✴ find / findAll / count
  • 49. @alberto_deavila E S T R U C T U R A S D E C O N T R O L
  • 50. @alberto_deavila E S T R U C T U R A S D E C O N T R O L
  • 51. @alberto_deavila E S T R U C T U R A S D E C O N T R O L
  • 52. @alberto_deavila E S T R U C T U R A S D E C O N T R O L ✴ for-in ✴ repeat-while ✴ switch ✴ guard
  • 53. @alberto_deavila E S T R U C T U R A S D E C O N T R O L
  • 54. @alberto_deavila E S T R U C T U R A S D E C O N T R O L
  • 55. E S T R U C T U R A S D E C O N T R O L @alberto_deavila Quiz: Estructuras de control
  • 56. @alberto_deavila E S T R U C T U R A S D E C O N T R O L A. 1 B. 2 C. 3 D. No compila
  • 57. @alberto_deavila E S T R U C T U R A S D E C O N T R O L A. 1 B. 2 C. 3 D. No compila
  • 58. J AVA < - > G R O O V Y < - > S W I F T @alberto_deavila Métodos
  • 59. M É T O D O S @alberto_deavila ✴ Public / Protected / Private ✴ void / return ✴ Permite sobrecarga
  • 60. @alberto_deavila M É T O D O S ✴ Parámetros por defecto ✴ Múltiples retornos ✴ Return no obligatorio ✴ Sobrecarga ✴ Closures
  • 63. @alberto_deavila M É T O D O S ✴ Parámetros por defecto ✴ Múltiples retornos* ✴ Argumentos etiquetados ✴ Argumentos especiales
  • 67. M É T O D O S @alberto_deavila Quiz: Métodos
  • 68. @alberto_deavila M É T O D O S A. No compila B. No a String: y: 2016 C. y: 2016 D. -->y: 2016
  • 69. @alberto_deavila M É T O D O S A. No compila B. No a String: y: 2016 C. y: 2016 D. -->y: 2016
  • 70. @alberto_deavila M É T O D O S A. No compila B. 10 C. 100 D. 200
  • 71. @alberto_deavila M É T O D O S A. No compila B. 10 C. 100 D. 200
  • 72. J AVA < - > G R O O V Y < - > S W I F T @alberto_deavila Clases
  • 73. @alberto_deavila C L A S E S ✴ Constructores ✴ Getters ✴ Setters ✴ Otros métodos particulares
  • 74. @alberto_deavila C L A S E S ✴ Constructores por defecto ✴ Getters y Setters solo para sobreescritura
  • 76. @alberto_deavila C L A S E S ✴ Clases y Estructuras ✴ Almacenan valores ✴ Constructores ✴ Métodos
  • 79. @alberto_deavila C L A S E S ✴ Capacidades solo en Clases ✴ Herencia ✴ Destructores ✴ Multiples referencias a una instancia
  • 80. C L A S E S @alberto_deavila Quiz: Clases
  • 81. @alberto_deavila C L A S E S A. No compila B. alberto de avila C. albertodeavila D. alberto deavila
  • 82. @alberto_deavila C L A S E S A. No compila B. alberto de avila C. albertodeavila D. alberto deavila
  • 83. @alberto_deavila C L A S E S A. No compila B. Error runtime C. 1 D. 2
  • 84. @alberto_deavila C L A S E S A. No compila B. Error runtime C. 1 D. 2
  • 85. C O N C L U S I O N E S @alberto_deavila Conclusiones
  • 86. B U S C A M O S C O M PA Ñ E R O S Buscamos nuevos compañeros Groovy / iOS + Android / Devops hello@salenda.es @alberto_deavila