Coder Social home page Coder Social logo

to-do-app's Introduction

✅ To Do List


| ✅To Do List | 🆔Instruções de uso | 📷Imagens |

🆔 Instruções de uso

Criando o Github Oauth App, o ClientId e o ClientSecret para o projeto

Para fazer o app funcionar, será necessário criar um app no Oauth do Github, com as instruções disponíveis aqui.

Em seguida, copie o ClientID e o ClientSecret para utilizá-los no processo. Copie também o "Authorization callback URL" especificado por você na criação do app Oauth, pois esses dados serão necessários para sua configuração.

Dentro do projeto, na "GreetingsActivity", observe o comentário com instruções para aplicação do ClientId (linhas 35 e 85).

No AndroidManifest, no intent-filter relacionado à "GreetingsActivity", na seção "data", insira o host e o callback referente ao seu app. Por exemplo, uma url neste formato "meuapp://callback" tem como scheme: "meuapp", e como host:"callback", campos presentes na seção "data" do intent-filter.

📱 A Aplicação

Tela de Greetings

O app inicia-se com uma tela de boas vindas, apresentando um botão com o texto "Vamos lá!" e um link para o repositório do projeto. Acionar o botão leva ao processo de Oauth utilizando o login e a senha do Github num dos browsers disponíveis no seu telefone. Após o login ser feito, o app apresenta na tela um dialog com o seu token obtido através do Oauth. Pressionar em algum lugar fora do dialog ou no botão de OK levará o usuário para a tela principal do app.

To Do List

Na tela principal do app encontra-se uma lista e dois botões. A lista representa as atividades inseridas no banco de dados local do celular; caso não hajam atividades cadastradas, a lista estará em branco. Atividades listadas apresentam-se na forma de um "cartão" onde constam título, descrição e o número da atividade.

O botão com um sinal de "+" acionará um dialog onde é possível digitar o nome e a descrição de atividades a serem adicionadas à lista. É necessário que ambos os campos sejam preenchidos, caso contrário, a atividade não será aceita. Esta forma de validação foi feita para prevenir erros de comunicação com o banco de dados e tornar os tipos de informação mais uniformes. Caso o usuário queira retornar à lista, basta pressionar em qualquer lugar fora do dialog.

O botão com uma imagem de uma lixeira acionará um dialog onde é possível digitar o número da atividade a ser apagada. Ao digitar o número e pressionar "deletar", a atividade é apagada do banco de dados, não sendo possível recuperá-la. Como forma de validação, não é possível digitar letras ou palavras nesse campo, tampouco é possível deixá-lo em branco.

Pressionar um dos itens da lista por cerca de 1 segundo (clique longo) acionará um dialog que permite a edição das atividades apresentadas na lista, sendo possível modificar o nome ou a descrição. O número da atividade é um identificador único que não pode ser alterado pelo usuário.

Os dados salvos permanecerão na lista até que o usuário os delete ou apague o aplicativo do celular.

Criado usando Kotlin e Android Studio

Foram usados:

  1. Coroutines
  2. Clean Architecture
  3. Room
  4. Koin
  5. MVVM Architecture
  6. Mockito
  7. Android Material Design
  8. Github Oauth Token Authorization
  9. Retrofit

O app possui

  • Coroutines integradas com o Room para chamadas assíncronas ao banco de dados
  • Injeção de dependência usando o Koin
  • Tests unitários para chamadas ao banco de dados
  • Arquitetura View Model e separação de responsabilidades
  • Design fluído com base nas orientações do Material Design do Google
  • Validação nos inputs do usuário para evitar crashs

Próximos passos

  • Maior abrangência de testes unitários
  • Melhorias na arquitetura
  • Outras formas de login Oauth
  • Revogação de token para logout
  • Armazenamento do token para evitar re-login constante
  • Melhorias na estabilidade e na proteção contra crashs e exceptions

📷 Imagens

Mainr Mainr2

to-do-app's People

Contributors

everton4292 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.