Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

iOS Development - Offline Class for Jasakomer

1,070 views

Published on

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.

Published in: Technology, Art & Photos

iOS Development - Offline Class for Jasakomer

  1. 1. 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 http://andriyadi.me
  2. 2. about me
  3. 3. ID-ObjectiveCPresidentThe first & largest iOS & OSXdeveloper community in Indonesia
  4. 4. 4 years in a row
  5. 5. 2011 - now
  6. 6. start a company & code for food9 years in mobile development
  7. 7. a movie freak
  8. 8. iOS Devices
  9. 9. Start developing iOS apps Today! 21
  10. 10. http://developer.apple.com/ios
  11. 11. Xcode iOS Simulator iOS Developer Library
  12. 12. Required Stuffs
  13. 13. Latest iOS SDK
  14. 14. Installing Tools 27
  15. 15. Optional Stuffs
  16. 16. Actual iOS devices
  17. 17. For debugging to device & deployment to AppStore
  18. 18. Some development stuffs
  19. 19. Objective-CC + OOP ≠ C++
  20. 20. 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.
  21. 21. Classes & Objects
  22. 22. Methods & Messaging [aMutableArray insertObject:anObject atIndex:0];[[self aMutableArray] insertObject:anObject atIndex:0]; [self.aMutableArray insertObject:anObject atIndex:0];
  23. 23. Blocksint result = myBlock(4);
  24. 24. 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
  25. 25. More details:http://bit.ly/AF8EiJ
  26. 26. Design Pattern
  27. 27. Model-View-Controller design pattern
  28. 28. NowPlayingControllerNowPlaying NowPlayingView Model-View-Controller design pattern
  29. 29. Memory Management Reference countingNo garbage collector support (yet) Autorelease Pool
  30. 30. iOS frameworks
  31. 31. Enable apps to store user documents and key value data Push changes to all user’s computers and devicesStorage
  32. 32. Easily integrate Tweet SheetAccess system-wide Twitter accountfrom within appWrap OAuth request & response
  33. 33. 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)
  34. 34. Layout the app’s workflow & design user interfaces Specify transitions & segues between views Can be loaded dynamicallyStoryboard
  35. 35. Image processing framework finally comes to iOS Provides built-in filters: color effect, distortions, transitions Advanced features: red-eye reduction, face recognitionCoreImage
  36. 36. Take advantage of the latest hardwareGLKit: new high-level frameworkApple-developed OpenGL ES extensions
  37. 37. Cocoa TouchFoundation, UIKit, Multi-Touch Gestures
  38. 38. GraphicsCore Graphics, Core Animation, Core Image, Core Text, OpenGL ES
  39. 39. CoreDataDatabase, Object-Relational Mapping, optimized for mobile - > 1 million objects store
  40. 40. Audio & VideoMedia player, Core Audio & OpenAL, iPod library, HTTP Live Streaming
  41. 41. NetworkingBonjour, Peer to peer, WebKit framework, BSD socket
  42. 42. Core Location & MapKit
  43. 43. MultitaskingNew kind of multitasking
  44. 44. External display support
  45. 45. AirPrintWireless printing to AirPrint-enabled printers. Hack available
  46. 46. Push & Local Notification
  47. 47. Game CenterSocial gaming platform
  48. 48. iAdIntegrated advertising platform
  49. 49. In-App PurchasePayment inside applications
  50. 50. Human Interface Design
  51. 51. GUI Elementshttp://www.teehanlax.com/downloads/iOS_5_GUI_iPhone4S.psd.zip
  52. 52. Storyboard
  53. 53. The app will look like these
  54. 54. App Store Submission
  55. 55. Finally, on the App Store
  56. 56. you app can use this badge!
  57. 57. Everything is here: http://developer.apple.com/ios
  58. 58. https://developer.apple.com/library/ios/#referencelibrary/GettingStarted/RoadMapiOS/Introduction/Introduction.html
  59. 59. Let’s see some code
  60. 60. DYCODE IS HIRING!
  61. 61. If you think you’reawesome, either mobiledeveloper guru or stillearly learner, send yourawesome CV to:hrd@dycode.com

×