Visão Geral

Nesta seção, você encontra informações iniciais sobre o Beagle antes de se aprofundar no produto.

O que é o Beagle?

O Beagle é um framework open source de desenvolvimento cross-platform pautado no paradigma de implementação de Server-Driven UI.

Dessa forma, é possível criar, testar e atualizar rapidamente os componentes de aplicações nativas sem a necessidade de passar pela loja (App Store ou Play Store).

Versionamento

As versões do Beagle seguem o conceito de versionamento semântico. A documentação, em si, é versionada de acordo com a versão major (maior) do Beagle, ou seja, com a versão principal. Entre as plataformas, a compatibilidade de features é pela versão minor. Por exemplo, é possível usar a 1.0.0 no backend com a 1.0.1 no Android, a 1.0.2 no iOS e a 1.0.3 no web react.

Algumas definições nessa documentação existem apenas em algumas minors ou patches específicas. Segue a legenda usada para denotar esses casos:

  • x.y.z: designa uma definição exclusiva da versão x.y.z;
  • >=x.y.z: designa uma definição existente a partir da versão x.y.z;
  • <=x.y.z: designa uma definição existente até a versão x.y.z.

Como funciona o Beagle?

A ferramenta atua como um facilitador do BFF (Backend For Frontend) Isso significa que o Beagle, a partir de uma biblioteca de componentes definidos no Design System da aplicação Android, iOS ou Web, faz a alteração visual e comportamental delas ao retornar um arquivo JSON que indica o que e onde deve ser renderizado cada componente e qual a ação que vão executar.

O motivo pelo qual o Beagle consegue fazer essa alteração do frontend a partir do backend é porque sua arquitetura está estruturada em Server-Driven UI, onde o BFF constrói os dados, componentes e ações presentes na tela de forma declarativa e os encaminha no formato JSON, enquanto o front o desserializa, renderiza os componentes visuais de forma nativa além de executar e atribuir as ações presentes em cada um deles.

Pilares do Beagle

Por se tratar de uma ferramenta pautada em Server-Driven UI, os objetos JSON configurados para rodar na sua aplicação podem ser divididos em 3 pilares básicos:

  • Conteúdo
  • Estrutura Visual
  • Flow (ou Ações)

Depois de definido no frontend e no backend como será a estrutura visual da aplicação com os componentes e ações customizados, bem como como eles poderão ser alterados, o BFF estará apto a se comunicar com o front.

Dessa forma, novas features, fluxos, customizações e combinações de componentes visuais podem ser testados sem a necessidade de publicar atualizações no aplicativo, otimizando testes de tipo A/B.

Por que usar o Beagle?

Sendo assim, as principais vantagens que o Beagle traz para seu projeto são:

  • Maior flexibilidade de trabalho entre desenvolvedores frontend, backend e UI/UX designers no momento de realizar alterações pontuais.
  • Facilidade de manutenção do app, além de possibilitar a realização constante de testes para melhoria da sua aplicação.
  • Menos duplicação de códigos, pois todo o consumo das APIs, fluxos e regras estarão em um único lugar, o BFF.

Outro ganho fundamental que o Beagle traz, é a possibilidade de reduzir o tempo de feedback do usuário, já que as mudanças são rapidamente testadas e validadas.


Última modificação 12/02/2021: Fix/migrate images to aws (#299) (a7bb5457)