Conheça o Beagle: A evolução do Server-Driven UI
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