Do you have an idea for an app but lack the programming knowledge to begin building it? In this weekly blog series, Unleashing Your Inner App Developer, I will take you, the non-programmer, step by step through the process of creating apps for the iPhone, iPod Touch, and iPad. Join me on this adventure each week, and you will experience how fun turning your ideas into reality can be!
The day Steve Jobs passed away Oct. 5, 2011, my wife and I were packing for a trip to the Palo Alto area where I was to speak at the Silicon Valley Code Camp. We knew he was very ill, but were still surprised when my daughter opened our iMac to the now iconic picture of Steve Jobs across Apple's home page.
The next day, we decided to drive to his house in Palo Alto where others were gathering to pay respects, placing flowers and other mementos on the sidewalk around his house. I reflected on his tremendous contributions, making technology accessible to the masses with easy-to-use software, personal computers, digital music players, and phones that transformed mobile computing.
At that moment, I decided I'd try to do the same for building apps that Steve Jobs had done for so many other technologies; I determined to make creating apps for iOS devices accessible for anyone with basic technical skills and a desire to learn.
Fun in the Impossible
As Walt Disney once said, "It's kind of fun to do the impossible." I find this to be very true when it comes to creating apps. If you're not a programmer by trade, your biggest hurdle to overcome is thinking you can't do it. Once that obstacle is out of the way, you can begin to experience the fun creating what you once thought was impossible. It's absolutely exhilarating to see your own app running on an iOS device. I've experienced this personally and also vicariously, as I have watched non-programmers take what I have taught them and create apps of their own.
Keys to the Kingdom
A few key innovations in recent years have made it possible for you to unleash your inner app developer. The first and foremost is Apple's tool set, which is hands down the best in the industry (I speak from experience since I also create apps for Android and Microsoft devices). In the past few months, I have been speaking at a variety of Mac user groups around the United States, and I've found that attendees are amazed at how much you can do without writing even one line of code.
Apple's Xcode is the primary tool you use to create apps for iOS devices (as well as apps for the Mac). Since the introduction of storyboards in Xcode 4.2, it has become extremely easy to design your app's user interface. In fact, if you can create a Keynote slide presentation or format a word processing document, you can create the user interface of an iOS app using Xcode.
As you might imagine, the most difficult part of creating iOS apps is learning how to write code. The good news is that with each release of the iOS operating system and its corresponding version of Xcode, Apple makes it easier for you by requiring you to write less code to perform a particular task. For example, with the release of iOS 6 and Xcode version 4.5, you can now include Facebook and Twitter integration in your app with just a few lines of code.
Another key factor to easing the journey is taking the right mental approach. I find that even professional software developers often use an approach that makes writing code far too difficult. I teach new app developers to think at a higher level rather than get bogged down in low levels of detail, or what I like to call "the weeds." When designing an app, you are best served by creating objects in your app that mirror the real world. So, for example, if you are creating an airline travel app, you would create airline, airport, aircraft, and passenger objects that reflect the attributes and behavior of their real-world counterparts. We'll be getting into specific examples in later posts.
Stick With Me!
In the upcoming weeks and months, I will take you through the process of setting yourself and your Mac up for app development, learning the fundamentals of using Xcode, and beginning to think like an app developer. Stick with me, and I promise you'll have a lot of fun doing the impossible!