Curso de Kotlin - TechEnriqueMG Curso Principiante
Curso Kotlin 2024: Fundamentos desde cero
Suscribirme al canal
Android Studio • Kotlin básico • Ejemplos + ejercicios • 6 videos

Aprende Kotlin paso a paso: instalación de herramientas, variables, funciones, condicionales, nulabilidad, arrays y listas. Cada tema incluye explicación + video.

  • Instalación
  • Variables
  • Funciones
  • Condicionales
  • Nulabilidad
  • Arrays/Listas
Ver contenido del curso 6 lecciones
  1. Instalación de herramientas (Android Studio) Video
  2. Valores y variables Video
  3. Funciones Video
  4. Condicionales (if/else/for/while/when) Video
  5. Nulabilidad Video
  6. Arrays y listas Video

Instalación de herramientas (Android Studio para Kotlin)

Para desarrollar en Kotlin, la herramienta más comúnmente utilizada es Android Studio, que incluye soporte para Kotlin de forma nativa. Puedes seguir estos pasos para instalarlo:

  1. Descarga Android Studio desde el sitio web oficial de Android: Android Studio.
  2. Sigue las instrucciones de instalación para tu sistema operativo (Windows, macOS, Linux).
  3. Una vez instalado, abre Android Studio y sigue el asistente de configuración para instalar cualquier componente adicional necesario para el desarrollo de aplicaciones Android con Kotlin.

Valores y variables

En Kotlin, las variables son objetos que almacenan valores y tienen un tipo de datos específico. Kotlin proporciona dos tipos de variables:

  • val: variables inmutables (no cambian después de asignar valor).
  • var: variables mutables (pueden cambiar después de asignar valor).
val pi = 3.14159 // variable inmutable
var contador = 0 // variable mutable

Tipos de Datos en Kotlin

  • Int: números enteros
  • Double: punto flotante doble precisión
  • Float: punto flotante precisión simple
  • Boolean: true / false
  • Char: caracteres
  • String: texto
  • Any: superclase de todos los tipos

Ejemplos de tipos

val edad: Int = 25
var contador: Int = 0

val pi: Double = 3.14159
var precio: Double = 99.99

val altura: Float = 1.75f
var temperatura: Float = 26.5f

val esMayorDeEdad: Boolean = true
var estaLloviendo: Boolean = false

val inicial: Char = 'A'
var ultimoCaracter: Char = 'Z'

val nombre: String = "Juan"
var mensaje: String = "Hola, ¿cómo estás?"

val cualquierCosa: Any = "Hola"
var cualquierObjeto: Any = 42

Trabajando con variables

Kotlin es un lenguaje de programación estáticamente tipado, lo que significa que debes especificar el tipo de datos de una variable al declararla, o Kotlin lo inferirá automáticamente.

Funciones aritméticas

val suma = 10 + 5          // 15
val resta = 10 - 5         // 5
val multiplicacion = 10 * 5 // 50
val division = 10 / 5      // 2
val modulo = 10 % 3        // 1

Ejemplos con diferentes tipos

// Enteros (Int)
val edad: Int = 25
var contador: Int = 0
val sumaEdad = edad + 5 // 30

// Double
val pi: Double = 3.14159
var precio: Double = 99.99
val total = precio * 2 // 199.98

// Float
val altura: Float = 1.75f
var temperatura: Float = 26.5f
val aumento = altura + 0.1f // 1.85

// Boolean
val esMayorDeEdad: Boolean = true
var estaLloviendo: Boolean = false
val esDiaSoleado = !estaLloviendo

// Char
val inicial: Char = 'A'
var ultimoCaracter: Char = 'Z'
val siguienteCaracter = inicial + 1

// String
val nombre: String = "Juan"
var mensaje: String = "Hola, ¿cómo estás?"
val saludoCompleto = "$mensaje Mi nombre es $nombre"

// Any
val cualquierCosa: Any = "Hola"
var cualquierObjeto: Any = 42
val concatenacion = cualquierCosa.toString() + cualquierObjeto.toString()

Funciones

En Kotlin, puedes declarar una función utilizando la palabra clave fun, seguida del nombre, paréntesis con parámetros (opcional) y el tipo de retorno (opcional).

fun saludar() {
    println("¡Hola!")
}

fun sumar(a: Int, b: Int): Int {
    return a + b
}

Llamada de funciones

saludar() // Imprime: ¡Hola!

val resultado = sumar(3, 5) // 8

Funciones con parámetros de entrada y salida

