The year is drawing to a close, and it has been another big one for app developers working on the iOS platform. In 2014, developers earned more than $10 billion from the applications they made, with New Year’s Day witnessing record-breaking downloads from the App Store. This year’s figures are expected to be a couple of notches higher – and the festive period promises to be more profitable for app-makers than ever before. It’s a good time to get into the domain of iPhone app development, and the following tips should provide you a proper starting point:
- Get Xcode. Learn Swift – Xcode 7.2 is out in the wild, and you can download it from the ‘Dock’ of the ‘App Store’ in your Mac system (using a version earlier than Xcode 7 won’t be a good idea, for potential compatibility issues). Once Xcode is displayed right on top of the search results, click on Get → Install App. The IDE will be downloaded in the ‘Applications’ folder. You should also have a thorough knowledge of working with Swift 2.0. That will be the language you will be mostly making apps with.
- Decide on the type of application – Writing lines of code just for the heck of it does not make much sense (unless you are working on practice/dummy projects). Before getting down to the actual development, take a call on the precise nature of your app, its USP, its target audience, and the way in which you plan to market it. Avoid starting off with an iPhone application that is too niche – or, on the other end of the spectrum – a clone of an existing, popular app. Prepare a flowchart and follow it carefully.
- Start with a new project – Okay, done with the planning? Now, let’s kickstart the coding process. iOS app developers have to click on ‘Create A New Xcode Project’ from the welcome screen of the downloaded Xcode 7/7.2 IDE. Select a template from the dialog box that pops up. Choose ‘Application’ and ‘Single View Application’ from the ‘iOS’ side and the main area of the dialog box respectively. When done, click on ‘Next’.
- Use the available resources – For iPhone app development, the online support community is pretty much extensive. Sources like Raywenderlich and Github (this one is particularly good for teaming up with other developers on a project) offer valuable help, particularly for beginners. If you are planning to make a game, you will need to learn your way around Sprite Builder (to create game characters) as well as refer to the Game Center for Developers that Apple provides. To get yourself out of coding problems and other related issues, having an account in Game Development Stack Exchange is also advisable. You can post your questions there, get prompt solutions, and help others along as well.
- Fill in the project details – Once you have created a new Xcode project, you will be prompted to fill in certain details and options for your project. The name of your app has to go in the ‘Product Name’ box, while in the space for ‘Organization Name’ – simply put in your own name OR the name of your mobile app company OR simply keep it blank. Choose ‘Universal’ for the ‘Devices’ field, and ‘Swift’ beside ‘Language’ (select Objective-C in case you are using it). Check the ‘Include Unit Tests’ option and leave the other two (‘Include UI Tests’ and ‘Use Core Data’) unchecked. The ‘Bundle Identifier’ field will be pre-filled.
- Storyboarding – For most iPhone app developers, storyboards are still the preferred way to create the interfaces of new applications. One app screen and one View Controller (we will explain them in the next point) are present in every ‘Scene’ of the storyboard. The overall modal properties and in-app navigations are determined by the way storyboards are set up. For creating prototypes of your application too, storyboards come in handy (with ‘UITableViewCell’). What’s more – if you are making an app for both iPhone and iPad (remember how we selected ‘General’ in the Xcode dialog box earlier?), storyboards does away with file-naming problems and offers different views.
- A bit about View Controllers – When you are coding for an iOS app, ‘View Controller’ instances will be auto-generated by the storyboard. The instance serves as a subclass of the controller, with the specific behaviour/features of an app screen determined by the properties specified in the ‘ViewController.swift’ file. To put it more simply, the interaction between the data model of an app and the screen views (which show the implemented data) are managed by View Controllers. There is a single ‘content view’ in one View Controller, with an array of subclasses. The objects are of the UIViewController type. While working with more than one ‘scene’, you’ll need to use the ‘Identity Inspector’ as well.
- Define Actions for your app – Newbies in the field of iOS app development have to remember one thing at all times – apps are driven by system events, which are triggered by user-defined ‘Actions’. Let’s define some basic actions for your app at this point. In the default UI, create a SetDefaultTextLabel button, select it from the storyboard, and drag it to the ‘code editor’ area. Following this, a dialog box would appear. Select ‘Action’ on that, and choose ‘UIButton’ for ‘Type’ (the ‘Name’ has to be ‘SetDefaultTextLabel’). Once you click on ‘Connect’, the required code will be added by the IDE to viewcontroller.swift.
- Create engaging assets for games – This one is vital for iOS game developers. The concept of your game might be great – but if the app in its final form is not engaging enough, it won’t find any takers. From sounds and logos, to icons, buttons and the game characters – there are a lot of ‘Assets’ to make your game interesting, and adding a personal touch to it. Depending on the nature of the gaming app you are creating, you might also need to use sound assets.
- Know all that there is to know about Swift – It is not a replacement of Objective-C, but Swift is fast emerging as the go-to language for making iPhone apps. It is absolutely imperative that you learn the language thoroughly, before getting down to the coding part. Optionals, Variables and Constants, and Arrays are some of the basic things about Swift that you need to get a hang of. Knowing how to implement ‘Methods’ and ‘Functions’ is vital too. ‘Loops’ (while, for-in) and ‘Conditional Statements’ (switch, if) are the two Control Flow statements used in Swift programming – learn how and when to use them both.
- Manage in-app navigation – Doing this properly can go a long way in bolstering the user-friendliness of your application. For the ‘Scenes’ in the storyboard, a Navigation Bar has to be configured (use the Object Library and the Attributes Inspector for this). Create a ‘Segue’ (the transition from one Scene to the next) to lay out the forward navigation of your iPhone app. Developers monitor both backward and forward movements with the help of ‘Navigation Controllers’. Each of these contain a set of ‘View Controllers’ (with the entire set being called the ‘Navigation Stack’). Adding a navigation controller is easy – all that you have to do is go to the table view controller, and click Editor → Embed In → Navigation Controller.
- Know all about the MVC hierarchy – You have already used the Model-View-Controller (MVC) design pattern in the above steps. However, it won’t be out of order to understand this process in a more in-depth manner here. All the data of the app you are making is stored in the ‘Model’, which also validates and sorts information. ‘UIView’ and/or similar such classes are used in ‘View’, to create the UI of the app. The Interface Builder helps in sketching out the layouts as well. Finally, the ‘Controller’ is the component that connects the ‘View’ and the ‘Model’.
- Test your app on device simulators – Presence of bugs is one of the biggest reasons for an app to get rejected at the Apple App Store. That, in turn, makes thorough testing of new iPhone apps critical. Developers can access and use the simulator app that is available within Xcode, to check out the software they have created on different virtual devices. Select the ‘iPhone 6 + Apple Watch 38 mm’ option to start off the testing (provided that you want your app to be usable on the smartwatch as well). WatchKit app developers have to run their applications on two target simulators simultaneously – for the iOS device and for Watch respectively.
- Create a preview video – Many iOS app developers have the opportunity (which generally remains unutilized) of adding a preview video for their applications. Having a detailed preview video is a great way to attract and engage users at the App Store – and increasing the potential number of downloads. Use QuickTime Player to create the video, add audio effects, and include a couple of screenshots as well (in addition to the static screenshots). A separate ‘app footage’ section can also be present. Make sure that the sound quality in the voiceovers is of high quality.
- Monetize your app – If your app’s a good one, it can generate significant revenues. You need to implement a proper app monetization strategy for that. Apple offers the iAd services as well as the in-app purchase options to monetize free apps. Prior to the final app distribution, check whether all the devices your app is compatible with is clearly stated. Ensure that all necessary launch images and icons are present as well. Finally, create a new app record in your iTunes Connect account, provide all the requisite information, and then upload your app (use Application Loader or Xcode for that). The average review time at the iOS app store is 5 days (the Mac App Store takes slightly longer).
New APIs like Metal (which arrived with iOS 8) have made the process of iOS app development more streamlined and powerful than ever – with its OpenCL/OpenGL-like capabilities. Be prepared for initial hiccups – even the biggest of mobile app development agencies have failed projects. Learn the basics well, make sure that initial mistakes are not repeated – and you should be on your way towards becoming a successful iOS developer.