Está en la página 1de 17

VT03A Lenguaje Kotlin

1- Importancia de Kotlin ........................................................................................................... 1

2- Características Principales de Kotlin............................................................................. 3

2.1. Tipado Estático ...................................................................................................................................... 3

2.2. Interoperabilidad con Java............................................................................................................ 3

2.3. Concisión .................................................................................................................................................. 3

2.4. Seguridad Frente a Nulls ...............................................................................................................4

2.5. Extension Functions ..........................................................................................................................4

2.6. Smart Casts .............................................................................................................................................4

2.7. Corrutinas.................................................................................................................................................4

2.8. Uso en la Industria..............................................................................................................................4

2.8.1. Desarrollo de Aplicaciones Android ..............................................................................4

2.8.2. Desarrollo Backend ................................................................................................................ 5

2.8.3. Desarrollo Multiplataforma................................................................................................ 5

2.8.4. Ciencia de Datos e Inteligencia Artificial .................................................................. 5

3. Sintaxis Básica y Tipos de Datos en Kotlin .................................................................. 6

3.1. Variables: var, val y Tipos de Datos Básicos .......................................................................... 6

3.2. Operadores.............................................................................................................................................. 6

3.3. Estructuras de control ...................................................................................................................... 7

4. Funciones ................................................................................................................................ 8

5. Programación Orientada a Objetos ............................................................................... 8

5.1 Herencia y Polimorfismo .................................................................................................................. 9

5.2 Encapsulamiento ................................................................................................................................. 9

5.3 Interfaces y Clases Abstractas .................................................................................................... 10

6. Expresiones Lambda y Extensiones de Función ...................................................... 11

6.1. Expresiones Lambda ........................................................................................................................ 11

6.2. Extensiones de Función................................................................................................................. 11


1- Importancia de Kotlin
1. 1. Adopción por Google
● Lenguaje Oficial para Android: En 2017, Google anunció Kotlin como un
lenguaje oficial para el desarrollo de aplicaciones Android, lo que le dio un
impulso significativo en la comunidad de desarrolladores.
● Primera Clase en Android Studio: Kotlin está profundamente integrado en
Android Studio, proporcionando herramientas poderosas y facilitando el
desarrollo de aplicaciones Android.

1.2. Interoperabilidad con Java


● Compatibilidad: Kotlin es completamente interoperable con Java, lo que
significa que puedes usar código Java en tus proyectos Kotlin y viceversa.
Esta característica es vital para los proyectos existentes que buscan migrar
a Kotlin sin tener que reescribir todo el código base.
● Bibliotecas y Frameworks: La interoperabilidad también permite a los
desarrolladores de Kotlin utilizar una vasta cantidad de bibliotecas y
frameworks ya existentes en Java.

1.3. Sintaxis Clara y Concisa


● Menos Código, Menos Errores: La sintaxis de Kotlin es clara y concisa, lo que
significa que los desarrolladores pueden lograr más con menos líneas de
código, reduciendo así la probabilidad de errores y facilitando la lectura y
mantenimiento del código.
● Expresiones Lambda y Extensiones de Función: Kotlin introduce
expresiones lambda y extensiones de función que permiten a los
desarrolladores escribir código más limpio y expresivo.

1.4. Seguridad de Tipos


● Null Safety: Kotlin introduce un sistema de tipos que diferencia entre
referencias que pueden contener null y aquellas que no pueden,
reduciendo así las temidas NullPointerException.
● Smart Casts: Kotlin maneja las conversiones de tipos de forma inteligente,
simplificando el manejo de diferentes tipos de datos.

1
1.5. Versatilidad
● Multiparadigma: Kotlin soporta programación orientada a objetos y
programación funcional, ofreciendo a los desarrolladores una amplia gama
de posibilidades para resolver problemas.
● Multiplataforma: Más allá de Android, Kotlin también puede ser utilizado
para desarrollar software en otras plataformas a través de Kotlin
Multiplatform, permitiendo compartir código entre Android, iOS, Web y
Backend.

1.6. Comunidad y Recursos


● Creciente Comunidad: Kotlin cuenta con una comunidad de
desarrolladores en rápido crecimiento y activa que contribuye a un
ecosistema robusto de bibliotecas y herramientas.
● Documentación y Recursos de Aprendizaje: La documentación de Kotlin es
extensa y hay una abundancia de recursos de aprendizaje disponibles,
facilitando a los nuevos desarrolladores entrar en el ecosistema.

