RxSwift i coroutines a Kotlin: una optativa en desenvolupament mòbil d'AGIMA i GeekBrains

RxSwift i coroutines a Kotlin: una optativa en desenvolupament mòbil d'AGIMA i GeekBrains

El coneixement és bo, simplement genial. Però també cal pràctica perquè pugueu utilitzar les dades rebudes, transferint-les de l'estat d'emmagatzematge passiu a l'estat d'ús actiu. Per molt bona que sigui la formació teòrica, encara cal treballar “al camp”. L'anterior s'aplica a gairebé qualsevol camp d'estudi, inclòs, per descomptat, el desenvolupament de programari.

Aquest any, GeekBrains, com a part de la facultat de desenvolupament mòbil de la universitat en línia GeekUniversity, va començar a treballar amb l'agència interactiva AGIMA, l'equip de la qual és desenvolupador professional (creen projectes complexos d'alta càrrega, portals corporatius i aplicacions mòbils, això és tot). AGIMA i GeekBrains han creat una optativa per aprofundir en els problemes pràctics del desenvolupament d'aplicacions mòbils.

L'altre dia vam parlar amb Igor Vedeneev, especialista en iOS, i Alexander Tizik, especialitzat en Android. Gràcies a ells, l'optativa sobre desenvolupament mòbil es va enriquir amb pràctiques curs especial sobre el framework RxSwift и coroutines a Kotlin. En aquest article, els desenvolupadors parlen de la importància de cada àrea per als programadors.

Programació reactiva a iOS utilitzant RxSwift com a exemple

RxSwift i coroutines a Kotlin: una optativa en desenvolupament mòbil d'AGIMA i GeekBrains
Professor d'optativa Igor Vedeneev: "Amb RxSwift, la vostra aplicació volarà"

Quina informació reben els alumnes durant l'optativa?

No només parlem de les capacitats del marc, sinó que també mostrem com utilitzar-lo en la clàssica combinació MVVM + RxSwift. També es comenten diversos exemples pràctics. Per consolidar les dades obtingudes, escrivim una aplicació el més propera possible a les condicions de funcionament del camp. Aquesta serà una aplicació de cerca de música que s'utilitzarà API de cerca d'iTunes. Allà aplicarem totes les millors pràctiques, a més de considerar una opció més senzilla per utilitzar RxSwift en el paradigma MVC.

RxSwift: per què un programador d'iOS necessita aquest marc, com li facilita la vida a un desenvolupador?

RxSwift racionalitza el treball amb fluxos d'esdeveniments i connexions entre objectes. L'exemple més senzill i obvi són els enllaços: per exemple, podeu actualitzar la interfície simplement establint nous valors en una variable del viewModel. Així, la interfície es basa en dades. A més, RxSwift us permet descriure el sistema en un estil declaratiu, que us permet organitzar el vostre codi i augmentar la llegibilitat. Tot això ajuda a desenvolupar aplicacions de manera més eficient.

Per a un desenvolupador, el coneixement del framework també és un bon avantatge en un currículum, ja que al mercat es valora la comprensió de la programació reactiva, i especialment l'experiència amb RxSwift.

Per què escollir aquest marc en particular per sobre d'altres?

RxSwift té la comunitat més gran. És a dir, hi ha més possibilitats que el problema al qual s'enfronta el desenvolupador ja hagi estat resolt per algú. També un gran nombre d'enquadernacions fora de la caixa. A més, RxSwift forma part de ReactiveX. Això vol dir que hi ha un anàleg per a Android, per exemple (RxJava, RxKotlin), i els companys del taller poden parlar el mateix idioma entre ells, malgrat que alguns funcionen amb iOS, altres amb Android.

El marc s'actualitza constantment, es corregeixen errors menors, s'afegeix suport per a funcions de noves versions de Swift i s'afegeixen nous enllaços. Com que RxSwift és de codi obert, podeu seguir tots els canvis. A més, és possible afegir-los tu mateix.

On s'ha d'utilitzar RxSwift?

  1. Enquadernacions. Per regla general, estem parlant de la interfície d'usuari, la capacitat de canviar la interfície d'usuari, com si reaccionés als canvis de dades i no digués explícitament a la interfície que és hora d'actualitzar-se.
  2. Relació entre components i operacions. Només un exemple. Hem d'obtenir una llista de dades de la xarxa. De fet, aquesta no és una operació tan senzilla. Per fer-ho, heu d'enviar una sol·licitud, mapejar la resposta a una matriu d'objectes, desar-la a la base de dades i enviar-la a la interfície d'usuari. Per regla general, diferents components són els responsables de realitzar aquestes operacions (ens estimem i seguim els principis SÒLID?). Tenint a la mà una eina com RxSwift, és possible descriure QUÈ farà el sistema i COM ho farà en altres llocs. És per això que s'aconsegueix una millor organització del codi i augmenta la llegibilitat. Relativament parlant, el codi es pot dividir en una taula de continguts i el propi llibre.

Coroutines a Kotlin

RxSwift i coroutines a Kotlin: una optativa en desenvolupament mòbil d'AGIMA i GeekBrains
Professor del curs optatiu Alexander Tizik: "El desenvolupament modern requereix mitjans tècnics moderns"

Què s'ensenyarà a la facultat de GeekBrains com a part del trimestre de marca?

Teoria, comparacions amb altres enfocaments, exemples pràctics en Kotlin pur i en el model d'aplicació Android. Pel que fa a la pràctica, es mostrarà als alumnes una aplicació en la qual tot està lligat a corrutines. El fet és que la majoria de les aplicacions són computadores completament asíncrones i paral·leles. Però les corrutines de Kotlin permeten reduir el codi confús, heterogeni o massa complex i exigent de rendiment a un estil únic i fàcil d'entendre, obtenint beneficis en l'execució i el rendiment correctes.

Aprendrem a escriure codi idiomàtic en corrutines que resolgui problemes pràctics i que sigui comprensible a primera vista fins i tot sense un coneixement profund de com funcionen les corrutines (cosa que no es pot dir de biblioteques com RxJava). També entendrem com utilitzar conceptes més complexos, com ara el model d'actor, per resoldre problemes més complexos, com ara el magatzem de dades en el concepte MVI.

Per cert, més bones notícies. Mentre s'enregistrava l'optativa, es va publicar una actualització de la biblioteca de Kotlin Coroutines, en la qual apareixia la classe. Flow - anàleg de tipus Flowable и Observable de RxJava. L'actualització bàsicament completa la funció de corrutines des del punt de vista del desenvolupador de l'aplicació. És cert que encara hi ha marge de millora: tot i que gràcies al suport de les corrutines en kotlin/natiu, ja és possible escriure aplicacions multiplataforma en Kotlin i no patir la manca de RxJava o anàlegs en Kotlin pur, El suport per a corrutines en kotlin/natiu encara no s'ha completat. Per exemple, no hi ha concepte d'actors. En general, l'equip de Kotlin té plans per donar suport a actors més complexos a totes les plataformes.

Kotlin Coroutines: com ajuden un desenvolupador de Kotlin?

Les coroutines ofereixen una gran oportunitat per escriure codi llegible, mantenible i segur, asíncron i simultani. També podeu crear adaptadors per a altres marcs i enfocaments asíncrons que ja es poden utilitzar a la base de codi.

En què es diferencien les coroutines dels fils?

L'equip de Kotlin anomena coroutines fils lleugers. A més, una corrutina pot retornar algun tipus de valor, perquè, en el seu nucli, una corrutina és un càlcul suspès. No depèn directament dels fils del sistema; els fils només executen corrutines.

Quins problemes pràctics es poden resoldre amb Coroutine, que no poden o són difícils de resoldre amb Kotlin "pur"?

Qualsevol tasca asíncrona, paral·lela i "competitiva" es resol bé mitjançant corrutines, ja sigui processant els clics dels usuaris, connectant-se a Internet o subscriure's a actualitzacions des d'una base de dades.

A Kotlin pur, aquests problemes es resolen de la mateixa manera que a Java, amb l'ajuda de milers de marcs, cadascun dels quals té els seus propis avantatges i contres, però cap d'ells té suport a nivell d'idioma.

Com a conclusió, val la pena dir que les dues optatives (i també les assignatures principals) s'actualitzen d'acord amb els canvis de les condicions externes. Si apareixen actualitzacions importants en idiomes o marcs, els professors ho tenen en compte i modifiquen el programa. Tot això et permet mantenir el dit al pols del procés de desenvolupament, per dir-ho així.

Font: www.habr.com

Afegeix comentari