Skip to content

Professional iOS/iPadOS mind mapping application built with SwiftUI, SwiftData, and Metal rendering

Notifications You must be signed in to change notification settings

DrunkOnJava/OpenMind-iOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

OpenMind - Professional iOS Mind Mapping Application

Overview

OpenMind is a native iOS/iPadOS/macOS mind mapping application built exclusively with Apple technologies, designed to deliver desktop-class performance on mobile devices.

Features

  • πŸš€ 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

Tech Stack

  • Language: Swift 6.0
  • UI: SwiftUI + UIKit (performance-critical paths)
  • Rendering: Core Graphics + Metal
  • Storage: SwiftData + CloudKit
  • Architecture: MVVM with Combine

Requirements

  • Xcode 15.0+
  • iOS/iPadOS 17.0+
  • macOS 14.0+ (Catalyst)
  • Apple Developer Account (for CloudKit)

Project Structure

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

Getting Started

  1. Clone the repository
  2. Run initial setup: make setup
  3. Open OpenMind.xcodeproj in Xcode
  4. Configure your development team in Signing & Capabilities
  5. Build and run on your target device

For detailed Xcode setup instructions, see XCODE_SETUP.md.

Architecture

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

Performance

  • Metal-accelerated rendering for large mind maps
  • Lazy loading and virtualization for memory efficiency
  • Optimistic UI updates with background sync
  • ProMotion display support (120Hz)

Development Status

Completed βœ…

  • 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

In Progress 🚧

  • Gesture handling and Apple Pencil support
  • CloudKit sync infrastructure
  • Platform-specific adaptations

Planned πŸ“‹

  • Siri and Shortcuts integration
  • Home screen widgets
  • SharePlay collaboration
  • App Store metadata and screenshots

Building the Project

Quick Start

# Clone the repository
git clone <repository-url>
cd openmind

# Initial setup
make setup

# Build and run
make dev

Requirements

  • Xcode 15.0 or later
  • macOS 14.0 or later
  • Apple Developer account (for CloudKit)
  • Command Line Tools (xcode-select --install)

Build Commands

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

Advanced Commands

Testing

# 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

Performance Profiling

# 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

Security Scanning

# Run security scan
./Scripts/security-scan.sh

Using Xcode

open OpenMind.xcodeproj
  1. Select your development team in project settings
  2. Enable CloudKit capability if needed
  3. Select target device (iPhone/iPad/Mac)
  4. Press Cmd+R to build and run

Command Line Building

# Debug build
./Scripts/build.sh debug simulator

# Release build
./Scripts/build.sh release device

# Run tests
./Scripts/test.sh all

See BUILD.md for detailed build instructions.

Documentation

Comprehensive documentation is available in the docs/ directory:

For a complete list of documentation, see docs/README.md.

Contributing

This is currently a private project. Contribution guidelines will be established upon public release.

Opening in Xcode

# Open the project
open OpenMind.xcodeproj

# Or use xed
xed .

Version

Current Version: v0.2.0

License

Proprietary - All rights reserved

About

Professional iOS/iPadOS mind mapping application built with SwiftUI, SwiftData, and Metal rendering

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •