Skip to content

Add native macOS SwiftUI app with embedded Python backend#248

Open
clstaudt wants to merge 4 commits into
devfrom
swift
Open

Add native macOS SwiftUI app with embedded Python backend#248
clstaudt wants to merge 4 commits into
devfrom
swift

Conversation

@clstaudt
Copy link
Copy Markdown
Contributor

Introduces TuttleMac, a native macOS app built with SwiftUI and SPM that
reuses the existing Python business logic via PythonKit. Implements
Dashboard, Timeline, Projects, Contracts, Clients, Contacts, and Invoicing
views with a native look and feel. Adds a Flet-free bridge.py serialization
layer and fixes the Flet import chain so core intents can be used without
Flet installed.

Co-authored-by: Cursor cursoragent@cursor.com

clstaudt and others added 4 commits May 10, 2026 10:24
Introduces TuttleMac, a native macOS app built with SwiftUI and SPM that
reuses the existing Python business logic via PythonKit. Implements
Dashboard, Timeline, Projects, Contracts, Clients, Contacts, and Invoicing
views with a native look and feel. Adds a Flet-free bridge.py serialization
layer and fixes the Flet import chain so core intents can be used without
Flet installed.

Co-authored-by: Cursor <cursoragent@cursor.com>
- Replaced specific model types (ClientModel, ContactModel, etc.) with a generic Entity type across various view models and views.
- Updated data fetching and processing logic to accommodate the new Entity structure, enhancing flexibility and reducing redundancy.
- Adjusted UI components to access properties dynamically from the Entity type, improving maintainability.
- Refactored PythonBridge to streamline interactions with Python data, ensuring consistent handling of model data across the application.
- Introduced dedicated form sheets for creating and editing clients, contacts, contracts, and projects within the BusinessViewModel.
- Enhanced the ClientsView, ContactsView, ContractsView, and ProjectsView to include buttons for adding and editing entities, improving user interaction.
- Implemented validation logic in forms to ensure required fields are filled before submission.
- Integrated form sheets with the existing view model to handle data saving and loading seamlessly.
- Updated UI components to maintain a consistent look and feel across the application.
…tion

- Introduced a new `setProjectStatus` method in `BusinessViewModel` to toggle project completion status and refresh project data.
- Enhanced `ProjectsView` and `InvoicingView` to support a segmented view mode (list and board) for better user experience.
- Implemented `KanbanBoardView` for visual project and invoice management, allowing drag-and-drop functionality between columns.
- Added `InvoiceColumn` and `ProjectColumn` enums to define invoice and project states, respectively, with associated colors and icons.
- Created `InvoiceCardContent` and `ProjectCardContent` views for displaying invoice and project details in the Kanban board layout.
- Updated filtering logic for projects and invoices to support search functionality in both list and board views.
- Integrated state management for invoice and project movements across different columns, ensuring accurate status updates.
- Enhanced UI components for a consistent look and feel across the application.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant