
Asteroid Vision
SwiftUI · MVVM · SceneKit
Asteroid Vision is an iOS app to browse and filter near-earth asteroids, made possible by NASA's NEO Objects REST API. Users can explore orbital data and build a list of favorites.



Architecture
I built this app following the MVVM pattern. An API service was responsible for fetching asteroids, using URLSession and modern Swift concurrency such as async/await and task groups. The API service fetched the JSON objects and returned them to the view model, which handled the business logic and provided the view with data for the user interface.
Using Observation
Users can change their unit preference in the unit control center. This was handled by storing an observable object in the environment and passing it as a bindable to the control center, so a single source of truth is maintained. The user's unit selection is also stored in UserDefaults.