Ios part1
Upcoming SlideShare
Loading in...5
×
 

Ios part1

on

  • 411 views

ios application developemnt

ios application developemnt

Statistics

Views

Total Views
411
Views on SlideShare
411
Embed Views
0

Actions

Likes
0
Downloads
10
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Ios part1 Ios part1 Presentation Transcript

  • iOS App Development Lecture 1 - IntroductionThursday 26 July 12
  • 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
  • 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
  • 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
  • Evaluation • Homework: 20% • Project: 30%Thursday 26 July 12
  • Homework 1. Create “Your first iOS application” & demo to me: 2.5% 2. Write ImageProcessing Application: 17.5%Thursday 26 July 12
  • 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
  • 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
  • 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
  • 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 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
  • 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
  • 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
  • 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
  • Model View Controller Controller View ModelThursday 26 July 12
  • A different viewThursday 26 July 12
  • Development Stack — Tools Text Images from AppleThursday 26 July 12
  • Development Stack — Frameworks Development Stack — Frameworks Foundation Address Book Map Kit Core Data UI Kit Core Animation OpenGL Many Others...Thursday 26 July 12
  • Development Stack — Language & Development Stack — Language & Runtime Runtime Objective-CThursday 26 July 12
  • Hello World in Objective-C & XcodeThursday 26 July 12
  • 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
  • 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
  • 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
  • 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
  • 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