Shine: a better weather app
Five days ago, my weather app Shine hit the App Store. It was a big day for me. While I’ve designed a good deal of web sites, this was my first “real” coding project up for public consumption.
I began exploring iPhone development over a year ago. I created a “Hello World” app, watched a few WWDC tutorials, Googled up a storm, and got nowhere. I retried every few months without success. Stuff just wouldn’t work. Delegates? View controllers? IBOutlets? I couldn’t make sense of it.
But a month ago, something clicked. Delegates shmelegates. MVC—nbd.
After experimenting with SimpleGeo’s python client, I decided I’d make a simple weather app. You know, just to see if I could get the current temperature to show up on my phone. Three weeks later, I submitted a polished product to the App Store. And just like that, AppThat was born.
Weather apps are clunky, slow, hard to scan, and generally bad. The hypothesis I have is that if I designed something simple, fast, and easy to use for $0.99, people would buy it even though other apps using the same data were free.
In just five days, 10,000 people have downloaded Shine, making it the bestselling weather app on the App Store. At one point, Shine was listed as the #17 bestselling app overall after making headlines on DaringFireball, Gizmodo, Minimal Mac, MacStories, Macgasm and The Brooks Review.
In creating Shine, I’ve learned a lot:
Balance perfectionism and pragmatism, but don’t settle for mediocrity. Your app will never be perfect, but you can certainly release too soon. When you’re deciding where to draw the line, ask yourself this question: “Are you proud of what you've made?” At one point, scrolling a UITableView became jittery. It bothered me; I fixed it. These things matter.
Github is your best friend. If you’re unfamiliar with a platform, don’t start from scratch. Take a look at what others have built. Try them. Change things. See what breaks. Eventually, you’ll figure it out.
Plan for failures: Bad requests, slow internet connections, missing values, memory warnings, etc: to a user, there’s no excuse for a crash. Write defensive code.
Put your app in someone else’s hands. Before I decided to add extended forecasts, people were tapping and swiping when there was nothing to tap or swipe. But the user is rarely just “doing it wrong.” Remember: you’re building the app for them.
Don’t underestimate international markets. I wish I had designed Shine with global support from day one; the US represents just a slice of opportunity.
Update: January 2012
Over 25,000 people in 30 countries have purchased Shine.
The App Store named Shine the best of the iPhone Weather category for 2011.
Shine has served over 3 million weather requests in 6 months.
Update: April 2012
I’ve removed Shine from the App Store due to SimpleGeo’s weather API shutdown. As the newest member of the Instagram team in San Francisco, I’m dedicating immense time, energy, and focus to the job so I won’t be transitioning to a new weather provider.
The experience of shipping a loved and successful app to the App Store has been immensely rewarding. To all who supported Shine over the past nine months: thank you!
The code for Shine is available on Github.
For what it's worth, this is the press email I sent to various news outlets. I tried to identify the problem I saw, and present Shine as a solution.
There are plenty of weather apps out there. But those with thorough data lack design; those with good design skimp on data. Few do weather well. None do weather right. At least that’s how we feel at AppThat. That’s why we built Shine, the first weather app that really, well, shines.
How so? Shine is simple, fast, and sexy. Swipe across to view the daily forecast; pull up to see hourly estimates. It’s that easy. Shine is minimal. You won’t find Doplar radar, wind direction, or webcam feeds. The mission is simple: we want to help you to quickly find what you need to know—nothing more. Shine gathers 36-hour data from SimpleGeo while 7-day information from the NWS populates in the background. That means it’s fast.
Add locations with a map. Recently viewed locations automatically jump to the top of your list. Just swipe to change locations. With one tap, switch back to your current location. As it should be.
Now you’ll just have to take a look. Utility, meet the girl next door.