An iOS application for conducting Ishihara color blindness tests. This app provides interactive color vision testing with multiple test types and comprehensive result tracking.
The Ishihara Test app implements digital versions of the classic Ishihara color vision tests used to detect color blindness. Users can take tests specifically designed for different types of color vision deficiencies and track their performance over time.
![]() |
![]() |
![]() |
![]() |
|---|---|---|---|
| Home Screen | Red-Green Plate | Combined Results | Individual Results |
- Multiple Test Types: Red-Green, Blue-Yellow, and Monochromatic vision tests
- Timed Testing: Configurable time limits per test plate
- Results Tracking: Persistent storage of test results with SwiftData
- Analytics: Aggregate performance charts and individual test breakdowns
- Customizable Settings: Adjustable test parameters and preferences
- Red-Green: Detects Deuteranomaly, Protanomaly, Protanopia, Deuteranopia
- Blue-Yellow: Detects Tritanomaly, Tritanopia
- Monochromatic: Detects Monochromacy/Achromatopsia
IshiharaTest/
├── IshiharaTest/ # Xcode project directory
│ ├── IshiharaTest.xcodeproj # Xcode project file
│ └── IshiharaTest/ # Source code
│ ├── IshiharaTestApp.swift # App entry point
│ ├── Model/ # Data models and business logic
│ │ ├── IshiharaTest/ # Core test logic
│ │ └── TestResults/ # Result persistence
│ ├── UI/ # User interface components
│ │ ├── HomeTab/ # Main test interface
│ │ ├── ResultsTab/ # Results and analytics
│ │ ├── IshiharaTestSheet/ # Test execution views
│ │ ├── SettingsSheet/ # Configuration
│ │ └── Utilities/ # Shared components
│ └── Assets.xcassets/ # Images and test plates
└── README.md # This file
- iOS 17.0+
- Xcode 15.0+
- Swift 5.9+
- SVG2Path: For rendering test plate graphics from SVG files
- SwiftUI: Native UI framework
- SwiftData: Data persistence
-
Open the project in Xcode:
open IshiharaTest/IshiharaTest.xcodeproj
-
Build and run on iOS Simulator or device:
- Select your target device/simulator
- Press ⌘+R to build and run
# Navigate to project directory
cd IshiharaTest/
# Build for iOS Simulator
xcodebuild -scheme IshiharaTest -destination 'platform=iOS Simulator,name=iPhone 15' build
# Run tests (when available)
xcodebuild test -scheme IshiharaTest -destination 'platform=iOS Simulator,name=iPhone 15'The app follows SwiftUI best practices with:
- @Observable pattern for reactive test state management
- SwiftData for persistent result storage
- @AppStorage for user preferences
- Timer-based test progression with configurable limits
- Tab-based navigation for organized user experience
- Take a Test: Select a test type from the home screen
- Configure Settings: Adjust test length and time limits
- View Results: Check individual test results and aggregate analytics
- Track Progress: Monitor performance trends over time



