1. iOS Development
Md. Shakil Ahmed
Software Engineer
Astha it research & consultancy ltd.
Dhaka, Bangladesh
16th October 2011
2. Introduction
Topic Focus:
- What is iOS & iOS Development?
- iOS Dvelopment tools
- Creating a new iOS application.
- Getting Familiar with Xcode and iOS SDK
- Delegate
- Objective C
- Memory Management
- Crash Reports
- iPhone frameworks
3. What is iOS & iOS Development?
• iOS stands for iPhone Operating System
• iOS made for iPhone, iPod Touch & iPad
• iOS development is developing applications
for iOS Devices.
4. iOS Application
There is three ways to do mobile applications
• Mobile Web Interface
• Develop by Flash
• Develop by the native platform
5. Mobile Web Applications
• This application is mostly connected, so
most of the time user can’t handle it
without internet or cached history
• Javascript provides reach function to
access some hardware like GPS and other
devices specific hardware
• Developer doesn’t have much authority
over the device, tied by the browser.
6. Flash
• Can be used if the application is all about
interface
• currently flash can be used to act like real
application, it has access to camera, GPS...
Etc
• Performance in not good like the native
platform.
7. Native Applications
• You can do what ever you want to do, except
what the framework doesn’t allow you to do.
13. Create New Application
1. Open Xcode.
2. Select File→New Project.
3. In the dialog that opens, select iPhone OS, then
View-Based Application and click Choose.
4. Name the project “HelloWorld” and click Save.
5. At this point, you can build and run (click the
Build and Go icon in the toolbar). The HelloWorld
application shows only a blank gray screen when
run in the Simulator.
19. nib---file?
• Interface Builder is used for creating Uis
• The interface is stored in a file .n/xib
– .nib = Next Interface Builder
– .xib = new version (Interface Builder 3) of
nib
• The xib file is xml!
24. Design Pattern: Delegate
• Xcode project template has provided
UIApplicaIonDelegate for you
• Can implement:
- applicationDidFinishLaunching
- applicationWillTerminate
– applicationDidReceiveMemoryWarning
• One object sends periodically messages to
another object specified as its delegate
31. Objective C
• You can consider it Extension for C language
• ObjC add more dynamicity to C Language
• Single inheritance from super class and
protocols is used as interfaces
• Totally new syntax but still can use C with it.
32. Objective C
New concepts
– Class definition
– Protocol implementation
– Class messages
– Many more …
33. Classes and Objects
• Classes declare the state and behavior
• State (class data) is instance variables
• Behavior is methods
34. Class and instance methods
• Instances responds to “Instance methods”
1. -(id)init;
2. -(char*)getName;
• Class responds to “Static methods”
1. +(id)alloc;
2. +(char*)getClassName;
35. Message syntax (calling methods)
• Function calling in Objective C called message,
this is to give more dynamicity to the language,
some times if the method is not implemented the
calling result will be nil = null
– [objectOfClass functionName];
– [objectOfClass functionName:Arg1];
• Calling staic method
– [Class functionName];
– [Class functionName:Arg1];
36. Objective C
• Dot Syntax
– It is only working in Objective C 2.0
– It is only used for properties of object
• Dynamic Casting
– Using type “id” , id is pointer to void “C Style
void*”
– id object = [Class new];
• Static casting
– Class* object = [Class new];
37. Objective C
• nil is equivalents to null
• Objective C Class has no operators overloading
• Objective C Class has no constructors or destructors
• Boolean type is, BOOL
– YES is TRUE
– NO is FALSE
38. Memory Management
Rules :
You only release or autorelease objects you
own.
• If you own the object by alloc, copy or retain,
you have to release or autorelease
• If the object is not owned by you, don’t call
release or autorelease
47. iPhone Development
• It is true that Objective C is not as strong as
any other language but the huge coverage of
frameworks that is provided by Apple makes it
Ok to use such SDK.