MorningHabits in March: Why Design Patterns Make Sense

Jonas Björklund
One Side Project Challenge
3 min readApr 1, 2016

This is the third monthly post on my journey with the One Side Project challenge — developing an iOS App that guides you through your mornings, calmly. You can find part one here.

Warning: Attempt to present SingleAlarmViewController on AlarmScreenViewController whose view is not in the window hierarchy

6:15 PM on a Thursday afternoon. The scene: Me, sitting in front of my Macbook cursing my former (well, really just 2-weeks-old) self for hacking together some features without really thinking about the best way to properly implement them. Cue maintenance horror. This really was just one of the several error messages Swift has blessed me with during my attempt to finalize a working prototype, some more, others much less clear in their description.

I feel like I should be honest with you — I haven’t spent nearly as much time with the code as I planned to or should have, and the reason for that is probably 100% home-grown: I had zero experience in Coding with Swift when I was starting off (full disclosure: I still don’t) and just started coding the way it made sense to me at the time and worked. This led to tons of tight-couplings, some nasty repetition and to me not understanding how one change in the code effects the whole application. As I try to sit down and tried to make everything fit together the way I want to, procrastination sets in: I don’t know where to start and what to tackle next. The impulse to flee grows stronger.

I do realize this is somehow part of the process, although it does not feel fun or productive. How is it that 10% of the features now take up 90% of the time and energy? What if I will never get this to work?

I’ve decided to not give in to the familiar urge to simply start over but to invest some time next month in refactoring my code and making sure everything’s being handled smoothly and usefully.
I also strapped down the prototype to more of a minimal viable product in order to gain practical and invaluable insights from the great pool of beta-testers on what to improve and how to proceed.

Progress this month still was limited unfortunately — I encountered an amazing opportunity at my student job to assist in coordinating an interesting medical device study and on a more personal note managed to catch Tonsillitis — I imagine that’s one way to put my medical training to use at least!

That being said, I managed to:

  • Set up a first (bare-bones) Website at morninghabits.de: Check it out! You can even register to be notified once the beta is available.
  • The prototype is almost running: There still are some bugs and inconsistencies within the UI, but it should be at a usable level pretty soon
  • Managed to recruit some beta-testers from people who reached out on Email or Twitter after my last update post. If you’re interested in checking out how to make your morning go smoother, you can register at morninghabits.de

April goals

I’m starting the month with both more motivation (from getting started with tackling my messy codebase) as well as more time on my hand and hope to tackle this month’s challenges head-on:

  • Get the App’s code fully refactored: I look forward to the liberating experience of software-housekeeping
  • Gather a useful number of potential beta-testers: Now that the Website is up, I hope to recruit some more interested beta-testers who help me make the User Experience as smooth as possible — after all, isn’t that what we all want from our mornings?

Thanks for reading!
Feel free to give this article a recommend
💚 if you like it.
I’m taking One Side Project Challenge and I will post project update on the1st of every month. Follow the publication and / or me to see how my project idea develops. Let’s make mornings great!

--

--