Can I develop an iOS App? - Introduction
As some of you might already know, I am a Hardware Engineer by profession and I love my job. Though my job has its fair share of coding, mainly for data analysis and equipment interfacing, I miss 'regular' coding. I did a two year course in C, C++ and Java during my undergraduate years on the side (my main degree was in Electrical), just so as to have some coding expertise. As a result I am theoretically well versed in these languages, though my coding experience is limited to my coursework. When I got in to the Apple ecosystem (before the iPhone was released), I started falling in love with the whole experience right away, mainly due to the simplicity of Mac OS X and how it would let me do my work on it without having to have to troubleshoot the laptop for most of the time, as Windows would force me to. But still I was not that keen on developing my own Apps for the Mac. When the iPhone was introduced in 2007, and more importantly when the App store was introduced a year later and when Apple opened up its APIs for the developers, I was right in the middle of it, hearing stories on how easy it is to develop for Apps for the iPhone and how great the Apps for the iPhone work and have almost an infinite potential. I have been smitten with the idea of being an iOS developer ever since, not full time, but like a fancy hobby on the side!
With my Ph. D. and finding a job later, it has taken me almost seven years for me since the original iPhone was introduced to even just get started on this dream. Though I have been saving up the Stanford course on developing Apps for iOS on my iTunes U app for more than a year now, I only recently (just a couple of weeks back) started listening to the lectures. I started off with this course offered by Stanford for free on iTunes U as I had heard favorable reviews of this course. Also the course itself, had only some basic pre-requiremtns listed for anyone interested in taking it up. The pre-reqs were mostly basic programming skills and knowledge of Object Oriented Programming (OOP) principles. With my two year experience (albeit almost 10 years back), I thought I should be able to handle this course. I listened to the first couple of lectures and soon found out that though I vaguely remembered all the concepts of OOP, the terms took a while to come back and decided that I should do a refresher of my basic skills and asked a friend of mine who is a Software Engineer to give me a couple of hours worth of brush up of the OOP concepts. He is good at what he does and it really helped me.
But still when I resumed my lectures, I felt that there were too many things I could not relate to in the lecture, even though I understood the concepts of OOP now very well. It was the darn syntax! Objective C is so much more complex than C or C++, mainly from what I remember. It uses some C concepts by themselves (with no modifications) and some modified Objective C specific concepts. This really screws up a lecture when you are trying to follow it and particularly when you are a newbie. So I decided that I should take a basic course in Objective C before I resume the Stanford's iOS 7 lectures. I remember when I wanted to learn the basics of R, I used Code School and their free webinars and was really impressed with the site and its learning programs. I tried to see if they have a similar course for Objective C and they did. I just started taking this Objective C basics on Code School a few days back and I am half way through and now I can relate to most of the things explained in the Stanford's lecture on iOS 7.
I don't expect this to be a quick process in anyway and I am here for the long haul. I am going to update my progress on, first the my experience in learning to develop for iOS and then hopefully in developing an App of my own, on this blog with the tag "Can I develop an iOS App?". This is my first post on this topic. When I decided to write this today, I came across with this very useful post (by Benjamin Mayo) on an Indie developer's chances in the iOS App store and lessons learnt from the past Indie developers' experience (like this not such a great experience of the Unread developer, Jared Sinclair). The key take away point(s) from Mayo's post for me was to start small, particularly when you are a small time developer. If you don't invest too much, you might not make too much, but at the same you will also not be at a risk of losing too much. As an Indie developer, our risk taking capacities are pretty low and we need to have that in mind, clearly. I could not have come across these posts at a better time. Though developing my own Apps are too far in the future for me, these developer's sharing their experience has clearly given me the outlook on the scope of what I can expect as an aspiring amateur Indie developer on the iOS App store.