Your SlideShare is downloading. ×
Ios part1
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Ios part1


Published on

ios application developemnt

ios application developemnt

Published in: Technology

  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. iOS App Development Lecture 1 - IntroductionThursday 26 July 12
  • 2. Acknowledgements • Slides based on the iOS App Development course at UMBC (http:// and CS 193P at Stanford University (http:// drupal/)Thursday 26 July 12
  • 3. Course Description • This course provides a study of the design, development and publication of object-oriented applications for iOS platforms (e.g. iPhone, iPod touch & iPad) using the Apple SDK. Students will learn to utilise Objective-C and the various SDK frameworks to build iPhone & iPod touch applications under Mac OS X. • Prerequisites: RW 214 and RW 344 • Recommended: Competency in C or C++ (pointers, memory management, etc.)Thursday 26 July 12
  • 4. Course Objectives • Gain an understanding of the Objective-C language • Become familiar with the Apple development tools • Understand and apply design patterns in order to build mobile applications • Understand and utilise hardware emerging in today’s mobile devices • Be able to utilise core frameworks of iOSThursday 26 July 12
  • 5. Evaluation • Homework: 20% • Project: 30%Thursday 26 July 12
  • 6. Homework 1. Create “Your first iOS application” & demo to me: 2.5% 2. Write ImageProcessing Application: 17.5%Thursday 26 July 12
  • 7. Project • Theme: Mobile for African problems • Functional specification (What): 5% • Compare to existing products (Why) • Task list with milestones and deadlines, mockup: 5% • Final project and demo: 20%Thursday 26 July 12
  • 8. Grading Criteria • Correctness of App • Appearance of App • Adherence to Objective-C and iOS coding conventions • Neatly formatted and indented code • Well documented header files • Absence of significant performance issues • Absence of memory leaksThursday 26 July 12
  • 9. iOS Developer University Program • Apple has a free iOS University program that provides more benefits than the free registration, including: • Free on-device development • Developer forum access • We will be participating in this program this semester, so if you have an iPhone, iPod touch or iPad, you’ll be able to install and run your apps on- deviceThursday 26 July 12
  • 10. When / Where did it all start?Thursday 26 July 12
  • 11. iOS ArchitectureThursday 26 July 12
  • 12. OS X Architecture Picture from WikipediaThursday 26 July 12
  • 13. iOS Core OS Core OS Power Cocoa Touch OS X Kernel Management OSX Kernel Power Management Keychain Media Mach 3.0 Mach 3.0 Keychain Access Access BSD BSD Certificates Certificates Core Services Sockets Sockets File System File System Core OS Security Bonjour Security BonjourThursday 26 July 12
  • 14. iOS Core Services Core OS Cocoa Touch Collections Core Location OSX Kernel Power Management Media Address Book Net Services Mach 3.0 Keychain Access BSD Networking Certificates Threading Core Services Sockets File Access File System Preferences Core OS Security Bonjour SQLite URL UtilitiesThursday 26 July 12
  • 15. iOS Media Core OS JPEG, PNG, Cocoa Touch Core Audio TIFF OSX Kernel Power Management Media OpenAL PDF Mach 3.0 Keychain Access BSD Mixing Quartz (2D) Audio Certificates Core Services Sockets Audio Core System File Recording Animation Core OS Security Bonjour Video OpenGL ES PlaybackThursday 26 July 12
  • 16. iOS Cocoa Touch Core OS Cocoa Touch Multi-Touch Alerts OSX Kernel Power Management Media Core Motion Web View Mach 3.0 Keychain Access View BSD Hierarchy Certificates Map Kit Core Services Sockets Localisation File System Image Picker Core OS Security Bonjour Controls CameraThursday 26 July 12
  • 17. Model View Controller Controller View ModelThursday 26 July 12
  • 18. A different viewThursday 26 July 12
  • 19. Development Stack — Tools Text Images from AppleThursday 26 July 12
  • 20. Development Stack — Frameworks Development Stack — Frameworks Foundation Address Book Map Kit Core Data UI Kit Core Animation OpenGL Many Others...Thursday 26 July 12
  • 21. Development Stack — Language & Development Stack — Language & Runtime Runtime Objective-CThursday 26 July 12
  • 22. Hello World in Objective-C & XcodeThursday 26 July 12
  • 23. Hello World #import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; // insert code here... NSLog(@"Hello, World!"); ! [pool drain]; return 0; }Thursday 26 July 12
  • 24. Import Statement #import <Foundation/Foundation.h> • Exactly like a #include in C/C++, however it ensures that the header is only ever included once • Foundation/Foundation.h includes many core functions, constants, and objectsThursday 26 July 12
  • 25. main int main (int argc, const char * argv[]) { .... return 0; } • Exactly like a main section in C or C++ • argc contains the number of command line arguments • argv is an array of char pointers (C strings) • main returns a value indicating success or failure • By convention zero is success, non-zero is failureThursday 26 July 12
  • 26. Pools NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; ... [pool drain]; • These lines allocate an NSAutoreleasePool that is used for memory management • We’ll cover memory management in some detail in the coming classes, but for now we’ll just be sure to include this code and put our program between these 2 statementsThursday 26 July 12
  • 27. NSLog and @“strings” NSLog(@"Hello, World!"); • NSLog is a function that’s used for printing a string to the console (with some other logging information) • Note the goofy @ symbol out in front of the double quoted string • The @ symbol is used to distinguish the string as an Objective-C string (as opposed to a C string) • NSLog behaves much like C’s printf function in that it can take formatters using % notation and variable number of argumentsThursday 26 July 12