Task Planner is an application that allows you create, edit, delete and sort task into categories. It is a simple application that allows you to keep track of your tasks and their status. Reminders can be set for tasks and completed task be marked as done.
This app is not meant to be used in production. It is a simple CRUD application built to learn the basics of android development.
Android Studio Hedgehog or higher Minimum SDK version 29
Download the release apk and install on your android device.
See the docs folder for more screenshots.
- Android Studio - The IDE used
- Kotlin - The programming language used
- Room - Persistence library
- Coroutines - Asynchronous programming
- Material 3 Design - Design language
- Android Jetpack - Android development toolkit
- Android Navigation - Android development toolkit
- Android Hilt - Android development toolkit
This being my first android application, I decided to follow the recommended android app architecture. Following patterns like separation of concerns, single source of truth and unidirectional data flow made the process all the more simple.
Jetpack compose was used to build the UI. The app implements the new material 3 design language with material you theming enabled.
Recommended android development best practices like edge to edge design, dark theme, accessibility were followed.
Jetpack navigation was used to navigate between screens. The app uses a single activity with multiple screens.
Data persistence was achieved using the room library. Coroutines were used to perform asynchronous operations. Network calls were not implemented but hope to be added in the future with the use of retrofit and a firebase backend.
Dependency injection was achieved using the hilt library. This made it easy to inject dependencies and not worry about the lifecycle of the objects as this would have made the learning process all the more difficult.
Resources used in learning android development were abundant. The Android Developers youtube channel was also a great resource in learning MAD skills. Really Mad skills. 😂. Guides and codelabs on their website were also a great resource.
The kolinlang slack proved to be quintessential in obtaining help when stuck. The community is very helpful and friendly. Even got help from an android developer at Google 🥹.
The biggest challenge was learning the android development process. The android development process is very different from web development. The learning curve was steep but the resources mentioned above made it easier. There is a lot of boilerplate code to write and to understand just to get little done. I understand it's been made better with the introduction of Jetpack compose. Do I want to know how it was pre-compose? No.
Version and compatibility issues were also a challenge as an update broke the functionality in another library.
- Add network calls
- Add a backend
- Add a login system
- Add a profile page
- Add a settings page
- Add a search feature
- Add a calendar view
- Add a widget
Might not come back to this project though.
Go to my blog to read more about the process


