SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
Estetoscopio
Envía mensajes de depuración a tu móvil desde
tus aplicaciones
Una aplicación nativa android desarrollada durante el curso
Developing Android Apps - GDD Tenerife - 2015
https://www.udacity.com/course/developing-android-apps--ud853
Juan Ignacio Rodríguez de León
@jileon en twitter
¿Qué hace?
Muestra en pantalla mensajes
enviados por UDP
Los mensajes tienes niveles, al
estilo de los mensajes de Log
Los mensajes están pensados
para ayudar en la depuración de
código, cuando no puedes
hacer un print (Por ejemplo,
desarrollo en servidores)
Niveles de mensajes
Mensajes de tipo informativo (INFO)
Nivel de amenaza inexistente
Niveles de mensajes
Mensajes de tipo informativo (INFO)
Nivel de amenaza inexistente
Mensajes de aviso (WARNING)
Nivel de amenaza indeterminado: Puede que sea un
problema para ti, o quizá no. Tranquilidad
Niveles de mensajes
Mensajes de tipo informativo (INFO)
Nivel de amenaza inexistente
Mensajes de aviso (WARNING)
Nivel de amenaza indeterminado: Puede que sea un
problema para ti, o quizá no. Tranquilidad
Mensajes de error (ERROR)
La cosa pinta mal. Hay un problema y casi seguro
que es culpa tuya.
Niveles de mensajes
Mensajes de tipo informativo (INFO)
Nivel de amenaza inexistente
Mensajes de aviso (WARNING)
Nivel de amenaza indeterminado: Puede que sea un
problema para ti, o quizá no. Sigamos tranquilos
Mensajes de error (ERROR)
La cosa pinta mal. Hay un problema y casi seguro
que es culpa tuya.
Mensajes de pánico (PANIC)
Problemón. Algo ha ido catastróficamente mal.
Ponte las pilas.
¿Cómo lo hace? (1/2)
• Instala un servicio. El servicio usa un Thread
para oír datagramas UDP en el puerto 31416
• Cuando llega un mensaje el servidor lo
almacena en una base de datos SQLite
• El servidor notifica a la actividad principal que
ha llegado un nuevo mensaje usando
LocalBroadcast
¿Cómo lo hace? (2/2)
• En la actividad principal hay un
Adapter que vincula una
ListView con la base de datos
• Hay un CustomView que
muestra gráficamente la
proporción entre los niveles de
los mensajes que han llegado
Demasiado rojo
mala señal
A la hora de vincular el socket UDP, Android
te vincula a la dirección IP local, por lo que
no acepta conexiones desde otras máquinas.
Problemas encontrados
A la hora de vincular el socket UDP, Android
te vincula a la dirección IP local, por lo que
no acepta conexiones desde otras máquinas.
Problemas encontrados
Solución: Hay que indicar la dirección 0.0.0.0
cuando vinculamos el socket, para que este oiga
en cualquiera de las interfaces de red.
Pensaba que podía superarlo…
La verdad es que Odio a muerte no acabo de estar
cómodo programando en Java. Es un
inconveniente importante para desarrollar
aplicaciones Android
El auténtico problema
… pero me equivocaba
No hay razones de peso para que no se pueda
usar otros lenguajes que funcionen en la JVM.
Al principio probé con Scala como reemplazo.
Es posible hacerlo pero resulta complicado.
Conseguí compilar y ejecutar un “Hola, mundo”,
pero acabé a la una de la mañana, no muy
seguro de cómo lo había conseguido.*
La solución
* Estoy seguro de que personas más inteligentes que yo tendrán una experiencia
diferente y podrán hacerlo con facilidad. Scala es un lenguaje excelente. No se le
puede culpar por mi torpeza.
Con Groovy fue mucho más fácil. De hecho, la
aplicación está desarrollada enteramente en Groovy.
Groovy es un lenguaje con capacidad funcional,
dinámico y con muchísimas virtudes. Se integra muy
bien con Java. Mucho más cercano a mi experiencia,
que ahora mismo en un 90% de desarrollo en Python y
un 10% en Javascript.
Como en todo, hay ventajas e inconvenientes.
Groovy
Ventajas de Groovy
Casi* un superconjunto de Java. Los desarrolladores de
java tienen una curva de aprendizaje suave. Pueden usar
las nuevas capacidades poco a poco.
* Como siempre, el diablo está en los detalles. Pero son pocas las diferencias.
Ventajas de Groovy
Mucho más avanzado que Java: Clausuras, Intents,
programación funcional, dinámico vs estático,
metaclases, funciones virtuales y muchas cosas más
* Como siempre, el diablo está en los detalles. Pero son pocas las diferencias.
Casi* un superconjunto de Java. Los desarrolladores de
java tienen una curva de aprendizaje suave. Pueden usar
las nuevas capacidades poco a poco.
Ventajas de Groovy
Mucho más avanzado que Java: Clausuras, Intents,
programación funcional, dinámico vs estático,
metaclases, funciones virtuales y muchas cosas más
* Como siempre, el diablo está en los detalles. Pero son pocas las diferencias.
Casi* un superconjunto de Java. Los desarrolladores de
java tienen una curva de aprendizaje suave. Pueden usar
las nuevas capacidades poco a poco.
Relativamente fácil de conseguir que funcione con
Android Studio. Solo hay que tocar un fichero .gradle
Ventajas de Groovy
Mucho más avanzado que Java: Clausuras, Intents,
programación funcional, dinámico vs estático,
metaclases, funciones virtuales y muchas cosas más
* Como siempre, el diablo está en los detalles. Pero son pocas las diferencias.
Casi* un superconjunto de Java. Los desarrolladores de
java tienen una curva de aprendizaje suave. Pueden usar
las nuevas capacidades poco a poco.
Relativamente fácil de conseguir que funcione con
Android Studio. Solo hay que tocar un fichero .gradle
Menos niveles de abstracción. Menos código. Menos
objetos y clases. Más legibilidad.
Inconvenientes de Groovy
Hay un plugin de integración con Android Studio. Está
bien pero con algún defecto. Nada importante.
Inconvenientes de Groovy
Hay un
bien pero con algún defecto. Nada importante.
Al final es una librería más, así que aumentará el tamaño
del programa. Existen herramientas para esto.
Inconvenientes de Groovy
Hay un
bien pero con algún defecto. Nada importante.
Al final es una librería más, así que aumentará el tamaño
del programa. Existen herramientas para esto.
Hay que superar los límites mentales impuestos por
Java. Esto en realidad tendría que ir en ventajas
Inconvenientes de Groovy
Hay un
bien pero con algún defecto. Nada importante.
Al final es una librería más, así que aumentará el tamaño
del programa. Existen herramientas para esto.
Hay que superar los límites mentales impuestos por
Java. Esto e
El tipado dinámico puede ser una fuente de nuevos
errores (Pero programas usando tests, ¿Verdad?)
Inconvenientes de Groovy
Hay un
bien pero con algún defecto. Nada importante.
Al final es una librería más, así que aumentará el tamaño
del programa. Existen herramientas para esto.
Hay que superar los límites mentales impuestos por
Java. Esto e
El tipado dinámico puede ser una fuente de nuevos
errores (Pero programas usando tests, ¿Verdad?)
El logo de Groovy es horrible. No, en serio. ¿En qué
estaban pensando?
Inconvenientes de Groovy
Hay un plugin de integración con Android Studio. Está
bien pero con algún defecto. Nada importante.
Al final es una librería más, así que aumentará el tamaño
del programa. Existe herramientas para esto.
Hay que superar los límites mentales impuestos por
Java. Esto e
El tipado dinámico puede ser una fuente de nuevos
errores (Pero programas usando tests, ¿Verdad?)
El logo de Groovy es horrible. No, en serio. ¿En qué
estaban pensando?
Qué he aprendido
Groovy Mola. Mucho.
Android (4%) (Antes: 2%)
Groovy (33%) (Antes: 0%)
El desarrollo en Android es muy lento, por
culpa de tener que probar todo en un
emulador.
Todo lo que puedas desarrollar y testear fuera
del emulador va en tu beneficio (Pero no es fácil)
Código fuente en:
https://github.com/euribates/estetoscopio

