This SwiftUI project is a Jurassic Park themed application that showcases various dinosaurs from the Jurassic Park and Jurassic World movie franchises.
Based on the Udemy course iOS 18, SwiftUI 6, & Swift 6: Build iOS Apps From Scratch.
The following features and improvements were independently developed, extending beyond the course curriculum:
- Integration of additional packages to extend capabilities and streamline development
- Project structure for better organization
- MVVM architecture, including using
@StateObject
and@ObservedObject
- Reusable UI components for better maintainability
- Browse a list of dinosaurs from the Jurassic Park universe
- Filter dinosaurs by type (land, sea, air)
- Search for specific dinosaurs
- View detailed information about each dinosaur
- Interactive map showing dinosaur locations
- Sticker pack extension for iMessage
Views/
: Main views for the dinosaur list, detail, and map interfacesViewModels/
: View models implementing the application logicModels/
: Data models for dinosaurs and related typesServices/
: Services for fetching dinosaur dataResources/
: JSON data file containing dinosaur information
JPApexPredators/
├── JPApexPredatorsApp.swift
├── Views/
│ ├── DinosaurListView.swift
│ ├── DinosaurDetailView.swift
│ └── DinosaurMapView.swift
├── ViewModels/
│ ├── DinosaurListViewModel.swift
│ ├── DinosaurDetailViewModel.swift
│ └── DinosaurMapViewModel.swift
├── Models/
│ ├── Dinosaur.swift
│ └── DinosaurType.swift
├── Services/
│ └── DinosaurService.swift
└── Resources/
└── dinosaurs.json
This project uses Swift Package Manager (SPM) for dependency management. The following packages are included:
- Inject - Used for hot reloading during development
- SwiftLint - Used for code linting
- SwiftFormat - Used for code formatting