Why build an iOS app?

My first iOS app is under way and I'm building a recipe manager app.
I know there are already many similar apps in this category but most I've found doesn't exactly address my issue with cooking. I started this project in the belief that someone else may feel the same way. I am relatively confident with home cooking. There are about 30 to 40 dishes I can cook and this number is growing. I cook some dishes more frequently than some others which simply reflect my preferential taste but sometimes it's simply not knowing what else to cook. Our brain has a limited memory capacity and it's not a reliable data source when it comes to persistency. We won't lose last week's memory but it will fade over time. Planning what meal to cook in balance - nutrition and variety wise - has always been challenging. There are apps that kind of solves this problem but I haven't come across one that scratches my itch. Since it's my project, I wanted it to be about solving my own problem. It puts me in a position where I can think from user's point of view. Playing solo bears the risk of progressing with ideas that are not fully validated. But it also has many benefits. You just have to embrace it by getting the most out of the benefits and working hard to minimise the risk.


Why iOS?
I use iPhone and Mac every day. So it was no brainer to choose iOS as the development platform. Also there is a study showing that iOS users are more engaged with apps than those on Android. Given such circumstance, which audience would you choose?

Xcode is a nice tool, too. For those who don't know about Xcode, it's a free tool to build Mac, iOS apps provided by Apple for Mac users. I've used other tools like Xcode for other programming languages but Xcode is at a different level. Xcode itself is another topic all together so I suggest you read Xcode Overview for more info. Sadly for Android, there isn't yet a dedicated tool for Android app development.

Speaking of web vs mobile, I chose mobile platform as it offers more rich experiences. The ability to take a photo with a device in hand is the essential component that my app can't live without. There is also SDK (software development kit) for manipulating camera, photo library experience which I believed might come handy later down the path.

What's next?
With the foundation decisions made, I started sketching out raw ideas on paper. Since there was no need to relay the message to others, a rough hand-drawn wireframes sufficed the need to solidify the concepts. I then started adding details on a series of iPhone mockup screens. How can a user insert ingredient data? Is it going to be a plain textfield or a custom UI to speed up the input process? These are the kind of questions that I wanted to address. There is no such thing as a perfect project scope, but it's imperative to explore my options thoroughly even to the finest detail. Polishing the appearance along the way helped me experience the app close to real context which made me do more detail-oriented thinking.

Designing user interfaces for a new platform was challenging. I simply didn't have a good understanding of iOS technology. I can come up with any design and it's possible to translate them into code but I didn't want to spend weeks implementing something I wasn't sure about. Designing user interfaces for a new platform is like using untested materials for a house external wall cladding. To avoid risks, I needed to spend time learning iOS development. I could choose to spend first few weeks only learning iOS but instead I decided to define what to learn from trying to design and implement first. If I don't know how to implement something, I had to learn it. I ran in this cycle in iteration; As soon as there was one feature designed, I looked for ways to implement it. If I don't know how to implement it, I looked for tutorials. This not only helped me move fast with the project but also helped me to absorb new ideas effectively. Knowing what the platform provides out of the box is important. It allows you to define whether a default UI component would work better than a custom design and help you work efficiently. Another great thing about working on Apple's platform is that they provide a great default set of tools, UI kit being no exception.  

I'm about half way to my version 1.0.
I will have more to share once when I finally make it but it's been a great journey so far.
It's no question that it gave me an opportunity to broaden and shape up my knowledge in my expertise.