Puede que Java siga siendo el primer lenguaje de programación que se te venga a la mente cuando pienses en Android, pero no tienes que usar Java para el desarrollo de Android. De hecho, Kotlin es ahora el idioma oficial preferido de Google para desarrollar sobre Android.
Kotlin vs Java, si compara una clase de Kotlin y una clase de Java que realizan el mismo trabajo, la clase de Kotlin será mucho más concisa, pero hay un área en particular donde Kotlin puede reducir seriamente la cantidad de código repetitivo que necesita escribir: findViewByIds .
Las extensiones de Android de Kotlin le permiten importar una referencia a una vista en su actividad, momento en el que podrá trabajar con esa vista como si fuera parte de la actividad. ¿El resultado? ¡Nunca más tendrá que escribir otro método findViewById!
Antes de poder usar estas extensiones, deberá agregar un complemento adicional a su archivo build.gradle a nivel de módulo (aplique el complemento: ‘kotlin-android-extensions’), después de eso estará listo para comenzar a importar Vistas, para ejemplo, si su archivo activity_main.xml contenía un TextView con el ID textView, entonces agregaría lo siguiente a su Actividad por ejemplo:
No necesita findViewById: es usado para encontrar la primera vista descendiente con el ID dado.
Java
TextView text = (TextView) findViewById(R.id.textView);
text.setText(«Hello World»);
Kotlin
textView.setText(«Hello World»)
Libre de excepción NullPointerExceptions
Es una gran fuente de decepción para los diseñadores de Java. En Kotlin, todos los tipos no son anulables (incapaces de mantener un valor nulo) de forma predeterminada. Si el código intenta usar o devolver nulo en Kotlin, se muestra un error de tiempo de compilación.
var a: String = «abc»
// cerror de compilacion
a = null
Clase de datos: a menudo creamos clases para contener algunos datos. En tales clases, algunas funciones estándar suelen derivarse de los datos. En Kotlin, este tipo de clase se conoce como clase de datos y se marca como datos.
data class User(val name: String, val age: Int)
Te dejamos una tabla con otras diferencias 😉
| CARACTERISTICA | KOTLIN | JAVA |
|---|---|---|
| 1. Funciones de extensión | Ya está disponible en Kotlin | En Java, necesitamos crear clase |
| 2. Null Safety | Ya está disponible en Kotlin | No está disponible en Java |
| 3. Miembros estáticos | Kotlin no tiene un miembro estático para una clase | Disponible en Java |
| 4. String Templates | Sí, hay dos tipos de literales de cadena en Kotlin | También está disponible en Java, pero no admite expresiones como Kotlin |
| 5. Wildcards | No está disponible en Kotlin | Disponible en Java |
| 6. Smartcasts | Disponible en Kotlin | No está disponible en Java |
| 7. Sin excepciones marcadas | Kotlin eliminó las excepciones por completo | Es problemático en Java |
| 8. Sobrecarga del operador | Kotlin permite a los usuarios proporcionar una forma de invocar funciones | Los operadores están vinculados a tipos particulares de Java |
| 9. Constructores | Tiene constructor primario y constructor secundario. | Los constructores se pueden usar para tomar parámetros para inicializar atributos |
| 10. Type System | Ofrece soporte de nulabilidad. | Existen otros tipos de tipos de referencia relacionados con el concepto básico de clase. |