Conheça o Beagle: A evolução do Server-Driven UI

Uzias Ferreira
Zup Developer Blog
Published in
2 min readJun 26, 2020

Primeiro, antes de começarmos a falar sobre a evolução precisamos entender o conceito.

O que é Server-Driven UI?

É quando a API informa ao cliente quais componentes renderizar e com qual conteúdo. Isso pode ser implementado nas três principais plataformas: Android, iOS e Web.

E ai que entra a evolução, finalmente saiu uma biblioteca open source que vai ajudar a gente a aplicar esse conceito de uma forma padronizada entre as plataformas.

Algumas vantagens que utilizando essa biblioteca o seu app vai ter:

Releases automáticos e sem lojas

Acomode mudanças com facilidade

Construa apenas uma vez (Android, iOS e Web)

Minimiza repetições de código

Fácil manutenção

Flexível para atender Designers

Como o Beagle faz isso?

As telas são renderizadas a partir de um json, essa biblioteca tem uma engine que vc envia um json e ele renderiza para uma tela nativa.

E como eu faço a construção dessas telas?

Atualmente existem duas maneiras de construir telas: escrevendo elas com uma DSL fornecida pelo proprio Beagle ou escrevendo seu json na mão.

Exemplo(DSL):

class OutfitScreen : ScreenBuilder {override fun build() =
Screen(
navigationBar = navBar(),
child = screenWidgets()
)
private fun navBar(): NavigationBar {
return NavigationBar(
title = "Title"
}
private fun screenWidgets(): Widget {
return Container(
children = listOf(
outfitImage(),
outfitColors(),
outfitSize(),
submitButton()
)
).applyFlex(
Flex(
grow = 1.0,
justifyContent = JustifyContent.SPACE_BETWEEN,
)
)
}
}

O que mais essa biblioteca oferece?

Navegação de telas Server-Driven

Você consegue construir fluxos de ponta a ponta apenas utilizando esse framework.

Comunicação entre componentes Server-Driven

Sabe aquela busca de endereço que vc precisa fazer e preencher os campos automaticamente?

Nesse framework existe suporte para comunicação entre componentes e você consegue fazer isso facilmente.

Plugin para IDE para Hot Reload

Como vou visualizar a tela que eu escrevi no meu backend?

Atualmente existe um plugin que você consegue escrever a sua tela e visualiza ela atraves do emulador

Conclusão:

Chega de passar semanas desenvolvendo um código ou fazendo gambiarras para rodar um teste A/B que talvez nem vá para a frente.
Em breve vou lançar mais alguns artigos utilizando o Beagle na prática.

Referências:

https://medium.com/better-programming/exploring-server-driven-ui-cf67b3da919

--

--