Your SlideShare is downloading. ×
0
iOS App Development                           Lecture 1 - IntroductionThursday 26 July 12
Acknowledgements                      • Slides based on the iOS App Development                        course at UMBC (htt...
Course Description                      •   This course provides a study of the design,                          developme...
Course Objectives                      •   Gain an understanding of the Objective-C language                      •   Beco...
Evaluation                      • Homework: 20%                      • Project: 30%Thursday 26 July 12
Homework                      1. Create “Your first iOS application” & demo                         to me: 2.5%            ...
Project                      • Theme: Mobile for African problems                      • Functional specification (What): 5...
Grading Criteria                      •   Correctness of App                      •   Appearance of App                   ...
iOS Developer University Program                      •   Apple has a free iOS University program that                    ...
When / Where did it all                        start?Thursday 26 July 12
iOS ArchitectureThursday 26 July 12
OS X Architecture           Picture from            WikipediaThursday 26 July 12
iOS         Core OS                                      Core OS       Power                      Cocoa Touch     OS X Ker...
iOS         Core Services                                      Core OS                      Cocoa Touch     Collections   ...
iOS         Media                                      Core OS      JPEG, PNG,                      Cocoa Touch     Core A...
iOS         Cocoa Touch                                      Core OS                      Cocoa Touch     Multi-Touch     ...
Model View Controller                                  Controller                           View                ModelThurs...
A different viewThursday 26 July 12
Development Stack — Tools                                Text                                            Images from Apple...
Development Stack — Frameworks                Development Stack — Frameworks    Foundation Address Book                Map...
Development Stack — Language &               Development Stack — Language & Runtime               Runtime                 ...
Hello World in                      Objective-C & XcodeThursday 26 July 12
Hello World        #import <Foundation/Foundation.h>        int main (int argc, const char * argv[]) {            NSAutore...
Import Statement                      #import <Foundation/Foundation.h>        • Exactly like a #include in C/C++, however...
main                      int main (int argc, const char * argv[]) {                          ....                        ...
Pools            NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];            ...            [pool drain];      ...
NSLog and @“strings”                            NSLog(@"Hello, World!");        • NSLog is a function that’s used for prin...
Upcoming SlideShare
Loading in...5
×

Ios part1

322

Published on

ios application developemnt

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
322
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Ios part1"

  1. 1. iOS App Development Lecture 1 - IntroductionThursday 26 July 12
  2. 2. Acknowledgements • Slides based on the iOS App Development course at UMBC (http:// cs491f10.wordpress.com/) and CS 193P at Stanford University (http:// www.stanford.edu/class/cs193p/cgi-bin/ drupal/)Thursday 26 July 12
  3. 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. 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. 5. Evaluation • Homework: 20% • Project: 30%Thursday 26 July 12
  6. 6. Homework 1. Create “Your first iOS application” & demo to me: 2.5% 2. Write ImageProcessing Application: 17.5%Thursday 26 July 12
  7. 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. 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. 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. 10. When / Where did it all start?Thursday 26 July 12
  11. 11. iOS ArchitectureThursday 26 July 12
  12. 12. OS X Architecture Picture from WikipediaThursday 26 July 12
  13. 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. 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. 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. 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. 17. Model View Controller Controller View ModelThursday 26 July 12
  18. 18. A different viewThursday 26 July 12
  19. 19. Development Stack — Tools Text Images from AppleThursday 26 July 12
  20. 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. 21. Development Stack — Language & Development Stack — Language & Runtime Runtime Objective-CThursday 26 July 12
  22. 22. Hello World in Objective-C & XcodeThursday 26 July 12
  23. 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. 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. 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. 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. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×