Your SlideShare is downloading. ×
Ios development
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 development


Published on

Ios development

Ios development

Published in: Education

1 Like
  • Be the first to comment

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 DevelopmentMd. Shakil AhmedSoftware EngineerAstha it research & consultancy ltd.Dhaka, Bangladesh16th October 2011
  • 2. IntroductionTopic 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 ApplicationThere 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.
  • 8. Smartphone OS Market Share, Q4 2010
  • 9. Needed to develop for iPhone• Knowledge of Objective C• Mac OS X Intel based machine• iPhone Development tools• iPhone or iPod touch
  • 10. iPhone Development tools• Xcode
  • 11. Create New Application1. 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.
  • 12. Create New Application
  • 13. Xcode
  • 14. Xcode• Compiled Code -> yours and frameworks• Nib – files: UI--- elements• Resources: images, sounds.• Info.plist – file: app configuraIon
  • 15. info.plist
  • 16. Info.plist in Xcode
  • 17. 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!
  • 18. nib---file
  • 19. Nib – files in Interface Builder
  • 20. icons and images
  • 21. Life Cycle
  • 22. 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
  • 23. Delegate#import <UIKit/UIKit.h>@interface HelloWorldAppDelegate : NSObject <UIApplicationDelegate> {UIWindow *window;UITextField *mytextfield;}@property (nonatomic, retain) IBOutlet UIWindow *window;@property (nonatomic, retain) IBOutlet UITextField *mytextfield;- (IBAction) userClicked: (id) sender;@end
  • 24. Delegate• nonatomic - single threaded application• retain - memory management• IBOutlet - variables to attach to Interface Builder objects• IBAction - methods to attach to Interface Builder actions
  • 25. In Interface Builder
  • 26. Delegate classes implementation#import "HelloWorldAppDelegate.h"@implementation HelloWorldAppDelegate@synthesize window;@synthesize mytextfield;- (IBAction) userClicked: (id) sender{NSString* text = [mytextfield text];UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hello“ message:text delegate:nil cancelButtonTitle:@"Ok“ otherButtonTitles:nil];[alert show];[alert release];}
  • 27. Delegate classes implementation- (void)applicationDidFinishLaunching:(UIApplication *)application {// Override point for customization after application launch[window makeKeyAndVisible];}- (void)dealloc {[window release];[super dealloc];}@end
  • 28. Result
  • 29. 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.
  • 30. Objective CNew concepts – Class definition – Protocol implementation – Class messages – Many more …
  • 31. Classes and Objects• Classes declare the state and behavior• State (class data) is instance variables• Behavior is methods
  • 32. 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;
  • 33. 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];
  • 34. 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];
  • 35. 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
  • 36. Memory ManagementRules :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
  • 37. Memory Management
  • 38. Memory ManagementLocal Variable• Always release or autorelease in the same scope
  • 39. Crash Reports
  • 40. Crash Types• EXC_BAD_ACCESS (SIGBUS or SIGSEGV)• EXC_CRASH (SIGABRT)• Low Memory• 00000020
  • 41. iPhone frameworks• Foundation MapKit• UIKit IOKit• CoreGrphics MediaPlayer• CFNetwork AddressBook• CoreLocation MobileCoreSerivces• CoreData• ExternalAccessory OpenGL• GameKit Security StoreKit And many more
  • 42. CoreData
  • 43. Core Location & MapKit
  • 44. Multitasking• Available in iOS 4.
  • 45. 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.
  • 46. Thanks!