Las funciones pueden tener cero o más parámetros como entrada y pueden devolver un valor como resultado. En Kotlin, los tipos de datos de los parámetros y el tipo devuelto pueden declararse explícitamente.

fun multiplicar(a: Int, b: Int): Int {
    return a * b
}

Funciones de una sola línea

fun restar(a: Int, b: Int) = a - b

Funciones como expresiones

val miFuncion = ::sumar
val resultado = miFuncion(10, 20) // 30

Funciones de orden superior

fun operar(a: Int, b: Int, operacion: (Int, Int) -> Int): Int {
    return operacion(a, b)
}

val resultadoSuma = operar(10, 5, ::sumar)   // 15
val resultadoResta = operar(10, 5, ::restar) // 5

Funciones anónimas y lambdas

val cuadrado: (Int) -> Int = { x -> x * x }

val lista = listOf(1, 2, 3, 4, 5)
val cuadrados = lista.map { it * it } // [1, 4, 9, 16, 25]

Condicionales if, else, for, while, when

Condicionales If – Else

Los condicionales if y else se utilizan para tomar decisiones basadas en condiciones booleanas.

val edad = 18

if (edad >= 18) {
    println("Eres mayor de edad")
} else {
    println("Eres menor de edad")
}

Estructura de control de flujo for

for (i in 1..5) {
    println(i)
}

Estructura de control de flujo while

var contador = 0

while (contador < 5) {
    println("El contador es $contador")
    contador++
}

Estructura de control de flujo when

val opcion = 2

when (opcion) {
    1 -> println("Opción 1 seleccionada")
    2 -> println("Opción 2 seleccionada")
    3 -> println("Opción 3 seleccionada")
    else -> println("Opción no válida")
}

Ejercicios if, else, for, while, when

Verificar si un número es positivo, negativo o cero

fun main() {
    println("Ingrese un número:")
    val numero = readLine()!!.toInt()

    if (numero > 0) {
        println("El número es positivo")
    } else if (numero < 0) {
        println("El número es negativo")
    } else {
        println("El número es cero")
    }
}

Imprimir números pares del 1 al 10

fun main() {
    for (i in 1..10) {
        if (i % 2 == 0) {
            println(i)
        }
    }
}

Suma de los primeros 5 números naturales (while)

fun main() {
    var suma = 0
    var contador = 1

    while (contador <= 5) {
        suma += contador
        contador++
    }

    println("La suma de los primeros 5 números naturales es: $suma")
}

Determinar el día de la semana (when)

fun main() {
    println("Ingrese un número del 1 al 7:")
    val numero = readLine()!!.toInt()

    when (numero) {
        1 -> println("Lunes")
        2 -> println("Martes")
        3 -> println("Miércoles")
        4 -> println("Jueves")
        5 -> println("Viernes")
        6 -> println("Sábado")
        7 -> println("Domingo")
        else -> println("Número no válido")
    }
}

Nulabilidad

La nulabilidad es un concepto importante en Kotlin. Por defecto, un tipo no puede ser nulo. Para permitir null, agrega ? al tipo.

val nombre: String? = null // String nullable
val edad: Int? = null      // Int nullable

Operador seguro (?.)

val longitud: Int? = nombre?.length

Operador Elvis (?:)

val longitudNombre: Int = nombre?.length ?: -1

Verificación explícita

if (nombre != null) {
    println("El nombre es: $nombre")
} else {
    println("El nombre es nulo")
}

Arrays y listas

Kotlin proporciona Array y List para trabajar con colecciones de elementos. Ambas son útiles, pero tienen diferencias importantes.

Arrays

Creación de arrays:

// Utilizando arrayOf()
val numeros = arrayOf(1, 2, 3, 4, 5)

// Utilizando Array()
val frutas = Array(3) { i -> "Fruta $i" }

Acceso y modificación:

println(numeros[0])
println(frutas[1])

numeros[2] = 10
frutas[0] = "Manzana"

Listas

Creación:

val colores = listOf("Rojo", "Verde", "Azul")
val nombres = mutableListOf("Ana", "Juan", "María")

Acceso y modificación:

println(colores[0])
println(nombres[2])

// MutableList permite cambios
nombres.add("Pedro")

Diferencias clave

  • Los arrays tienen tamaño fijo al crearse; las listas (mutables) pueden crecer/disminuir.
  • Array suele ser “más simple”; List/MutableList ofrece más operaciones.

¿Te ha servido y gustado?
Apóyame con tu suscripción a mi canal de YouTube

Suscribirme al canal de YouTube

Tu suscripción al canal y likes a los videos es la mejor manera de agradecer este curso gratuito.