⭐ Esse é um projeto para demonstrar meu conhecimento técnico no desenvolvimento Android nativo com Kotlin. Mais informações técnicas abaixo.
❗ Aplicativo que provê uma rede social onde você pode se cadastrar e fazer denúncias sobre problemas que você encontra na sua cidade. Você pode postar denúncias, ver as denúncias de outros usuários, curtir denúncias que você achou relevantes e comentar essas denúncias.
Faça o download da APK diretamente. Você pode ver aqui como instalar uma APK no seu aparelho android.
-
Minimum SDK level 21
-
Componentes da SDK do android que foram utilizados:
- ViewModel: Utilizado para fornecer um pouco de desacoplamento entre a camada de dados e a view.
- Navigation: Utilizado para facilitar o código da navegação entre telas no app.
- Fragment: Os fragments foram utilizados para fornecer uma organização melhor para as telas do meu app. Além de funcionar muito bem com o NavigationComponent.
- SharedFlow: utilizado como um observer para pegar os valores assim que eles terminam de serem coletados atraves de um método assíncrono. Utilizei ele ao invés do liveData porque queria que o valor não ficasse guardado depois que o fragment fosse reiniciado.
- ViewBinding: Fornece uma maneira simples de referenciar os elementos da view nas classes que precisam manipular de alguma forma esses elementos.
- Espresso: biblioteca utilizada para fazer testes de ui no meu aplicativo.
-
Arquitetura
- MVVM (View - ViewModel - Model): Utilizada para colocar um intermediário entre a view e a lógica de negócio. No meu app a viewModel presente na arquitetura mvvm me ajuda a separar a lógica de obtenção de dados da camada de view(fragments e activity).
- Eu também utilizei repositories e classes managers para separar a logica de obtenção dos dados da camada de viewModel. (Fragments -> ViewModel -> Repository(Manager) -> apis do firebase)
-
Bibliotecas
- Firebase: Utilizei o serviço de banco de dados do firebase, o serviço de autenticação do firebase e o serviço de storage.
- Picasso: Biblioteca para carregar imagens através da url e mostrá-las na tela, além de armazená-las em cache.
- Dagger Hilt: Biblioteca usada para injetar dependencias nas classes de maneira mais fácil, centralizando a inicialização de classes necessárias em outras classes de maneira única em uma classe só.
App Denúncia utiliza a arquitetura [MVVM]
(https://developer.android.com/topic/architecture).
Usuários podem postar novas denúncias, ver as denúncias que ele já postou ou ver todas as denúncias circulando na comunidade que usa o app.
Usuários podem colocar uma foto para representar sua denúncia e também podem curtir ou comentar as denúncias.
Copyright [2023] [Rubens Francisco de Assis]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.