Objetivos
Diviértete programando con Kotlin, un lenguaje orientado a objetos, fuertemente tipado y seguro frente a nulos. Si ya sabes Java, verás rápidamente todas las ventajas que aporta y te resultará muy sencillo integrarlo en tus proyectos.
- Reutilizar todos los conocimientos de Java para aprender Kotlin con facilidad.
- Saber integrar Kotlin en proyectos Java ya existentes.
- Mejorar la productividad gracias a las ventajas que aporta Kotlin.
- Aprender Kotlin como se aprende un lenguaje: programando.
¿A quién va dirigido?
El curso va destinado a desarrolladores Java, cuyos conocimientos les van a resultar útiles para aprender Kotlin rápidamente, ya que la sintaxis es muy parecida, es también fuertemente tipado y el paradigma es el mismo: programación orientada a objetos. Los desarrolladores Java se beneficiarán, además, de sus entornos de trabajo, pues gran cantidad de herramientas ya soportan Kotlin, incluyendo los IDE más conocidos, como Eclipse, Netbeans y, por supuesto, IntelliJ y Android Studio, pues sus creadores son los creadores de Kotlin.
Otra gran ventaja es que no es obligatorio dejar de lado Java. Kotlin compila a bytecode Java y se ejecuta sobre la JVM, por lo que es posible empezar a introducirlo en producción poco a poco junto a código Java. La interoperabilidad entre ambos lenguajes permite hacer llamadas de uno a otro, lo que implica además que todas las bibliotecas Java pueden utilizarse desde código Kotlin.
Contenidos
1. Introducción
- ¿Qué es Kotlin?
- ¿Por qué Kotlin?
- Interoperabilidad entre Kotlin y Java (empezaremos desde el primer momento a hacer ejemplos usando JUnit)
2. Kotlin básico
- Variables: Kotlin es tipado pero infiere el tipo
- Tipos básicos: todo tipo es una clase
- Alias: no me llames Dol<Ores>, llámame Lola
- Condicionales: los if devuelven valor, son expresiones
- Bucles: recorre índices con «for (i in array.indices)»
- Rangos: saltemos de dos en dos con «i in 1..7 step 2»
- Arrays y colecciones: realmente inmutables
3. Programación orientada a objetos con Kotlin
- Clases: ahorra decenas de líneas de código
- Visibilidad
- Clases de datos
- Sobrecarga de operadores
- Enumerados
- Clases selladas
- Clases anidadas
- Clases anónimas
- Funciones de extensión: mixins sencillísimos, o cómo añadir métodos a clases que no son tuyas
- Herencia e interfaces: cómo implementar herencia «múltiple»
- Genéricos: «Consumer in, Producer out!»
- Varianza
- Proyección de tipos
4. Programación funcional con Kotlin
- Funciones
- Lambdas
- Funciones locales
- Funciones inline y reified
5. Más superpoderes de Kotlin
- Comprobaciones de tipo y casts: olvídate de casts innecesarios
- Seguridad frente a nulos: no más NullPointerExceptions (The Billion Dollar Mistake).
- Excepciones: adiós a las excepciones de tipo checked
- Delegación de propiedades: lazy(), observable()…
- Destructuración
6. Patrones de diseño implícitos en Kotlin
- Value Object
- Prototype
- Builder
- Singleton
- Delegation
- Type-Safe Builder, o cómo construir un DSL
7. Tests y especificaciones
- Tests con JUnit
- Especificaciones con Spek