Kotlin: lenguaje oficial para el desarrollo en Android

¡BOOM! Sí, ha pasado, gracias al esfuerzo de la comunidad, Google ha dado un paso al frente y ha tomado, en mi opinión, una de las mejores decisiones que podía tomar. Kotlin se convierte en lenguaje oficial para el desarrollo en Android El anuncio se ha hecho hace muy poco en la Keynote de Google I/O 2017. Stephanie Saad Cuthbertson fue quién hizo los honores. Aquí puedes ver el momento exacto del anuncio ¿Qué significa ésto? Mucho. Muchísimo más de lo que en este momento se pueda pensar. Para empezar, la excusa (la principal excusa) de no dar el...

Infix functions en Kotlin

Imagina que tienes el siguiente modelo para representar una carta de Póker: enum class Suit { HEARTS, SPADES, CLUBS, DIAMONDS } enum class Rank { TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING, ACE } data class Card(val rank: Rank, val suit: Suit) Es un modelo muy sencillo, se compone de tres partes diferenciadas: Suit. Representa el palo de la carta (corazones, diamantes, tréboles o picas). Rank. Indica el valor de la carta (dos, tres, rey, as, etc.). Card. Una clase que contiene tanto el rank cómo el palo de la carta. Para componer una carta simplemente hay que...

Extensiones en Kotlin

Como te hablé en mi post sobre por qué empecé a usar Kotlin, una de las funcionalidades más útiles que nos provee Kotlin es la habilidad de crear extensiones a clases de las cuáles no necesitamos tener acceso a su código. Lo vas a entender mejor con un ejemplo. Imagina el siguiente helper escrito en Java public static boolean isWeekend(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); return dayOfWeek == Calendar.SATURDAY || dayOfWeek == Calendar.SUNDAY } Es una función estática pura que recibe como parámetro la fecha en la que queremos comprobar...

Mi mudanza a Kotlin

Antes de nada, quiero que sepas que llevo desarrollando en Java desde hace más de 10 años por lo que he seguido su evolución muy de cerca. Java, aunque muy lentamente, va evolucionando añadiendo características que poseen lenguajes más modernos como puede ser opcionales, lambdas o streams. El problema está en que su ritmo de evolución es demasiado lento y, además, están obligados a preservar su verbosidad intrínseca haciendo que muchas de las nuevas características no sean tan agradables de usar como debieran. Kotlin Kotlin es un nuevo lenguaje desarrollado por JetBrains. Por si no los conoces son los creadores...

Cómo usar el nuevo all-open plugin de Kotlin 1.0.6

Poco antes de terminar el pasado año, JetBrains lanzó su última versión de Kotlin y entre otras novedades han añadido un plugin muy interesante: All-open plugin. Introducción Antes de explicar qué es exactamente, me gustaría recordarte que por defecto todas las clases son finales en Kotlin a no ser que indiquemos lo contrario usando la palabra reservada open: open class HelloWorld { } ¿Qué significa ésto? Que si no indicas que una clase es open no podrás heredar de ella ni sobreescribir ningún método ya que es una clase final. Desde el punto de vista de programador ésto no debería ser un...