Más contenido relacionado

La actualidad más candente

Java completo y agragado
Java completo y agragadoJava completo y agragado
Java completo y agragado
Maria
 

La actualidad más candente (9)

Java
JavaJava
Java
 
Workshop Calabash Appium
Workshop Calabash AppiumWorkshop Calabash Appium
Workshop Calabash Appium
 
BDD & Cucumber
BDD & CucumberBDD & Cucumber
BDD & Cucumber
 
(Codemotion 2014) 20 lenguajes en 40 minutos
(Codemotion 2014) 20 lenguajes en 40 minutos(Codemotion 2014) 20 lenguajes en 40 minutos
(Codemotion 2014) 20 lenguajes en 40 minutos
 
Java completo y agragado
Java completo y agragadoJava completo y agragado
Java completo y agragado
 
Revista Rails Girls Venezuela Mayo 2018
Revista Rails  Girls Venezuela Mayo  2018Revista Rails  Girls Venezuela Mayo  2018
Revista Rails Girls Venezuela Mayo 2018
 
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!
 
Codemotion 2015 crash y youdebug
Codemotion 2015   crash y youdebugCodemotion 2015   crash y youdebug
Codemotion 2015 crash y youdebug
 
Hack x crack_java
Hack x crack_javaHack x crack_java
Hack x crack_java
 

Destacado

Presentacion de estetoscopio y baumanometro
Presentacion de estetoscopio y baumanometroPresentacion de estetoscopio y baumanometro
Presentacion de estetoscopio y baumanometro
Christian Sanchez
 
Vendaje neuromuscular
Vendaje neuromuscularVendaje neuromuscular
Vendaje neuromuscular
Mildred Irais
 
Ultrasonido
UltrasonidoUltrasonido
Ultrasonido
mmaya
 
Vías de administracion de los fármacos
Vías de administracion de los fármacosVías de administracion de los fármacos
Vías de administracion de los fármacos
exelloaiza
 
TEJIDO SANGUÍNEO
TEJIDO SANGUÍNEOTEJIDO SANGUÍNEO
TEJIDO SANGUÍNEO
Erik Sandre
 

Destacado (20)

Estetoscopio
EstetoscopioEstetoscopio
Estetoscopio
 
Microscopio y estetoscopio
Microscopio y estetoscopioMicroscopio y estetoscopio
Microscopio y estetoscopio
 
Estetoscopio PresentacióN
Estetoscopio PresentacióNEstetoscopio PresentacióN
Estetoscopio PresentacióN
 
Presentacion de estetoscopio y baumanometro
Presentacion de estetoscopio y baumanometroPresentacion de estetoscopio y baumanometro
Presentacion de estetoscopio y baumanometro
 
Estetoscopio
EstetoscopioEstetoscopio
Estetoscopio
 
Usos del estetoscopio
Usos del estetoscopioUsos del estetoscopio
Usos del estetoscopio
 
Tipos de estetoscopios
Tipos de estetoscopiosTipos de estetoscopios
Tipos de estetoscopios
 
Microscopio, estetoscopio y rayos X
Microscopio, estetoscopio y rayos XMicroscopio, estetoscopio y rayos X
Microscopio, estetoscopio y rayos X
 
Trujillo 2016, El estetoscopio tiene pantalla de laennec a rus 2016
Trujillo 2016,  El estetoscopio tiene pantalla de laennec a rus 2016Trujillo 2016,  El estetoscopio tiene pantalla de laennec a rus 2016
Trujillo 2016, El estetoscopio tiene pantalla de laennec a rus 2016
 
Sangre michelle morfo
Sangre michelle morfoSangre michelle morfo
Sangre michelle morfo
 
(2014-03-17)VENDAJE NEUROMUSCULAR
(2014-03-17)VENDAJE NEUROMUSCULAR(2014-03-17)VENDAJE NEUROMUSCULAR
(2014-03-17)VENDAJE NEUROMUSCULAR
 
Ultrasonido terapeutico
Ultrasonido terapeuticoUltrasonido terapeutico
Ultrasonido terapeutico
 
