TaskWarrior Mobile App - Enhancing the User Experience with CCSync
Mentor
Mabud Alam
- Slack Handle: [@mabud]
- Zulip Handle: https://ccextractor.zulipchat.com/#user/856060
Time Estimation
175 hours
Project Overview
TaskWarrior is a powerful command-line task management tool that helps users manage their tasks efficiently through a terminal interface. It offers task synchronization, advanced filtering, and script-based integration via CLI.
However, despite its power, TaskWarrior lacks a modern cross-platform graphical user interface (GUI) that can match its CLI capabilities. To bridge this gap, we built a Flutter-based mobile app for TaskWarrior that allows users to:
β What We Achieved Last Year (2024)
Last year, we made significant progress by:
- π Migrating most of the codebase to GetX for better state management.
- πΎ Enabling sync with TaskServer 2.0 (TS 2.0).
- π± Improving the mobile appβs usability and performance.
- Unit tests
However, a few key challenges still remain:
- Some parts of the app still use the old provider-based state management, so we want to complete the migration to GetX.
- We havenβt fully integrated CCSync/TaskServer 3.0 (which we built separately), and our app only supports TaskServer 2.0.
- We lack automated build releases (to F-Droid) and automated testing workflows.
- There's no iOS home widget for quick task access.
- Desktop optimization is still missing despite Flutter's growing desktop support.
β Your Task for This Year (2025)
This year, we aim to finalize the TaskWarrior app by:
- Completing the migration to GetX.
- Extending sync support for CCSync (TaskServer 3.0) without breaking existing TaskServer 2.0 support.
- Automating nightly builds via F-Droid and GitHub Actions.
- Building an iOS home screen widget for quick task access.
- Optimizing the app for desktop usage (macOS).
- Ensuring complete test coverage (unit, integration, end-to-end).
- Simplifying codebase architecture and reducing unnecessary bloat.
- Maintaining the core TaskWarrior philosophy β minimal, fast, and powerful.
Key Deliverables
β 1. Complete Migration to GetX (High Priority)
- A large portion of the app has already been migrated to GetX, but some modules still use heavy setState for state management.
- Your task will be to:
- π Move the remaining sections to GetX.
- π‘ Ensure state management is clean, reusable, and optimized.
- β Remove redundant code and reduce app bloat.
- This will future-proof the app and improve scalability.
β 2. Integrate CCSync (TaskServer 3.0) Without Breaking TaskServer 2.0
- Current State: The app supports sync only with TaskServer 2.0.
- Goal: Extend support for CCSync/TaskServer 3.0 without breaking existing TaskWarrior 2.0 functionality.
- Tasks:
- π Create separate data models for TaskServer 2.0 and TaskServer 3.0.
- π‘ Implement an UI to allow user which taskserver they want to use for different profiles.
- π‘ Provide seamless sync functionality for both versions.
- π¬ Collaborate with CCSync developers to ensure full compatibility.
π‘ Note: Some groundwork has already been done to integrate CCSync, so your job will be to improve, optimize, and finalize the integration.
β 3. Build Full Test Coverage (Must-Have)
- The app currently lacks complete test coverage. Your task will be to:
- π Write unit tests for all major functionalities.
- π§ͺ Implement integration tests to ensure seamless task sync.
- β Enable end-to-end testing using Flutter integration tests.
- π Achieve at least 90% test coverage across the codebase.
This will ensure production-level stability and prevent future bugs.
β 4. Automate Nightly Builds (to F-Droid + GitHub Actions)
- One major issue is that our app doesnβt have automated builds.
- Your task will be to:
- π€ Setup F-Droid for nightly builds.
- π Create GitHub Actions CI/CD workflows that automatically:
- Build APK and AAB packages.
- Push releases to F-Droid.
- Notify on failures via GitHub Actions.
- This will drastically simplify app distribution for users.
β 5. Develop an iOS Home Widget for Quick Task Access
- Create an iOS home screen widget that allows users to:
- β View pending tasks.
- β Mark tasks as completed.
- β Add new tasks quickly.
- This will significantly improve user retention for iOS users.
- Android widget is already done : https://github.com/CCExtractor/taskwarrior-flutter/pull/417
β 6. Optimize Desktop Support (macOS/Linux)
- Since Flutter now supports desktop, we want to optimize TaskWarrior to:
- β Run smoothly on macOS/Linux/Windows desktops.
- β Provide a desktop-friendly UI/UX.
- β Sync tasks seamlessly across desktop and mobile.
- This will position TaskWarrior as a powerful multi-platform task manager.
β 7. Ensure No Feature Regression
- One of our biggest concerns is breaking existing functionality.
- Your task is to ensure that:
- β TaskServer 2.0 sync continues to work as-is.
- β TaskServer 3.0 integration works without conflict.
- β The app does not introduce unnecessary bloat or complexity.
β 8. iOS App
- Release the first version of the Flutter app in AppStore
- Test all the features and make sure all works.
β 9. Propose Minimalist Improvements (Optional but Appreciated)
- We don't want to make TaskWarrior bloated like other task managers.
- However, we encourage you to propose:
- Minimalist UI improvements.
- Feature enhancements that align with TaskWarriorβs philosophy.
- Improvements that boost productivity without adding complexity.
β Why Is This Project Important?
By completing this project, youβll help:
- π Make TaskWarrior a powerful cross-platform task manager.
- π Provide seamless sync between mobile, desktop, and CLI.
- π² Improve the overall user experience for TaskWarrior users.
- πΎ Ensure TaskWarrior remains fast, minimal, and focused.
We donβt want bloat β we want efficiency, speed, and simplicity.
β Tech Stack
Hereβs the preferred tech stack:
Frontend:
- β Flutter + Dart (mandatory).
- β GetX for state management.
CI/CD:
- β GitHub Actions.
- β F-Droid for nightly releases.
Testing:
- β Flutter Test / Integration Test.
π Ready to Contribute?
π Start the Qualification Task
π¬ Questions?
Put your questions in Zulip.
π Helpful Resources
- inthe.am - Open-source TaskWarrior sync server.
- Freecinc fork - Self-hosted TaskWarrior server.
- Golang TaskServer - Alternative TaskServer.
- Wingtask - Task management stack.
β Weβre super excited to see how you contribute. Letβs make TaskWarrior the most powerful open-source task manager β without any bloat! π