Como construir uma boa interface em aplicativos Android e iOS

Thiago Gottardo Alves
ioasys-voices
5 min readMay 24, 2022

--

Artigo produzido por Brenno de Moura e Thiago Alves.

Hoje em dia é essencial que uma aplicação apresente uma interface bem construída, com boas animações e que contribua para uma experiência do usuário cada vez melhor. Mas você sabe quais as técnicas necessárias para alcançar este objetivo nos sistemas Android e iOS?

Neste artigo, vamos apresentar para você o Jetpack Compose e o SwitfUI, Tookits modernas que auxiliam os desenvolvedores nesse grande desafio.

Jetpack Compose

Atualmente é muito importante que uma aplicação entregue a melhor experiência possível para seus usuários, através de uma interface refinada e boas animações. Esses requisitos não eram tão relevantes quando o UI Toolkit atual do Android foi criado, portanto atendê-los nem sempre foi algo trivial.

Buscando resolver esse problema, no final de 2019, a Google anunciou o Jetpack Compose, um Toolkit moderno para auxiliar os desenvolvedores a obterem sucesso nesse novo desafio.

O Compose utiliza o Kotlin, linguagem recomendada pela Google para o desenvolvimento Android. Ela é usada para implementar a abordagem da UI Declarativa, onde a hierarquia de componentes é redesenhada automaticamente quando alguma alteração no seu estado interno é realizada.

O que significa UI Declarativa?

Quando pensamos em UI Declarativa, devemos visualizar um código que descreve a interface do usuário que queremos, mas não descreve como fazer a transição para este estado (UI Imperativa).

Portanto, ao escrever um código declarativo, você não precisa mais se preocupar com o estado anterior da sua interface, você só deve especificar qual deve ser o seu estado atual. A estrutura controla como ir de um estado para outro.

Com códigos tudo fica mais claro!

Para entendermos os conceitos apresentados acima, e o funcionamento do Jetpack Compose, vamos implementar uma simples interface de listagem de contatos telefônicos:

Porém, antes de pensarmos em como estruturar a UI para implementarmos a tela acima, vamos entender alguns componentes básicos do Jetpack Compose.

  • Column: utilizado para colocar itens na vertical;
  • Row: utilizado para colocar itens na horizontal;
  • Box: utlizado para agrupar elementos um dentro do outro;
  • LazyColumn (lista na vertical);
  • LazyRow (lista na horizontal);

Cada componente no Jetpack Compose pode ser alterado através da utilização de Modificadores. Segundo a própria documentação, através dos Modificadores é possível:

  • Mudar o tamanho, o layout, o comportamento e a aparência do elemento;
  • Adicionar informações, como rótulos de acessibilidade;
  • Processar a entrada do usuário;
  • Adicionar interações de nível superior, como tornar um elemento clicável, rolável, arrastável ou redimensionável;

Bom, agora que já sabemos alguns dos componentes básicos do Compose, vamos voltar para o nosso exemplo. Vamos focar primeiro na construção do item que representa o contato de um usuário.

Podemos pensar na estrutura deste elemento como sendo a combinação de alguns dos componentes apresentados acima.

  • Row: uma vez que os componentes estão alinhados na horizontal;
  • Nome do usuário e telefone posicionados na vertical (Column);

Também iremos utilizar o componente Card, para aplicarmos a elevação e as bordas do elemento.

Acima, podemos visualizar o código que corresponde ao elemento desejável.

Agora que já possuímos um elemento estruturado, basta criarmos uma lista para alcançarmos o nosso objetivo inicial. Para isso, vamos utilizar o Componente LazyColumn, discutido acima.

Pronto, com apenas algumas linhas de código a listagem está feita. Listagens são uma grande vantagem do Jetpack Compose e aqui fica claro o motivo.

O futuro do desenvolvimento Android

O Jetpack Compose é a aposta do Google para os próximos anos do desenvolvimento de UI em Android. Com a promessa de melhorar cada vez mais a experiência dos desenvolvedores, aumentando a produtividade e diminuindo os códigos e através do pequeno exemplo apresentado neste artigo, podemos notar que ele cumpre com perfeição estes objetivos.

É importante se manter atualizado nas mudanças dessa Toolkit, já que ela está em constante evolução.

Ficou curioso para explorar mais o Jetpack Compose? Acesse os conteúdos e documentações que o Google vem desenvolvendo para a comunidade:

https://developer.android.com/jetpack/compose/tutorial

https://developer.android.com/courses/pathways/compose

https://github.com/android/compose-samples

SwiftUI

O SwiftUI é um framework da Apple lançado em 2019 na WWDC com recursos inovadores para auxiliar o desenvolvimento dos aplicativos.

Seguindo os princípios do paradigma de programação declarativo, a iniciativa da Apple trouxe uma reformulação no mercado de desenvolvimento iOS, macOS, watchOS e tvOS. Por conta do novo paradigma, a estruturação do código ficou simples e direta.

Para mostrar mais sobre os ganhos no desenvolvimento de um aplicativo, trarei como exemplo a implementação de uma tela simples para fazer listagem de contatos na plataforma iOS.

SwiftUI na prática

A listagem é feita utilizando alguns recursos do SwiftUI. Primeiro, faremos uso do @State para nossa variável de array dos contatos. Segundo, utilizaremos o ForEach para fazer a conversão do objeto contato em um item da lista. Por último, utilizaremos a List com o layout nativo do iOS para mostrar os contatos seguindo o estilo da Apple.

Ao executar esse código, temos o seguinte resultado:

Por que é importante?

Com poucas linhas de código foi possível implementar o layout e regras para fazer a listagem dos contatos e a possibilidade de favoritar cada um deles. A solução com o UIKit exigiria criar a ViewController, View com UITableView junto com a célula do tipo UITableViewCell e, ainda, implementar os protocolos data source e delegate.

No final, com o SwiftUI, temos apenas um único arquivo com as regras embutidas na construção de layout, facilitando a implementação, manutenção e consistência do código.

Obrigado por ler até aqui! Gostou do conteúdo? Confira a Semana Tech nas nossas redes sociais (Instagram e Linkedin).

--

--