Ultrasonido terapéutico
Ultrasonido terapéuticoUltrasonido terapéutico
Ultrasonido terapéutico
 
Vendaje Neuromuscular
Vendaje Neuromuscular Vendaje Neuromuscular
Vendaje Neuromuscular
 
Vendaje neuromuscular
Vendaje neuromuscularVendaje neuromuscular
Vendaje neuromuscular
 
Tejido sanguíneo 2012
Tejido sanguíneo 2012Tejido sanguíneo 2012
Tejido sanguíneo 2012
 
Ultrasonido
UltrasonidoUltrasonido
Ultrasonido
 
Vías de administracion de los fármacos
Vías de administracion de los fármacosVías de administracion de los fármacos
Vías de administracion de los fármacos
 
Historia de la Semiología
Historia de la SemiologíaHistoria de la Semiología
Historia de la Semiología
 
TEJIDO SANGUÍNEO
TEJIDO SANGUÍNEOTEJIDO SANGUÍNEO
TEJIDO SANGUÍNEO
 

Similar a Presentación estetoscopio

ventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticosventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticos
Irving Muñoz
 
ventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticosventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticos
Irving Muñoz
 
My programming language 04 05-2014
My programming language 04 05-2014My programming language 04 05-2014
My programming language 04 05-2014
Neptuno Networks
 
COMPLEMENTOS DEL NAVEGADOR
COMPLEMENTOS DEL NAVEGADORCOMPLEMENTOS DEL NAVEGADOR
COMPLEMENTOS DEL NAVEGADOR
JOSELINE
 
Introduccic3b3n bc3a1sica-a-netbeans-para-desarrollo-java - copia
Introduccic3b3n bc3a1sica-a-netbeans-para-desarrollo-java - copiaIntroduccic3b3n bc3a1sica-a-netbeans-para-desarrollo-java - copia
Introduccic3b3n bc3a1sica-a-netbeans-para-desarrollo-java - copia
esekazz
 

Similar a Presentación estetoscopio (20)

Code Blast 2012 - Node.js
Code Blast 2012 - Node.jsCode Blast 2012 - Node.js
Code Blast 2012 - Node.js
 
joc sobre Android
joc sobre Androidjoc sobre Android
joc sobre Android
 
Webinar: Groovy y la producttividad para el desarrollador Java
Webinar: Groovy y la producttividad para el desarrollador JavaWebinar: Groovy y la producttividad para el desarrollador Java
Webinar: Groovy y la producttividad para el desarrollador Java
 
Introducción a la progrogramación orientada a objetos - Java
Introducción a la progrogramación orientada a objetos - JavaIntroducción a la progrogramación orientada a objetos - Java
Introducción a la progrogramación orientada a objetos - Java
 
ventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticosventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticos
 
ventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticosventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticos
 
introduccion java a caracteristicas
introduccion java a caracteristicasintroduccion java a caracteristicas
introduccion java a caracteristicas
 
My programming language 04 05-2014
My programming language 04 05-2014My programming language 04 05-2014
My programming language 04 05-2014
 
Películas Y Series Sin costo Descargar Películas Sin coste En E...
Películas Y Series Sin costo Descargar Películas Sin coste En E...Películas Y Series Sin costo Descargar Películas Sin coste En E...
Películas Y Series Sin costo Descargar Películas Sin coste En E...
 
Java
JavaJava
Java
 
Historia de c++
Historia de c++Historia de c++
Historia de c++
 
Manual de Java.pdf
Manual de  Java.pdfManual de  Java.pdf
Manual de Java.pdf
 
Manual de Java.pdf
Manual de  Java.pdfManual de  Java.pdf
Manual de Java.pdf
 
COMPLEMENTOS DEL NAVEGADOR
COMPLEMENTOS DEL NAVEGADORCOMPLEMENTOS DEL NAVEGADOR
COMPLEMENTOS DEL NAVEGADOR
 
Manual de-java
Manual de-javaManual de-java
Manual de-java
 
Historia de c++
Historia de c++Historia de c++
Historia de c++
 
