RxSwift e corrotinas em Kotlin - Eletiva de desenvolvimento móvel da AGIMA e GeekBrains

RxSwift e corrotinas em Kotlin - Eletiva de desenvolvimento móvel da AGIMA e GeekBrains

Conhecimento é bom, simplesmente ótimo. Mas também é necessária prática para poder utilizar os dados recebidos, transferindo-os do status de “armazenamento passivo” para o status de “uso ativo”. Por melhor que seja a formação teórica, ela ainda exige trabalho “no campo”. Isso se aplica a quase todas as áreas da educação, incluindo, é claro, o desenvolvimento de software.

Este ano, a GeekBrains, no âmbito do corpo docente da universidade online GeekUniversity em desenvolvimento mobile, começou a trabalhar com a agência interativa AGIMA, cuja equipe é formada por desenvolvedores profissionais (eles fazem projetos complexos de alta carga, portais corporativos e aplicativos móveis, isso é tudo ). AGIMA e GeekBrains criaram uma disciplina eletiva para um mergulho profundo nos aspectos práticos do desenvolvimento de aplicativos móveis.

Outro dia conversamos com Igor Vedeneev, especialista em iOS, e Alexander Tizik, especialista em Android. Graças a eles, a disciplina optativa de desenvolvimento mobile foi enriquecida com práticas um curso especial sobre a estrutura RxSwift и corrotinas em Kotlin. Neste artigo, os desenvolvedores falam sobre a importância de cada direção para os programadores.

Programação reativa em iOS usando RxSwift como exemplo

RxSwift e corrotinas em Kotlin - Eletiva de desenvolvimento móvel da AGIMA e GeekBrains
Professor eletivo Igor Vedeneev: "Com o RxSwift sua aplicação voará"

Que informações os alunos recebem nas disciplinas eletivas?

Falamos não apenas sobre os recursos do framework, mas também mostramos como usá-lo no pacote clássico MVVM + RxSwift. Vários exemplos práticos também são considerados. Para consolidar os dados obtidos, escrevemos uma aplicação o mais próximo possível das condições de trabalho em campo. Será um aplicativo de busca de músicas com API de pesquisa do iTunes. Lá aplicaremos todas as Melhores Práticas, além de considerarmos um uso mais simples do RxSwift no paradigma MVC.

RxSwift – por que esse framework precisa de um programador iOS, como ele facilita a vida de um desenvolvedor?

RxSwift agiliza o trabalho com fluxos de eventos e relacionamentos entre objetos. O exemplo mais simples e óbvio são as ligações: por exemplo, você pode atualizar a interface simplesmente definindo um novo valor para uma variável no viewModel. Assim, a interface torna-se orientada por dados. Além disso, o RxSwift permite descrever o sistema em um estilo declarativo, o que permite agilizar o código e melhorar a legibilidade. Tudo isso ajuda a desenvolver aplicações com mais eficiência.

Para um desenvolvedor, o conhecimento do framework também é um bom diferencial no currículo, já que o entendimento de programação reativa, e em particular a experiência com RxSwift, é valorizado no mercado.

Por que escolher esta estrutura específica e não outras?

RxSwift tem a maior comunidade. Ou seja, é mais provável que o problema que o desenvolvedor está enfrentando já tenha sido resolvido por alguém. Também um grande número de encadernações prontas para uso. Além disso, o RxSwift faz parte do ReactiveX. Isso significa que existe um análogo para Android, por exemplo (RxJava, RxKotlin), e os colegas da loja podem falar a mesma língua entre si, apesar de alguns trabalharem com iOS, outros com Android.

A estrutura é constantemente atualizada, pequenos bugs são corrigidos, suporte para recursos de novas versões do Swift é adicionado, novas ligações são adicionadas. Como o RxSwift é de código aberto, você pode acompanhar todas as alterações. Além disso, é possível adicioná-los você mesmo.

