Android

23 nov, 2017

Anunciando Componentes de Arquitetura 1.0 estáveis

Publicidade

Artigo de Lukas Bergstrom, publicado originalmente pelo Android Developers Blog. A tradução foi feita pela Redação iMasters com autorização.

***

O Android funciona em bilhões de dispositivos, desde telefones sofisticados até encostos de avião. O sistema operacional Android gerencia recursos de forma agressiva para funcionar bem nessa enorme variedade de dispositivos, e às vezes isso pode tornar complicado o desenvolvimento de aplicativos robustos. Para tornar isso mais fácil, lançamos uma prévia dos Componentes de Arquitetura na Google I/O para fornecer orientação sobre arquitetura de aplicativos, com bibliotecas para tarefas comuns, como gerenciamento de ciclo de vida e persistência de dados. Juntos, esses componentes fundamentais possibilitam a criação de aplicativos modulares com menos código padrão, para que os desenvolvedores possam se concentrar em inovar em vez de reinventar a roda – e esperamos continuar construindo essa base no futuro.

Estamos felizes em anunciar que as bibliotecas dos Componentes de Arquitetura do Room e do LifeCycle alcançaram o 1.0 estável. Essas APIs estão prontas para aplicativos e bibliotecas de produção e são nossa recomendação para desenvolvedores que procuram ajuda com arquitetura de aplicativos e armazenamento local (embora sejam apenas recomendados, não necessários). Ciclos de vida também estão agora integrados com a Biblioteca de Suporte, para que você possa usá-los com classes padrão, como AppCompatActivity.

Embora os declaremos estáveis hoje, os componentes beta já são usados em aplicativos que, juntos, possuem bilhões de instalações. Os principais desenvolvedores, como o Zappos, conseguiram gastar mais tempo no que é importante graças aos Componentes da Arquitetura:

Antes do lançamento dos Componentes de Arquitetura Android, tivemos nossa própria implementação ViewModel. Utilizamos Alimentadores e Injeção de Dependência para persistir em nosso ViewModel através de mudanças de configuração. Recentemente, mudamos para a implementação ViewModel dos Componentes da Arquitetura e todos aqueles padrões se foram. Descobrimos que conseguimos gastar mais tempo em projeto, lógica de negócios e testes, e menos na escrita padrão ou nos preocupando com problemas de lifecycle do Android.

Também começamos a usar o LiveData que se encaixa diretamente no lifecycle da Atividade. Usamos isso para recuperar e exibir dados de rede e não precisamos mais nos preocupar com o gerenciamento de assinaturas de chamadas de rede”. – David Henry, Engenheiro de Software de Android, Zappos

Componentes de Arquitetura fornecem uma abordagem simples, flexível e prática que liberta os desenvolvedores de alguns problemas comuns para que eles possam se concentrar na construção de grandes experiências. Isso é baseado em blocos de construção centrais unidos por orientação na arquitetura do aplicativo.

Lifecycles

Todo desenvolvedor de Android tem que lidar com o sistema operacional iniciando, parando e destruindo suas Atividades. Isso significa gerenciar o estado dos componentes – como os observáveis usados para atualizar UI – à medida que você se move no ciclo de vida. Lifecycles permitem a criação de componentes conscientes do ciclo de vida que gerenciam seus próprios ciclos de vida, reduzindo a possibilidade de vazamentos ou falhas. A biblioteca Lifecycle é a base para outros Componentes de Arquitetura como o LiveData.

LiveData

O LiveData é um observável consciente do lifecycle que mantém dados e fornece atualizações. Seu código UI se inscreve em alterações e fornece ao LiveData uma referência ao seu Lifecycle. Como o LiveData é consciente do lifecycle, ele fornece atualizações quando seu Lifecycle é iniciado ou retomado, mas para de fornecer atualizações quando o LifecycleOwner é destruído. O LiveData é uma maneira simples de criar interfaces de usuário reativas que são mais seguras e mais performantes.

ViewModel

O ViewModel separa a propriedade de dados de exibição e lógica de entidades vinculadas ao lifecycle, como Atividades e Fragmentos. Um ViewModel é retido até que sua Atividade ou Fragmento associado seja eliminado para sempre – o que significa que os dados de exibição sobrevivem a eventos como um Fragmento sendo recriado devido à rotação. ViewModels não apenas eliminam problemas comuns de lifecycle, eles ajudam a criar UIs mais modulares e mais fáceis de testar.

Room

Quase todos os aplicativos precisam armazenar dados localmente. Enquanto o Android agrupou o SQLite com a plataforma desde a versão 1, usar isso diretamente pode ser doloroso. Room é uma camada simples de mapeamento de objetos que fornece o poder total do SQlite com menor padrão. Recursos como verificação de consulta de tempo de compilação e migração integrada facilitam a criação de uma camada de persistência robusta, enquanto a integração com o LiveData permite que o Room forneça observáveis ​​com base em banco de dados e conscientes ​​do lifestyle. Room é uma mistura de simplicidade, potência e robustez para gerenciamento de armazenamento local, e esperamos que você dê a ela uma chance.

Guia para Arquitetura de Aplicativos e mais

Por último, mas não menos importante, criamos um guia para arquitetura de aplicativos que fornece princípios fundamentais aplicáveis ​​a todos os desenvolvedores e orientações específicas sobre o uso de Componentes de Arquitetura em conjunto. Como ouvimos de você que orientações claras e consistentes são importantes, hoje estamos atualizando a documentação do desenvolvedor para apontar os Componentes da Arquitetura, onde apropriados. Nós também temos um rico conjunto de vídeos, codelabs e exemplos de aplicativos disponíveis no site Componentes de Arquitetura, com mais por vir.

Assista esse espaço

Embora o primeiro conjunto de Componentes da Arquitetura esteja agora estável, sabemos que há mais trabalho a fazer. Ao longo dos últimos meses, ouvimos seus comentários e fizemos melhorias. Nós também lançamos recentemente um novo Componente de Arquitetura, PagedList, para alfa, em resposta aos seus comentários de que o tratamento de grandes conjuntos de dados com RecyclerView é muito difícil. Este é apenas o começo – temos mais componentes principais em desenvolvimento que estamos pretendendo anunciar nos próximos meses.

Nossa esperança com os Componentes de Arquitetura é liberar desenvolvedores para se concentrarem em fornecer novas experiências únicas para dispositivos móveis. Estamos felizes por podermos finalmente anunciá-los como estáveis para o uso na produção. Gostaríamos de agradecer a comunidade, que nos deu um ótimo feedback ao longo do caminho, e estamos ansiosos para continuar a discussão nos comentários desta publicação. Finalmente, para aqueles que esperaram esse lançamento estável, comece hoje.

***

Este artigo é do Android Developers Blog. Ele foi escrito por Lukas Bergstrom. A tradução foi feita pela Redação iMasters com autorização. Você pode acessar o original em: https://android-developers.googleblog.com/2017/11/announcing-architecture-components-10.html