Let’s be honest; we’ve all got app ideas, even the smallest ones, and we want to get round to making them. We have work, family and other things to keep us busy and setting that time aside to even get started can be daunting.
Over time this kind of builds up into a cycle of ‘I’ve been meaning to do this for ages, this is bad, I feel bad, but I’ve got a lot on, I feel guilty, everyone else has apps in the app store…’
Starting an app from scratch and working on a idea into something tangible is challenging. It’s even trickier when you are working on your own.
On a day-to-day basis you don’t often get the chance to invest time into an app’s early architecture or to make critical decisions that have larger implications down the road. This is why I started to make TurboWallet. I have literally hundreds of small app ideas I want to get round to creating and with some time off this week I just dived right in and am streaming most of it for others to follow along.
This week I have some time ‘off’ and after thinking about it for a long time I was just so happy to get coding on my own projects, chilling out with some learning and blog posts as well as live streaming me working on my app.
Yesterday I got on the train, grabbed a coffee (trying to limit it to one per day(!)) and just sat there all day and worked on my app. The absolute relief of finally seeing something on the screen was so tangible. No plans, no stress, just a quick sketch and off I went.
We can make so many plans and fantasise about this app, this idea but when it actually comes to making some time to make it happen there is sheer and utter relief in creation. The absolute joy of synthesis of APIs, data models, design patterns etc into an actual app is just so much fun. These are a couple of things I realised even after the first day of working on TurboWallet and wanted to share:
Don’t overthink things
There’s a temptation to think about stuff so much that you don’t do anything at all and this is something I wanted to avoid. My solution was just to get up, go and build something – it’s not perfect, it doesn’t have amazing architecture but it works so far!
Admit your weaknesses
In the live stream yesterday I spent an hour working on a UIPageViewController to get it working properly. Page Controllers! So simple right? Well the truth is that everything has a learning opportunity and I learned quite a bit about the gaps I had in certain UIKit elements through this process (another chance to blog). Finding your weaknesses and working on them is the very definition of ‘practice’ so this can be a real strength in the long run.
This is also why I started to stream: you have a mental image of your level as a developer and an actual level – once you go live on stream you very, very quickly realise your actual level. This isn’t something to be afraid of; in fact it is your greatest asset.
It’s so tempting to kind of try to ‘protect’ yourself from the outside world, from exposing how you really code; get yourself out there, find those weaknesses, accept them, then slay them all one-by-one.
There is so much to learn as an iOS developer, but there is so, so much you can create with that knowledge. We, as devs, are happiest when we are creating stuff. Don’t be too critical of yourself or your idea before it even gets a chance to live on your device. Once you interact with it on some level you’ll enjoy seeing it come together.
I’m going to be putting quite a bit of time into getting this app off the ground. It’s a real chance for me to integrate lots of technologies I’m working on such as iCloud, FMDB, Notifications, Keychain, Core Animation and really cracking down on UIKit elements.