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

iOS 入門教學

Sep 08, 2014

Download

Technology

Steven Shen

我離開前公司前,對三個 Android 工程師做的 iOS 入門教學投影片
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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