OpenMind is a native iOS/iPadOS/macOS mind mapping application built exclusively with Apple technologies, designed to deliver desktop-class performance on mobile devices.
- π 60fps performance with 10,000+ nodes
- βοΈ Full Apple Pencil support with pressure sensitivity
- βοΈ Real-time iCloud sync and collaboration
- π¨ Beautiful, native Apple design language
- π Smart layout algorithms with manual override
- π± Universal app for iPhone, iPad, and Mac
- Language: Swift 6.0
- UI: SwiftUI + UIKit (performance-critical paths)
- Rendering: Core Graphics + Metal
- Storage: SwiftData + CloudKit
- Architecture: MVVM with Combine
- Xcode 15.0+
- iOS/iPadOS 17.0+
- macOS 14.0+ (Catalyst)
- Apple Developer Account (for CloudKit)
OpenMind/
βββ App/ # App lifecycle and configuration
βββ Core/ # Core business logic
β βββ Models/ # Data models
β βββ Services/ # Business services
β βββ Extensions/ # Swift extensions
βββ Features/ # Feature modules
β βββ Canvas/ # Mind map canvas
β βββ Nodes/ # Node management
β βββ Sync/ # CloudKit sync
β βββ Export/ # Import/Export
βββ UI/ # Shared UI components
β βββ Components/ # Reusable views
β βββ Themes/ # Visual themes
β βββ Modifiers/ # SwiftUI modifiers
βββ Platform/ # Platform-specific code
β βββ iOS/ # iPhone/iPad specific
β βββ macOS/ # Mac Catalyst specific
β βββ Shared/ # Shared platform code
βββ Resources/ # Assets and resources
- Clone the repository
- Run initial setup:
make setup - Open
OpenMind.xcodeprojin Xcode - Configure your development team in Signing & Capabilities
- Build and run on your target device
For detailed Xcode setup instructions, see XCODE_SETUP.md.
The app follows a modular MVVM architecture with clear separation of concerns:
- Models: SwiftData entities for persistence
- Views: SwiftUI views with UIKit for performance
- ViewModels: Combine-based reactive state management
- Services: Business logic and external integrations
- Metal-accelerated rendering for large mind maps
- Lazy loading and virtualization for memory efficiency
- Optimistic UI updates with background sync
- ProMotion display support (120Hz)
- Project structure and Xcode configuration
- Core data models (Node, Connection, Document, Style)
- Dual rendering engine (Metal + Core Graphics)
- Canvas view with gesture handling foundation
- SwiftUI navigation and app structure
- Sidebar and Inspector views
- Settings and customization options
- Menu commands and keyboard shortcuts
- Layout algorithms (radial, tree vertical/horizontal, organic/force-directed)
- Layout manager with animation and presets
- Visual layout previews and picker
- Comprehensive build automation (Makefile, Fastlane)
- CI/CD pipelines (GitHub Actions, Bitrise)
- Testing infrastructure (unit, UI, performance, snapshot)
- Performance profiling tools (Instruments integration)
- Memory monitoring and leak detection
- Security vulnerability scanning
- Gesture handling and Apple Pencil support
- CloudKit sync infrastructure
- Platform-specific adaptations
- Siri and Shortcuts integration
- Home screen widgets
- SharePlay collaboration
- App Store metadata and screenshots
# Clone the repository
git clone <repository-url>
cd openmind
# Initial setup
make setup
# Build and run
make dev- Xcode 15.0 or later
- macOS 14.0 or later
- Apple Developer account (for CloudKit)
- Command Line Tools (
xcode-select --install)
| Command | Description |
|---|---|
make setup |
Install dependencies and configure project |
make build |
Build for iOS Simulator |
make device |
Build for physical device |
make test |
Run all tests with coverage |
make clean |
Clean build artifacts |
make lint |
Check code style with SwiftLint |
make format |
Auto-format code |
make release |
Build for App Store |
make ci |
Run full CI pipeline |
make coverage |
Generate test coverage report |
make deadcode |
Find unused code |
make fastlane |
Run Fastlane commands |
make generate |
Generate project with XcodeGen |
# Run all tests
make test
# Run specific test types
./Scripts/run-tests.sh --unit-only
./Scripts/run-tests.sh --ui-only
./Scripts/run-tests.sh --all
# Run snapshot tests
SNAPSHOT_RECORD=true make test # Record new snapshots
make test # Compare snapshots# Run Instruments profiling
./Scripts/instruments-profile.sh all # All templates
./Scripts/instruments-profile.sh memory # Memory only
./Scripts/instruments-profile.sh performance # CPU/GPU
# Monitor memory usage
./Scripts/memory-monitor.sh 60 # Monitor for 60 seconds
LAUNCH_APP=true ./Scripts/memory-monitor.sh # Launch and monitor
STRESS_TEST=true ./Scripts/memory-monitor.sh # Run stress test# Run security scan
./Scripts/security-scan.shopen OpenMind.xcodeproj- Select your development team in project settings
- Enable CloudKit capability if needed
- Select target device (iPhone/iPad/Mac)
- Press Cmd+R to build and run
# Debug build
./Scripts/build.sh debug simulator
# Release build
./Scripts/build.sh release device
# Run tests
./Scripts/test.sh allSee BUILD.md for detailed build instructions.
Comprehensive documentation is available in the docs/ directory:
- Development Guide - Complete development workflow
- Architecture Overview - System design and patterns
- Build Guide - Detailed build instructions
- Testing Guide - Testing strategies and tools
- Performance Guide - Profiling and optimization
- Security Guide - Security best practices
- Tools Guide - Development tools documentation
For a complete list of documentation, see docs/README.md.
This is currently a private project. Contribution guidelines will be established upon public release.
# Open the project
open OpenMind.xcodeproj
# Or use xed
xed .Current Version: v0.2.0
Proprietary - All rights reserved