SlideShare uma empresa Scribd logo
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?

Mais conteúdo relacionado

Destaque

Hacking the Grails Spring Security Plugins
Hacking the Grails Spring Security PluginsHacking the Grails Spring Security Plugins
Hacking the Grails Spring Security Plugins
GR8Conf
 
Greach 2014 - Metaprogramming with groovy
Greach 2014 - Metaprogramming with groovyGreach 2014 - Metaprogramming with groovy
Greach 2014 - Metaprogramming with groovy
Ivá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 Plugin
Burt 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 Monitoring
Burt 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 ayer
Iván López Martín
 
Fun With Spring Security
Fun With Spring SecurityFun With Spring Security
Fun With Spring Security
Burt Beckwith
 
Api architectures for the modern enterprise
Api architectures for the modern enterpriseApi architectures for the modern enterprise
Api architectures for the modern enterprise
CA 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
 
Gorm for cassandra
Gorm for cassandraGorm for cassandra
Gorm for cassandra
Rafael Bermúdez Míguez
 

Destaque (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
 

Último

Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
2m Assessoria
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 

Último (10)

Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 

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