May 26, 2014
Fighting Developer’s Block with Writer’s Block

Theres an old saying about the last 20% of a project taking 80% of the time. Theres also probably a saying about something starting to look bad if you spend too much time looking at it. Finally, one of my favorites (and one Im pretty sure Ive penned) cant draw a straight line with a ruler.

Im a mix of all three of those right now. Oh, and I havent blogged in a while.

Ill be the first to admit that I am not a designer. I understand the importance of it and many of the concepts, but I lack the vision and technical ability to be a competent designer. Theres absolutely nothing wrong with it, and Im not lamenting the absent skill, but its worth admitting. So I do what all developers do find apps I like and mimc their concepts in my own app. Tale as old as time, and an opportunity for another buzzword imitation is the sincerest form of flattery.

Ive been working on my gas mileage tracker for a while now, and most seriously in the last few weeks. I really wanted to ship it this weekend in honor of its namesake event, the Indianapolis 500. Here it is Monday night, and Im blogging instead of in iTunes Connect enjoying my approved status, basking in my first personal release.

Whered I go wrong? Probably the two redesigns Ive done. Probably in the heavily programmatic views instead of fun, modern things like storyboards and auto-layout (apologies for the buzzwords).

Getting to MVP

I have come a long way to becoming comfortable with the idea of frequent updates and not taking on the world. I have a lot of plans and things Id like to see happen in my app, and recently Ive become comfortable with the fact that they wont all be done on day one. But I still have to have something to actually ship. So what makes an MVP? Im redefining it as core functionality. Can I enter a fillup event. Does it update the table as appropriate. The very basic of animations, just enough to have a fluid experience, but nothing fancy.

That introduces a complication though whats my distinguishing factor then? Theres no shame in mostly vanilla UIKit elements, but there are thousands of apps on the store that lack customization. This means I need some flourish, so I have to find the balance of some and this is holding up shipping.

Getting Out of My Own Way

Ive done project management. I need to make a plan and just execute on it. Ive decided this means cutting way back on the flourish and yet again throwing away some code, but doing so in favor of something that I can iterate on faster and will be more easily modified in the future. I will have to find other ways to differentiate, and some of those wont be on day one, so I need to consider this in my pricing model (if I so chose to). Tracking multiple cars is out for now. Heavily customized UIs are out for now.

To my credit, I have solid fundamentals. Im using a SQLite store, and my DB to NSObject code is solid. Ive got my own home-brewed migration scheme that I can rely on and is portable. Thanks to recent Cocoapods discovery work, Ive even broken out the most common stuff I do to a library I can use elsewhere (assuming I ever finish this one). Thats all great, of course, but I need to get this just shipped.

So I set a new goal. July 1st, my app is going live in whatever state its in. Keep me honest, Internet.


April 18, 2014
Why is Email Hosting So Hard?

May 30, 2014
Why Do I Code?