A Swift-based Xcode demo project that explores information architecture and techniques for displaying large volumes of data. The design was shaped by research and user interviews, with continuous iteration based on feedback. The primary goal is to enhance situational awareness through intuitive, data-driven interactions.
To get started, clone the repository using:
git clone https://github.com/chanceadrian/ScenarioDemo.gitThis project is intended for use by a select group of 3 team members with authorized access. Make sure you're on the access list before proceeding.
- John Karasinski
- Megan Parisi
- Katie McTigue
- Open
ScenarioDemo.xcodeprojin Xcode - Select your preferred simulator or device
- Click Run (
▶️ ) in Xcode
No additional setup is required.
- Chart Interaction: Filter data, drag finger to see exact data points, sync multiple graphs with hold and drag gesture
- Time Simulation: All time-based components can be reset by hitting the reset button, so that we can get some realism by timeboxing the scenario to 52 minutes
- macOS with Xcode installed (recommended: Xcode 14 or newer)
- Familiarity with Combine and Swift Charts
ScenarioDemo/
├── ScenarioDemo.xcodeproj
├── README.md
├── ScenarioDemo/
│ ├── Effects/
│ │ └── MeshGradient
│ ├── Tabs/
│ │ ├── Affected Systems/
│ │ │ ├── Power System/
│ │ │ │ ├── PowerSystem
│ │ │ │ └── PowerSystemChartView
│ │ │ ├── Transit Phase/
│ │ │ │ └── TransitPhase
│ │ │ └── Water Purifier/
│ │ │ ├── WaterChart
│ │ │ ├── WaterPurifier
│ │ │ ├── AffectedSystems
│ │ │ └── ChartComponents
│ │ ├── Summary/
│ │ └── Sub Views/
│ │ ├── ActionsAndCommView
│ │ ├── NextEffect
│ │ ├── SummaryHeader
│ │ ├── Timeline
│ │ ├── TimerView
│ │ └── Summary
│ ├── Assets/
│ │ ├── ContentView
│ │ ├── NasaLogo
│ │ └── ScenarioDemoApp
│ └── Timer Watch App/
│ ├── Assets/
│ │ └── ContentView
│ └── TimerApp
The project emphasizes:
- User-Centered Design: Built from research and user feedback
- Information Architecture: Optimized for large data visualization
- Situational Awareness: Intuitive data-driven interactions
- Iterative Development: Continuous improvement based on user testing
- SwiftUI: Modern declarative UI framework
- Swift Charts: Native charting and data visualization
- Combine: Reactive programming for data flow
- Xcode: Development environment
- Interactive multi-touch gestures
- Real-time data filtering and manipulation
- Synchronized chart interactions
- Time-based scenario simulation
- Responsive design for various screen sizes
The demo includes a 52-minute scenario simulation that can be:
- Started and stopped at any time
- Reset to beginning state
- Used to demonstrate real-world data patterns
- Synchronized across all chart components
- Ensure you have the latest version of Xcode for optimal compatibility
- The project is optimized for iOS devices and simulators
- Touch interactions work best on physical devices
- Charts are designed to handle large datasets efficiently
This is a demo project for authorized team members. For questions or suggestions:
- Review the existing codebase
- Test thoroughly on multiple devices
- Document any changes or improvements
- Coordinate with other team members before major modifications
This project is for internal demonstration purposes only. Access is restricted to authorized team members.