The iOS App Development Process Demystified
Smartphones and Mobile Applications have revolutionized the way in which we consume information from across the internet. Today, apps are transitioning towards becoming more of a utility that lets you do anything from managing your finances to booking your travel tickets and even ordering food online. They are easy to use, quick and let their users (and the developers) tap into the full potential of a smartphone.
To get a fair idea of the massive popularity that apps enjoy in this time and age, consider this: the most popular digital distribution platform in the world, Apple’s App Store has over 1.5 million unique apps, with a combined download figure of a whopping 100 billion apps till date! By the time you read this sentence, about 1000 apps have already been downloaded and installed on a similar number of iPhones. And the numbers are on an exponential rise.
That’s a HUGE market! And an extremely lucrative one, at that.
But even with of all its ease of access and sheer user friendliness, designing, developing and publishing an app is an awfully arduous process. From development to actually getting your app out on the App Store, the road that an app must traverse is lengthy and is by no means, a bed of roses.
Concept Design & Wireframing
The process kick starts with concept design. You have a killer idea that you think works great as an app; so you hire a team of developers and designers to make things happen for you. Once you’ve laid out all your ideas and plans on the table, it’s time for the app development team to take over.
What is wireframing? How does it apply to iOS app development?
A wireframe is an image or set of images which displays the functional elements of an app along with all its screens, used for planning an app’s structure and functionality.
Once you decide on all the possible screens to be developed for your app, your developer freezes them and proceeds to wireframing. Keep in mind that once the screens are frozen, they are NOT liable to change; you simply cannot add in or subtract, without having to repeat the entire process all over again.
Along with wireframing, this is also where you discuss the workflow with your developer. Workflow is the complete functionality of your app, and how the various screens interact with each other, broken down into a set of fixed steps. Any particular functionality that you’d want your app to have SHOULD be mentioned in here.
Native apps for iOS are developed using the iOS Software Development Kit or the iOS SDK. Just like the Mac, iOS SDK is based on Xcode IDE and is programmed using Apple’s proprietary coding language called Swift.
Why is Mac OS necessary to develop apps for iOS when Swift is an open source language?
Swift, being open source, is a program that can be run on any operating system. However the IDE available i.e. Xcode is only supported on Mac OS. Swift can be successfully employed to write basic apps that can be developed and tested on any operating system; but for the complete app development, Mac OS is absolutely necessary.
That and iTunes Connect (Apple’s platform for app creation) works only with Xcode.
What factors can affect the development process?
A number of things come into play that can drastically influence the time and the effort required to develop a full fledged app.
- Animations and graphic intensive resources: An app that relies heavily on visual elements is more complex to code as compared to an app that just needs to display data as text or rich media.
- Communication between different screens: All of the screens that you choose to have in your app need to be in perfect sync with each other to ensure smooth transitions and cohesive functionality. The more the number of complex screens the most information they share between themselves to function.
- Resources and the various iOS SDK APIs that need to be integrated into the app. e.g. push notification API, photos API, core data etc. (hardware)(gallery)
- Memory and Performance optimization: Ever noticed how an iPhone beats most other phones in terms of performance and RAM usage even with half the technical specifications? That’s mainly because each and every app on the app store is optimized in terms of performance and to use minimal memory while it’s functioning. This is not optional, Apple has been known to refrain from publishing apps that consume too much memory or lag in terms of performance.
- Handling different state transitions of the app, like for example when the app is Active, or running in the Background, or when it’s in the Sleep mode.
- Number of devices the app needs to be compatible with.
- Modes in the app (Landscape/portrait/both).
- Making the app compatible with Apple’s guideline.
- Cache that the app keeps.
All said and done, how long does the actual development process take?
Again, that would depend on the complexity and the scope of the app, but the development time can be broken down into the time taken to develop individual screens (logic to display).
How much time does it take to develop a single screen?
That would depend on various factors. Things like number of components, the types of components like the tabs, image views, map views and the integration complexity of all these components need to be considered. On an average, it can take up to 3 to 4 days to develop a single screen for a moderately complex app.
Creatives need to be created separately and integrated within the app.
Testing and Publishing
Having an iOS app developed and ready at hand is a job half done. The real task is getting it published on the App Store. Apple is infamous for its stringent App Review Guidelines and a high app rejection rate. The reasons are mostly one and the same: The app is either buggy or doesn’t do what it’s supposed to.
Before an app is submitted to Apple for review, it must be thoroughly tested on all the target devices. We at WisdmLabs test an app for the 5 most recent iOS mobile devices: iPhone 5, iPhone 5s, iPhone 6, iPhone 6s, iPhone 6+ and the iPhone 6s+.
Will this also mean the app is compatible with iPads?
Nope. For iPad compatibility, you always need extra coding to account for the changing screen sizes and other variations.
How fast can an app be published after it is developed?
It takes around 10-15 days (minimum) to get your app published on the store.
Is Unit Testing a necessity?
A test driven development is the recommended approach, but you should be warned that it can considerably increase the development effort. Also, for test driven development, the application should be architected in a specific format.
Unit Testing is such that for every line of code written in the app, you add in another line that tests the code as it’s executed. That’s almost double the development effort.
Beta testing is also important and can be done via Testflight.
What is the review process like for publishing an app on the App Store?
Once you submit your app to Apple, it’ll be reviewed based on content, design, performance and technical details. Here’s a link to Apple’s Review Guidelines page for a detailed insight into the various norms that must be followed for your app to be accepted by Apple. Apple also has a list of the common reasons apps get rejected here.
You would need to submit the following details for a successful review by Apple:
- Website URL
- Legal name of company
- App store description
What is the typical time period for the review process?
It takes a minimum of 2 working weeks to get a reply from Apple.
Well, if you’re looking to build an app for your business, be ready for the long haul. Understand the process. And in case of any doubts, get in touch.