{"id":20048101,"url":"https://github.com/ayitinya/task-planner","last_synced_at":"2026-04-16T17:40:31.883Z","repository":{"id":163967286,"uuid":"638971475","full_name":"ayitinya/task-planner","owner":"ayitinya","description":"An android application built with kotlin that allows you create , delete and sort task into categories","archived":false,"fork":false,"pushed_at":"2023-05-22T10:16:18.000Z","size":4248,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-12T20:32:48.418Z","etag":null,"topics":["android","jetpack","jetpack-compose","kotlin"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ayitinya.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-10T13:41:22.000Z","updated_at":"2024-09-03T12:56:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"936ea93d-ce59-42f0-b2b5-ff5d10541ab0","html_url":"https://github.com/ayitinya/task-planner","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayitinya%2Ftask-planner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayitinya%2Ftask-planner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayitinya%2Ftask-planner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayitinya%2Ftask-planner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ayitinya","download_url":"https://codeload.github.com/ayitinya/task-planner/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241477554,"owners_count":19969126,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","jetpack","jetpack-compose","kotlin"],"created_at":"2024-11-13T11:40:36.852Z","updated_at":"2026-04-16T17:40:31.790Z","avatar_url":"https://github.com/ayitinya.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Task Planner\n\nTask Planner is an application that allows you create, edit, delete and sort task into categories.\nIt is a simple application that allows you to keep track of your tasks and their status.\nReminders can be set for tasks and completed task be marked as done.\n\n## Getting Started\n\nThis app is not meant to be used in production. It is a simple CRUD application built to learn the\nbasics\nof android development.\n\n### Prerequisites\n\nAndroid Studio Hedgehog or higher\nMinimum SDK version 29\n\n### Installing\n\nDownload the release apk and install on your android device.\n\n### Screenshots\n\n![Screenshot 1](docs/screenshots/Screenshot_20230511_135347.png)\n![Screenshot 2](docs/screenshots/Screenshot_20230511_140044.png)\n![Screenshot 3](docs/screenshots/Screenshot_20230511_135801.png)\n\nSee the [docs](docs) folder for more screenshots.\n\n## Built With\n\n* [Android Studio](https://developer.android.com/studio) - The IDE used\n* [Kotlin](https://kotlinlang.org/) - The programming language used\n* [Room](https://developer.android.com/topic/libraries/architecture/room) - Persistence library\n* [Coroutines](https://kotlinlang.org/docs/reference/coroutines-overview.html) - Asynchronous\n  programming\n* [Material 3 Design](https://material.io/) - Design language\n* [Android Jetpack](https://developer.android.com/jetpack) - Android development toolkit\n* [Android Navigation](https://developer.android.com/guide/navigation) - Android development toolkit\n* [Android Hilt](https://developer.android.com/training/dependency-injection/hilt-android) - Android\n  development toolkit\n\n## Process\n\nThis being my first android application, I decided to follow the\nrecommended [android app architecture](https://developer.android.com/topic/architecture/). Following\npatterns like separation of concerns, single source of truth and unidirectional data flow made the\nprocess all the more simple.\n\nJetpack compose was used to build the UI. The app implements the new material 3 design language with\nmaterial you theming enabled.\n\nRecommended android development best practices like edge to edge design, dark theme, accessibility\nwere followed.\n\nJetpack navigation was used to navigate between screens. The app uses a single activity with\nmultiple screens.\n\nData persistence was achieved using the room library. Coroutines were used to perform asynchronous\noperations.\nNetwork calls were not implemented but hope to be added in the future with the use of retrofit and a\nfirebase backend.\n\nDependency injection was achieved using the hilt library. This made it easy to inject dependencies\nand not worry about the lifecycle of the objects as this would have made the learning process all\nthe more difficult.\n\n## Resources\n\nResources used in learning android development were abundant.\nThe [Android Developers youtube](https://developer.android.com/) channel was also a great resource\nin learning [MAD](https://developer.android.com/series/mad-skills) skills. Really Mad skills. 😂.\nGuides and codelabs on their [website](https://developer.android.com/) were also a great resource.\n\nThe [kolinlang slack](https://kotlinlang.slack.com/) proved to be quintessential in obtaining help\nwhen stuck. The community is very helpful and friendly. Even got help from an android developer at\nGoogle 🥹.\n\n## Challenges\n\nThe biggest challenge was learning the android development process. The android development process\nis very different from web development. The learning curve was steep but the resources mentioned\nabove made it easier. There is a lot of boilerplate code to write and to understand just to get little done.\nI understand it's been made better with the introduction of Jetpack compose. Do I want to know how it was pre-compose? No.\n\nVersion and compatibility issues were also a challenge as an update broke the functionality in another library. \n\n## Future Improvements\n\n* Add network calls\n* Add a backend\n* Add a login system\n* Add a profile page\n* Add a settings page\n* Add a search feature\n* Add a calendar view\n* Add a widget\n\nMight not come back to this project though.\n\nGo to [my blog](https://blog.ayitinya.me) to read more about the process\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fayitinya%2Ftask-planner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fayitinya%2Ftask-planner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fayitinya%2Ftask-planner/lists"}