- Computers & Software»
- Computer Science & Programming
Steps to Developing an iPhone App
The process of creating i Phone apps follows a set path from market research to development and testing to deployment in the App Store. To better explain this process, this guide will you walk through the app development cycle and build an actual app based on the market research.
Other than market research and app development, iPhone apps for devices like the iPhone also require promotion and product marketing, both of which are outside the scope of this guide. However you can learn about promotion and product marketing by reading these guides.
Before launching ourselves on developing our million dollar best seller, we will need to do some market research to find a niche topic that has user potential and that is not being addressed with an app in the App Store.
For this guide and our experimental new app, I started by using keywords related to radio pharmaceuticals and searching for apps in the iTunes App Store using those keywords. I am using the following keywords:
In the iTunes app on Windows or Mac computers under the default Library, select the app node and you will see a listing of apps that are installed on your i Phone or i Pad. The following screenshot titled, "The App Library in iTunes" is from my Mac iTunes App Library. It displays the apps that are compliant with iPhone, iPad or iPod and which ones that are only for a specific device.
To search for apps by keywords, select the iTunes Store and then the App Store node once the iTunes Store is opened. See the adjacent screenshot. For the purposes of the demonstration, I will lookup apps that have "curie" or "becquerel" as one of its keywords that is either in the title of the app or somewhere on the publisher's page. Curie and becquerel are units of measure that are used in atomic energy or radio pharmaceuticals and it is used daily by people who not only work in this industry, but also in the medical and pharmaceutical industries like medical imaging that use this unit of measure in conjunction with isotopes, which are radioactive.
So I search using the "curie" and the "becquerel" keywords. Select to filter by apps, to see only the related apps. The search words have returned a few apps which are mostly educational or ebooks. The only app of interest to me is the iCurie app that calculates the half life of isotopes. My idea under investigation is to create an iPhone app that convert curies to other types of units of measure. It will be a little utility app that can be useful to professionals who work with I am in luck because other than the iCurie, nothing else seems to offer that kind of functionality.
Next I will lookup the word "curie" and "becquerel" in Google Keywords to see if there is any interest surrounding these terms. There are over 6 million searches a month related to curie and about 90,000 for becquerel. So from this I can deduce that there is some interest on using curies which can mean that there quite a few people, potential users, that are either searching for information on curies and isotopes and how to perform calculations.
Designing the App
Learning how to build and app is much easier if you already know about programming, especially C programming since Objective-C is a superset of the C language. In addition to Objective-C, a developer also need to know the Cocoa Touch Framework. Both are part of the iOS SDK. Most iOS apps like the iPhone implement the MVC design pattern but I will use to make the iPhone app, Curie Converter.
MVC means Model View Controller. The model describes the data type which represents the objects in an application. In my app, the model will describe the type of data and calculations the app will handle, the view is the UI or user interface and will be used to capture the input from the user and display the results of the calculations and finally the controller is the code that will perform the calculations and the results.
Design the UI
To design the UI, you can sketch it out on paper, or use a word processor, or some other software like Microsoft Word or Powerpoint to make a mock up of the different screens and navigation. Once the sketch is done, you can implement the design from the sketch. The following screenshot below is the design of the Curie Converter app in Xcode, which is an app to create iPhone apps. The second screenshot, also below, is the app running in the iOS Simulator. The background is a partial view of the radioactivity symbol. There is one field at the top to input a value to be converted. The picker selector (own as PickerView) has two columns that can be independently rotated to select the beginning value and the resulting value. Once the user selects both values and enters a value in the field, the resulting value will be diplayed in the "displayedValue" label, thus replacing the text "displayedValue" with the real value. The UI is not completely finished but I am showing it to give you an idea what the UI will look like.
Designing the iPhone Data Model
The data model or model as in a MVC design pattern has two definitions. On one side, the model can represent your objects or classes. On the other hand, the model is the type of storage you will use in the app. For the storage, which my app won't need, can be a database like SQLite, or an ORM (Object Relational Mapping) tool like Core Data or it can even be files. Using files is the best solution if you need to use iCloud to sync data between different iPhones or other iOS devices. You could also create an interface to a back end system via web services.
Building the Controller
The controller, which is usually a ViewController but can be others like a TableViewController if the Scene (one of the screens) contains an UITableView. In my app, the controller will receive the values from the UI or the user and perform the calculations based the entered value in the field and carousel (picker view) and will return the resulting value to the UI for display.The finished app has one field to allow a user to enter a value and a picker view to select a starting unit of measure and the desired resulting value.
Configuring the App
Now that the app is built, we will need to configure the different icons for the app. There are several icons that must be configured in the application before it can be accepted into the App Store.
The icons must be stored in the Resources group in the app project. Additionally the icons must be configured in the plist file (Property List) discussed in the next section.
The following table lists the required and recommended icons and their required filenames for an iPhone.
Image Size (px)
Ad hoc iTunes
App Store and Home Screen
App Store and Home screen for iPhone 4 high resolution.
Home screen for iPad compatibility
Spotlight and Settings
iPad compatibility Spotlight
Phone 4 high resolution Spotlight and Settings
Property List (plist)
Several configurations are possible depending on the intended use of the app, like if you need your app to use the camera or GPS. It is also in the property list file that we configure the icons for the app being developed.
The Property List file is an XML based file, see screenshot which includes the configured icons for my app.
The Orientation section in the Project Summary page allows you to define the orientation can support. For my app, I will support all orientations as in the following screenshot.
There are several types of testing that can done on an app depending on the complexity of the iPhone app. You can do Unit Testing using Unit Tests. These are specially formatted classes that can simulate an interaction with the model, the view controller as well as the view. You create these classes when you setup the project or you can add them later to the project using the Unit Test class.
Another type of testing that can be done is with the iOS Simulator. The running app mentioned above is an example of Simulator test. This type of test makes believe that the app is running on an actual device like iPhone and the developer can interact with the device like it was installed on an iOS device like an iPhone.
For larger apps that may have performance issues and that need to stressed tested, the developer can use the Instruments in Xcode. This apps can check the different aspects of the app and check its performance under simulated conditions.
However, I find the real test is when you deploy an app to the iPhone or iPad. Actually Apple recommends that iPhone apps be tested on iPad also in addition to iPhones for compatibility issues since someone with an iPad can purchase an iPhone app even-though it is designed for the iPhone. To test on a target device, you need to configure your device in iTuneConnect, which is a special portal on the Apple Developer web site. Once that is done, you will then need to configure the device in Xcode using the iOS Provisioning Profile before you can actually deploy the app to the device which is done through Xcode.
Finally, you also setup test users in the App Store who can actually download the app onto their devices for testing prior to submitted for submission into the App Store for sales or to be freely distributed.
Configure the app in iTunesConnect
Once all the testing is completed, you will need to prepare and configure your app in the App Store using the iOS Provisioning portal in iTunesConnect. In the iOS Provisioning portal you can create and configure your App ID (bundle), add devices and obtain the provisioning profiles that can be added to Xcode for your registered devices (you can have up to 100 devices).
You also can set and configure your tax, contracts and banking information which is required if you can submit your app to the App Store. You will also need to enroll into the iOS Developer program which $99 annually at the time of this writing.
You will also need the following information in addtition to the binary in order to properly configure and submit the app for review and hopefully acceptanc einto the App Store:
- App Name
- App Description
- Primary and Secondary Category
- App Rating
- SKU Number
- Application URL
- Support URL
- Support Email Address
- End User License Agreement
- Pricing, Available Date, Territories
- Large App Icon 1024 x 1024
Submission and Review
Once all the iTuneConnect configuration is completed and you have attached the binary of your app, you submit the app for review by Apple. The binary for the app is built in Xcode in your project. Once the binary is built and compressed into a zip file, you can attach it in your app profiles in iTunes Connect.