In the beginning, apples grew on trees. But the all powerful iOverlord, Steve “I-fired-you-yesterday” Jobs was not impressed, and so set forth to bring light to the four corners of the world. Thus, Apple Inc., the philosophy was born. Although Apple became recognizable for its many high quality products, great disappointment followed and a gastrointestinal jump-start was needed. This time putting “i” in front of a device was not going to be enough. So, the iNegmatic leader, Jobs, developed “the App” (short for application) while listening to his favorite song “money, that’s all I want”.
-The Gospel According to Timothy D. Cook
The inclusion of apps gave the iPhone something that was considered so hi-tech, people actually called it trans-tech (like trans-food but without the trans-fat.) Apps give iPhone users all over the world a more personal computing experience. And in commonality with the Buddhist thought, Steve Jobs, Apple Inc., and his workers are to be considered as ‘One’ entity, with a shared consciousness and complete devotion to the ‘Whole’, from which innovative products emerge.
Today, each iOS app is used with a near religious significance, with the user being immediately drenched in its techno-geek spunk as soon as the app is gently caressed on their cool iPhones. But gone are the days when people were forced to make apple-approved apps in dark and dank environments. Today, anybody who considers themselves as an ‘idea man’ with limited technical abilities can build an app and prove it to be practical, and here is how you can do it too. In fact, ideas are scrawled on napkins across the globe every day. But how do you build one? This guide is going to attempt to take you through the whole process of creating an iOS app.
What’s Your Angle?
First off, you need to have an angle. For instance, make a sketch of the app you have in mind. One way of doing this is by asking yourself the right questions, such as these:
- How big should the objects on screen be?
- What will be the primary actions within the app?
- What information will each screen represent?
- What will be the flow of the app?
- How will a user get from point A to point B?
- A finger is larger and less accurate than a mouse. This should drive you to make things easier for the user. Never add an excessive amount of controls on to a single screen area or too close to one another and make sure that the buttons can be easily selected.
- You should also be taking the time to consider how the app will acclimate to portrait and landscape views.
- Also, decide which mobile devices you want your app to support. Sure, you started off with an iPhone app, but what about the iPad, and the many flavors of Android, Windows, and Blackberry devices out there?
Making an outline is a great way of adding fresh and creative ideas to your app as you go along. But try not to stray too far from the original concept of the app. Also, create a thumbnail of how each screen will look like as the user goes from start to finish.
Note: There are also some good online tools that can help you transfer your sketched into a digital format.
Identify Your Strengths
If you have that ‘OMG, that’s a great idea’ moment, but your brain objects to Objective C, don’t kid yourself, you will need to hire someone with the necessary grey matter. But first, you will need to identify what work needs to be outsourced.
In most situations, hiring freelances would be your least expensive option. This will make your role as the project manager more prominent, so the team can then blame you if the app goes south.
Note: Always remember to make the freelancers who you hire sign a non-disclosure agreement, which will include, project details, what you expect and the terms of payment. Online services such as, Elance, oDesk, Guru and vWorker are all good places to start your search for qualified freelancers.
An alternate option would be to hire an app development agency that will be in charge of managing the entire project. In this scenario, your role would be limited to just the review and approval of the app. By using the sketching advice drawn up earlier, compose a specification document to describe what your app is going to do and for whom. Again, getting the facts straight is going to be important, so make sure that both you and the agency are on the same page when it comes to what it is you require, the desired delivery date, and don’t forget to include the estimate.
Note: Hiring an app development agency should only be considered if you have a large budget. It is important to realize that app design is usually broken down to four levels: information architecture, visual and interaction design. While finding one person who has all these skills is possible, all four of these distinct deliverables should be considered before you start hiring.
They say that ignorance is bliss, but if you are ignorant, you would ignore the bliss around you. Right? So, if you want to take a lick at it yourself, read this. Apple provides a number of tools which enable developers to build iOS apps. Downloading the SDK or software development kit from the Mac app store will give you access to three main tools for developing your app. The download, which only costs a few quid will give you access to Xcode, Interface Builder, Cocoa Frameworks and tools for testing the app as you go along with many others that will help you on your quest.
Xcode is an Integrated Development Environment or IDE, which is used by iOS and Mac developers to build apps. The best thing about Xcode is that it’s not only a code editor but also has a other useful goodies baked in, such as, static coed analysis, that sniffs out bugs in your code, auto-complete support and a variety of other debugging and performance enhancing tools. There is the option of using BBEdit and TextMate before using command line tools. It is quite easy to do all the development, including the final compilation easily by using Xcode.
When you open Xcode you will come to a screen which looks like this. Click the button that says “Create a new Xcode project”.
In the column on the left hand side, find the OS X section, click on Application and select Command Line Tool.
Click “Next” on the following screen. Fill in the fields
Product name, organization name (this can be left blank), company identifier, type (type in foundation), and tick mark the “Automatic Reference Counting” dialog box. And begin designing your app!
Interface Builder is an application which enables you to build an interface visually. You can do that by simply dragging the built-in tab bars, buttons, labels and sliders onto the app’s interface. You can then tweak the built-in objects by configuring the palettes and panels on the screen. The Interface Builder can also be used to connect actions and targets, for instance, what happens when a user handles a certain element in the interface.
In my particular workflow, I like to use the Interface Builder mostly because it allows me to work on a custom interface. For all those who are new iPhone development, using the Interface Developer is highly recommended. That being said, also try to learn the UIKit code that it generates while you are in the development process.
Frameworks are, by far, the most important piece of the puzzle, because without a framework you cannot easily create an app that will run on Mac iOS or OS X. Apple provides numerous frameworks which allow new app developers to encrypt important information, draw graphics on the screen, play audio and video, create user interfaces, take pictures, write networking code, display web pages and so on.
These rich set of commands allows the developer to easily design their app without having to reinvent the wheel all over again. And thanks to the Cocoa framework, even the most incredibly complex commands are accomplished with a few lines of code. Making the entire structural development of the app, a one liner!
Testing Your App
- Choose ‘Simulator’ and ‘Debug’ from the drop down list. Then press “Build and Run” to start the test.
- Make sure your iPhone, iPad or iPod touch is plugged into a USB port while it’s being done.
- If your app crashed, you need to start figuring out what happened and why. To do that you will first need to Google the error message to see what it means, and check memory usage at the same time. If you’re not a seasoned developer (and you probably aren’t), debugging a problem can get a bit cryptic, but don’t give up, ask for help and remember, the more apps you build, the better you will get at it.
Using Zero-Code Online iPhone App Builders
Since money doesn’t grow on trees, here are a couple of other free online tools to consider;
(This image is a screenshot)
AppMakr is considered the mother of all DIY app building. You can easily build a full-featured app and also include multimedia newsfeeds, push notifications, social sharing features, and download analysis features. And to top it all off, the app is free, need I say anything else?
(This image is a screenshot)
The no-coding necessary policy of GameSalad has made it one of the most popular app development platforms for those who like to play games on their Smartphones, but don’t have a clue how to build them. The creator is free, the iOS viewer is free, iOS publishing is free. What? You want to go pro? That will be 299/year!
So, Where Do You Begin? (Not Developing Your App, Promoting it)
If you want to keep your newly designed app from plummeting into the app store’s black hole, you’ll need to have a marketing and monetization plan. Getting seen is a lot different today than what it was a few years ago, when one could simply launch an app without even trying to promote it and it would still have a fair shot of getting noticed by the masses. Today, dozens of new apps are being launched everyday, which makes the competition fierce. This highly competitive environment of the app store means that ideas must be refined in order to achieve maximum success.
Get Your Idea Evaluated
Evaluating anything in which you are not an expert is absurd. So, to make sure your app doesn’t fall through the cracks, try to get the advice of a person who is an expert in a similar niche to the idea behind your iPhone app. An expert will be able to shed some light on how you can improve the app and even make it better, because they have knowledge of the industry.
So, who are these experts? You ask, well, these human beings can be found in three types:
App Marketing Professionals
An iPhone app marketing professional has specialized knowledge of how different apps perform on the app store. Apart from that, they can also give you some insider tips on effective promotional techniques which you can use to promote your app.
iPhone App Developers
Many indie developers are more than happy to help out others who are just starting up. If you humbly approach these folks for advice, they would be happy to take a look at your app.
Do you know anybody in your community who has created an app of their own? If they’re hot, take them out for lunch, and find out how you can make your app better. Their feedback will be valuable, and even if it’s not, atleast you’ll have something nice to look at. You can also check out great courses like this one.
Open an iOS Developer Account
The only reason you won’t want to be doing this is if you’re okay with the app being published under someone else’s (gasp!) name, company, or brand. Besides that, you will need the Apple Developer license if you want to test your app on an iPhone, iPad or iPod before distributing it to the App Store. So, you need to sign up for a developer account.
Here are a few tutorials designed to get you coding:
- Beginners Guide iOS App Creation
- An Absolute Beginner’s Guide to iPhone Development
- C Programming: iOS Development Starts Here!
- 8 Great Resources on How to Make Your First iPhone App
Keep in mind that learning to program is not a “quick fix” solution. You will have to dedicate yourself to the process to be successful.
A Few More Tips
Here are a few additional resources to help you get started building your mobile application:
Learn to Develop an iPhone App in 4 Weeks
Tips for Hiring a Designer or Developer:
How to Hire a Designer or Developer
A lack of programming knowledge can make creating mobile applications seem complex and even a bit overwhelming, but it doesn’t have to be.
Have you used any of the tools we discussed or found another tool that helps make mobile application dreams become a reality? We would love to hear your thoughts.