Livro 3 - Projeto Agenda de Contatos - Parte 3
5. Conclusão
Neste livro, você finalizou a criação do aplicativo Agenda de Contatos para adicionar, ver, editar e excluir informações de contato armazenadas em um banco de dados SQLite.
Você usou uma única atividade par armazenar todos os fragmentos do aplicativo. Usou Navigation para exibir fragmentos dinamicamente. Usou a pilha de retrocesso (BackStack) para fornecer suporte automático ao botão de voltar do Android.
Você usou a biblioteca Room para abstrair o uso de banco de dados SQLite no dispositivo. Também criou um objeto DAO para manipular as operações SQL de consulta, inserção, atualização e remoção de contatos no banco de dados. Para acessar o banco de dados de forma assíncrona, fora da thread da interface gráfica do usuário, você fez o uso da classe AsyncTask. Você configurou a vinculação dos dados proveniente do repositório da aplicação com o uso de ViewModels e a classe LiveData.
No final, temos um aplicativo robusto fazendo o uso dos melhores componentes de arquitetura disponibilizados no Android Jetpack. Seguindo o princípio da responsabilidade única temos uma arquitetura onde os fragmentos estão responsáveis em como apresentar os dados ao usuário, as ViewModels se encarregam de armazenar as informações e fazer solicitações ao repositório, o repositório se encarrega de se comunicar com a biblioteca Room e encaminhar solicitação ao objeto DAO, e a os componentes da biblioteca Room se encarregam de se comunicar com o banco de dados SQLite em si. Dessa forma, construímos um aplicativo robusto, testável e eficiente.