Reprioritize mobile support and add Google Tasks importer
Major roadmap changes: 1. Mobile Support Moved Up (Phase 4 instead of Phase 5): - Get iOS/Android builds working early, even with simple test UI - Validates cross-platform architecture ASAP - Foundation for future mobile polish - egui supports mobile, so we can test early New Phase Structure: - Phase 1: Core Library & CLI MVP - Phase 2: WebDAV Sync (Backend + CLI) - Phase 3: GUI MVP (Desktop) - Phase 4: Mobile Basic Support (NEW - prioritized) - Phase 5: GUI Advanced Features (Desktop + Mobile) - Phase 6: Mobile Polish & Platform Features - Phase 7: Advanced Features & Imports 2. Google Tasks Importer Added (Phase 7): - Migrate users from Google Tasks - Import tasks, lists, due dates, notes - Easy onboarding for existing Google Tasks users 3. Additional Phase 7 Features: - Tags and custom fields - Bulk operations - Calendar integration - Email to task - Voice input - Collaboration features Benefits of early mobile: - De-risk mobile builds early in development - Test cross-platform code paths sooner - Allows for mobile-specific feedback early - Can dogfood on mobile while building desktop features 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
774b884236
commit
075b7bb334
128
PLAN.md
128
PLAN.md
|
|
@ -373,10 +373,8 @@ bevy-tasks sync --status
|
||||||
### Phase 3: GUI MVP (Desktop)
|
### Phase 3: GUI MVP (Desktop)
|
||||||
**Goal**: Build graphical interface on desktop platforms
|
**Goal**: Build graphical interface on desktop platforms
|
||||||
|
|
||||||
**Frontend Decision**: Choose frontend framework (see Frontend Comparison section)
|
|
||||||
|
|
||||||
**Features**:
|
**Features**:
|
||||||
- [ ] GUI framework integration
|
- [ ] egui framework integration
|
||||||
- [ ] Basic task list view
|
- [ ] Basic task list view
|
||||||
- [ ] Create/edit/delete tasks
|
- [ ] Create/edit/delete tasks
|
||||||
- [ ] Mark tasks complete
|
- [ ] Mark tasks complete
|
||||||
|
|
@ -390,8 +388,31 @@ bevy-tasks sync --status
|
||||||
- Clean, minimal UI
|
- Clean, minimal UI
|
||||||
- Feature parity with CLI
|
- Feature parity with CLI
|
||||||
|
|
||||||
### Phase 4: GUI Advanced Features (Desktop)
|
### Phase 4: Mobile Basic Support
|
||||||
**Goal**: Feature parity with Google Tasks
|
**Goal**: Get app running on iOS and Android ASAP, even if basic
|
||||||
|
|
||||||
|
**Priority**: Early validation of mobile platform, test infrastructure
|
||||||
|
|
||||||
|
**Features**:
|
||||||
|
- [ ] iOS build pipeline setup
|
||||||
|
- [ ] Android build pipeline setup
|
||||||
|
- [ ] Basic egui mobile adaptation
|
||||||
|
- [ ] Simple UI with core features (even if just test buttons)
|
||||||
|
- [ ] File system access on mobile
|
||||||
|
- [ ] Basic task CRUD on mobile
|
||||||
|
- [ ] Folder picker for mobile
|
||||||
|
|
||||||
|
**Deliverables**:
|
||||||
|
- App launches on iOS
|
||||||
|
- App launches on Android
|
||||||
|
- Can create and view tasks on mobile
|
||||||
|
- Validates cross-platform architecture
|
||||||
|
- Foundation for future mobile polish
|
||||||
|
|
||||||
|
**Note**: This phase prioritizes getting mobile working early, even with a simple test UI. Polish comes later.
|
||||||
|
|
||||||
|
### Phase 5: GUI Advanced Features (Desktop + Mobile)
|
||||||
|
**Goal**: Feature parity with Google Tasks across all platforms
|
||||||
|
|
||||||
**Features**:
|
**Features**:
|
||||||
- [ ] Multiple task lists (folders)
|
- [ ] Multiple task lists (folders)
|
||||||
|
|
@ -399,53 +420,63 @@ bevy-tasks sync --status
|
||||||
- [ ] Subtasks support
|
- [ ] Subtasks support
|
||||||
- [ ] Due dates with date picker
|
- [ ] Due dates with date picker
|
||||||
- [ ] Rich markdown editor for task notes
|
- [ ] Rich markdown editor for task notes
|
||||||
- [ ] Drag & drop reordering
|
- [ ] Drag & drop reordering (desktop)
|
||||||
|
- [ ] Swipe gestures (mobile)
|
||||||
- [ ] Move tasks between lists
|
- [ ] Move tasks between lists
|
||||||
- [ ] Change storage folder location in settings
|
- [ ] Change storage folder location in settings
|
||||||
- [ ] Keyboard shortcuts
|
- [ ] Keyboard shortcuts (desktop)
|
||||||
- [ ] Search functionality
|
- [ ] Search functionality
|
||||||
|
- [ ] Pull-to-refresh (mobile)
|
||||||
|
|
||||||
**Deliverables**:
|
**Deliverables**:
|
||||||
- Full-featured desktop task manager
|
- Full-featured task manager on all platforms
|
||||||
- Polished UX
|
- Polished UX on desktop
|
||||||
- Keyboard-driven workflow
|
- Touch-optimized UX on mobile
|
||||||
|
- Consistent feature set
|
||||||
|
|
||||||
### Phase 5: Mobile Support
|
### Phase 6: Mobile Polish & Platform-Specific Features
|
||||||
**Goal**: Deploy to iOS and Android
|
**Goal**: Native mobile experience and platform integration
|
||||||
|
|
||||||
**Features**:
|
**Features**:
|
||||||
- [ ] Touch-optimized UI
|
|
||||||
- [ ] iOS build pipeline
|
|
||||||
- [ ] Android build pipeline
|
|
||||||
- [ ] Mobile-specific UX (swipe gestures, pull-to-refresh)
|
|
||||||
- [ ] Background sync on mobile
|
- [ ] Background sync on mobile
|
||||||
- [ ] Mobile file system integration
|
- [ ] Share extension (share to tasks on iOS/Android)
|
||||||
- [ ] Share extension (share to tasks)
|
- [ ] Widgets (iOS/Android home screen widgets)
|
||||||
- [ ] Native mobile feel
|
- [ ] Notifications for due dates
|
||||||
|
- [ ] Quick capture shortcuts
|
||||||
|
- [ ] Haptic feedback
|
||||||
|
- [ ] Platform-specific gestures and animations
|
||||||
|
- [ ] App icon badge with task count
|
||||||
|
|
||||||
**Deliverables**:
|
**Deliverables**:
|
||||||
- Working iOS app
|
- Native-feeling mobile apps
|
||||||
- Working Android app
|
- Deep platform integration
|
||||||
- Consistent UX across mobile and desktop
|
- Mobile-specific features
|
||||||
|
|
||||||
### Phase 6: Polish & Advanced Features
|
### Phase 7: Advanced Features & Imports
|
||||||
**Goal**: Differentiate from Google Tasks, add unique features
|
**Goal**: Differentiate from Google Tasks, add unique features
|
||||||
|
|
||||||
**Features**:
|
**Features**:
|
||||||
|
- [ ] **Google Tasks importer** (migrate from Google Tasks)
|
||||||
- [ ] Themes and customization
|
- [ ] Themes and customization
|
||||||
- [ ] Advanced animations and transitions (if using Bevy)
|
|
||||||
- [ ] Full-text search across tasks
|
- [ ] Full-text search across tasks
|
||||||
- [ ] Filters and smart lists
|
- [ ] Filters and smart lists
|
||||||
- [ ] Task templates
|
- [ ] Task templates
|
||||||
- [ ] Recurring tasks
|
- [ ] Recurring tasks
|
||||||
- [ ] Statistics and insights
|
- [ ] Statistics and insights
|
||||||
- [ ] Export/import (backup)
|
- [ ] Tags and custom fields
|
||||||
|
- [ ] Export/import (backup/restore)
|
||||||
|
- [ ] Bulk operations
|
||||||
|
- [ ] Advanced animations (consider Bevy migration)
|
||||||
- [ ] Plugin system for extensions (optional)
|
- [ ] Plugin system for extensions (optional)
|
||||||
- [ ] Game-like achievements (optional, if using Bevy)
|
- [ ] Calendar integration
|
||||||
|
- [ ] Email to task
|
||||||
|
- [ ] Voice input
|
||||||
|
- [ ] Collaboration features (share lists)
|
||||||
|
|
||||||
**Deliverables**:
|
**Deliverables**:
|
||||||
- Polished, delightful UX
|
- Polished, delightful UX
|
||||||
- Unique features not in Google Tasks
|
- Unique features not in Google Tasks
|
||||||
|
- Easy migration path from Google Tasks
|
||||||
- Distribution to all app stores
|
- Distribution to all app stores
|
||||||
|
|
||||||
## Development Guidelines
|
## Development Guidelines
|
||||||
|
|
@ -466,15 +497,15 @@ bevy-tasks sync --status
|
||||||
|
|
||||||
### Build & Release
|
### Build & Release
|
||||||
- **CI/CD**: GitHub Actions for all platforms
|
- **CI/CD**: GitHub Actions for all platforms
|
||||||
- **Initial Distribution**:
|
- **Initial Distribution** (Phases 3-4):
|
||||||
- **Desktop**: Direct downloads and sideloading
|
- **Desktop**: Direct downloads and sideloading
|
||||||
- Linux: AppImage, .tar.gz
|
- Linux: AppImage, .tar.gz
|
||||||
- macOS: DMG
|
- macOS: DMG
|
||||||
- Windows: MSI, portable .exe
|
- Windows: MSI, portable .exe
|
||||||
- **Mobile**: Sideloading only
|
- **Mobile**: Sideloading and TestFlight
|
||||||
- iOS: .ipa for TestFlight/direct install
|
- iOS: .ipa for TestFlight (early access)
|
||||||
- Android: .apk
|
- Android: .apk (direct install)
|
||||||
- **Future Distribution Channels** (Phase 5+):
|
- **Future Distribution Channels** (Phase 7):
|
||||||
- **F-Droid**: FOSS Android app store
|
- **F-Droid**: FOSS Android app store
|
||||||
- **Flathub**: Linux Flatpak repository
|
- **Flathub**: Linux Flatpak repository
|
||||||
- **Google Play Store**: Android
|
- **Google Play Store**: Android
|
||||||
|
|
@ -499,10 +530,13 @@ bevy-tasks sync --status
|
||||||
**Problem**: iOS and Android have different requirements
|
**Problem**: iOS and Android have different requirements
|
||||||
|
|
||||||
**Solutions**:
|
**Solutions**:
|
||||||
|
- **Early mobile testing** (Phase 4) - validate cross-platform architecture ASAP
|
||||||
|
- Start with simple test UI to verify builds work
|
||||||
- Use conditional compilation for platform-specific code
|
- Use conditional compilation for platform-specific code
|
||||||
- Test early and often on real devices
|
- Test on real devices early and often
|
||||||
- Follow platform guidelines (iOS HIG, Material Design)
|
- egui's touch support as starting point, enhance as needed
|
||||||
- Use platform-specific file pickers and sharing
|
- Follow platform guidelines (iOS HIG, Material Design) in later phases
|
||||||
|
- Use platform-specific file pickers and sharing (via native bridges)
|
||||||
|
|
||||||
### Challenge 3: WebDAV Reliability
|
### Challenge 3: WebDAV Reliability
|
||||||
**Problem**: Network can be unreliable, auth can be complex
|
**Problem**: Network can be unreliable, auth can be complex
|
||||||
|
|
@ -528,36 +562,42 @@ bevy-tasks sync --status
|
||||||
|
|
||||||
**Decision Made**: Hybrid approach with **egui** for Phase 3, optional **Bevy** migration in Phase 6.
|
**Decision Made**: Hybrid approach with **egui** for Phase 3, optional **Bevy** migration in Phase 6.
|
||||||
|
|
||||||
### Phase 3-5: egui (Immediate Mode GUI)
|
### Phase 3-6: egui (Immediate Mode GUI)
|
||||||
|
|
||||||
**Why egui for MVP?**
|
**Why egui for MVP and mobile?**
|
||||||
- ✅ Fast development with rich built-in widgets
|
- ✅ Fast development with rich built-in widgets
|
||||||
- ✅ Excellent text editing and form support out of the box
|
- ✅ Excellent text editing and form support out of the box
|
||||||
- ✅ Small binary size (~2-3MB stripped)
|
- ✅ Small binary size (~2-3MB stripped)
|
||||||
- ✅ Fast startup time (100-200ms)
|
- ✅ Fast startup time (100-200ms)
|
||||||
- ✅ Mature and stable
|
- ✅ Mature and stable
|
||||||
- ✅ Simple immediate-mode API
|
- ✅ Simple immediate-mode API
|
||||||
- ✅ Cross-platform (desktop primary, mobile possible)
|
- ✅ Cross-platform (desktop AND mobile)
|
||||||
- ✅ Easy integration with `bevy-tasks-core`
|
- ✅ Easy integration with `bevy-tasks-core`
|
||||||
|
- ✅ **Mobile builds possible early** - can test on iOS/Android quickly
|
||||||
|
|
||||||
**Trade-offs**:
|
**Trade-offs**:
|
||||||
- ⚠️ Less flexibility for custom animations
|
- ⚠️ Less flexibility for custom animations
|
||||||
- ⚠️ Mobile support less mature (but improving)
|
- ⚠️ Mobile UX requires extra work for touch optimization
|
||||||
- ⚠️ Not as "game-like" polish potential
|
- ⚠️ Not as "game-like" polish potential
|
||||||
|
|
||||||
### Phase 6 (Optional): Migration to Bevy
|
**Mobile Strategy with egui**:
|
||||||
|
- Phase 4: Get basic egui running on mobile (even simple test UI)
|
||||||
|
- Phase 5: Improve touch handling and mobile UX
|
||||||
|
- Phase 6: Add platform-specific mobile features
|
||||||
|
|
||||||
**If you want game-like polish later:**
|
### Phase 7 (Optional): Migration to Bevy
|
||||||
|
|
||||||
|
**If you want game-like polish later (after Phase 7):**
|
||||||
- ✅ Full control over animations and rendering
|
- ✅ Full control over animations and rendering
|
||||||
- ✅ Unique, polished look beyond standard apps
|
- ✅ Unique, polished look beyond standard apps
|
||||||
- ✅ Better mobile support (iOS/Android)
|
- ✅ Mature mobile support (iOS/Android)
|
||||||
- ✅ ECS architecture for complex interactions
|
- ✅ ECS architecture for complex interactions
|
||||||
- ✅ Backend stays identical (clean separation!)
|
- ✅ Backend stays identical (clean separation!)
|
||||||
|
|
||||||
**Why this works:**
|
**Why this works:**
|
||||||
The `bevy-tasks-core` library is UI-framework agnostic, so switching from egui to Bevy only requires rewriting the `bevy-tasks-gui` crate. All business logic, file I/O, sync, and testing remains unchanged.
|
The `bevy-tasks-core` library is UI-framework agnostic, so switching from egui to Bevy only requires rewriting the `bevy-tasks-gui` crate. All business logic, file I/O, sync, and testing remains unchanged.
|
||||||
|
|
||||||
This approach de-risks the project: validate the concept with egui, then optionally invest in custom polish with Bevy if the app takes off.
|
This approach de-risks the project: validate the concept with egui (including mobile in Phase 4!), then optionally invest in custom polish with Bevy if the app takes off.
|
||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
|
|
||||||
|
|
@ -846,5 +886,5 @@ To be determined.
|
||||||
---
|
---
|
||||||
|
|
||||||
**Last Updated**: 2025-10-27
|
**Last Updated**: 2025-10-27
|
||||||
**Document Version**: 2.2
|
**Document Version**: 2.3
|
||||||
**Status**: Ready to Implement - User-Controlled Storage
|
**Status**: Ready to Implement - Mobile-First, User-Controlled Storage
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue