Skip to content

Fluxo de Estados

Para garantir que a aplicação seja previsível e forneça uma boa experiência para o desenvolvedor, criados um fluxo de estados onde as funcionalidades se limitam em funcionamento, ou seja, dependendo do estado atual da aplicação, certas funcionalidades não podem ser executadas e certos elementos da interface também são omitidos.

Esse fluxo de estados não se limita somente as funcionalidades, ele ajuda também ao desenvolvedor, fornecendo a ela uma maneira de integrar o SDK com a sua solução de maneira reativa e orientada a eventos, ou seja, o desenvolvedor pode aguardar um determinado estado ocorrer, para executar certa ação na própria solução.

Diagrama de Fluxo

Abaixo, você pode ver o desenho para o diagrama de fluxo que nosso SDK segue para mudar entre estados.

Diagrama de Fluxo

Exemplos de Fluxos do Lado do Desenvolvedor

Abaixo você pode ver alguns exemplos de fluxos que você poderia implementar em sua solução usando o fluxo de estados da nossa SDK. Leve eles como uma sugestão para se inspirar, tenha em mente que o SDK é versátil o suficiente para você conseguir comportar suas funcionalidades em seu próprio fluxo de estados.

Repetir tradução a cada X tempos;

Esse fluxo pode ser útil quando você quer realizar uma tradução, e que ela se repita a cada X tempos. Um dicionário de palavras se beneficiaria disso, pois a ideia seria permitir a repetição da palavra para o entendimento do usuário.

Exemplo de fluxo Repetir tradução a cada X tempos

  1. Traduzo uma palavra: ready -> translating;
  2. Aguardo a tradução terminar: translating -> ready;
  3. Faço um timer de 5 segundos;
  4. Ao final do timer chamo a funcionalidade de repetição
  5. Repete o fluxo...

Maximizar, Traduzir, Minimizar;

Exemplo de fluxo Maximizar, Traduzir, Minimizar

Esse tipo de fluxo é interessante se você quiser que a janela de tradução só apareça traduzindo por curtos momentos. Esse tipo de fluxo economiza espaço e é muito aceito em locais como aplicações de chat.

  1. Minimizo a janela: ready -> minimized;
  2. Maximizo a janela: minimized -> ready;
  3. Traduzo uma frase: ready -> translating;
  4. Aguardo a tradução terminar: translating -> ready;
  5. Minimizo a janela: ready -> minimized;
  6. Repete o fluxo...

Lançado sob Licença MIT.