andreaprovaglio.com

iPhone Programming

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.

Description

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.

Contents

  • iPhone OS and architecture
  • Outline of Object-oriented programming concepts, Cocoa and Objective-C
  • Anatomy of an iPhone application
  • XCode and Interface Builder
  • UI Kit: presenting data to the user and accepting user input
  • iPhone Memory Management, File System and Data Persistence
  • Network connectivity
  • Audio and video capabilities
  • Social and navigational features
  • iPhone programming best practices

Skills you'll learn

  • iPhone as a connected, multi-media enhanced, mobile platform
  • Programming with Cocoa and Objective-C language
  • Dealing with a resource limited platform
  • Developing effective and efficient mobile applications
  • Deploy applications through Apple App Store

Notes

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.

Get Connected!
Latest Updates
Speaking at Agile Eastern Europe 2010
I'll be giving my "Beyond Agile" presentation at AgileEE 2010 on Oct. 9th 2010 in Kyiv, Ukraine.
Speaking at WebExpo 2010
I'll be giving my "Beyond Agile" presentation at WebExpo 2010 on Sept. 25th 2010 in Prague, Czech Republic.
Speaking at DevCon 2010
I'll be giving my "Beyond Agile" presentation at DevCon 2010 on May 18th 2010 in Milan, Italy.
Speaking at GeeCON 2010
I'll be giving my "Beyond Agile" presentation at GeeCON on May 13-14 2010 in Poznan, Poland.