| Document Details | |
|---|---|
| Project Name | Make It So |
| Version | 1.2 |
| Status | Draft |
| Backend | Google Cloud Firestore |
| UI Style | Platform-Specific / Native |
"Make It So" is a productivity application designed to help users capture and complete tasks efficiently. The app leverages Firebase for cloud storage and real-time syncing. The UI is strictly Platform Native, ensuring that an Android user feels at home with Material Design patterns, while an iOS user interacts with standard Apple interface elements.
- Create: Users can add a new task with a title, priority, and due date.
- Read: Users view a filtered list of only their own tasks.
- Update: Users can edit task details or toggle the "Complete" status.
- Delete: Users can permanently remove tasks.
-
Native Metaphors:
-
iOS: Uses standard navigation stacks, "Back" buttons with text, and bottom sheets for actions.
-
Android: Uses the physical/gesture back button, potentially a Floating Action Button (FAB) for "Add", and standard toolbars.
-
List Interaction: A clean, vertical list. No Kanban boards or grids.
Collection Name: tasks
Path: tasks/{documentId}
- Security: A Firestore Security Rule ensures users can only access documents where
userIdmatches their Authentication UID.
| Field Name | Data Type | Description |
|---|---|---|
userId |
String | Owner ID. Matches the Auth UID. |
title |
String | The task name. |
isCompleted |
Boolean | false = Active, true = Done. |
priority |
String | "Low", "Medium", "High". |
dueDate |
Timestamp | Date/time the task is due. |
createdAt |
Timestamp | Used for sorting order. |
This section defines how the "Native Look" is achieved on both platforms for the main task list.
- List Style:
UITableViewor Sidebar style. - Separators: Thin gray lines between items, inset from the left.
- Typography: San Francisco font.
- Add Action: A "+" icon in the top right of the Navigation Bar.
- Edit Action: Swipe-left on a row to reveal "Edit" and "Delete" buttons.
- List Style:
RecyclerView/ LazyColumn. - Density/Padding: Items generally have slightly more vertical whitespace (min 48dp-56dp height) to ensure comfortable touch targets.
- Separators: Often omitted in modern Material design, relying on whitespace, or full-width if used.
- Add Action: A Floating Action Button (FAB) in the bottom right corner.
- Edit Action: Long-press on an item to enter "Selection Mode," or tap to open details.
- Read/Write: Allowed only if
request.auth.uid == resource.data.userId.
- Sorting: Primary sort by
isCompleted(Active first), Secondary sort bydueDate. - Date Formats: Display dates relative to the user's locale (e.g., MM/DD/YYYY in US, DD/MM/YYYY elsewhere).
- App is named "Make It So" on the home screen.
- Android version features a Floating Action Button (FAB) or native toolbar for adding tasks.
- iOS version features a standard Navigation Bar button for adding tasks.
- Tasks persist to the
tasksroot collection in Firestore. - Query filters ensure I never see another user's data.