1.7Aplicaciones en la Industria
● Desarrollo de Aplicaciones Móviles: Kotlin es ampliamente utilizado para el
desarrollo de aplicaciones Android debido a sus ventajas mencionadas
anteriormente.
● Desarrollo Backend: Kotlin también se utiliza en el desarrollo de backend
utilizando frameworks como Ktor y Spring, gracias a su rendimiento y
eficiencia.
● Desarrollo Web: Con Kotlin/JS, los desarrolladores pueden utilizar Kotlin
para construir aplicaciones web, permitiendo compartir la lógica de
negocio entre el backend y el frontend.
● Data Science: Aunque Python sigue siendo el lenguaje dominante en
ciencia de datos, Kotlin también está ganando terreno en este ámbito
debido a su seguridad de tipos y eficiencia.

2
1.8 Conclusión
Kotlin ha demostrado ser un lenguaje de programación poderoso y eficiente que
facilita a los desarrolladores escribir código limpio, conciso y seguro. Su
versatilidad y la adopción por parte de Google para el desarrollo de Android han
establecido a Kotlin como un lenguaje clave en el desarrollo de software
moderno

2- Características Principales de Kotlin

2.1. Tipado Estático


Kotlin es un lenguaje de programación de tipado estático, lo que significa que los
tipos de todas las variables deben ser conocidos en tiempo de compilación. Esto
no solo aporta claridad al código sino que también permite que el compilador
detecte errores de tipo antes de que el código se ejecute, contribuyendo a la
creación de software más robusto.

2.2. Interoperabilidad con Java


● Compatibilidad de Código: Kotlin es interoperable con Java, lo que
significa que puedes ejecutar código Java desde Kotlin y viceversa sin
ninguna complicación.
● Migración Gradual: Esta característica es especialmente útil para los
equipos que quieren migrar sus proyectos Java existentes a Kotlin de
forma gradual y sin interrupciones.

2.3. Concisión
● Sintaxis Limpia: Kotlin tiene una sintaxis que busca ser clara y concisa,
permitiendo expresar complejas ideas con menos líneas de código en
comparación con otros lenguajes como Java.
● Inferencia de Tipo: Kotlin es capaz de inferir los tipos de las variables en
muchos casos, lo que reduce la verbosidad del código sin sacrificar la
claridad o la seguridad del tipo.

3
2.4. Seguridad Frente a Nulls
● Eliminación de NullPointerException: Kotlin introduce el concepto de
tipos nulables y no nulables, lo cual ayuda a eliminar el problema común
de NullPointerException.
● Operador Elvis: Kotlin ofrece el operador Elvis (?:) para gestionar de forma
cómoda y segura los valores nulos.

2.5. Extension Functions


Añadir Funcionalidades: Kotlin permite añadir nuevas funciones a clases
existentes sin modificarlas mediante funciones de extensión, lo que mejora la
legibilidad y reutilización del código.

2.6. Smart Casts


Casting Inteligente: Kotlin es inteligente cuando se trata de conversiones de
tipo. Si ha verificado un tipo en una estructura de control, Kotlin lo reconoce
automáticamente y lo trata como tal.

2.7. Corrutinas
Asincronía Elegante: Kotlin introduce el concepto de corrutinas, que permite
escribir código asincrónico de manera más directa y legible, facilitando la gestión
de operaciones que se ejecutan en segundo plano.

2.8. Uso en la Industria

2.8.1. Desarrollo de Aplicaciones Android


● Adopción de Google: Desde que Google adoptó Kotlin como lenguaje de
programación oficial para Android, su uso ha crecido exponencialmente en
este campo.

4
● Preferido por Desarrolladores: Muchos desarrolladores de Android
prefieren Kotlin sobre Java debido a sus ventajas en términos de concisión,
seguridad y funcionalidades modernas.

2.8.2. Desarrollo Backend


Frameworks Populares: Kotlin es utilizado en el desarrollo backend mediante
frameworks populares como Spring Boot y Ktor, proporcionando una alternativa
eficiente y expresiva a Java para la construcción de servicios web y APIs.

2.8.3. Desarrollo Multiplataforma


Kotlin Multiplatform: Kotlin Multiplatform permite a los desarrolladores escribir
una vez y ejecutar en cualquier lugar, compartiendo el código entre Android, iOS,
Web y el backend, lo que reduce el tiempo y los recursos necesarios para el
desarrollo de software en varias plataformas.

