Code as Craft

Part 2: Building mobile apps on the side

I initially planned to have a beta ready for the spring 2014 season which was 4 months away. As with most of my side projects, my day job got in the way. I still had a full-time job and at best I was able to get in about 5-10 hours a week. Occasionally, I'd pause work on it for a few months then all of sudden a new spike of inspiration got me started again.

Side projects are passion projects. I was not doing this for money or fame. Side projects begin with a spark, but are quickly set aside when life gets in the way. I've been able to reignite that spark time and again over the past 3 years because this app was a way for me to reflect on my craft. Constant reexamination my skills and continuous improve. At times I completely stopped focusing on building the app and instead rebuilt features I had already completed with newer technology or a better architecture. This was my way of honing my craft. I've built many apps, many of them successful. I didn't need to show I could do it, I simply wanted to see what was possible.

Fall 2013: Started building the app in Objective-C, targeting iOS 7, using Parse as the backend. I got as far as login/registration and creating a team.

Summer 2014: Apple announced a new programming language called Swift. I couldn't use Swift on my work projects just yet, but I figured I'd try it for this app and rewrote the login/registration and team creation in Swift.

Spring 2015: Swift 1.2 had enough breaking changes I had to rewrite the app again. Parse hadn't released an updated version of their SDK for Swift 1.2, so I made the decision to not use the SDK and hit their REST API directly from the app. This ended up being a great decision, but slowed down development a lot since I had to write a lot of the code the SDK would've handled.

Summer 2015: Apple announces Swift 2.0. Once again it's backwards-incompatible, but I figured I had already written the login/registration and team creation 3 times now, a 4th time was nothing big. This time around I also decided to ditch CoreData and try out Realm.

Fall 2015: Facebook announces Parse shutdown. I was briefly happy about my decision to decouple my app from the Parse SDK, but now I needed a new backend. I also got new job at this time, so I paused for the rest of the year to focus on my new job.

Summer 2016: I was finally comfortable enough with my work and daily routines to carve out some time for the app again, but I was more excited about a new architectural pattern circling the iOS community and decided to implement that instead.

Winter 2016: Joined a dodgeball league at work, 4 years later and there wasn't a decent app in the app store for managing your team in league sports. I was motivated again.

Winter 2020: COVID-19 gave me an opportunity to revisit some of my old side projects. I'm back on it!

Current expected release: Fall 2017 Summer 2022

Development didn't even get remotely close to my original spring schedule but I got to try out many different technologies, different versions of Swift, and even a few different app architectures. Most of this knowledge also went into the apps I worked on at my day job. Overtime it became my version of to-do list app.

Follow my thoughts, checkout projects that interest me, connect with me professionally or send me an old fashioned email.