fuente: Java vs. Kotlin: ¿Deberías usar Kotlin para el desarrollo de Android?
Puede escribir aplicaciones de Android en cualquier idioma que pueda compilarse y ejecutarse en la Máquina virtual Java (JVM), y sus usuarios finales no serán más sabios. Y un lenguaje de programación compatible con JVM que realmente llamó la atención de la comunidad de Android es Kotlin, un lenguaje de programación estáticamente tipado de JetBrains.
Si ha escuchado cosas buenas sobre Kotlin y está interesado en probarlo usted mismo, entonces está en el lugar correcto. En esta serie de tres partes, voy a compartir todo lo que necesita saber para comenzar a usar Kotlin para el desarrollo de Android.
- ¿Cuál es la mejor institución de capacitación para el desarrollo de aplicaciones?
- ¿Cómo nos pueden pagar desarrollando aplicaciones de Android?
- ¿Cuál es la mejor aplicación alternativa (Android) para BlueJ?
- Cómo establecer un estilo de recurso mediante programación en la clase CustomButtomView
- ¿Cuáles son algunas buenas maneras para la construcción condicional de proyectos de Android?
En esta primera entrega, veré por qué usted, como desarrollador de Android, podría considerar hacer el cambio de Java en primer lugar, y luego examinaré los pros y los contras de seleccionar Kotlin como su reemplazo de Java. Al final de este artículo, tendrá una sólida comprensión de lo que Kotlin tiene para ofrecer y sabrá si es adecuado para usted.
En la segunda parte, veremos cómo configurar su instalación de Android Studio para que sea compatible con Kotlin y crear una aplicación de Android simple que esté escrita completamente en Kotlin. Con estos fundamentos en su lugar, en la tercera entrega veremos cómo potenciar su desarrollo de Android, utilizando algunas características más avanzadas del lenguaje Kotlin.
¿Por qué debería hacer el cambio desde Java?
Si bien Java es uno de los lenguajes de programación más utilizados en el mundo y es prácticamente el idioma oficial de desarrollo de Android, existen muchas razones por las cuales Java no siempre es la mejor opción para sus proyectos de Android.
El mayor problema es que Java no es un lenguaje moderno, y aunque Java 8 fue un gran paso adelante para la plataforma, introdujo muchas características que los desarrolladores habían estado esperando (incluidas las funciones lambda), al momento de escribir Android solo es compatible Un subconjunto de características de Java 8. Parece poco probable que los desarrolladores de Android obtengan todos los beneficios de Java 8 en el corto plazo, por lo que en el futuro previsible si desea utilizar Java en sus proyectos de Android, entonces está bastante atrapado con Java 7.
Java en su conjunto también tiene algunos problemas de lenguaje bastante bien documentados, que incluyen bloques de try
interminable, falta de capacidad de ampliación, inseguridad nula (y esa infame NullPointerException
), sin mencionar la falta de soporte para las funciones de programación funcional. Aunque Java está comenzando a agregar algunos elementos de programación funcionales, como las expresiones lambda y las interfaces funcionales, en esencia, Java sigue siendo un lenguaje de procedimiento. La sintaxis de Java también es bastante detallada, especialmente en comparación con muchos lenguajes de programación modernos.
Ventajas de Kotlin
Por lo tanto, es posible que desee considerar cambiar a uno de los muchos lenguajes de programación modernos que están diseñados para ejecutarse en la JVM. Si bien no hay escasez de lenguajes que compilan el código de bytes de Java, hay algunos factores que hacen que Kotlin se destaque entre la multitud:
Intercambiabilidad con Java
Una de las mayores fortalezas de Kotlin como alternativa potencial a Java es el gran nivel de interoperabilidad entre Java y Kotlin: incluso puede tener el código de Java y Kotlin existente uno al lado del otro en el mismo proyecto, y todo se compilará perfectamente. A continuación, puede ver un ejemplo de un proyecto que consta de una Activity
Java y una Actividad Kotlin.
De hecho, una vez que se compila su proyecto mixto de Kotlin y Java, los usuarios no podrán saber qué partes de su proyecto están escritas en Java y qué partes están escritas en Kotlin.
Dado que las clases de Kotlin y Java pueden existir una al lado de la otra en el mismo proyecto, puede comenzar a usar Kotlin sin tener que hacer nada drástico como convertir un proyecto completo a Kotlin o comenzar un nuevo proyecto específicamente para que pueda probar suerte en Kotlin.
Gracias a este nivel de interoperabilidad, si tiene un proyecto en el que ya está trabajando, puede probar Kotlin en una pequeña parte de ese proyecto sin afectar el resto de su base de código. Y, si decide que desea continuar usando Kotlin, puede migrar el código Java existente de su proyecto a Kotlin un archivo a la vez, o dejar intacto el código Java heredado de su proyecto y solo usar Kotlin para las nuevas clases y características.
Dado que Kotlin es completamente interoperable con Java, también podrá utilizar la mayoría de las bibliotecas y marcos de Java en sus proyectos de Kotlin, incluso marcos avanzados que dependen del procesamiento de anotaciones.
Curva de aprendizaje fácil
Kotlin pretende ser una mejora para Java, en lugar de una reescritura completa, por lo que muchas de las habilidades que ha adquirido y perfeccionado a lo largo de su carrera en Java aún deberían ser aplicables a sus proyectos de Kotlin.
Kotlin también está diseñado para tener una curva de aprendizaje suave para los desarrolladores de Java. Los desarrolladores de Java deberían descubrir que la mayoría de la sintaxis de Kotlin se siente familiar; Por ejemplo, el código que se utiliza para crear una nueva clase en Kotlin es muy similar a Java:
1 class
MainActivity : AppCompatActivity() {
Kotlin también está diseñado para ser intuitivo y fácil de leer, por lo que incluso si encuentra algún código que es drásticamente diferente, aún debería ser capaz de entender lo que está haciendo este código.
Combine lo mejor de la programación funcional y procesal
Actualmente hay una serie de paradigmas de programación que están en uso generalizado, pero cuando se trata de “qué enfoque es el mejor”, no hay una respuesta fácil. Cada paradigma de programación tiene su propio conjunto de fortalezas y debilidades, por lo que si bien no hay escasez de escenarios en los que la programación funcional tiene una ventaja, también hay muchos problemas en los que un enfoque de procedimiento es más efectivo.
Entonces, ¿por qué debería elegir entre funcional y de procedimiento? Al igual que muchos lenguajes de programación modernos, Kotlin tiene como objetivo brindarle lo mejor de ambos mundos mediante la combinación de conceptos y elementos de programación funcional y de procedimientos.
Soporte de primera clase para Android Studio
Kotlin es desarrollado por JetBrains, la compañía detrás de IntelliJ, el IDE en el que se basa Android Studio. No es sorprendente, entonces, que Android Studio tenga un excelente soporte para Kotlin. Una vez que haya instalado el complemento Kotlin, Android Studio hace que la configuración de Kotlin en su proyecto sea tan sencilla como abrir algunos menús.
Una vez que haya configurado el complemento Kotlin para Android Studio, su IDE no tendrá problemas para comprender, compilar y ejecutar el código Kotlin. Android Studio también proporciona depuración, autocompletado, navegación de código, pruebas de unidad y soporte completo de refactorización para Kotlin.
Una vez que su proyecto de Android Studio esté configurado para admitir Kotlin, incluso podrá convertir un archivo fuente Java completo en un archivo Kotlin, con solo unos pocos clics del mouse.
Código más conciso
Si compara una clase Java y una clase Kotlin que producen los mismos resultados, la escrita en Kotlin generalmente será mucho más sucinta y compacta que la escrita en Java. Y como todo desarrollador sabe, ¡menos código significa menos errores!
Por ejemplo, el siguiente código de Java crea una Actividad que consiste en un botón de acción flotante (FAB) que, cuando se toca, muestra una barra que contiene el mensaje útil Esta es una barra de bocadillos .
class
public
MainActivity extends
AppCompatActivity {
@Override
void
protected
onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton myfab = (FloatingActionButton) findViewById(R.id.myfab);
myfab.setOnClickListener(new
View.OnClickListener() {
@Override
public
void
onClick(View view) {
Snackbar.make(view, "This is a snackbar", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}
}
El equivalente de Kotlin logra este mismo trabajo en menos código, particularmente cuando se trata de crear el FAB y configurar onClickListener
:
class
MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val toolbar = findViewById(R.id.toolbar) as Toolbar
setSupportActionBar(toolbar)
val myfab = findViewById(R.id.myfab) as FloatingActionButton
myfab.setOnClickListener { view ->
Snackbar.make(view, "This is a snackbar", Snackbar.LENGTH_LONG)
.setAction("Action", null).show()
}
}
}
Ambos fragmentos de código tienen exactamente la misma salida:
Kotlin es particularmente bueno para reducir la cantidad de código repetitivo que necesita escribir, lo que debería hacer que la codificación en Kotlin sea una experiencia mucho más agradable, en comparación con la codificación en lenguajes más detallados como Java.
En particular, las extensiones de Android Kotlin (que exploraremos en la segunda parte) le permiten importar la referencia a una Vista en un archivo de Actividad, para que luego pueda trabajar con la Vista como si fuera parte de esa Actividad. Esto significa que ya no tiene que identificar cada Vista usando findViewById
, que puede transformar código como:
1 TextView text = (TextView) findViewById(R.id.myTextView); text.setText("Hello World");
TextView text = (TextView) findViewById(R.id.myTextView); text.setText("Hello World");
En lo mucho más sucinto:
1 myTextView.setText("Hello World")
¿Cuál es el truco?
Ningún lenguaje de programación es perfecto, por lo que aunque Kotlin tiene mucho que ofrecer a los desarrolladores de Android, hay algunos inconvenientes que deberá tener en cuenta:
Tamaño extra de tiempo de ejecución
La biblioteca estándar de Kotlin y el tiempo de ejecución aumentarán el tamaño de su .apk . Si bien esto solo equivale a alrededor de 800 KB, si su aplicación ya está en el lado grande, esos 800 KB adicionales pueden volcarlo y hacer que los usuarios piensen dos veces antes de descargar su aplicación.
Legibilidad inicial del código
Aunque la sintaxis concisa de Kotlin es una de las mayores fortalezas del lenguaje, es posible que inicialmente encuentre que Kotlin es difícil de descifrar, simplemente porque hay tantas cosas en una pequeña cantidad de código. Java puede ser más detallado, pero lo bueno es que todo está claramente explicado, lo que significa que el código Java desconocido tiende a ser más fácil de descifrar que Kotlin desconocido.
Además, si se usa incorrectamente, la sobrecarga del operador de Kotlin puede resultar en un código que es difícil de leer.
Falta de apoyo oficial
Kotlin puede tener un excelente soporte en Android Studio, pero vale la pena recordar que Kotlin no cuenta con el respaldo oficial de Google.
Además, la compilación y el autocompletado de Android Studio tienden a funcionar un poco más despacio cuando trabajas con Kotlin, en comparación con un proyecto Java puro.
Comunidad más pequeña y menos ayuda disponible
Dado que Kotlin es un lenguaje relativamente nuevo, la comunidad de Kotlin sigue siendo bastante pequeña, particularmente en comparación con la comunidad que rodea a los idiomas más establecidos como Java. Si cambia a Kotlin, es posible que no tenga acceso a la misma cantidad de tutoriales, publicaciones de blog y documentación del usuario, y puede encontrar menos apoyo de la comunidad en lugares como foros y Stack Overflow. Al momento de escribir este artículo, la búsqueda de Kotlin en Stack Overflow devuelve poco más de 4,600 publicaciones etiquetadas con Kotlin, en comparación con las increíbles 1,000,000+ publicaciones que contienen la etiqueta Java .
Conclusión
En la primera publicación de esta serie de tres partes, analizamos por qué es posible que desee considerar cambiar la parte de Java de su desarrollo de Android a uno de los lenguajes más modernos y compatibles con JVM. También analizamos más de cerca las ventajas y desventajas únicas de Kotlin como un posible reemplazo de Java.
Si ha sopesado los pros y los contras y ha decidido dar una vuelta a Kotlin, en la segunda parte de esta serie, le mostraré cómo usar Android Studio para crear una aplicación simple de Android, escrita completamente en Kotlin . ¡También veremos cómo puedes usar Kotlin para asegurarte de que nunca más tengas que escribir otro findViewById
!
Espero que esta información ayude !!