Curso
Principiante
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
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:
- Descarga Android Studio desde el sitio web oficial de Android: Android Studio.
- Sigue las instrucciones de instalación para tu sistema operativo (Windows, macOS, Linux).
- 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 enterosDouble: punto flotante doble precisiónFloat: punto flotante precisión simpleBoolean:true/falseChar: caracteresString: textoAny: 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
Tu suscripción al canal y likes a los videos es la mejor manera de agradecer este curso gratuito.