ios development - offline class for jasakomer

66
Andri Yadi President, ID-ObjC | CEO, DyCode @andri_yadi | a (at) dycode (dot) com http://andriyadi.me Introduction to iOS Development Oine Class Jasakomer (Special iOS), April 15, 2012

Upload: andri-yadi

Post on 12-Jan-2015

641 views

Category:

Technology


0 download

DESCRIPTION

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.

TRANSCRIPT

Page 1: iOS Development - Offline Class for Jasakomer

Andri YadiPresident, ID-ObjC | CEO, DyCode

@andri_yadi | a (at) dycode (dot) comhttp://andriyadi.me

Introduction to iOS DevelopmentO!ine Class Jasakomer (Special iOS), April 15, 2012

Page 2: iOS Development - Offline Class for Jasakomer

about me

Page 3: iOS Development - Offline Class for Jasakomer

The !rst & largest iOS & OSX developer community in Indonesia

ID-ObjectiveCPresident

Page 4: iOS Development - Offline Class for Jasakomer

4 years in a row

Page 5: iOS Development - Offline Class for Jasakomer

2011 - now

Page 6: iOS Development - Offline Class for Jasakomer

start a company & code for food9 years in mobile development

Page 7: iOS Development - Offline Class for Jasakomer

a movie freak

Page 8: iOS Development - Offline Class for Jasakomer

iOS Devices

Page 9: iOS Development - Offline Class for Jasakomer
Page 10: iOS Development - Offline Class for Jasakomer

21

Start developing iOS apps Today!

Page 12: iOS Development - Offline Class for Jasakomer

Xcode iOS Simulator iOS Developer Library

Page 13: iOS Development - Offline Class for Jasakomer

Required Stu!s

Page 14: iOS Development - Offline Class for Jasakomer
Page 15: iOS Development - Offline Class for Jasakomer

Latest iOS SDK

Page 16: iOS Development - Offline Class for Jasakomer

27

Installing Tools

Page 17: iOS Development - Offline Class for Jasakomer

Optional Stu!s

Page 18: iOS Development - Offline Class for Jasakomer

Actual iOS devices

Page 19: iOS Development - Offline Class for Jasakomer

For debugging to device & deployment to AppStore

Page 20: iOS Development - Offline Class for Jasakomer

Some development stuffs

Page 21: iOS Development - Offline Class for Jasakomer

Objective-CC + OOP " C++

Page 22: iOS Development - Offline Class for Jasakomer

A superset of C:• Syntactical convention for de#ning

classes & method• Syntax for method invocation• Syntax for declaring & synthesizing

properties• Static & dynamic typing• Blocks• Extension: protocol & categories

Objective-C Advantages:• Dynamic typing:

enables to determine the class of an object at runtime

• Dynamic binding:allows to determine the method to call at runtime instead of at compile-time

• Dynamic loading:allows to add modules of code & other resources at runtime.

Page 23: iOS Development - Offline Class for Jasakomer

Classes & Objects

Page 24: iOS Development - Offline Class for Jasakomer

Methods & Messaging

[aMutableArray insertObject:anObject atIndex:0];

[[self aMutableArray] insertObject:anObject atIndex:0];

[self.aMutableArray insertObject:anObject atIndex:0];

Page 25: iOS Development - Offline Class for Jasakomer

Blocks

int result = myBlock(4);

Page 26: iOS Development - Offline Class for Jasakomer

Protocols & Categories

@interface NowPlayingController : UIViewController<UIScrollViewDelegate, ProfileViewDelegate> { }@end