2.8.4. Ciencia de Datos e Inteligencia Artificial


Bibliotecas y Herramientas: Aunque Python sigue dominando en este ámbito,
Kotlin está ganando terreno en el área de la ciencia de datos e IA, proporcionando
herramientas y bibliotecas robustas y permitiendo la creación de sistemas más
seguros y eficientes.

5
3. Sintaxis Básica y Tipos de Datos en Kotlin

3.1. Variables: var, val y Tipos de Datos Básicos


● var: Se utiliza para declarar una variable mutable. Ejemplo:

● val: Se utiliza para declarar una variable inmutable. Ejemplo:

● Tipos de Datos Básicos: Int, Double, String, Boolean, etc. Ejemplo:

3.2. Operadores
● Aritméticos: +, -, *, /, %
● De Comparación: ==, !=, <, >, <=, >=
● Lógicos: &&, ||, !

6
3.3. Estructuras de control
● if …. else

● when: Similar a switch en otros lenguajes. Puede ser utilizado de manera


más expresiva y flexible.

● while y do-while: Bucles que ejecutan un bloque de código mientras una


condición sea verdadera.

7
● for: Bucle para iterar sobre ● forEach es una función de extensión de
las colecciones
rangos, colecciones, etc.

8
3.4. Otras herramientas
● Filtros: Filtrar elementos de una lista sin necesidad de recorrerla de forma
explícita.

● String.reversed(): Transforma una cadena para hacerla al revés

● Evitar NullPointerException: El tipo de retorno de la función se especifica


después de los parámetros.

4. Funciones
● Definición: Las funciones se definen usando la palabra clave fun, seguida
del nombre, parámetros y tipo de retorno.

9
● Parámetros: Los parámetros de la función se definen con un nombre y un
tipo.
● Retorno: El tipo de retorno de la función se especifica después de los
parámetros.

5. Programación Orientada a Objetos


Definición de Clases: Las clases se definen utilizando la palabra reservada class

Instancias: Crear un objeto o instancia de una clase.

10
5.1 Herencia y Polimorfismo
Herencia: Kotlin permite la herencia, lo que significa que una clase (clase
derivada) puede heredar características de otra clase (clase base).

(Nota: open es utilizado para permitir que una clase sea heredable)

Polimorfismo: Permite que un objeto se trate como una instancia de su


superclase.

11
5.2 Encapsulamiento
● Modificadores de Acceso: private, protected, internal, y public controlan la
visibilidad de las clases y sus miembros.
● Propiedades: Uso de propiedades para acceder a los campos de la clase.

5.3 Interfaces y Clases Abstractas


● Interfaces: Definen un contrato que algunas clases deciden implementar.
Una clase puede implementar múltiples interfaces.

12
● Clases Abstractas: Son clases que no pueden ser instanciadas
directamente y comúnmente se utilizan como clases base para otras.

13
6. Corrutinas, Expresiones Lambda y
Extensiones de Función

6.1. Corrutinas
● Definición: Las corrutinas son una característica del lenguaje que permite
escribir código asincrónico de manera sencilla, proporcionando una forma
estructurada y eficiente para realizar tareas concurrentes y asíncronas. Se
basan en el concepto de suspensión de funciones, que permite que una
función detenga temporalmente su ejecución para liberar determinados
recursos (procesador, memoria, etc.). Esto nos permite la ejecución de
tareas en segundo plano (cargar interfaces gráficas, etc.)
● launch lanzará la ejecución de un nuevo hilo, suspend marca una función
como susceptible de ser suspendida, y async lanza un hilo de ejecución de
forma asíncrona (el resto de ejecuciones no depende del resultado de esta
función).

14
15
6.2. Expresiones Lambda
● Definición: Una expresión lambda es una función anónima, o en otras
palabras, una función sin nombre. Kotlin permite expresar instancias de
interfaces funcionales (interfaces con un solo método) de manera concisa y
limpia mediante expresiones lambda.
● Sintaxis Básica: { parámetros -> cuerpo de la función }

6.3. Extensiones de Función


● Definición: Las funciones de extensión permiten añadir funciones a clases
existentes sin modificarlas. Esencialmente, permiten a los desarrolladores
llamar a funciones como si fueran métodos de una clase, aunque no estén
definidos en ella.
● Utilidad: Las extensiones de función son muy interesantes para añadir
utilidades y facilitar la legibilidad del código, sin necesidad de subclases o
modificar la clase original.

16

También podría gustarte