Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

De Java a Swift pasando por Groovy

1,569 views

Published on

Comparativa de 3 lenguajes para el desarrollo de aplicaciones móviles: Java y Groovy para Android y Swift para iOS.

Published in: Technology
  • Be the first to comment

De Java a Swift pasando por Groovy

  1. 1. Salenda De Java a Swift pasando por Groovy Codemotion ’16 Alberto De Ávila Hernández
  2. 2. S O B R E M Í ✴ Ingeniero Informático ✴ Team Lead en Salenda ✴ Groovy y Grails dev ✴ Aprendiz de Swift @alberto_deavila
  3. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 13. I N T R O D U C C I Ó N A S W I F T @alberto_deavila ¿Qué es Swift?
  14. 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. 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. 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. 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. 18. J AVA < - > G R O O V Y < - > S W I F T @alberto_deavila Tipos de datos
  19. 19. T I P O S D E D AT O S @alberto_deavila
  20. 20. T I P O S D E D AT O S @alberto_deavila
  21. 21. T I P O S D E D AT O S @alberto_deavila
  22. 22. T I P O S D E D AT O S @alberto_deavila
  23. 23. T I P O S D E D AT O S @alberto_deavila
  24. 24. T I P O S D E D AT O S @alberto_deavila
  25. 25. T I P O S D E D AT O S @alberto_deavila Quiz: Tipos de datos
  26. 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. 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. 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. 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. 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. 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. 32. J AVA < - > G R O O V Y < - > S W I F T @alberto_deavila Operadores
  33. 33. O P E R A D O R E S @alberto_deavila ✴ Arítmeticos ✴ Lógicos ✴ instanceof ✴ Bits ✴ Double colon (::)
  34. 34. O P E R A D O R E S @alberto_deavila
  35. 35. @alberto_deavila O P E R A D O R E S ✴ Groovy Truth* ✴ Elvis ✴ Spread ✴ Safe operator ✴ Sobrecarga de operadores
  36. 36. @alberto_deavila O P E R A D O R E S
  37. 37. @alberto_deavila O P E R A D O R E S
  38. 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. 39. @alberto_deavila O P E R A D O R E S
  40. 40. @alberto_deavila O P E R A D O R E S
  41. 41. O P E R A D O R E S @alberto_deavila Quiz: Operadores
  42. 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. 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. 44. O P E R A D O R E S @alberto_deavila A. 6 B. 7 C. optional(6) D. optional(7)
  45. 45. O P E R A D O R E S @alberto_deavila A. 6 B. 7 C. optional(6) D. optional(7)
  46. 46. J AVA < - > G R O O V Y < - > S W I F T @alberto_deavila Estructuras de control
  47. 47. M É T O D O S @alberto_deavila ✴ for / while / do-while ✴ switch / if / else ✴ return / break ✴try / catch
  48. 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. 49. @alberto_deavila E S T R U C T U R A S D E C O N T R O L
  50. 50. @alberto_deavila E S T R U C T U R A S D E C O N T R O L
  51. 51. @alberto_deavila E S T R U C T U R A S D E C O N T R O L
  52. 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. 53. @alberto_deavila E S T R U C T U R A S D E C O N T R O L
  54. 54. @alberto_deavila E S T R U C T U R A S D E C O N T R O L
  55. 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. 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. 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. 58. J AVA < - > G R O O V Y < - > S W I F T @alberto_deavila Métodos
  59. 59. M É T O D O S @alberto_deavila ✴ Public / Protected / Private ✴ void / return ✴ Permite sobrecarga
  60. 60. @alberto_deavila M É T O D O S ✴ Parámetros por defecto ✴ Múltiples retornos ✴ Return no obligatorio ✴ Sobrecarga ✴ Closures
  61. 61. @alberto_deavila M É T O D O S
  62. 62. @alberto_deavila M É T O D O S
  63. 63. @alberto_deavila M É T O D O S ✴ Parámetros por defecto ✴ Múltiples retornos* ✴ Argumentos etiquetados ✴ Argumentos especiales
  64. 64. @alberto_deavila M É T O D O S
  65. 65. @alberto_deavila M É T O D O S
  66. 66. @alberto_deavila M É T O D O S
  67. 67. M É T O D O S @alberto_deavila Quiz: Métodos
  68. 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. 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. 70. @alberto_deavila M É T O D O S A. No compila B. 10 C. 100 D. 200
  71. 71. @alberto_deavila M É T O D O S A. No compila B. 10 C. 100 D. 200
  72. 72. J AVA < - > G R O O V Y < - > S W I F T @alberto_deavila Clases
  73. 73. @alberto_deavila C L A S E S ✴ Constructores ✴ Getters ✴ Setters ✴ Otros métodos particulares
  74. 74. @alberto_deavila C L A S E S ✴ Constructores por defecto ✴ Getters y Setters solo para sobreescritura
  75. 75. @alberto_deavila C L A S E S
  76. 76. @alberto_deavila C L A S E S ✴ Clases y Estructuras ✴ Almacenan valores ✴ Constructores ✴ Métodos
  77. 77. @alberto_deavila C L A S E S
  78. 78. @alberto_deavila C L A S E S
  79. 79. @alberto_deavila C L A S E S ✴ Capacidades solo en Clases ✴ Herencia ✴ Destructores ✴ Multiples referencias a una instancia
  80. 80. C L A S E S @alberto_deavila Quiz: Clases
  81. 81. @alberto_deavila C L A S E S A. No compila B. alberto de avila C. albertodeavila D. alberto deavila
  82. 82. @alberto_deavila C L A S E S A. No compila B. alberto de avila C. albertodeavila D. alberto deavila
  83. 83. @alberto_deavila C L A S E S A. No compila B. Error runtime C. 1 D. 2
  84. 84. @alberto_deavila C L A S E S A. No compila B. Error runtime C. 1 D. 2
  85. 85. C O N C L U S I O N E S @alberto_deavila Conclusiones
  86. 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
  87. 87. Salenda ¡Muchas gracias! @alberto_deavila ¿Preguntas?

×