8 months ago I released my first app to the iOS App Store: Today’s Forecast. The app was intended to be the weather app I’ve always wanted to use, and I did a really good job of doing that. It’s still the weather app I have on my home screen and I use it everyday. Users tended to agree, with a 4 star rating all time (and 5 stars for the current version).
But one of the things that I was not able to do as well as I would have liked was maintaining the app. I fixed bugs and added some critical features that people requested soon after release (a weather widget was the big one), but I wasn’t able to iterate on other features, such as an Apple Watch app, push notifications, and radar.
Part of the reason for this is that I had less free time to do such things, but the big reason was that I had accorded a ton of technical debt in how I built the app originally. I won’t get too into the detail here, but essentially I wrote the app without following a lot of best practices in iOS development and relied too heavily on storyboards for the interface. This meant that every change required considerable investigation into what parts of the app impacted other parts and any interface changes were frankly maddening ordeals.
All this is to say that I booted up Xcode today and created a new project called “Today’s Forecast 2.” I’m throwing out all the legacy code and am going to see if I can make the app again, but this time with a focus on doing things the right way. I want to be able to iterate on the app bettering I want to make it a better experience for everyone who uses it today. I can’t make any promises about how fast I can make this happen, but I would love to have a summer release for version 2. Job one is to replicate the features already there, and step 2 will be to add on some customer requests.
Wish me luck!