Para desarrollar aplicaciones Android es necesario hacerlo en Java, ¿seguro? Hay otras alternativas que de unos años a esta parte que están tomando fuerza.
Para mi todo empezó en el evento MaterialFest, para quien no lo sepa fue un evento para desarrolladores y diseñadores que se organizó en Cádiz en 2015 para hablar sobre Material Design.
Una de las charlas sorprendía a todos, no trataba sobre Material, sino otra forma de desarrollar aplicaciones para Android ¡sin usar Java!.
La daban los chicos de 47 Degrees, Javi Pacheco y Raúl Raja (aquí podéis ver las transparencias), nos contaron que había otro lenguaje sobre el que desarrollar, Scala, un lenguaje funcional que tenía muchas ventajas:
- Protección frente a nulos
- Independencia del contexto
- Futuros (¡Nos olvidamos de las Async Class!)
- Pattern Matching
- Interoperabilidad con Java (si, podías tener código Java y Scala en el mismo proyecto)
Y algún que otro inconveniente:
- Tiempo de compilación
- El peso de las aplicaciones era mayor que el creado con Java
- Una gran curva de aprendizaje, ya que el paradigma de programación cambia completamente
Después de algún tiempo dándole vueltas decidí empezar a probarlo, primero haciendo un curso impartido por el creador del lenguaje Martin Odersky y posteriormente empezando a picar algo de código.
Algún tiempo después publiqué mi primera aplicación realizada en Scala, MovieList:
- GitHub: https://github.com/jamontes79/movieList
- Google Play: https://play.google.com/store/apps/details?id=com.jamontes79.scala.movielist
Hace poco empecé a escuchar hablar de Kotlin, compartía muchas de las ventajas con Scala, pero se decía que tenia una menor curva de aprendizaje, era cuestión de apostar y yo empecé a hacerlo por Scala.
En esta charla se puede ver las diferencias entre uno y otro: https://www.youtube.com/watch?v=hMJm66Bm54c&t=82s
Pero en el pasado Google IO 2017 todo cambió, Google anunció que Kotlin pasaba a ser junto a Java lenguaje oficial para Android (aquí teneis un artículo que habla sobre ello)
Decidí hacer un curso impartido por Antonio Leiva, uno de los primeros desarrolladores en empezar a trabajar con Kotlin y el autor de uno de los libros de referencia recomendados por Google sobre Kotlin para Android.
Personalmente me entusiasmó la potencia de Kotlin (equiparable a la que puede darte Scala) pero a la vez la facilidad de uso y comprensión, en 10 horas de curso habíamos hecho nuestra primera aplicación sobre Kotlin.
Algunas de las cosas que más me llamaron la atención fueron:
- Data Classes
- Extensions
- Integración con Android Studio
Por todo ello he decido ir migrando mi última aplicación desarrollada en Scala a Kotlin, KidsChat.
En resumen, no todo en el desarrollo de aplicaciones Android es Java, hay mundo más allá, y ahora con más motivo desde que Kotlin es lenguaje oficial.
¿Has probado a desarrollar aplicaciones Android sobre un lenguaje que no sea Java? ¿Te gustaría compartir tu experiencia?