app logo

Asteroid Vision

Built With

SwiftUI

MVVM

SceneKit

REST API

URLSession

Asteroid Visison is an iOS app to browse browse and filter asteroids. This was made possible by the NASA NEO Objects REST API. Users can explore orbital data and build a list of favorites.


I built this app following the MVVM pattern. I had an API service that was responsible for fetching the asteroids. For this service, I used URLSession and modern swift concurrency, using things like async await and group tasks. The API service fetched the JSON objects and returned it the viewmodel, which perfomred the buisness logic and provided the view the data for the user interface.


Users can change their unit preference in the unit control center. This was handled by storing an observerable object in the environment and passing this a bindable to the control center, so that one source of truth is maintained. Users unit selection are also stored in UserDefaults.


Lastly, I used SceneKit to render 3D models of the earth and asteroids, creating a dynamic and interactive user interface.

app preview

Browse hazardous asteroids approaching earth.

app preview

Asteroid history and orbital data.

app preview

Control the units for each statistic.