Java Y Robocode
Java Y RobocodeJava Y Robocode
Java Y Robocode
 
Unidad 2. Lenguaje orientado a objetos
Unidad 2. Lenguaje orientado a objetosUnidad 2. Lenguaje orientado a objetos
Unidad 2. Lenguaje orientado a objetos
 
Introduccic3b3n bc3a1sica-a-netbeans-para-desarrollo-java - copia
Introduccic3b3n bc3a1sica-a-netbeans-para-desarrollo-java - copiaIntroduccic3b3n bc3a1sica-a-netbeans-para-desarrollo-java - copia
Introduccic3b3n bc3a1sica-a-netbeans-para-desarrollo-java - copia
 
Android QuickStart
Android QuickStartAndroid QuickStart
Android QuickStart
 

Más de Juan Rodríguez

Más de Juan Rodríguez (20)

Estados imposibles y como evitarlos
Estados imposibles y como evitarlosEstados imposibles y como evitarlos
Estados imposibles y como evitarlos
 
Introduction to BDD (Behavior-Driven Development)
Introduction to BDD (Behavior-Driven Development)Introduction to BDD (Behavior-Driven Development)
Introduction to BDD (Behavior-Driven Development)
 
Vue.js: El framework javascript para muggles
Vue.js: El framework javascript para mugglesVue.js: El framework javascript para muggles
Vue.js: El framework javascript para muggles
 
Introducción a jupyter (antes i python notebook)
Introducción a jupyter (antes i python notebook)Introducción a jupyter (antes i python notebook)
Introducción a jupyter (antes i python notebook)
 
Acceder a C desde Python (O viceversa)
Acceder a C desde Python (O viceversa)Acceder a C desde Python (O viceversa)
Acceder a C desde Python (O viceversa)
 
Viaje al centro de la locura con Javascript
Viaje al centro de la locura con JavascriptViaje al centro de la locura con Javascript
Viaje al centro de la locura con Javascript
 
Una imagen vale más que mil mentiras
Una imagen vale más que mil mentirasUna imagen vale más que mil mentiras
Una imagen vale más que mil mentiras
 
Introducción a DSL (Lenguajes Específicos de Dominios) con Python
Introducción a DSL (Lenguajes Específicos de Dominios) con PythonIntroducción a DSL (Lenguajes Específicos de Dominios) con Python
Introducción a DSL (Lenguajes Específicos de Dominios) con Python
 
Charla introducción a RaspberryPI
Charla introducción a RaspberryPICharla introducción a RaspberryPI
Charla introducción a RaspberryPI
 
Guia (breve) de supervivencia a python 3
Guia (breve) de supervivencia a python 3Guia (breve) de supervivencia a python 3
Guia (breve) de supervivencia a python 3
 
¡A todo Kanban! ~ Introducción a kanban
¡A todo Kanban! ~ Introducción a kanban¡A todo Kanban! ~ Introducción a kanban
¡A todo Kanban! ~ Introducción a kanban
 
02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional
 
01 el lenguaje Python
01 el lenguaje Python01 el lenguaje Python
01 el lenguaje Python
 
00 introducción a Python
00 introducción a Python00 introducción a Python
00 introducción a Python
 
Taller de introducción al desarrollo web con Django
Taller de introducción al desarrollo web con DjangoTaller de introducción al desarrollo web con Django
Taller de introducción al desarrollo web con Django
 
Presentación appy/pod
Presentación appy/podPresentación appy/pod
Presentación appy/pod
 
Presentacion Google Mini Adeje 16 Oct 2008
Presentacion Google Mini Adeje 16 Oct 2008Presentacion Google Mini Adeje 16 Oct 2008
Presentacion Google Mini Adeje 16 Oct 2008
 
Algunos recursos para desarrollo Web
Algunos recursos para desarrollo WebAlgunos recursos para desarrollo Web
Algunos recursos para desarrollo Web
 
Hojas de estilo CSS (Cascade Style Sheets)
Hojas de estilo CSS (Cascade Style Sheets)Hojas de estilo CSS (Cascade Style Sheets)
Hojas de estilo CSS (Cascade Style Sheets)
 
