ios 入門教學

88
簡單學會 iOS 開發 Tuesday, August 13, 13

Upload: steven-shen

Post on 08-Sep-2014

10.032 views

Category:

Technology


2 download

DESCRIPTION

我離開前公司前,對三個 Android 工程師做的 iOS 入門教學投影片

TRANSCRIPT

  • iOS Tuesday, August 13, 13
  • TOI Android Java/C++ iOS6 Tuesday, August 13, 13
  • developer.apple.com apple ID XCode Bundle ID Provision Prole XCode Testight Stackoverow XCode developer.apple.com iTunes Connect (ITC) Tuesday, August 13, 13
  • ADN:Apple Developer Network developer.apple.com CerticationBundle ID Provisioning Tuesday, August 13, 13
  • XCode (git) (Simulator) Provisionapp Tuesday, August 13, 13
  • Objective-C 20 C++ C C C+ + / C Apple GC iOS GC ARC Tuesday, August 13, 13
  • Objective-C private protected java interface (virtual class) package namespace Tuesday, August 13, 13
  • .h .m .h .m .xib Interface Builder .storyboard storyboard Tuesday, August 13, 13
  • Tuesday, August 13, 13
  • + - Tuesday, August 13, 13
  • (send message) 1 2 Tuesday, August 13, 13
  • nil : nil NSNull YES / NO / True / False self : self.age = 20; [self callMyFather]; id : Tuesday, August 13, 13
  • @Hello World; NSString Hello World c string @[@Hello, @World]; NSArray @{@key: @(123)} NSDictionary @(23) @(YES), @(NO) @(32.23) NSNumber Tuesday, August 13, 13
  • NSString *str1 =@Hello; NSString *str2 = @World; if ([str1 isEqaulWithString:str2]) {} Tuesday, August 13, 13
  • NSDictionary *dict = @{@key: @value}; NSLog(@Value is %@, dict[@key]); dict.keys; dict.values; NSMutableDictionary *dict = [NSMutableDictionary dictWithDictionary:@{@key: @value}]; dict[@key2] = @Value2; Tuesday, August 13, 13
  • NSArray NSArray * array = [NSArray arrayWithObjects: @hello, @world, nil]; [array objectAtIndex:12]; NSArray * array = @[@hello, @world]; array[12]; NSDictionary NSDictionary *dict = [NSDictionary dictionaryWithObjects: @value1, @value2, nil forKeys: @key1, @key2, nil]; [dict objectForKey:@key2]; NSDictionary *dict = @{@key1: @value1, @key2: @value2}; dict[@key2]; NSNumber NSNumber *intNum = [NSNumber numberWithInt:12]; NSNumber *boolNum = [NSNumber numberWithBool: NO]; NSNumber *intNum = @(12); NSNumber *boolNum = @(YES); Tuesday, August 13, 13
  • ARC Auto Reference Counting Obj-C Reference Count Reference Count == 0 Before ARC: [obj retain]; [obj release]; After ARC: [obj retain]; [obj release] Compile time Runtime Tuesday, August 13, 13
  • ARC Before ARC: @property (retain) UITableView *tableView; After ARC: @property (strong) UITableView *tableView @property (weak) UITableView *tableView; @property (assign) UIInteger age; Tuesday, August 13, 13
  • Auto Synthesis XCode 4.4 property @synthesize property setter getter @property (strong) UITableView *tbView; -(UITableView*)tbView; // getter -(void)setTbView:(UITableView *tbView); // setter _tbView; // Tuesday, August 13, 13
  • Block iOS4 Block () closure block retain Block stack heap Callback Tuesday, August 13, 13
  • Block Block Block Callback Tuesday, August 13, 13
  • Block property copy http://blog.refractalize.org/post/10476042560/copy-vs-retain-for- objective-c-blocks onOpenHandler Tuesday, August 13, 13
  • Multi-threads fork thread Queue thread NSFoundation: NSOperationQueue GCD (Grand Central Dispatch) Concurrent / Serial Main thread UI update Tuesday, August 13, 13
  • NSOperationQueue Queue size (Concurrent / Serial) NSOperation Cancel Operation Tuesday, August 13, 13
  • NSBlockOperation NSOperation block Tuesday, August 13, 13
  • GCD Grand Central Dispatch ( ) CPU dispatch task dispatch_async / dispatch_sync dispatch_get_main_queue() Tuesday, August 13, 13
  • GCD UI Main Thread background thread UI dispatch_async(dispatch_get_main_queue() ....) Tuesday, August 13, 13
  • Cocoa Framework Apple SDK Framework Library API UI multithread Cocoa Framework iOS Cocoa OpenSource 3rdParty Library Tuesday, August 13, 13
  • cocoapods : http://cocoapods.org/ Podle pod install xcode FavClient- iOS.xcworkspace Tuesday, August 13, 13
  • IDE Tuesday, August 13, 13
  • Editor Debug ConsoleSymbols Tabs (Command + t) Breakpoints Editor Tuesday, August 13, 13
  • Source Control Tuesday, August 13, 13
  • Tuesday, August 13, 13
  • Instrument - Debug and Performance Tuning Tuesday, August 13, 13
  • peak ! Tuesday, August 13, 13
  • iOS UI Tuesday, August 13, 13
  • MVC: Model /View / Controller View UIView Controller UI UIViewController Tuesday, August 13, 13
  • iOS Cocoa Framwork Views Tuesday, August 13, 13
  • Controllers UIViewController UINavigationController UITableViewController UITapBarController Tuesday, August 13, 13
  • ViewController New Cocoa-Touch le Subclass UIViewController Create XIB le Tuesday, August 13, 13
  • ViewController loadView viewDidLoad viewWillAppear viewDidAppear viewWillDisappear viewDidDisappear dealloc Tuesday, August 13, 13
  • ViewController viewDidLoad function view viewDidAppear Tuesday, August 13, 13
  • ViewController ViewController -(void)presentViewController:(UIViewController*)viewController animated: (BOOL)ag completion:(void (^)(void))completion; transition styles: Cover vertical, Flipping, Cross Dissolve, Partial Curl Dismiss ViewController: -(void)dismissViewControllerAnimated:(BOOL)ag completion:(void (^) (void))completion Tuesday, August 13, 13
  • Navigation Controller Navigation Bar View Controller 1 View Controller 2 View Controller 3 Tuesday, August 13, 13
  • Navigation Controller rootViewController (initWithRootViewController) pushViewController:animated: popViewControllerAnimated: popToRootViewControllerAnimated: Tuesday, August 13, 13
  • Controller View Controller Xcode Interface Interface Builder Controller UI Controller loadView Interface Builder UI Tuesday, August 13, 13
  • Interface Builder Apple Xcode UI XML xib iOS UI Control Interface builder Tuesday, August 13, 13
  • Interface Builder IB UI UI Xcode UI IBOutlet IBAction IBOutlet UI IBAction Tuesday, August 13, 13
  • IBOutlet IBAction Tuesday, August 13, 13
  • Interface Builder connection inspector Reference Outlet Files Owner IBOutlet Button hook Touch Up Inside event Connection inspector Touch Up inside Files Owner IBAction Tuesday, August 13, 13
  • Xcode Interface Builder UI Tuesday, August 13, 13
  • storyboard iOS5 ViewController storyboard UI storyboard storyboard Tuesday, August 13, 13
  • storyboard storyboard Interface Builder ... Tuesday, August 13, 13
  • TableView View Model delegate / datasource Tuesday, August 13, 13
  • View - (void) viewDidLoad { [super viewDidLoad]; CGRect newFrame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); UITableView *tableView = [[UITableView alloc] initWithFrame:newFrame style:UITableViewStylePlain]; tableView.delegate = self; tableView.dataSource = self; [self.view addSubview: tableView]; } Tuesday, August 13, 13
  • Tuesday, August 13, 13
  • app View Controllers NavigationController TableView Tuesday, August 13, 13
  • Localization Tuesday, August 13, 13
  • NSLocalizedString(@Message to show, @Comment); Build Localizable.strings Tuesday, August 13, 13
  • NSLocalizedString(@Message to show, @Comment); Build Localizable.strings Tuesday, August 13, 13
  • NSLocalizedString(@Message to show, @Comment); Build Localizable.strings Tuesday, August 13, 13
  • NSLocalizedString(@Message to show, @Comment); Build Localizable.strings Tuesday, August 13, 13
  • xib xib ( maintain ) 3rd party modulehttps:// github.com/angelolloqui/AGi18n Tuesday, August 13, 13
  • App Name Icon Tuesday, August 13, 13
  • App Name InfoPlist.name app name Tuesday, August 13, 13
  • App Icon 57x57( retina) 114x114(retina)1024x1024 icon project ( copy project ) project > Summary icon ( retina retina) App Icons Tuesday, August 13, 13
  • TestFlight Tuesday, August 13, 13
  • Build Number terminal project iOSFavUploader/ agvtool bump git add . ; git commit -m bump Tuesday, August 13, 13
  • Testight Apple app app 100 () beta build Testight beta build XCode 5.0 Tuesday, August 13, 13
  • 1. ADN (developer.apple.com) 2. beta UDID (UDID (http://howto.cnet.com/8301-11310_39-57506702-285/how-to-nd-your-ios-devices-udid/) 3. Device UDID 4. Provision Prole Provisioning Prole 5. Provisioning Prole Tuesday, August 13, 13
  • 1. XCode: Product > Archive 2. XCode clean build app 3. Organizer Distribute 4. Save for Enterprise or Ad-Hoc Deployment 5. Provisioning Prole 6. ipa Archive App Binary Tuesday, August 13, 13
  • Testight 1. + Upload Build 2. ipa Change logs 3. ( testight ) 4. testight build install Tuesday, August 13, 13
  • App Store Tuesday, August 13, 13
  • App Binary 1) ADN (developer.apple.com) 2) Production Certicate 3) App Store Distribution Provisioning Prole 4) Certicate Prole Tuesday, August 13, 13
  • iTunes Connect iTunes Connect iTunes app submission marketing https://itunesconnect.apple.com/ WebObjects/iTunesConnect.woa iTunes Connect app Tuesday, August 13, 13
  • iTC App Tuesday, August 13, 13
  • 1 2 Tuesday, August 13, 13
  • 3 Tuesday, August 13, 13
  • App Description, keywords, icons, screenshots(), (App Reviewer app) Tuesday, August 13, 13
  • Tuesday, August 13, 13
  • 1) XCode: Product > Archive 2) XCode clean build app 3) Organizer Distribute 4) Submit to App Store 5) Provisioning Prole 6) app binary 7) iTunes Connect Archive App Binary Tuesday, August 13, 13
  • Tuesday, August 13, 13
  • ?! app Rights and Pricing Deselect app store Save Tuesday, August 13, 13
  • Sales and Trends , tracking 3rd-party ( cocoapods ): Google Analytics Flurry (http://www.urry.com) Tuesday, August 13, 13
  • Crash Report app crash Crashlytics crash report Crashlytics twitter crash report Tuesday, August 13, 13
  • Tuesday, August 13, 13
  • Stanford CS193p https://itunes.apple.com/us/course/coding- together-developing/id593208016 : http://www.raywenderlich.com/tutorials WWDC : https://developer.apple.com/wwdc/videos/ https://developer.apple.com/videos/wwdc/2012/ Tuesday, August 13, 13
  • Cocoa Design Patterns: http://www.amazon.com/Cocoa-Design-Patterns- Erik-Buck/dp/0321535022/ref=sr_1_1? ie=UTF8&qid=1376278359&sr=8-1&keywords=cocoa+design+patterns iOS Programming - The Big Nerd Ranch Guides: http://www.amazon.com/ iOS-Programming-Ranch-Edition-Guides/dp/0321821521/ref=sr_1_3? ie=UTF8&qid=1376278374&sr=8-3&keywords=cocoa+design+patterns Tuesday, August 13, 13