The 8 Wonders
The app features these wonders, defined in theWonderType enum:
lib/logic/data/wonder_type.dart
Wonder Data Model
TheWonderData class contains comprehensive information about each wonder:
lib/logic/data/wonder_data.dart
Example: Great Wall Data
lib/logic/data/wonders_data/great_wall_data.dart
Wonders Logic
TheWondersLogic class manages all wonder data and provides access methods:
lib/logic/wonders_logic.dart
Home Screen Navigation
TheHomeScreen provides an elegant horizontal swipe interface to browse wonders:
Key Features
Parallax Scrolling: Background, middle-ground, and foreground layers move at different speeds for depth. Infinite Scrolling: Users can swipe endlessly through wonders using a high initial page number trick:lib/ui/screens/home/wonders_home_screen.dart
Visual Effects
Animated Clouds
Wonders display animated clouds that match their theme:Dynamic Gradients
Gradients intensify as users swipe up to transition to details:Wonder Title Text
Each wonder displays its title with custom styling and shadow effects for readability.Accessibility
- Semantic labels for screen readers
- Keyboard navigation support (arrow keys)
- Live region announcements when wonder changes
- Haptic feedback for interactions
- Page indicator with dot press support
Integration Points
- Timeline: Each wonder’s historical events feed into the global timeline
- Artifacts:
highlightArtifactsandhiddenArtifactsconnect to the Metropolitan Museum API - Photo Gallery:
unsplashCollectionIdlinks to curated photo collections - Collectibles:
hiddenArtifactsbecome discoverable collectibles - Details View: Tapping a wonder navigates to comprehensive information tabs
Performance Optimization
RepaintBoundarywidgets isolate expensive repaintsExcludeSemanticson decorative elements- Tween animations with configurable durations
- Lazy loading of illustrations based on visibility
- Viewport fraction optimization for smooth scrolling