Apple iOS, one of the most popular mobile application platforms today, offers the ability for developers to create different kinds of applications on the platform. In this module, we introduce the necessary skills and technologies required to develop for iOS-based devices (which includes the Apple iPhone, iPad and iPod Touch). The module covers the development environment and tools (XCode), the programming language (Objective-C), the platform-specific APIs of the iOS, as well as other things to consider with regards to iOS development (application signing, the Apple developer program, App Store distribution). At the end of the module, the participants are expected to have an understanding of how iOS applications are developed, as well as the ability to create applications using the tools and technologies involved.
Introduction to the iOS platform (history, programming language / Objective-C, iOS devices and ecosystem, operating system architecture, application architecture, APIs, security and permissions, application distribution methods)
Administrative matters of iOS application development (joining the Apple developer program, signing certificates, device profiles, limitations and restrictions)
Development tools (Xcode, iOS SDKs); installation, configuration and usage of the tools; different versions of the tools; testing in the simulator and on an actual device; differences between the simulator and device; testing and debugging applications
The Objective-C programming language (syntax, constructs, control structures, object oriented programming, delegates, classes, methods and messaging) [Note: the language is introduced strictly for the purpose of being able to practically use the language to access the iOS API and to make iOS applications; full and complete mastery of all aspects of the language is not the objective in this module]
Memory management in Objective-C (manual and automatic / ARC)
Creating a new iOS application project; starting a new application from scratch
Key concepts of iOS applications; application structure and architecture
Commonly used APIs: Graphical user interface (GUI) components, networking APIs, audio, animations, camera, hardware sensors, preferences, SQL database)
Creating graphical user interfaces on iOS; creating custom views; handling storyboards
Differences between different versions of iOS and devices (eg. iPhone vs. iPad), and how to manage the differences; best practices for application design and implementation; handling the different screen sizes
Deployment, release and distribution of applications (App Store distribution)
All Emerge trainings can be conducted in different locations globally, in customer offices, shared facilities, Emerge-provided training centers, online or through other means, depending on the requirements of the training participants.