Extranet Parlamento
Extranet ParlamentoExtranet Parlamento
Extranet Parlamento
 

Presentación estetoscopio

  • 1. Estetoscopio Envía mensajes de depuración a tu móvil desde tus aplicaciones Una aplicación nativa android desarrollada durante el curso Developing Android Apps - GDD Tenerife - 2015 https://www.udacity.com/course/developing-android-apps--ud853 Juan Ignacio Rodríguez de León @jileon en twitter
  • 2. ¿Qué hace? Muestra en pantalla mensajes enviados por UDP Los mensajes tienes niveles, al estilo de los mensajes de Log Los mensajes están pensados para ayudar en la depuración de código, cuando no puedes hacer un print (Por ejemplo, desarrollo en servidores)
  • 3. Niveles de mensajes Mensajes de tipo informativo (INFO) Nivel de amenaza inexistente
  • 4. Niveles de mensajes Mensajes de tipo informativo (INFO) Nivel de amenaza inexistente Mensajes de aviso (WARNING) Nivel de amenaza indeterminado: Puede que sea un problema para ti, o quizá no. Tranquilidad
  • 5. Niveles de mensajes Mensajes de tipo informativo (INFO) Nivel de amenaza inexistente Mensajes de aviso (WARNING) Nivel de amenaza indeterminado: Puede que sea un problema para ti, o quizá no. Tranquilidad Mensajes de error (ERROR) La cosa pinta mal. Hay un problema y casi seguro que es culpa tuya.
  • 6. Niveles de mensajes Mensajes de tipo informativo (INFO) Nivel de amenaza inexistente Mensajes de aviso (WARNING) Nivel de amenaza indeterminado: Puede que sea un problema para ti, o quizá no. Sigamos tranquilos Mensajes de error (ERROR) La cosa pinta mal. Hay un problema y casi seguro que es culpa tuya. Mensajes de pánico (PANIC) Problemón. Algo ha ido catastróficamente mal. Ponte las pilas.
  • 7. ¿Cómo lo hace? (1/2) • Instala un servicio. El servicio usa un Thread para oír datagramas UDP en el puerto 31416 • Cuando llega un mensaje el servidor lo almacena en una base de datos SQLite • El servidor notifica a la actividad principal que ha llegado un nuevo mensaje usando LocalBroadcast
  • 8. ¿Cómo lo hace? (2/2) • En la actividad principal hay un Adapter que vincula una ListView con la base de datos • Hay un CustomView que muestra gráficamente la proporción entre los niveles de los mensajes que han llegado Demasiado rojo mala señal
  • 9. A la hora de vincular el socket UDP, Android te vincula a la dirección IP local, por lo que no acepta conexiones desde otras máquinas. Problemas encontrados
  • 10. A la hora de vincular el socket UDP, Android te vincula a la dirección IP local, por lo que no acepta conexiones desde otras máquinas. Problemas encontrados Solución: Hay que indicar la dirección 0.0.0.0 cuando vinculamos el socket, para que este oiga en cualquiera de las interfaces de red.
  • 11. Pensaba que podía superarlo… La verdad es que Odio a muerte no acabo de estar cómodo programando en Java. Es un inconveniente importante para desarrollar aplicaciones Android El auténtico problema
  • 12. … pero me equivocaba
  • 13. No hay razones de peso para que no se pueda usar otros lenguajes que funcionen en la JVM. Al principio probé con Scala como reemplazo. Es posible hacerlo pero resulta complicado. Conseguí compilar y ejecutar un “Hola, mundo”, pero acabé a la una de la mañana, no muy seguro de cómo lo había conseguido.* La solución * Estoy seguro de que personas más inteligentes que yo tendrán una experiencia diferente y podrán hacerlo con facilidad. Scala es un lenguaje excelente. No se le puede culpar por mi torpeza.
  • 14. Con Groovy fue mucho más fácil. De hecho, la aplicación está desarrollada enteramente en Groovy. Groovy es un lenguaje con capacidad funcional, dinámico y con muchísimas virtudes. Se integra muy bien con Java. Mucho más cercano a mi experiencia, que ahora mismo en un 90% de desarrollo en Python y un 10% en Javascript. Como en todo, hay ventajas e inconvenientes. Groovy
  • 15. Ventajas de Groovy Casi* un superconjunto de Java. Los desarrolladores de java tienen una curva de aprendizaje suave. Pueden usar las nuevas capacidades poco a poco. * Como siempre, el diablo está en los detalles. Pero son pocas las diferencias.
  • 16. Ventajas de Groovy Mucho más avanzado que Java: Clausuras, Intents, programación funcional, dinámico vs estático, metaclases, funciones virtuales y muchas cosas más * Como siempre, el diablo está en los detalles. Pero son pocas las diferencias. Casi* un superconjunto de Java. Los desarrolladores de java tienen una curva de aprendizaje suave. Pueden usar las nuevas capacidades poco a poco.
  • 17. Ventajas de Groovy Mucho más avanzado que Java: Clausuras, Intents, programación funcional, dinámico vs estático, metaclases, funciones virtuales y muchas cosas más * Como siempre, el diablo está en los detalles. Pero son pocas las diferencias. Casi* un superconjunto de Java. Los desarrolladores de java tienen una curva de aprendizaje suave. Pueden usar las nuevas capacidades poco a poco. Relativamente fácil de conseguir que funcione con Android Studio. Solo hay que tocar un fichero .gradle
  • 18. Ventajas de Groovy Mucho más avanzado que Java: Clausuras, Intents, programación funcional, dinámico vs estático, metaclases, funciones virtuales y muchas cosas más * Como siempre, el diablo está en los detalles. Pero son pocas las diferencias. Casi* un superconjunto de Java. Los desarrolladores de java tienen una curva de aprendizaje suave. Pueden usar las nuevas capacidades poco a poco. Relativamente fácil de conseguir que funcione con Android Studio. Solo hay que tocar un fichero .gradle Menos niveles de abstracción. Menos código. Menos objetos y clases. Más legibilidad.
  • 19. Inconvenientes de Groovy Hay un plugin de integración con Android Studio. Está bien pero con algún defecto. Nada importante.
  • 20. Inconvenientes de Groovy Hay un bien pero con algún defecto. Nada importante. Al final es una librería más, así que aumentará el tamaño del programa. Existen herramientas para esto.
  • 21. Inconvenientes de Groovy Hay un bien pero con algún defecto. Nada importante. Al final es una librería más, así que aumentará el tamaño del programa. Existen herramientas para esto. Hay que superar los límites mentales impuestos por Java. Esto en realidad tendría que ir en ventajas
  • 22. Inconvenientes de Groovy Hay un bien pero con algún defecto. Nada importante. Al final es una librería más, así que aumentará el tamaño del programa. Existen herramientas para esto. Hay que superar los límites mentales impuestos por Java. Esto e El tipado dinámico puede ser una fuente de nuevos errores (Pero programas usando tests, ¿Verdad?)
  • 23. Inconvenientes de Groovy Hay un bien pero con algún defecto. Nada importante. Al final es una librería más, así que aumentará el tamaño del programa. Existen herramientas para esto. Hay que superar los límites mentales impuestos por Java. Esto e El tipado dinámico puede ser una fuente de nuevos errores (Pero programas usando tests, ¿Verdad?) El logo de Groovy es horrible. No, en serio. ¿En qué estaban pensando?
  • 24. Inconvenientes de Groovy Hay un plugin de integración con Android Studio. Está bien pero con algún defecto. Nada importante. Al final es una librería más, así que aumentará el tamaño del programa. Existe herramientas para esto. Hay que superar los límites mentales impuestos por Java. Esto e El tipado dinámico puede ser una fuente de nuevos errores (Pero programas usando tests, ¿Verdad?) El logo de Groovy es horrible. No, en serio. ¿En qué estaban pensando?
  • 25. Qué he aprendido Groovy Mola. Mucho. Android (4%) (Antes: 2%) Groovy (33%) (Antes: 0%) El desarrollo en Android es muy lento, por culpa de tener que probar todo en un emulador. Todo lo que puedas desarrollar y testear fuera del emulador va en tu beneficio (Pero no es fácil)