It's very exciting to have the opportunity to write and share with the iDevBlogADay community. iDevBlogADay is an incredible community of individuals of such interesting and diverse background, its really a privilege to be a part.

Which brings me to my first topic - how glad we should all be to be involved in iOS. Whether your first project is still in the works, whether you're in the aftermath of your first (like myself) or a seasoned veteran, we're all privileged to be part of something great.

I think its easy to get lost in fixating on app sales as the only measurement of success and return on investment, but the fact is that's just not true. Let's just quickly list a few reasons to love iOS, I'll elaborate later from personal experience:

  • iOS is the most competitive market, the standards are high and it raises the bar for our work quality
  • iOS has an incredible community of intelligent and hard working developers to surround yourself with
  • iOS gives us the opportunity to work with some of the coolest new technologies and devices
  • Depending on who/where you are, knowing or learning iOS could leverage your career

So from this point onward, this blog entry is a little bit about myself and my personal reasons for appreciating iOS in all its facets other than just sales, touching on these points above. If your attention span is short, stop here and reflect on the reasons you love developing for iOS. If your attention span is just a tad longer, share your reasons/story in the comments thread below. If you like story time - read on!

Every good story needs a snappy title so let's call it:

From project manager to developer in 1.5 years

In the beginning

About two years ago, I didn't know how to program. I was a project manager with a B.Comm Degree working in market research and not really enjoying it. After excelling at the technical portion of my job for a while, I realized my calling was programming - I wanted to be a developer. Microsoft Office VBA Macros were becoming my lifeblood and I wanted more. I didn't know what I wanted to develop, I just knew I cared about user experience and had a pie in the sky idea for a business inspired by the job I was leaving - That was motivation enough to give my employer 2 months notice, buy a Macbook Pro and put the fire under my ass to start learning something.

The challenges

I started with web development, learning PHP, MySQL, HTML, CSS and Javascript for the first 7 months. This was going pretty well, it got me going and I could land a few small scale solo projects on my own in addition to a new part-time job as a "webmaster" for a small business. However, I was running into some problems with the web development route:

  1. I'm not a designer. I try, I'm learning, but I just can't do anything nearly as good as what you see out there these days. With the incredible amount of web development tools for designers, unless a project is complex enough, I just can't stay up to par from a visual perspective, no matter what my backend code looks like. Furthermore, the more complicated development projects are unlikely to go to a relatively inexperienced 1 man show like myself.
  1. I still wasn't sure how I could turn my passion into a career. I wanted to be a full-time developer somehow whether it be working for myself or for a company. How I was going to accomplish this still wasn't clear, after all, I'd only been actively developing for about 7 months or so. It's not like I had a long term track record or large portfolio to show anyone.
  1. I was still looking for a personal project that would allow me to learn and also create something fantastic. My original idea after leaving my job had fallen through after meeting with a friend who's insights helped me find a patent already in existence.

Can you guess where this story goes next?

The right project to get and stay motivated about

Sometime in April 2010, I decided to challenge myself to make a game for iPhone which was worthy of selling for $0.99. App development really intrigued me. Something about making a tool or game that goes with you anywhere is really exciting. First, I wanted to use Flash but the 'ban' took that out of the question. So I turned to iPhone, and countless numbers of books to take the paradigm shift.

Objective-C is a tough language to learn. I would say I had to truly submit myself to it for an extended period of time before I began to understand it. Don't get me wrong though, I don't mean to insult the language at all, in fact, I'm thankful for the Flash ban that forced me to learn Objective-C. It forced me to understand things on a deeper level that I was taking for granted (e.g. not knowing what a pointer is) and taught me so much about how to object-oriented program in a well formed manner. Memory management once seemed like the biggest fright and now its just intuition. I learned a lot of this from two iPhone frameworks along the way - Cocoa and Cocos2D for iPhone.

The development story in a really tiny nutshell

A month into my development, I decided to invest in a designer to set a quality standard for my game that reflected my desire to sell it for $1 and not just free. It was also to motivate myself financially to commit to this project. The development of my game, Pixel Fighters, spanned about 9 months. Originally I wanted to do it in 6 months, but almost every step of the way I was constantly raising the bar for myself. I was committed to making a decent game for iPhone. I was constantly comparing to what was available, always wanting to be sure I was providing great value and an appropriate mobile experience to anyone who would buy my game.

Going from no knowledge to trying to do everything, I had a lot to learn as I was going. Upon reflection, I would call my approach disorderly at best and I can't speak highly of the process taken. I also can't speak highly to the idea of releasing the first thing you have ever made. What I can speak to, however, is how much I was learning every day, week and month as I progressed on this project. Without the iOS App Store's incentive to publish a product in a worldwide market, I don't think I would have ever gathered the same motivation to do something like this. Short of sales, I knew a published app to my name was a resume maker. This project, despite its disorder, was also giving me discipline that web development wasn't.

I'm not going to talk about my launch because everything about my experience and exact sales figures is in my previous posts. Not long after publishing an app to my name (and updating my public personal information), I was contacted by a couple of recruiting companies looking for mobile developers. iOS was driving my career forward before even selling many copies of my game. While these particular opportunities didn't flesh out, it was a sign to me that my resume was ready. So within a month of my game's launch I hit the job market with my resume.

I think that prior to launching a product I felt unworthy of participating more in the iOS community and that was a mistake. After launching, I took to Twitter, Cocos2d forums and iDevBlogADay and have made many friends and acquaintances since; I just wish I had started sooner. I realize now that its really important to share and talk with other developers about anything and everything. Twitter is like this incredible hodgepodge of iOS links to amazing things you NEED to know about that will save you time and keep you current. If you don't have a twitter account right now or aren't following developers, you have more important things to do than finish reading this blog entry.

Mission Accomplished

Within about a month's time of having applied to many job opportunities, I found one that seemed particularly right for me. I'm personally very proud to now have been working with Uproot Inc. in Toronto, Canada for about 3 months. We're a small team of 4 and growing, doing web and mobile development and I couldn't be happier to be a part of the team. Already the job has exposed me to new and exciting challenges in development. My past experiences with web and iOS prepared me well.

Cheers to iOS

So with that I will raise a glass to Apple and iOS for the knowledge and opportunity it has granted me. Cheers to iOS, the fire under my ass, and to the wonderful iOS Developers Community, especially the ones who share :D.

What's Next?

In an attempt not to let any upcoming posts fall through the cracks, I've preplanned several of my entries. Next week I'll be looking more deeply at my game Pixel Fighters. I also worked on a second project using the art from the game which I took as far as beta testing before putting on the shelf and coming back to Pixel Fighters. I'll talk more about specific lessons learned from the projects as well as how Pixel Fighters has been evolving since launch. So stay tuned for "How my first game has become my third" on August 2nd.