Skip to content
Newer
Older
100644 60 lines (50 sloc) 3.85 KB
59604a2 @rtwomey Add iOS trail
rtwomey authored Jun 6, 2012
1 iOS
2 ===
3
4 Critical Learning
5 -----------------
bce0db0 @croaky Create RubyMotion trail
croaky authored Sep 17, 2012
6
59604a2 @rtwomey Add iOS trail
rtwomey authored Jun 7, 2012
7 * Read [Learning Objective-C: A Primer](http://developer.apple.com/library/mac/#referencelibrary/GettingStarted/Learning_Objective-C_A_Primer/_index.html)
c7c51ed @drapergeek Update book links to amazon affiliate shortened links.
drapergeek authored Oct 2, 2012
8 * Read [Learn Objective-C on the Mac](http://amzn.to/learn-objective-c-mac) ($)
9 * Read [Beginning iOS 5 Development: Exploring the iOS SDK](http://amzn.to/beginning-ios5) ($)
59604a2 @rtwomey Add iOS trail
rtwomey authored Jun 7, 2012
10 * Read [The Objective-C Programming Language](http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html)
11 * Read [About Memory Management](https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/MemoryMgmt/Articles/MemoryMgmt.html)
c7c51ed @drapergeek Update book links to amazon affiliate shortened links.
drapergeek authored Oct 2, 2012
12 * Read chapters 6 - 15, 17 - 19, 24, 28 - 30 of [Cocoa Design Patterns](http://amzn.to/cocoa-design-patterns) ($)
59604a2 @rtwomey Add iOS trail
rtwomey authored Jun 7, 2012
13 * Read and hack on [sample code](https://developer.apple.com/library/ios/navigation/#section=Resource%20Types&topic=Sample%20Code)
14 * Read the [Mobile Human Interface Guidelines](http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/Introduction/Introduction.html)
15
16 Validation
17 ----------
18
19 You know everyday Objective-C and iOS development when you can:
20
ba8902a @adarsh Capitalization
adarsh authored Jun 6, 2012
21 * Use Xcode (and the built-in Interface Builder) to compile an iOS app.
7ef9cb1 @mauricio [#37] Add new validations to iOS trail
mauricio authored Jun 7, 2012
22 * Describe and use ARC and MRC for memory mangement, as well as the rules of the retain/release/autorelease cycle.
ba8902a @adarsh Capitalization
adarsh authored Jun 7, 2012
23 * Use the basic data types (NSInteger, NSString), collection objects (NSArray, NSDictionary), and know when to use them instead of C primitives (int, char, etc).
7ef9cb1 @mauricio [#37] Add new validations to iOS trail
mauricio authored Jun 7, 2012
24 * Understand the difference between using tne mutable (NSMutableArray, NSMutableDictionary, NSMutableString) and immutable objects in Objective-C, their advantaces and disavantages.
ba8902a @adarsh Capitalization
adarsh authored Jun 7, 2012
25 * Use the basic display and navigation elements (UIWindow, UIView, UINavigationBar, UIToolbar, etc).
7ef9cb1 @mauricio [#37] Add new validations to iOS trail
mauricio authored Jun 7, 2012
26 * Implement a solution using an UITableView, with navigation and a custom UITableViewCell.
ba8902a @adarsh Capitalization
adarsh authored Jun 7, 2012
27 * Implement the various iOS controls (UISwitch, UILabel, UISegmentedControl, etc).
7ef9cb1 @mauricio [#37] Add new validations to iOS trail
mauricio authored Jun 7, 2012
28 * Understand and implement the usage of iPad specific UI controls, UIPopoverController and UISplitView.
ba8902a @adarsh Capitalization
adarsh authored Jun 7, 2012
29 * Design and use basic design patterns like MVC, delegates, callbacks, and notifications.
30 * Use CoreLocation to get location coordinates.
7ef9cb1 @mauricio [#37] Add new validations to iOS trail
mauricio authored Jun 7, 2012
31 * Access the cameras to take pictures or access pictures from the device's photo gallery.
32 * Implement network communications using AFNetworking or NSUrlConnection.
ba8902a @adarsh Capitalization
adarsh authored Jun 7, 2012
33 * Implement UX and design best practices as prescribed by Apple.
34 * Meet App Store submission requirements and submit an app.
59604a2 @rtwomey Add iOS trail
rtwomey authored Jun 7, 2012
35
36 You know advanced Objective-C & iOS Development when you can:
37
ba8902a @adarsh Capitalization
adarsh authored Jun 7, 2012
38 * Create and manage Core Data objects and schemas.
39 * Decide when to best use:
40 * A category vs subclassing.
41 * Singletons.
42 * Delegates.
43 * Proxies.
7ef9cb1 @mauricio [#37] Add new validations to iOS trail
mauricio authored Jun 7, 2012
44 * Closures.
ba8902a @adarsh Capitalization
adarsh authored Jun 7, 2012
45 * Implement animations using CoreAnimation and optimize drawing using CoreGraphics.
7ef9cb1 @mauricio [#37] Add new validations to iOS trail
mauricio authored Jun 7, 2012
46 * Implement a multi-tasking environment free of race conditions (using appropriate locking techniques such as mutexes and semaphores, message passing, etc)
47 * Implement task driven concurrency using the [Grand Central Dispatch (GCD)](http://developer.apple.com/library/ios/#documentation/Performance/Reference/GCD_libdispatch_Ref/Reference/reference.html) framework.
48 * Design and use APIs that prefer the use of closures instead of selectors and delegates.
49 * Create and use UIStoryboards to define and organize the application flow and transitions between screens.
ba8902a @adarsh Capitalization
adarsh authored Jun 7, 2012
50 * Debug memory leaks using NSZombieEnabled, Instruments, and other tools.
7ef9cb1 @mauricio [#37] Add new validations to iOS trail
mauricio authored Jun 7, 2012
51 * Use [CocoaPods](https://github.com/CocoaPods/CocoaPods) to define your project's dependencies.
52 * Create an universal app that contains code for both the iPhone/iPod and iPad devices.
59604a2 @rtwomey Add iOS trail
rtwomey authored Jun 7, 2012
53
54 Ongoing reference
55 -----------------
56
ba8902a @adarsh Capitalization
adarsh authored Jun 7, 2012
57 * Maintain an active ADC account and refer to [the official documentation](https://developer.apple.com).
58 * Keep up-to-date on iOS news.
7ef9cb1 @mauricio [#37] Add new validations to iOS trail
mauricio authored Jun 7, 2012
59 * Sign up for the [cocoa-dev](https://lists.apple.com/mailman/listinfo/cocoa-dev) discussion list.
Something went wrong with that request. Please try again.