Onde você deve usar o RxSwift?

  1. Ligações. Via de regra, aqui estamos falando sobre a UI, a capacidade de alterar a UI, como se estivesse reagindo às mudanças de dados, e não informando explicitamente à interface que é hora de atualizar.
  2. Comunicação de componentes e operações. Apenas um exemplo. Precisamos obter uma lista de dados da rede. Na verdade, esta não é uma operação tão simples. Para fazer isso, você precisa enviar uma solicitação, mapear a resposta em um array de objetos, salvá-la no banco de dados e entregá-la à UI. Via de regra, diferentes componentes são responsáveis ​​por realizar essas operações (adoramos e seguimos os princípios SOLID?). Tendo em mãos uma ferramenta como o RxSwift, torna-se possível descrever O QUE o sistema fará e COMO o fará, localizado em outros locais. É por isso que se consegue uma melhor organização do código e aumenta a legibilidade. Relativamente falando, o código pode ser dividido em um índice e no próprio livro.

Corrotinas em Kotlin

RxSwift e corrotinas em Kotlin - Eletiva de desenvolvimento móvel da AGIMA e GeekBrains
Professor eletivo Alexander Tizik: “O desenvolvimento moderno requer meios técnicos modernos”

O que será ensinado no corpo docente da GeekBrains como parte do trimestre da marca?

Teoria, comparações com outras abordagens, exemplos práticos em Kotlin puro e no modelo de aplicação Android. Quanto à prática, será mostrado aos alunos um aplicativo onde tudo está vinculado a corrotinas. O fato é que a maioria dos aplicativos são de computação contínua, assíncrona e paralela. Mas as corrotinas Kotlin permitem que códigos confusos, heterogêneos ou excessivamente complexos e que exigem desempenho sejam reduzidos a um estilo único e fácil de entender, ganhando na correção de execução e desempenho.

Aprenderemos como escrever código idiomático de corrotinas que resolva problemas práticos e seja compreensível à primeira vista, mesmo sem um conhecimento profundo de como funcionam as corrotinas (o que não pode ser dito sobre bibliotecas como RxJava). Também entenderemos como utilizar conceitos mais complexos, como o modelo de ator, para resolver problemas mais complexos, como o armazenamento de dados no conceito MVI.

A propósito, mais boas notícias. Enquanto a eletiva estava sendo escrita, foi lançada uma atualização da biblioteca Kotlin Coroutines, na qual a aula apareceu Flow - análogo de tipos Flowable и Observable do RxJava. A atualização, de fato, torna o recurso de corrotinas completo do ponto de vista do desenvolvedor de aplicativos. É verdade que ainda há espaço para desenvolvimento: apesar de graças ao suporte de corrotinas em kotlin/nativo, já é possível escrever aplicações multiplataforma em Kotlin e não sofrer com a falta de RxJava ou análogos em Kotlin puro, suporte para corrotinas em kotlin/native ainda não estão completas. Por exemplo, não existe conceito de atores. Em geral, a equipe Kotlin planeja oferecer suporte a atores mais complexos em todas as plataformas.

Corrotinas Kotlin - como elas ajudam um desenvolvedor Kotlin?

As corrotinas oferecem uma grande oportunidade para escrever código legível, sustentável e seguro, assíncrono e de simultaneidade. Você também pode criar adaptadores para outras estruturas e abordagens assíncronas que já possam ser usadas na base de código.

Como as corrotinas são diferentes dos threads?

A equipe Kotlin refere-se às corrotinas como threads leves. Além disso, uma corrotina pode retornar algum valor, porque, em sua essência, uma corrotina é um cálculo suspenso. Não depende diretamente dos threads do sistema, os threads apenas executam corrotinas.

Quais tarefas práticas podem ser resolvidas usando Corutin, quais não podem ou são difíceis de resolver usando Kotlin “puro”?

Quaisquer tarefas assíncronas, paralelas e "competitivas" são bem resolvidas com a ajuda de corrotinas - seja processando cliques do usuário, acessando a rede ou assinando atualizações do banco de dados.

No Kotlin puro, essas tarefas são resolvidas da mesma forma que no Java - usando milhares de frameworks, cada um com seus prós e contras, mas nenhum deles tem suporte no nível da linguagem.

Concluindo, deve-se dizer que ambas as disciplinas eletivas (e também as disciplinas básicas) são atualizadas de acordo com as mudanças nas condições externas. Caso haja atualizações importantes em linguagens ou frameworks, os professores levam isso em consideração e modificam o programa. Tudo isso permite que você acompanhe o processo de desenvolvimento, por assim dizer.

Fonte: habr.com

Adicionar um comentário