Slide 1

Slide 1 text

Hızlı Cocoa Geliştirme @sarperdag

Slide 2

Slide 2 text

GitHub https://github.com/languages/Objective-C

Slide 3

Slide 3 text

AFNetworking NSURL  *url  =  [NSURL  URLWithString:@"https://alpha-­‐api.app.net/stream/0/posts/stream/global"]; NSURLRequest  *request  =  [NSURLRequest  requestWithURL:url]; AFJSONRequestOperation  *operation  =  [AFJSONRequestOperation   JSONRequestOperationWithRequest:request  success:^(NSURLRequest  *request,  NSHTTPURLResponse   *response,  id  JSON)  {        NSLog(@"App.net  Global  Stream:  %@",  JSON); }  failure:nil]; [operation  start]; https://github.com/AFNetworking/AFNetworking

Slide 4

Slide 4 text

FSNetworking https://github.com/foursquare/FSNetworking NSURL  *url                                =  ...;  //  required NSDictionary  *headers          =  ...;  //  optional NSDictionary  *parameters    =  ...;  //  optional FSNConnection  *connection  = [FSNConnection  withUrl:url                                method:FSNRequestMethodGET                              headers:headers                        parameters:parameters                        parseBlock:^id(FSNConnection  *c,  NSError  **error)  {                                return  [c.responseData  dictionaryFromJSONWithError:error];                        }              completionBlock:^(FSNConnection  *c)  {                      NSLog(@"complete:  %@\n    error:  %@\n    parseResult:  %@\n",  c,  c.error,   c.parseResult);              }                  progressBlock:^(FSNConnection  *c)  {                          NSLog(@"progress:  %@:  %.2f/%.2f",  c,  c.uploadProgress,   c.downloadProgress);                  }]; [connection  start];

Slide 5

Slide 5 text

RestKIT @interface  Tweet  :  NSObject @property  (nonatomic,  copy)  NSNumber  *userID; @property  (nonatomic,  copy)  NSString  *username; @property  (nonatomic,  copy)  NSString  *text; @end RKObjectMapping  *mapping  =  [RKObjectMapping  mappingForClass:[RKTweet  class]]; [mapping  addAttributeMappingsFromDictionary:@{        @"user.name":      @"username",        @"user.id":          @"userID",        @"text":                @"text" }]; RKResponseDescriptor  *responseDescriptor  =  [RKResponseDescriptor  responseDescriptorWithMapping:mapping  pathPattern:nil   keyPath:nil  statusCodes:nil]; NSURL  *url  =  [NSURL  URLWithString:@"http://api.twitter.com/1/statuses/public_timeline.json"]; NSURLRequest  *request  =  [NSURLRequest  requestWithURL:url]; RKObjectRequestOperation  *operation  =  [[RKObjectRequestOperation  alloc]  initWithRequest:request   responseDescriptors:@[responseDescriptor]];   [operation  setCompletionBlockWithSuccess:^(RKObjectRequestOperation  *operation,  RKMappingResult  *result)  {        NSLog(@"The  public  timeline  Tweets:  %@",  [result  array]); }  failure:nil]; [operation  start]; https://github.com/RestKit/RestKit

Slide 6

Slide 6 text

MBProgressHUD https://github.com/jdg/MBProgressHUD MBProgressHUD  *hud  =  [MBProgressHUD   showHUDAddedTo:self.view  animated:YES]; hud.mode  =  MBProgressHUDModeAnnularDeterminate; hud.labelText  =  @"Loading"; [self   doSomethingInBackgroundWithProgressCallback:^(float   progress)  {        hud.progress  =  progress; }  completionCallback:^{        [MBProgressHUD  hideHUDForView:self.view   animated:YES]; }];

Slide 7

Slide 7 text

SVPullToRefresh https://github.com/samvermette/SVPullToRefresh [tableView  addPullToRefreshWithActionHandler:^{        //  prepend  data  to  dataSource,  insert  cells  at  top  of  table  view        //  call  [tableView.pullToRefreshView  stopAnimating]  when  done }];

Slide 8

Slide 8 text

ColorSense https://github.com/omz/ColorSense-for-Xcode http://www.youtube.com/watch?v=eblRfDQM0Go Plugin for Xcode to make working with colors more visual

Slide 9

Slide 9 text

NUI https://github.com/tombenner/nui

Slide 10

Slide 10 text