Protocol == Interface in other OOP language (Java, C#)

@protocol ProfileViewDelegate- (void)profileView:(ProfileView *)profileView doSignInWith:(AuthProviderType)signInType sender:(id)sender;

@optional- (void)profileView:(ProfileView *)profileView doSignOut:(id)sender;@end

Category, 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

Page 27: iOS Development - Offline Class for Jasakomer

More details:http://bit.ly/AF8EiJ

Page 28: iOS Development - Offline Class for Jasakomer

Design Pattern

Page 29: iOS Development - Offline Class for Jasakomer

Model-View-Controller design pattern

Page 30: iOS Development - Offline Class for Jasakomer

Model-View-Controller design pattern

NowPlayingController

NowPlayingView

NowPlaying

Page 31: iOS Development - Offline Class for Jasakomer
Page 32: iOS Development - Offline Class for Jasakomer

Reference countingNo garbage collector support (yet)

Autorelease Pool

Memory Management

Page 33: iOS Development - Offline Class for Jasakomer

iOS frameworks

Page 34: iOS Development - Offline Class for Jasakomer
Page 35: iOS Development - Offline Class for Jasakomer

Enable apps to store user documents and key value data

Storage

Push changes to all user’s computers and devices

Page 36: iOS Development - Offline Class for Jasakomer

Easily integrate Tweet Sheet

Access system-wide Twitter account from within app

Wrap OAuth request & response

Page 37: iOS Development - Offline Class for Jasakomer

Memory management becomes compiler’s job

Manually enabled in XcodeIt’s NOT a garbage collector!

Automatic ReferenceCounting (ARC)

No need to deal with retain & release by yourself

Page 38: iOS Development - Offline Class for Jasakomer

Layout the app’s work!ow & design user interfaces

Can be loaded dynamically

Storyboard

Specify transitions & segues between views

Page 39: iOS Development - Offline Class for Jasakomer

Image processing framework "nally comes to iOS

Advanced features: red-eye reduction, face recognition

CoreImage

Provides built-in "lters: color e#ect, distortions, transitions

Page 40: iOS Development - Offline Class for Jasakomer

Take advantage of the latest hardware

Apple-developed OpenGL ES extensions

GLKit: new high-level framework

Page 41: iOS Development - Offline Class for Jasakomer

Cocoa TouchFoundation, UIKit, Multi-Touch Gestures

Page 42: iOS Development - Offline Class for Jasakomer

GraphicsCore Graphics, Core Animation, Core Image, Core Text, OpenGL ES

Page 43: iOS Development - Offline Class for Jasakomer

CoreDataDatabase, Object-Relational Mapping, optimized for mobile - > 1 million objects store

Page 44: iOS Development - Offline Class for Jasakomer

Audio & VideoMedia player, Core Audio & OpenAL, iPod library, HTTP Live Streaming

Page 45: iOS Development - Offline Class for Jasakomer

NetworkingBonjour, Peer to peer, WebKit framework, BSD socket

Page 46: iOS Development - Offline Class for Jasakomer

Core Location & MapKit

Page 47: iOS Development - Offline Class for Jasakomer

MultitaskingNew kind of multitasking

Page 48: iOS Development - Offline Class for Jasakomer

External display support

Page 49: iOS Development - Offline Class for Jasakomer

AirPrintWireless printing to AirPrint-enabled printers. Hack available

Page 50: iOS Development - Offline Class for Jasakomer

Push & Local Notification

Page 51: iOS Development - Offline Class for Jasakomer

Game CenterSocial gaming platform

Page 52: iOS Development - Offline Class for Jasakomer

iAdIntegrated advertising platform

Page 53: iOS Development - Offline Class for Jasakomer

In-App PurchasePayment inside applications

Page 54: iOS Development - Offline Class for Jasakomer

Human Interface Design

Page 55: iOS Development - Offline Class for Jasakomer

GUI Elementshttp://www.teehanlax.com/downloads/iOS_5_GUI_iPhone4S.psd.zip

Page 56: iOS Development - Offline Class for Jasakomer

Storyboard

Page 57: iOS Development - Offline Class for Jasakomer

The app will look like these

Page 58: iOS Development - Offline Class for Jasakomer

App Store Submission

Page 59: iOS Development - Offline Class for Jasakomer

Finally, on the App Store

Page 60: iOS Development - Offline Class for Jasakomer

you app can use this badge!

Page 63: iOS Development - Offline Class for Jasakomer

Let’s see some code

Page 64: iOS Development - Offline Class for Jasakomer

DYCODE IS HIRING!

Page 65: iOS Development - Offline Class for Jasakomer

If you think you’re awesome, either mobile developer guru or still early learner, send your awesome CV to: [email protected]

Page 66: iOS Development - Offline Class for Jasakomer