Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CanAirIO new architecture proposal #67

Open
wants to merge 43 commits into
base: new-architecture-proposal
Choose a base branch
from

Conversation

juanpa097
Copy link
Contributor

Description

This is a fairly large PR, because we did many changes that were really dependent from each other that restricted us to brake the changes in multiple PRs. Here I'm going to do a summary of each change:

Added Material Design Support

We added the necessary files to implement Google's Material Design which is the recommended design language by Google and helps us to have a more modern and consistent UI language, this change is because a new UI design was discussed in issue #51 and it uses Material Design.

Navigation

Created a bottom navigation menu to replace the existing navigation witch was based on a third party library. The new navigation uses Android's native component, Material Design and the new Jetpack Navigation Component.

Dashboard Component

We created a new component that is now the entry point of the app. The Dashboard component shows the user the AQI of the nearest public station and the distance to that station. It also contains a few buttons that at the moment do not have any functionality but will have in the future.

Screen Shot 2020-11-10 at 11 30 17 AM

Clean Architecture

This is the biggest change in the application. In order to have a more testable, scaling and use the software engineer best practices we applied the use of Uncle's Bob Clean Architecture. This architecture is first used in the Dashboard module but it will be slowly applied to the other modules of the app.

To use Uncle's Bob Clean Architecture we need to use Dependency Injection and we used Android's new library for DI Hilt which uses Dagger under the hud.

Tests

The use of DI makes the app more testable and the new Dashboard module has an estimated unit test coverage of 90% and that coverage is also slowly being applied to the other app's modules. This will help to have a more reliable application.

Important Notes!

Because the app is in the transition to apply Uncle's Bob Clean Architecture some functionalities of the app are not working while we make the refactor of the app.

Related Issues

#51

Tests

Added unit tests for all the Dashboard Module.

juanpa097 and others added 30 commits June 3, 2020 17:05
fix: in the previous PR these files where not pushed
Base automatically changed from devel to new-GUI-and-architecture-proposal March 15, 2021 09:14
@hpsaturn hpsaturn changed the title Devel CanAirIO new architecture proposal Mar 15, 2021
Base automatically changed from new-GUI-and-architecture-proposal to new-architecture-proposal March 15, 2021 09:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants