Printed from http://andreaprovaglio.com. All rights reserved.
| Track: | Mobile Programming |
| Platform: | iPhone |
| Days: | 4 |
| Code: | 501 |
| Author: | Andrea Cogliati |
An intermediate course aimed to understand the iPhone SDK and to learn how to develop applications for both the Apple App Store and for internal deployment.
iPhone was launched in 2007 and became an instant commercial success. Thanks to its user interface, multimedia capability and network connectivity, the iPhone is an excellent device for both the consumer and the business markets. It's also the first smartphone using a port of an operating system (namely, Mac OS X) found on a desktop. As a consequence, programming the iPhone is very similar to developing software for a Mac: the same language, Objective-C, the same programming environment, Xcode, and almost the same frameworks, Cocoa, are used to create software for it. An experienced Mac developer would find programming the iPhone pretty straightforward. On the other side, programmers coming from other platforms like Java, .NET, Windows Mobile or Symbian, will notice a few architectural differences.
This course is designed to teach the students, on top of the language syntax and libraries, the most relevant guidelines on what is considered today the proper way to write an iPhone application. We start by illustrating the iPhone Operating System and its architecture. We proceed with quickly reviewing a few Object-oriented programming (OOP) concepts that will be heavily used in the class: abstraction, objects, classes, methods, instances, message passing, inheritance, encapsulation, polymorphism and the Model-View-Controler (MVC) paradigm. We then start looking at the Cocoa frameworks and Objective-C language.
While this is not a full course on OOP, Design Patterns, Cocoa or Objective-C, we will cover enough information to allow the students to understand the iPhone development practices and to successfully complete the rest of the course.
The next step is studying the anatomy of an iPhone application and understanding how to build and install an application on the iPhone simulator and on a real device. We then proceed with exploring Xcode and Interface Builder – the free tools provided by Apple to develop software for Macs and iPhones. The UI Kit is the iPhone framework responsible for all user interface functions, including presenting views to the user and accepting user's inputs: learning its capabilities and limitations is essential to create functional and effective applications. We then deal with the memory management, the file system and the included SQLite databases. The last part of the course addresses advanced iPhone features like network connectivity, audio and video capabilities and social and navigational functions.
About 40% of the time is on guided exercises.
This course presents the official Apple iPhone SDK and related programming techniques; it doesn't teach or discuss unofficial or open source approaches requiring jailbreaking or similar hacks. Most of the code presented in the course can be used in the free iPhone simulator included in the official SDK; however, a few APIs (like the Accelerometer) require a real iPhone or iPod Touch. Moreover, a few issues (like limited connectivity and power management) cannot be effectively demonstrated using the simulator. Bringing your own iPhone/iPod Touch, along with the necessary connection cables, might improve your learning experience. Please note that Apple requires an official digital certificate to install an application to a physical device; please check the iPhone DevCenter to enroll into the iPhone Developer Program before attending this course.
To get the most out of this course, you should have a basic knowledge of the Object-Oriented Programming paradigm, of Model-View-Controller paradigm, of the C language syntax and an understanding of Integrated Development Environments (IDE).
For additional information, please contact us.