Skip to content

clloret/days

Repository files navigation

Days

Build Status Codacy Badge codecov

Days is a simple Android app that helps to control event dates.

This project also showcases Clean Architecture, the MVP pattern with Mosby, Repository pattern, RXJava 2, Dagger 2, Room and Material Design.

Get it on Google Play

Features

For the user

  • Countdown and progressive: Keep track of how many days are left or how many days have passed since each event.
  • Tags for organizing events: You can use multiple tags to organize your events.
  • Favorite events: Assign favorite events to keep them close at hand.
  • Event sorting: You can sort events in the most convenient way.
  • Simple and easy to use Material Design: Days has a simple design, so that it is agile and comfortable to use. Also use and follow the Material Design style guide.
  • Cloud storage - Integrates with the Airtable Service API to provide cloud storage (Airtable configuration tutorial).
  • Multi-platform data access: Thanks to the storage in Airtable it is possible to consult and modify the data from any compatible device.
  • Local storage - If cloud storage is not used, data is stored on the phone. If cloud storage is used, storage on the phone is used as a data cache.
  • Free and open source: It is free and the source code of the application is available.

For other developers:

  • Clean Architecture: Try to follow the principles of Clean Architecture.
  • MVP: Implementation of the MVP architecture pattern for the presentation layer.
  • Repository pattern: Implementation of the Repository pattern for the persistence layer.
  • Room: Use of the Room library for local data storage.
  • RxJava 2: Use of the RxJava2 library for reactive programming.
  • Material Design: Implementation of Google's Material Design style.
  • Unit testing: Unit tests have been implemented to check the correct functioning of the application. Using the Robolectric, Mockito and Mockwebserver libraries to avoid dependencies.
  • Dagger 2: Implementation of dependency injection using Dagger 2.

Screenshots

Navigation Drawer Main screen Order View/Edit event New event New tag Settings

Libraries

The following libraries are used in the project:

Requirements

To-dos

This project is still in progress. Here are the some features that I will finish in the future.

For users:

  • Notifications
  • Widgets
  • Tasker integration

For developers:

  • Kotlin
  • Architecture components

License

This project is licensed under the GPLv3 License - see the LICENSE file for details