RxSwift y corrutinas en Kotlin: una materia optativa en desarrollo móvil de AGIMA y GeekBrains

RxSwift y corrutinas en Kotlin: una materia optativa en desarrollo móvil de AGIMA y GeekBrains

El conocimiento es bueno, simplemente genial. Pero también se necesita práctica para poder utilizar los datos recibidos, transfiriéndolos del estado de "almacenamiento pasivo" al estado de "uso activo". Por muy buena que sea la formación teórica, sigue siendo necesario el trabajo “en el campo”. Lo anterior se aplica a casi cualquier campo de estudio, incluido, por supuesto, el desarrollo de software.

Este año, GeekBrains, como parte de la facultad de desarrollo móvil de la universidad en línea GeekUniversity, comenzó a trabajar con la agencia interactiva AGIMA, cuyo equipo está formado por desarrolladores profesionales (crean proyectos complejos de alta carga, portales corporativos y aplicaciones móviles, eso es todo). AGIMA y GeekBrains han creado una asignatura optativa para profundizar en las cuestiones prácticas del desarrollo de aplicaciones móviles.

El otro día hablamos con Igor Vedeneev, especialista en iOS, y Alexander Tizik, especialista en Android. Gracias a ellos, la optativa sobre desarrollo móvil se enriqueció con prácticas curso especial sobre el marco RxSwift и corrutinas en Kotlin. En este artículo, los desarrolladores hablan sobre la importancia de cada área para los programadores.

Programación reactiva en iOS usando RxSwift como ejemplo

RxSwift y corrutinas en Kotlin: una materia optativa en desarrollo móvil de AGIMA y GeekBrains
Profesor optativo Igor Vedeneev: “Con RxSwift, su aplicación volará”

¿Qué información reciben los estudiantes durante la optativa?

No solo hablamos de las capacidades del marco, sino que también mostramos cómo usarlo en la combinación clásica MVVM + RxSwift. También se analizan varios ejemplos prácticos. Para consolidar los datos obtenidos, escribimos una aplicación que se acerque lo más posible a las condiciones de operación de campo. Esta será una aplicación de búsqueda de música usando API de búsqueda de iTunes. Allí aplicaremos todas las mejores prácticas y consideraremos una opción más simple para usar RxSwift en el paradigma MVC.

RxSwift: ¿por qué un programador de iOS necesita este marco? ¿Cómo le facilita la vida a un desarrollador?

RxSwift agiliza el trabajo con flujos de eventos y conexiones entre objetos. El ejemplo más simple y obvio son los enlaces: por ejemplo, puede actualizar la interfaz simplemente estableciendo nuevos valores en una variable en viewModel. Por tanto, la interfaz pasa a estar basada en datos. Además, RxSwift le permite describir el sistema en un estilo declarativo, lo que le permite organizar su código y aumentar la legibilidad. Todo esto ayuda a desarrollar aplicaciones de manera más eficiente.

Para un desarrollador, el conocimiento del marco también es una buena ventaja en su currículum, ya que en el mercado se valora la comprensión de la programación reactiva y, especialmente, la experiencia con RxSwift.

¿Por qué elegir este marco en particular sobre otros?

RxSwift tiene la comunidad más grande. Es decir, existe una mayor probabilidad de que el problema al que se enfrenta el desarrollador ya haya sido solucionado por alguien. También una gran cantidad de encuadernaciones listas para usar. Además, RxSwift es parte de ReactiveX. Esto significa que existe un análogo para Android, por ejemplo (RxJava, RxKotlin), y los compañeros del taller pueden hablar el mismo idioma entre ellos, a pesar de que algunos trabajan con iOS y otros con Android.

El marco se actualiza constantemente, se corrigen errores menores, se agrega soporte para funciones de nuevas versiones de Swift y se agregan nuevos enlaces. Dado que RxSwift es de código abierto, puedes seguir todos los cambios. Además, es posible añadirlos usted mismo.

