This document provides an overview of iPhone development for absolute beginners. It discusses the necessary hardware (an Intel Mac running Leopard or Snow Leopard and an iPhone/iPod Touch) and software (Xcode, the iPhone SDK, and Objective-C). It also covers registering for the iPhone Developer Program, testing apps on devices, submitting apps to the App Store, and tips for waiting on Apple's approval process. The document aims to give beginners everything they need to get started with iPhone development.
3. Technology Unconference
USF College of Business
September 26th - Dev Day
September 27th - Media Day
http://barcamptampabay.com
4. • Intro to the Intro
• What you need: Hardware
• What you need: Software
• What you need: Wetware
• Code!
• Submit
5. All about me
• Ruby, C#, Erlang
• iPhone beginning 3/2009
• One app in store (SuccessIts)
• One submitted (Bookmark,
bookmarkapp.com)
• Several in works
6. You don’t have to
be a fanboy
• Accelerometer, camera, video,
magnetometer, iPod, touch, OpenGL
• Over 37M units sold (4/2009)
• Over 1.5B app downloads
• $2.4B a year in sales
8. Cons
• All Apple all the time
• Their hardware
• They approve / reject apps
• No alternative app store
• You can use any language as long as it’s
Objective-C
11. XCode et al.
• XCode 3.x and Instruments on install disk
under “Optional Installs”
• Download iPhone SDK, simulator from
Apple (after joining dev program)
• All free
12. Registered iPhone
Developer Program
http://developer.apple.com/iphone/
Free Test using the simulator, no sales
Test on devices, unlimited sales in
Standard ($99/yr) App Store
Unlimited in-house distribution, no
Enterprise ($299/yr) App Store sales
15. • OO, strict superset of C, inspired by
Smalltalk messaging
• Any valid C or C++ code works
• You handle memory management
• [object retain];
• [object release];
16. Messaging
• Objects are passed messages with
descriptive arguments
coyote.hunt(roadRunner,rocketSkates,true);
17. Resources
• Apple’s Object-Oriented Programming with
Objective-C http://bit.ly/13QlgA
• Peepcode screencast series: Objective-C for
Rubyists
• Programming in Objective-C 2.0 by Stephen
G. Kochan
18. Cocoa Touch
• Desktop Cocoa adapted for the iPhone
• Frameworks:
• UIKit (touch, windowing, accelerometer)
• CoreGraphics (Quartz, PDF, animation)
• CoreLocation (GPS)
• MediaPlayer (iPod)
• Many more
19. Resources
• Pragmatic Programmer: iPhone SDK
Development by Bill Dudney
• iPhone Developer’s Cookbook by Erica Sadun
• Interwebs: iphonedevsdk.com, Apple
forums, Google
22. One Window, many Views
UIButton
UIImageView
UIProgressView
UILabel
23. .nib or .xib files
• Normally both called “nibs”
• “Freeze-dried” objects, interface elements,
and relationsips
• Normally single .xib launched at app start
24. IBOutlet & IBAction
• IBOutlets allow getting and setting
properties on objects in IB
• IBActions allow objects to receive events
like touches or value changes
25. Test on Devices
• Simulator != iPhone
• Get Provisioning Profiles and Development
Certificates on iPhone Dev Portal
• Make life easier with wildcard naming:
com.barryezell.*
26.
27. Device Testing
• Configure app for device testing
• Change Active SDK to “Device”
• Set Signing Identity under Project > Edit
Project Settings
• Set your App ID in info.plist file
28. Submit to Apple
• Set Release configuration
• Set App Store Signing Identity
• Add artwork (57x57, 512x512 icons)
• Compile and zip with 57x57 icon