Lets Make Life Multi-planetary
Ever since I was a kid, I loved space and astronomy. I wanted to bring that love to life, so this app was strictly for me.
August 8, 2025
As a child, I had many books and toys about space and astronomy. So what if I could build my own toy as an adult?
Bringing my love for astronomy to the App Store:
After my Shopping List app went live, I immediately wanted to start my next project. I wanted to build an astronomy educational app for young learners—just like when I was a kid discovering space. By this time I had experience building and releasing apps, but I also wanted to challenge myself to learn more of Apple’s frameworks.
At first I wanted to add a user authentication flow to personalize the UX for every user. But as I gained a clearer vision for the app, I decided not to add an auth flow and to keep things simple. I used CloudKit to save just the user’s name to create a more personalized experience without the overhead of a full onboarding flow. I also wanted to create a 3D environment for each planet so users could explore outer space in a more realistic way.
Building a full 3D environment
As I started to brainstorm how to build this 3D environment, I read the documentation on SceneKit (now deprecated — RIP :( ). I realized there’s a lot of geometry involved in building the planets, the background, and the stars. For the space environment I used a cube map: six images stitched onto a cube. For the planets, I used panoramic textures of each planet and wrapped them onto spheres to create their shapes.
I implemented this for all eight planets and even some moons. To make the experience immersive, I added each planet’s actual axial tilt and rotation period. You can tap a planet to navigate to it and read about its features, stats, and more. There’s also a timed quiz for each planet—things like how many moons it has, how long a day lasts there, and when it was discovered. I even added light reflections that change based on the sun’s angle.
-
What I Learned
- How to build 3D objects in SceneKit
- How to use CloudKit to grab user info without an auth flow
- How to build timers with the UI reflecting the state
-
Challenges
- Deciding on an easy-to-use UI
- Adding features like rotation speed and lighting reflections
- Navigating from object to object in the 3D environment
More features
In addition to all of the planets and the 3D environment, I also added every major moon for every planet and their stats. I also included major rockets like Saturn V, SLS, and Starship—where they were built, major achievements, and more.
I love SpaceX and their vision for the future. So I added an API integration that pulls every recent SpaceX launch, with links to watch live and an option to get notified for upcoming launches.
The future
As my app was getting approved on the App Store, I was proud of myself—not only for building my second app, but for creating something the child version of me would love. It gave me a real sense of accomplishment.
It makes me wonder—will we get to more planets, and when? Will I see the first human on Mars in my lifetime? I would love to see that. Even if it's just a small app that I built, I hope my app can someday inspire the next wave of astronauts to help accomplish these amazing goals that I'm looking forward to seeing.
-
What I Learned
- How to integrate APIs
- How to add simple push notifications with CloudKit
-
Challenges
- Integrating external APIs
- CloudKit queries