Late last year, I switched from being a web developer and plunged into iOS development. I fell in love with the Swift programming language and the process of building iOS apps. I’d always wanted to become an iOS developer, but had never wrapped my head around Objective-C1. Learning Swift has felt like unlocking a super power. It’s been scary to step out of my comfort zone, but Swift is an exciting language and has been great to learn. I’ve had to become familiar with loads of new concepts and patterns, but each struggle has led to a satisfying “Ah-ha!” moment.
In December, I built an app for the new, fourth-generation Apple TV. It started with a simple idea and a personal challenge to myself. NASA live-streams video of the Earth from a camera mounted on the International Space Station. They call it the High Definition Viewing Experiment (HDEV if you’re nasty). It’s one of the coolest things on the Internet. Here’s an idea of what that looks like:
It’s mesmerizing. I figured: Hey! Let’s get that on the Apple TV. I’d like to watch the Earth live from space on my TV. With the basics under my belt, I wrote a simple app. Very simple. It had two buttons: one for the HDEV video and one for NASA Television. I called it “ISS Live: Video from the International Space Station and NASA TV” and submitted it to the App Store. A week later, it was approved and went live. Yay!
And then, within a few days, it became the bestselling app on the nascent Apple TV App Store.
I was shocked, excited, and embarrassed. Shocked because it had happened so quickly, excited because Yay! I’m an iOS developer and people are paying money for an app I wrote, but embarrassed because of how bare-bones it was. I mean, it was really bare-bones. If I’d been a customer and bought that version of the app, I’d have been disappointed. In fact, a lot of customers were disappointed, which is why it got an average two-star review and, after a few weeks, sank back down to obscurity.
But there were several users who really liked it, and they took the time to send me sweet, thoughtful emails to let me know. I think that’s been the coolest part of this experience.
So, that was December and January.
Meanwhile, my fiancée Sophia and I moved across the country from San Francisco to Baltimore, which cut into my development time. I worked on the app for a few hours here and there, in between packing boxes and selling furniture and saying goodbye to friends and getting our dog and a cat ready to fly across the country. I worked on new features, proper features that made the app feel less like an experiment and more like a Real App Made by a Grown-Up Who Knows What He’s Doing™.
And so, as of yesterday, February 10, 2016, I am proud to announce that version 1.1 of ISS Live is available on the Apple TV App Store with a new feature. I’ve added information about the current ISS crew. Check it out:
When you select one of the crew members, a detail view appears with a full portrait photo, launch and landing information, country and space agency, and a running clock of how long that person has been in space.
This was a lot of fun to put together. I learned about network requests in Swift, how to parse JSON data, and how to deal with date and time objects. I also had to organize data on the server so that the app can automatically update crew info as people return to earth and new crew members launch.
I’m proud of this version. Plus, it’s an app that I also really enjoy using. I don’t expect it to rocket back up the charts, but I hope existing users like the update. According to iTunes Connect, 12,900 Apple TVs auto-updated the app yesterday. Holy crap. That’s a lot of users.
I still have a lot of work to do. The app is far from complete. There are at least three more major features I want to add. I feel good about this app, and I’m excited to nudge it forward and make it even better.
Note: Apple doesn’t provide URLs for Apple TV apps, so I can’t link directly to my app from here. If you have the latest Apple TV and would like to check it out, search for “ISS Live”. The full title is “ISS Live: Video from the International Space Station and NASA TV”. It’s kind of a pain in the butt to find Apple TV apps right now, and I hope Apple improves the process.
- Before Swift, Objective-C was the programming language for Mac and iOS development. For me, coming from a web background, it seemed like a daunting thing to learn. Ironically, now that I have some Swift experience, Objective-C is easier to read and understand. Maybe it was all in my head. ↩