iOS Development - Offline Class for Jasakomer
Upcoming SlideShare
Loading in...5

iOS Development - Offline Class for Jasakomer



A slide I presented yesterday on Offline Class of Jasakom - one of a biggest hacker community in Indonesia. ...

A slide I presented yesterday on Offline Class of Jasakom - one of a biggest hacker community in Indonesia.
This slide is quite similar with my previous slides of the same topic, but with more and updated content.



Total Views
Views on SlideShare
Embed Views



1 Embed 1 1


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.

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

iOS Development - Offline Class for Jasakomer iOS Development - Offline Class for Jasakomer Presentation Transcript

  • Introduction to iOS Development Offline Class Jasakomer (Special iOS), April 15, 2012 Andri Yadi President, ID-ObjC | CEO, DyCode @andri_yadi | a (at) dycode (dot) com
  • about me
  • ID-ObjectiveCPresidentThe first & largest iOS & OSXdeveloper community in Indonesia
  • 4 years in a row
  • 2011 - now
  • start a company & code for food9 years in mobile development
  • a movie freak
  • iOS Devices
  • Start developing iOS apps Today! 21
  • Xcode iOS Simulator iOS Developer Library
  • Required Stuffs
  • Latest iOS SDK
  • Installing Tools 27
  • Optional Stuffs
  • Actual iOS devices
  • For debugging to device & deployment to AppStore
  • Some development stuffs
  • Objective-CC + OOP ≠ C++
  • A superset of C: Objective-C Advantages:• Syntactical convention for defining • Dynamic typing: classes & method enables to determine the class of an object• Syntax for method invocation at runtime• Syntax for declaring & synthesizing • Dynamic binding: properties allows to determine the method to call at• Static & dynamic typing runtime instead of at compile-time• Blocks • Dynamic loading:• Extension: protocol & categories allows to add modules of code & other resources at runtime.
  • Classes & Objects
  • Methods & Messaging [aMutableArray insertObject:anObject atIndex:0];[[self aMutableArray] insertObject:anObject atIndex:0]; [self.aMutableArray insertObject:anObject atIndex:0];
  • Blocksint result = myBlock(4);
  • Protocols & CategoriesProtocol == Interface in other OOP language (Java, C#)@interface NowPlayingController :UIViewController<UIScrollViewDelegate, ProfileViewDelegate> {}@end@protocol ProfileViewDelegate- (void)profileView:(ProfileView *)profileView doSignInWith:(AuthProviderType)signInType sender:(id)sender;@optional- (void)profileView:(ProfileView *)profileView doSignOut:(id)sender;@endCategory, enables to extend a class without subclassing it@interface NSDate (Additions)+ (NSDate *)dateFromTimeString:(NSString*)timeString;+ (NSDate *)dateWithJSONString:(NSString *)json;- (NSDate *)dateByAddingDays:(NSInteger)numDays;- (NSDate *)dateByAddingHours:(NSInteger)numHours;@end
  • More details:
  • Design Pattern
  • Model-View-Controller design pattern
  • NowPlayingControllerNowPlaying NowPlayingView Model-View-Controller design pattern
  • Memory Management Reference countingNo garbage collector support (yet) Autorelease Pool
  • iOS frameworks
  • Enable apps to store user documents and key value data Push changes to all user’s computers and devicesStorage
  • Easily integrate Tweet SheetAccess system-wide Twitter accountfrom within appWrap OAuth request & response
  • Memory management becomes compiler’s job No need to deal with retain & release by yourself Manually enabled in Xcode It’s NOT a garbage collector!Automatic Reference Counting (ARC)
  • Layout the app’s workflow & design user interfaces Specify transitions & segues between views Can be loaded dynamicallyStoryboard
  • Image processing framework finally comes to iOS Provides built-in filters: color effect, distortions, transitions Advanced features: red-eye reduction, face recognitionCoreImage
  • Take advantage of the latest hardwareGLKit: new high-level frameworkApple-developed OpenGL ES extensions
  • Cocoa TouchFoundation, UIKit, Multi-Touch Gestures
  • GraphicsCore Graphics, Core Animation, Core Image, Core Text, OpenGL ES
  • CoreDataDatabase, Object-Relational Mapping, optimized for mobile - > 1 million objects store
  • Audio & VideoMedia player, Core Audio & OpenAL, iPod library, HTTP Live Streaming
  • NetworkingBonjour, Peer to peer, WebKit framework, BSD socket
  • Core Location & MapKit
  • MultitaskingNew kind of multitasking
  • External display support
  • AirPrintWireless printing to AirPrint-enabled printers. Hack available
  • Push & Local Notification
  • Game CenterSocial gaming platform
  • iAdIntegrated advertising platform
  • In-App PurchasePayment inside applications
  • Human Interface Design
  • GUI Elements
  • Storyboard
  • The app will look like these
  • App Store Submission
  • Finally, on the App Store
  • you app can use this badge!
  • Everything is here:
  • Let’s see some code
  • If you think you’reawesome, either mobiledeveloper guru or stillearly learner, send yourawesome CV