NUI @primaryFontName:  HelveticaNeue; @secondaryFontName:  HelveticaNeue-­‐Light; @primaryFontColor:  #333333; @primaryBackgroundColor:  #E6E6E6; Button  {        background-­‐color:  @primaryBackgroundColor;        border-­‐color:  #A2A2A2;        border-­‐width:  @primaryBorderWidth;        font-­‐color:  @primaryFontColor;        font-­‐color-­‐highlighted:  #999999;        font-­‐name:  @primaryFontName;        font-­‐size:  18;        corner-­‐radius:  7; } NavigationBar  {        background-­‐tint-­‐color:  @primaryBackgroundColor;        font-­‐name:  @secondaryFontName;        font-­‐size:  20;        font-­‐color:  @primaryFontColor;

Slide 11

Slide 11 text

PSTCollectionView https://github.com/steipete/PSTCollectionView Open Source, 100% API compatible replacement of UICollectionView for iOS4.3+ UICollectionViewFlowLayout  *flowLayout  =   [UICollectionViewFlowLayout  new]; PSTCollectionView  *collectionView  =   [PSTCollectionView  alloc]   initWithFrame:self.view.bounds   collectionViewLayout: (PSTCollectionViewFlowLayout  *)flowLayout];

Slide 12

Slide 12 text

QuickDialog https://github.com/escoz/QuickDialog

Slide 13

Slide 13 text

BlockAlerts https://github.com/gpambrozio/BlockAlertsAnd- ActionSheets BlockAlertView  *alert  =  [BlockAlertView  alertWithTitle:@"Alert  Title"                                                                                              message:@"This  is  a  very  long   message,  designed  just  to  show  you  how  smart  this  class  is"]; [alert  addButtonWithTitle:@"Do  something  cool"  block:^{        //  Do  something  cool  when  this  button  is  pressed }]; [alert  setCancelButtonWithTitle:@"Please,  don't  do  this"  block:^{        //  Do  something  or  nothing....  This  block  can  even  be  nil! }]; [alert  setDestructiveButtonWithTitle:@"Kill,  Kill"  block:^{        //  Do  something  nasty  when  this  button  is  pressed }];

Slide 14

Slide 14 text

SEHumanizedTimeDiff https://github.com/sarperdag/SEHumanizedTimeDiff //1  minute myLabel.text  =  [[NSDate  dateWithTimeIntervalSinceNow:-­‐360]                                stringWithHumanizedTimeDifference:NSDateHumanizedSuffixNone                                withFullString:NO]; //This  will  return  @"1m" //2  days myLabel.text  =  [[NSDate  dateWithTimeIntervalSinceNow:-­‐3600*24*2]                                stringWithHumanizedTimeDifference:NSDateHumanizedSuffixAgo                                withFullString:YES]; //This  will  return  @"2  days  ago"

Slide 15

Slide 15 text

HPSocialNetworkManager https://github.com/Hipo/HPSocialNetworkManager iOS framework for handling authentication to Facebook and Twitter with reverse-auth support.

Slide 16

Slide 16 text

STTweetLabel https://github.com/ SebastienThiebaud/STTweetLabel/ STTweetLabel  *tweetLabel  =  [[STTweetLabel  alloc]  initWithFrame:CGRectMake(20.0,   60.0,  280.0,  200.0)];        [tweetLabel  setFont:[UIFont  fontWithName:@"HelveticaNeue"  size:17.0]];        [tweetLabel  setTextColor:[UIColor  blackColor]];        [tweetLabel  setDelegate:self];        [tweetLabel  setText:@"Hi.  This  is  a  new  tool  for  @you!  Developed  by-­‐ >@SebThiebaud  for  #iPhone  #ObjC...  ;-­‐)  My  GitHub  page:  https://t.co/pQXDoiYA"];        [self.view  addSubview:tweetLabel];

Slide 17

Slide 17 text

DTCoreText https://github.com/Cocoanetics/DTCoreText

Slide 18

Slide 18 text

iRate https://github.com/nicklockwood/iRate iRate is a library to help you promote your iPhone and Mac App Store apps by prompting users to rate the app after using it for a few days. This approach is one of the best ways to get positive app reviews by targeting only regular users (who presumably like the app or they wouldn't keep using it!).

Slide 19

Slide 19 text

iOSImageFilters https://github.com/esilverberg/ios-image-filters #import  "ImageFilter.h" UIImage  *image  =  [UIImage   imageNamed:@"landscape.jpg"]; self.imageView.image  =  [image  sharpen]; //  Or self.imageView.image  =  [image  saturate: 1.5]; //  Or self.imageView.image  =  [image  lomo];

Slide 20

Slide 20 text

CorePlot http://code.google.com/p/core-plot/

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

TestFlight https://testflightapp.com/

Slide 23

Slide 23 text

CocoaControls http://www.cocoacontrols.com

Slide 24

Slide 24 text

BinPress

Slide 25

Slide 25 text

Good artists copy; great artists steal Steve Jobs