¿Qué es Kotlin?

Breve introduccion y descripción:

Kotlin es un lenguaje de programación que trabaja sobre la Maquina Virtual de Java o JVM, eso quiere decir que compila directamente a Bytecode. Es totalmente interoperable con Java y sus bibliotecas pero sin ser tan verboso, siendo un lenguaje con una sintaxis muy limpia y concisa; pero esto no lo hace un lenguaje débil.




Entre sus características más destacables están:

    1. Sintaxis concisa, reduciendo el número de líneas de código.
      package bienvenido
      
      fun main(arg: Array<String>) {
          println("Hola, bienvenidos a: https://misfragmentosdecodigo.eu")
      }
    2. Manejo seguro de valores nulos evitando los famosos NullPointerException.
      var celular: Int = 234212984
      celular = null /* Error en tiempo de compilación */
      
      var celular: Int? = 234212984
      celular = null /* Compila sin problemas */
    3. Interoperable con Java, sus APIs y gran mayoria de bibliotecas existentes.
      package listDirectorios
      
      import java.io.File
      
      fun main(Args: Array<String>) {
          var numDirs = 0
      
          File(".").walkTopDown().forEach { when {
                  it.isDirectory -> { println(it)
                      numDirs++
                  }
              }
          }
          println("\nNumero de directorios encontrados: ${numDirs}")
      }
    4. Programación Orientada a Objetos concisa.
      package poo
      
      class Bienvenido(var nombre: String) {
          fun saludar() {
              println("Bienvenido $nombre")
          }
      }
      
      fun main(arg: Array<String>) {
          var humano = Bienvenido("Visitante!!") /* No hay palabra clave new */
          humano.saludar()
      }
    5. Todo en uno: getter, setter, copy(), hashCode(), toString() y equals() en una sola línea.
      package todoenuno 
      
      data class datosPersonales(var nombre: String, var cedula: Int)
      
      fun main(arg: Array<String>) {
          var usuario = datosPersonales("FixedTorres", 3891284)
          var miguel = usuario.copy()
      
          println(miguel.nombre) /* Imprime: FixedTorres */
      }

Aquí tan solo he puesto 5 de las tantas características que le ofrece a los programadores este bello lenguaje; dicional a todo esto, también compila a JavaScript, es compatible con Android, compila a nativo, desarrollo de aplicaciones del lado del servidor y mucho más.

Una aplicación usando Kotlin con Android:
package com.fixedtorres.laboratoriojellybean

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.EditText
import android.widget.TextView

class ActividadCentral : AppCompatActivity() {

    fun esPalindromo(text: String): String {
        var (igual, aux) = Pair(0, text.length - 1)

        text.indices.forEach { ind ->
            if(text[ind].toLowerCase() == text[aux].toLowerCase()) {
                igual++
            }
            aux--
        }

        when (igual) {
            text.length -> {
                return "Es palindromo:\n" +
                       "------------------------------------------------\n" +
                       "Longitud del texto normal:     ${text.length}\n" +
                       "Longitud del texto inverso:    ${igual}"
            } else -> {
                return "No es palindromo:\n" +
                       "------------------------------------------------\n" +
                       "Longitud del texto normal:     ${text.length}\n" +
                       "Longitud del texto inverso:    ${igual}"
            }
        }
    }

    fun sendMessage(view: View) {
        val editText = findViewById<View>(R.id.editText) as EditText
        val resultText = findViewById<View>(R.id.resultText) as TextView
        val text = editText.text.toString()
        val msg: String = esPalindromo(text)

        resultText.text = msg
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.actividad_central)

        var autor = findViewById<View>(R.id.Autor) as TextView
        val datos: String = "Información sobre el autor:\n" +
            "--------------------------------------------------------\n" +
            "Alfonso Orjuela <Fixed Torres>\n" +
            "20 de Enero de 2018\n\n" +
            "https://misfragmentosdecodigo.eu"
        autor.text = datos
    }
}

Esta es un aplicación completa para Android escrita con Kotlin, es una aplicación en la cual se ingresa una palabra o frase y nos indica si es o no es palindromo; pero no lo explicare ahora ya que sería extenderme demasiado, así que lo dejaré para una publicación completa que muy probablemente estará divida en varias partes. El resultado final es el siguiente:

Palíndromos con Kotlin y Android - Resultado



Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *