Giter VIP home page Giter VIP logo

priority's Introduction

Priority Alert App

O aplicativo de prioridades é um aplicativo simples que mostra alguns tipos de alertas quando clicamos nos botões no final da página. Para cada botão de prioridade, um alerta de cor é idêntica a do botão é apresentado na tela. Ainda, alertas podem ser limpados por meio do botão de esconder alertas.

As figuras abaixo ilustram o comportamento atual do aplicativo:

Home Erro Aviso Informação

O que você deverá fazer

Nesse desafio, você deve refatorar o aplicativo e adicionar alguns comportamentos adicionais, tais como:

  1. Atualmente, o aplicativo não considera a prioridade dos alertas, logo, um alerta de erro pode ser sobrescrito por um alerta de informação, por exemplo. Isso deve ser alterado de modo que um alerta de erro tenha prioridade absoluta, seguido de um alerta de aviso e, por fim, com a menor prioridade, o alerta de informações. Em termos de código, você deve usar a enum preestabelecida abaixo:
enum AlertPriority {
  error(2),
  warning(1),
  info(0);

  const AlertPriority(this.value);
  final int value;
}
  1. Atualmente, um alerta substituí o outro. Você deve alterar esse comportamento de modo que um alerta de prioridade mais alta sobreponha (fique em cima) de um alerta de prioridade mais baixa. O contrário, no entanto, não pode ser verdade, ou seja, um alerta de informação não pode aparecer sobre um alerta de aviso. Nessa última situação, o alerta de aviso deverá ficar no topo e o alerta de informação só aparecerá quando o botão de esconder o alerta atual for acionado.

  2. Com esse novo comportamento de sobreposição, cada alerta deverá ter sua entrada e saída animada. A animação deve seguir a mesma configuração preestabilecida abaixo:

animation = Tween<double>(begin: -alertHeight, end: 0.0).animate(
      CurvedAnimation(parent: controller, curve: Curves.easeInOut),
    );
  1. Por fim, você deve alterar a mensagem no centro da tela para que ela apresente o mesmo texto do alerta de maior prioridade que está sendo apresentado no momento.

Como você deve fazer a entrega

Você pode fazer a entrega da solução de duas formas:

  1. Enviar um e-mail anexando um arquivo zip contendo somente os arquivos lib/main.dart e lib/alert_messenger.dart.
  2. Usar a plataforma https://zapp.run/ e compartilhar o link da solução final

priority's People

Contributors

brunogiacobopinto avatar hlfdev avatar mateusfccp avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.