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.
- 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.
- 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.
The following libraries are used in the project:
- Airtable Android
- Android Support Libraries
- ButterKnife
- Dagger
- EventBus
- FABProgressCircle
- Gson
- Joda-Time
- Material-About-Library
- Mockito
- MockWebServer
- Mosby
- OkHttp
- Robolectric
- Room
- RxAndroid
- Stetho
- Timber
- JDK 1.8
- Android SDK.
- Android 10 (API 29).
- Latest Android SDK Tools and build tools.
This project is still in progress. Here are the some features that I will finish in the future.
- Notifications
- Widgets
- Tasker integration
- Kotlin
- Architecture components
This project is licensed under the GPLv3 License - see the LICENSE file for details