No Figma, as variantes são usadas para agrupar diferentes variações do mesmo componente, como diferentes estados ou tamanhos. O Relay preserva as variantes de um componente quando ele é convertido em código. Nesta seção, vamos aprender como o Relay processa variantes de designs.
Ponto de partida
![Card de notícias com variantes de árvore](https://developer.android.google.cn/static/develop/ui/compose/tooling/relay/images/design-variants/news-card-with-variants.png?authuser=5&hl=pt)
Começaremos com um arquivo do Figma que contenha um componente News Card com três variantes:
- hero-item: serve para a matéria mais importante.
- article-item é para um artigo comum
- audio-item é para um artigo que você ouve, em vez de ler
Copiar um exemplo do Figma
Vamos usar um arquivo do Figma já existente como exemplo para este tutorial. Confira se a conta do Figma está conectada.
- Faça o download do arquivo HelloNews.fig no computador.
No Figma, acesse o navegador de arquivos. No lado esquerdo, passe o mouse sobre Rascunhos. Um ícone + vai aparecer. Clique no ícone + e depois em Importar. Selecione o arquivo HelloNews.fig que você acabou de transferir por download. Isso pode levar de 10 segundos a um minuto.
Abra o arquivo importado no Figma.
Criar um pacote de interface
O plug-in Relay para Figma adiciona informações extras ao nosso componente para que possamos trabalhar com nossos desenvolvedores, que vão usar nosso componente no código.
- Abra o plug-in Relay para Figma no arquivo (na barra de menus: Plugins > Relay for Figma). Clique em Começar.
Selecione o componente e clique em Create UI Package.
Com o pacote de interface selecionado, adicione uma descrição à caixa de resumo. Por exemplo: "Componente do card de notícias destinado a exibir itens de notícias de uma lista".
Salvar versão nomeada
Agora que você criou um pacote de interface, prepare o componente para compartilhá-lo com a equipe de desenvolvimento.
- Abra o plug-in do Figma Relay, se ainda não estiver aberto.
- Clique em Compartilhar com o desenvolvedor.
- Na tela Compartilhar com o desenvolvedor, é possível inserir o nome e a descrição da nova versão na seção Salvar histórico de versões.
Clique em Salvar.
Exemplo de título: Novo card inicial
Exemplo de descrição: primeira iteração dos itens do artigo de notícias
Fazer o download do projeto do Android Studio
Para a parte do Android Studio neste tutorial, usaremos um projeto pré-configurado do Android Studio. Esse projeto contém um app que exibe artigos de notícias em formato de texto simples.
- Faça o download do arquivo HelloNews.zip de exemplo.
- Clique duas vezes no arquivo para descompactá-lo. Isso criará uma pasta chamada HelloNews. Mova o arquivo para sua pasta inicial.
- Volte para o Android Studio. Acesse File > Open, navegue até a pasta inicial, selecione HelloNews e clique em Open.
- Ao abrir o projeto, o Android Studio vai perguntar se você confia nele. Clique em Trust Project.
Importar para o Android Studio
Vamos importar o componente do Figma para o projeto.
De volta ao Figma, copie o URL do arquivo News Card Tutorial do Figma. Usaremos esse URL para importar nossos componentes. No canto superior direito do Figma, clique no botão Share. Na caixa de diálogo aberta, clique em Copy Link.
Mude para o projeto HelloNews no Android Studio. Acesse File > New > Import UI Packages... na barra de menus do Android Studio.
Cole o URL do arquivo do Figma e clique em Next.
- Quando a busca do arquivo for concluída (o que pode levar algum tempo), clique em Finish.
Clique em
para criar seu projeto. Isso pode levar cerca de um minuto.
Visualizar app e componente
Na visualização do Android, abra
app/java/com/example/hellonews/ui/home/HomeScreen.kt
. Você verá uma prévia do app, que mostra várias matérias em um formato de texto simples, com matérias impressas acima de matérias em áudio.Abra o arquivo
app/java (generated)/com/example/hellonews/newscard/NewsCard.kt
. Esse é o código gerado pelo Jetpack Compose para o componente do Figma. Na visualização, podemos ver que três variantes do componente NewsCard foram traduzidas do Figma para código. Vamos analisar o código mais de perto.A enumeração
View
permite escolher qual variante usar para esse componente. O nome do tipo enumerado e os valores dele são derivados das variantes do componente do Figma. É usado no parâmetroview
no elemento que pode ser composto NewsCard.O elemento combinável NewsCard foi gerado no pacote da interface. Ele inclui um parâmetro do tipo
View
, que define a variante do card de notícias a ser instanciada.package com.example.myapplication.newscard import ... // Design to select for NewsCard enum class View { HeroItem, ArticleItem, AudioItem } /** * News card component intended to display news items for a list. * * This composable was generated from the UI Package 'news_card'. * Generated code; do not edit directly */ @Composable fun NewsCard( modifier: Modifier = Modifier, view: View = View.HeroItem ) {...}
A seguir
Ainda não estamos prontos para usar o NewsCard. O componente não sabe como exibir diferentes notícias, apenas a mesma fixada no código no Figma. Se fôssemos adicionar o componente agora, tudo o que conseguiríamos seria a mesma notícia repetida. Precisamos de uma maneira de especificar quais partes de NewsCard precisam ser preenchidas com dados dinâmicos.
Nesta seção, vamos adicionar parâmetros de conteúdo ao componente NewsCard.
Recomendados para você
- Observação: o texto do link aparece quando o JavaScript está desativado.
- Parâmetros de conteúdo
- Rolagem
- Como usar o Compose em visualizações