¿Dónde se debe utilizar RxSwift?

  1. Fijaciones. Como regla general, estamos hablando de la interfaz de usuario, la capacidad de cambiar la interfaz de usuario, como si reaccionara a los cambios de datos, y no le diga explícitamente a la interfaz que es hora de actualizar.
  2. Relación entre componentes y operaciones. Sólo un ejemplo. Necesitamos obtener una lista de datos de la red. De hecho, esta no es una operación tan sencilla. Para hacer esto, debe enviar una solicitud, asignar la respuesta a una matriz de objetos, guardarla en la base de datos y enviarla a la interfaz de usuario. Como regla general, diferentes componentes son responsables de realizar estas operaciones (amamos y seguimos los principios SOLID?). Al tener a mano una herramienta como RxSwift, es posible describir QUÉ hará el sistema y CÓMO lo hará en otros lugares. Es gracias a esto que se consigue una mejor organización del código y aumenta la legibilidad. En términos relativos, el código se puede dividir en una tabla de contenido y el libro en sí.

Corrutinas en Kotlin

RxSwift y corrutinas en Kotlin: una materia optativa en desarrollo móvil de AGIMA y GeekBrains
Profesor de cursos optativos Alexander Tizik: “El desarrollo moderno requiere medios técnicos modernos”

¿Qué se enseñará en la facultad de GeekBrains como parte del trimestre de marca?

Teoría, comparaciones con otros enfoques, ejemplos prácticos en Kotlin puro y en el modelo de aplicación de Android. En cuanto a la práctica, a los estudiantes se les mostrará una aplicación en la que todo está vinculado a corrutinas. El hecho es que la mayoría de las aplicaciones son completamente asíncronas y de computación paralela. Pero las corrutinas de Kotlin permiten reducir código confuso, heterogéneo o demasiado complejo y que exige rendimiento a un estilo único y fácil de entender, obteniendo beneficios en la correcta ejecución y rendimiento.

Aprenderemos a escribir código idiomático en corrutinas que resuelva problemas prácticos y sea comprensible a primera vista incluso sin un conocimiento profundo de cómo funcionan las corrutinas (lo que no se puede decir de bibliotecas como RxJava). También entenderemos cómo utilizar conceptos más complejos, como el modelo de actor, para resolver problemas más complejos, como el almacén de datos en el concepto MVI.

Por cierto, más buenas noticias. Mientras se grababa la materia optativa, se publicó una actualización de la biblioteca de Kotlin Coroutines, en la que aparecía la clase. Flow - análogo de tipos Flowable и Observable de RxJava. Básicamente, la actualización completa las funciones de las corrutinas desde el punto de vista del desarrollador de aplicaciones. Es cierto que todavía hay margen de mejora: a pesar de que gracias al soporte de corrutinas en kotlin/native, ya es posible escribir aplicaciones multiplataforma en Kotlin y no sufrir la falta de RxJava o análogos en Kotlin puro, El soporte para corrutinas en Kotlin/native aún no está completo. Por ejemplo, no existe el concepto de actores. En general, el equipo de Kotlin tiene planes de admitir actores más complejos en todas las plataformas.

Kotlin Coroutines: ¿cómo ayudan a un desarrollador de Kotlin?

Las corrutinas brindan una gran oportunidad para escribir código que sea legible, mantenible y seguro, asíncrono y concurrente. También puede crear adaptadores para otros marcos y enfoques asincrónicos que quizás ya se utilicen en el código base.

¿En qué se diferencian las corrutinas de los subprocesos?

El equipo de Kotlin llama a las corrutinas hilos ligeros. Además, una corrutina puede devolver algún valor porque, en esencia, una corrutina es un cálculo suspendido. No depende directamente de los subprocesos del sistema; los subprocesos solo ejecutan corrutinas.

¿Qué problemas prácticos se pueden resolver usando Coroutine, que no pueden o son difíciles de resolver usando Kotlin “puro”?

Cualquier tarea asincrónica, paralela y "competitiva" se resuelve bien utilizando corrutinas, ya sea procesando clics de usuarios, conectándose o suscribiéndose a actualizaciones de una base de datos.

En Kotlin puro, estos problemas se resuelven de la misma manera que en Java: con la ayuda de miles de marcos, cada uno de los cuales tiene sus pros y sus contras, pero ninguno de ellos tiene soporte a nivel de lenguaje.

Como conclusión, vale la pena decir que ambas materias optativas (y también los cursos principales) se actualizan de acuerdo con los cambios en las condiciones externas. Si aparecen actualizaciones importantes en lenguajes o frameworks, los profesores lo tienen en cuenta y modifican el programa. Todo esto le permite estar al tanto del proceso de desarrollo, por así decirlo.

Fuente: habr.com

Añadir un comentario