From 38633b7480aff7fd0482e18adc13f7fa906fa7ac Mon Sep 17 00:00:00 2001 From: shenayoshida Date: Sat, 20 Feb 2016 15:27:58 -0500 Subject: [PATCH 1/5] map fixed, parsing data --- .DS_Store | Bin 0 -> 6148 bytes FixaDaApp/.DS_Store | Bin 0 -> 6148 bytes .../FixaDaApp/Base.lproj/Main.storyboard | 8 +++---- FixaDaApp/FixaDaApp/FoursquareAPIManager.m | 22 ++++++++++++++++++ FixaDaApp/FixaDaApp/Info.plist | 2 +- FixaDaApp/FixaDaApp/ViewController.m | 8 ++++++- 6 files changed, 34 insertions(+), 6 deletions(-) create mode 100644 .DS_Store create mode 100644 FixaDaApp/.DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..b45d3f3c936508311dfe0917ea20447b42bb0f64 GIT binary patch literal 6148 zcmeHKJ5EC}5S)b+K{P2-`U>2@L=P^&1^A>vij+tQiSkuBSB{q1PeJrT7n*2RT93Wn zvE?b=z6D^b@AU()05GRJV(-J$eBXUyHx)4=oo5Vq!y|Ust-mJO=L62Y!!thdL+&sB z$L4*z-T1al3P=GdAO)m=6u6)QRb1!y7d%r(NdYNv9SZpOq0t?C;g}eo4i3=*5N8aB zaUQ({v3Y>l3&%u8XqHrBQmtAHOFHAN@_ONzm~>b*A67S8bto3M^ZXX+u%4(<3P^!d z1#WY>@cREm|D*puC21uEq`*}vV6)+6Sn)|!TPKh6THENabk8}^-8c^lhbYIyD92oQ fIbKFm<~5&lzZZ^)L1#SZMEwl7E;1?b-wGT7sPGik literal 0 HcmV?d00001 diff --git a/FixaDaApp/.DS_Store b/FixaDaApp/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..d3103389872455351d1d6315aac2ac99aad94c5f GIT binary patch literal 6148 zcmeHKT}s115T31ls0vaL!N;6H=nd8qeYMaF7?M(d8WO6-KJFPkh-dJdouPECg~kUF znJF{hX0ns%d<&Tj5xMcI8W9bNXaHsG9m9Mhe4lkkdg|euE?`mhaIsPI8 ze0Jw_OOLe1*=?WSno4S@q8UzeiPh6$KAM(I-AWmgyTc>vCeN$YYf1F}u{eqG2j;As z>W7i-!}h-oob+OEoo}dbNze3xS_{-YOKbH-x9FtaGfv$lcT#ib=(O%hOm4;)Fb0f) zFASh(vkXoJ%^Cy7fHAOPfZq=pl+h~&!T9Qci6a284|f!-d6wXqOwlU_LEM2j2?a{1 z(-Ff-IQ*IJ^NK-G!pZ6I;WV?;3B|?iczzbQlk0_YWkAUqKJ5QsFG JF$R8>flqLxZdm{T literal 0 HcmV?d00001 diff --git a/FixaDaApp/FixaDaApp/Base.lproj/Main.storyboard b/FixaDaApp/FixaDaApp/Base.lproj/Main.storyboard index ed571b5..f434559 100644 --- a/FixaDaApp/FixaDaApp/Base.lproj/Main.storyboard +++ b/FixaDaApp/FixaDaApp/Base.lproj/Main.storyboard @@ -19,13 +19,13 @@ - + - + - + @@ -48,7 +48,7 @@ - + diff --git a/FixaDaApp/FixaDaApp/FoursquareAPIManager.m b/FixaDaApp/FixaDaApp/FoursquareAPIManager.m index b0ee3ac..2c6cb38 100644 --- a/FixaDaApp/FixaDaApp/FoursquareAPIManager.m +++ b/FixaDaApp/FixaDaApp/FoursquareAPIManager.m @@ -32,6 +32,8 @@ + (void)findSomething:(NSString *)query NSString *baseURL = @"https://api.foursquare.com/v2/venues/search"; NSString *url = [NSString stringWithFormat:@"%@?client_id=%@&client_secret=%@&v=20160215&ll=%f,%f&query=%@", baseURL, kFoursquareAPIClientID, kFoursquareAPIClientSecret, location.coordinate.latitude, location.coordinate.longitude, query]; +// NSLog(@"url: %@", url); + AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; [manager GET:url @@ -39,6 +41,26 @@ + (void)findSomething:(NSString *)query progress:nil success:^(NSURLSessionTask *task, id responseObject) { +// NSLog(@"response object: %@", responseObject); + + if (responseObject != nil) { + + NSArray *venues = [[responseObject objectForKey:@"response"] objectForKey:@"venues"]; + +// NSLog(@"venues %@", venues); + + for (NSDictionary *venue in venues) { + + NSString *venueName = [venue objectForKey:@"name"]; + NSString *lat = [[venue objectForKey:@"location"]objectForKey:@"lat"]; + NSString *lng = [[venue objectForKey:@"location"]objectForKey:@"lng"]; + NSLog(@"venue name: %@, lat: %@, lng: %@", venueName, lat, lng); + + } + + } + + } failure:^(NSURLSessionTask *operation, NSError *error) { diff --git a/FixaDaApp/FixaDaApp/Info.plist b/FixaDaApp/FixaDaApp/Info.plist index cf463a3..776c719 100644 --- a/FixaDaApp/FixaDaApp/Info.plist +++ b/FixaDaApp/FixaDaApp/Info.plist @@ -3,7 +3,7 @@ NSLocationWhenInUseUsageDescription - Show you the places! + Hi, please accept so that we can show you the places! CFBundleDevelopmentRegion en CFBundleExecutable diff --git a/FixaDaApp/FixaDaApp/ViewController.m b/FixaDaApp/FixaDaApp/ViewController.m index f938005..37b65ee 100644 --- a/FixaDaApp/FixaDaApp/ViewController.m +++ b/FixaDaApp/FixaDaApp/ViewController.m @@ -8,6 +8,7 @@ #import "ViewController.h" #import +#import #import "FoursquareAPIManager.h" @interface ViewController () @@ -33,17 +34,22 @@ @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; + self.mapView.showsUserLocation = YES; + self.locationManager = [[CLLocationManager alloc] init]; + self.tableView.delegate = self; self.tableView.dataSource = self; self.mapView.delegate = self; - self.locationManager = [[CLLocationManager alloc] init]; + + } - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; + [self.locationManager requestWhenInUseAuthorization]; } From 3f283246e7ed17ecab29a9c7edbbadf5a0c22a08 Mon Sep 17 00:00:00 2001 From: shenayoshida Date: Sat, 20 Feb 2016 18:02:18 -0500 Subject: [PATCH 2/5] six pm progress --- FixaDaApp/.DS_Store | Bin 6148 -> 6148 bytes FixaDaApp/FixaDaApp.xcodeproj/project.pbxproj | 6 +++ FixaDaApp/FixaDaApp/.DS_Store | Bin 0 -> 6148 bytes FixaDaApp/FixaDaApp/APIManager.h | 18 ++++++++ FixaDaApp/FixaDaApp/APIManager.m | 34 +++++++++++++++ FixaDaApp/FixaDaApp/FoursquareAPIManager.h | 6 +++ FixaDaApp/FixaDaApp/FoursquareAPIManager.m | 41 ++++++++++++++---- FixaDaApp/FixaDaApp/ViewController.m | 33 +++++++++----- 8 files changed, 120 insertions(+), 18 deletions(-) create mode 100644 FixaDaApp/FixaDaApp/.DS_Store create mode 100644 FixaDaApp/FixaDaApp/APIManager.h create mode 100644 FixaDaApp/FixaDaApp/APIManager.m diff --git a/FixaDaApp/.DS_Store b/FixaDaApp/.DS_Store index d3103389872455351d1d6315aac2ac99aad94c5f..f05e99afaf2993cc648ccd309a9c4c0f83baf3cf 100644 GIT binary patch delta 143 zcmZoMXfc=|#>B!ku~2NHo}wrx0|Nsi1A_nqg9}3p6F!wdje9U~$D delta 120 zcmZoMXfc=|#>B)qu~2NHo}wrR0|Nsi1A_nqg9}3WXvvN=Lz4Kn~iQW|yu diff --git a/FixaDaApp/FixaDaApp.xcodeproj/project.pbxproj b/FixaDaApp/FixaDaApp.xcodeproj/project.pbxproj index d7126a8..956b01b 100644 --- a/FixaDaApp/FixaDaApp.xcodeproj/project.pbxproj +++ b/FixaDaApp/FixaDaApp.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 4D7723DC1C7920F30067969D /* APIManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D7723DB1C7920F30067969D /* APIManager.m */; }; 79510F25E25C142657CE2DC4 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C1C5BEFC8D1D1F43B84295A /* libPods.a */; }; 8D4F05B61C710A8E003B3131 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D4F05B51C710A8E003B3131 /* main.m */; }; 8D4F05B91C710A8E003B3131 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D4F05B81C710A8E003B3131 /* AppDelegate.m */; }; @@ -20,6 +21,8 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 4D7723DA1C7920F30067969D /* APIManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIManager.h; sourceTree = ""; }; + 4D7723DB1C7920F30067969D /* APIManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APIManager.m; sourceTree = ""; }; 51DA72322BD0057FB2DF45ED /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; 5C1C5BEFC8D1D1F43B84295A /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; }; 8D4F05B11C710A8E003B3131 /* FixaDaApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FixaDaApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -87,6 +90,8 @@ children = ( 8D4F05B71C710A8E003B3131 /* AppDelegate.h */, 8D4F05B81C710A8E003B3131 /* AppDelegate.m */, + 4D7723DA1C7920F30067969D /* APIManager.h */, + 4D7723DB1C7920F30067969D /* APIManager.m */, 8D4F05BA1C710A8E003B3131 /* ViewController.h */, 8D4F05BB1C710A8E003B3131 /* ViewController.m */, 8DB9ED8E1C722B12003A03E0 /* FoursquareAPIManager.h */, @@ -241,6 +246,7 @@ 8D4F05B91C710A8E003B3131 /* AppDelegate.m in Sources */, 8D4F05B61C710A8E003B3131 /* main.m in Sources */, 8DB9ED901C722B13003A03E0 /* FoursquareAPIManager.m in Sources */, + 4D7723DC1C7920F30067969D /* APIManager.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/FixaDaApp/FixaDaApp/.DS_Store b/FixaDaApp/FixaDaApp/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 + +@interface APIManager : NSObject + +// public method: ++ (void)GETRequestWithURL:(NSURL *)URL // + makes it a class method, we don't have to alloc init it! + completionHandler:(void(^)(NSData *data, NSURLResponse *response, NSError *error))completionBlock; + +// completionHandler = block +@end diff --git a/FixaDaApp/FixaDaApp/APIManager.m b/FixaDaApp/FixaDaApp/APIManager.m new file mode 100644 index 0000000..509184f --- /dev/null +++ b/FixaDaApp/FixaDaApp/APIManager.m @@ -0,0 +1,34 @@ +// +// APIManager.m +// FixaDaApp +// +// Created by Shena Yoshida on 2/20/16. +// Copyright © 2016 Michael Kavouras. All rights reserved. +// + +#import "APIManager.h" + +@implementation APIManager + ++ (void)GETRequestWithURL:(NSURL *)URL // + makes it a class method, we don't have to alloc init it! + completionHandler:(void(^)(NSData *data, NSURLResponse *response, NSError *error))completionBlock { + + // access the shared session + NSURLSession *session = [NSURLSession sharedSession]; + + // create a data task to execute a api request. By default this happens on a background thread + NSURLSessionDataTask *task = [session dataTaskWithURL:URL completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { + + // moving back to the main thread + dispatch_async(dispatch_get_main_queue(), ^{ + completionBlock(data, response, error); + }); + }]; + + + // kickoff the task + [task resume]; + +} + +@end diff --git a/FixaDaApp/FixaDaApp/FoursquareAPIManager.h b/FixaDaApp/FixaDaApp/FoursquareAPIManager.h index f9ef616..fc359b0 100644 --- a/FixaDaApp/FixaDaApp/FoursquareAPIManager.h +++ b/FixaDaApp/FixaDaApp/FoursquareAPIManager.h @@ -9,8 +9,14 @@ #import #import +//@protocol VenuePassingDelegate // this doesn't work +//- (void)incomingVenuesFromFoursquare:(NSArray *)venues; +//@end + @interface FoursquareAPIManager : NSObject +//@property (weak, nonatomic) id delegate; + + (void)findSomething:(NSString *)query atLocation:(CLLocation *)location completion:(void(^)(NSArray *data))completion; diff --git a/FixaDaApp/FixaDaApp/FoursquareAPIManager.m b/FixaDaApp/FixaDaApp/FoursquareAPIManager.m index 2c6cb38..405806a 100644 --- a/FixaDaApp/FixaDaApp/FoursquareAPIManager.m +++ b/FixaDaApp/FixaDaApp/FoursquareAPIManager.m @@ -12,6 +12,12 @@ #define kFoursquareAPIClientID @"GWKJBVWFYBJQ02T3TRBB4VBL24AIO4TCMJCGIQ5ADKVKJXGP" #define kFoursquareAPIClientSecret @"2WMEZCDQNKNB5XAE5F4BY1VHBK1HITYRU1JEVCOAD2QRLXDJ" +@interface FoursquareAPIManager () + +@property (nonatomic, strong) NSArray *venue; // why can't I call "self" in this class? + +@end + @implementation FoursquareAPIManager /** @@ -25,15 +31,20 @@ @implementation FoursquareAPIManager **/ + + (void)findSomething:(NSString *)query atLocation:(CLLocation *)location completion:(void(^)(NSArray *data))completion { + + + NSString *baseURL = @"https://api.foursquare.com/v2/venues/search"; NSString *url = [NSString stringWithFormat:@"%@?client_id=%@&client_secret=%@&v=20160215&ll=%f,%f&query=%@", baseURL, kFoursquareAPIClientID, kFoursquareAPIClientSecret, location.coordinate.latitude, location.coordinate.longitude, query]; // NSLog(@"url: %@", url); + AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; [manager GET:url @@ -43,30 +54,44 @@ + (void)findSomething:(NSString *)query { // NSLog(@"response object: %@", responseObject); + if (responseObject != nil) { - NSArray *venues = [[responseObject objectForKey:@"response"] objectForKey:@"venues"]; - -// NSLog(@"venues %@", venues); + NSArray *venuesMy = [[responseObject objectForKey:@"response"] objectForKey:@"venues"]; - for (NSDictionary *venue in venues) { + // one idea: pass over array with delegate +// [self.delegate incomingVenuesFromFoursquare:[NSArray venues]]; + // then sort in the next view! + + + // I can access data from the api, no problem! + NSMutableArray *venueArray = [[NSMutableArray alloc] init]; + NSMutableArray *venueLat = [[NSMutableArray alloc] init]; + NSMutableArray *venueLng = [[NSMutableArray alloc] init]; + + for (NSDictionary *venue in venuesMy) { NSString *venueName = [venue objectForKey:@"name"]; NSString *lat = [[venue objectForKey:@"location"]objectForKey:@"lat"]; NSString *lng = [[venue objectForKey:@"location"]objectForKey:@"lng"]; - NSLog(@"venue name: %@, lat: %@, lng: %@", venueName, lat, lng); + + [venueArray addObject:venueName]; + [venueLat addObject:lat]; + [venueLng addObject:lng]; } + + NSLog(@"venue: %@", venueArray); + NSLog(@"lat: %@", venueLat); + NSLog(@"lng: %@", venueLng); } - - } failure:^(NSURLSessionTask *operation, NSError *error) { NSLog(@"Error: %@", error); }]; - + } @end diff --git a/FixaDaApp/FixaDaApp/ViewController.m b/FixaDaApp/FixaDaApp/ViewController.m index 37b65ee..3bdfa3d 100644 --- a/FixaDaApp/FixaDaApp/ViewController.m +++ b/FixaDaApp/FixaDaApp/ViewController.m @@ -10,6 +10,7 @@ #import #import #import "FoursquareAPIManager.h" +#import "APIManager.h" @interface ViewController () < @@ -42,8 +43,12 @@ - (void)viewDidLoad { self.mapView.delegate = self; - + self.venues = @[ @"I", @"had", @"a", @"difficult", @"time", @"passing", @"the", @"api", @"results", @"back", @"to", @"this", @"view", @"controller"]; +// NSString *searchTerm = @"music"; +// [self.makeNewFourSquareAPIRequestWithSearchTerm:searchTerm callbackBlock:^{ //make an API request +// [self.tableView reloadData]; // reload table data +// }]; } - (void)viewDidAppear:(BOOL)animated @@ -62,16 +67,20 @@ - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { - return 0; + return self.venues.count; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"BeepBoopCellIdentifier"]; + +// original info: +// NSDictionary *venue = self.venues[indexPath.row]; +// NSString *name = venue[@"name"]; // this comes from the api call... +// cell.textLabel.text = name; - NSDictionary *venue = self.venues[indexPath.row]; - NSString *name = venue[@"name"]; - cell.textLabel.text = name; + NSString *venueToPass = self.venues[indexPath.row]; + cell.textLabel.text = venueToPass; return cell; } @@ -113,16 +122,20 @@ - (void)fetchVenuesAtLocation:(CLLocation *)location - (void)showPins { - [self.mapView removeAnnotations:self.mapView.annotations]; +// [self.mapView removeAnnotations:self.mapView.annotations]; - for (NSDictionary *venue in self.venues) { - double lat = [venue[@"location"][@"lat"] doubleValue]; - double lng = [venue[@"location"][@"lng"] doubleValue]; +// for (NSDictionary *venue in self.venues) { +// double lat = [venue[@"location"][@"lat"] doubleValue]; +// double lng = [venue[@"location"][@"lng"] doubleValue]; + + double lat = [@"37.323605" doubleValue]; + double lng = [@"-122.023448" doubleValue]; MKPointAnnotation *point = [[MKPointAnnotation alloc] init]; point.coordinate = CLLocationCoordinate2DMake(lat, lng); [self.mapView addAnnotation:point]; - } +// } } + @end From c794a12f508d3a6bb20de3d230fa56806a14c351 Mon Sep 17 00:00:00 2001 From: shenayoshida Date: Sat, 20 Feb 2016 18:29:17 -0500 Subject: [PATCH 3/5] discovered block --- FixaDaApp/FixaDaApp.xcodeproj/project.pbxproj | 6 ++++ FixaDaApp/FixaDaApp/FoursquareAPIManager.h | 3 +- FixaDaApp/FixaDaApp/FoursquareAPIManager.m | 36 ++++++++++++------- FixaDaApp/FixaDaApp/VenueObject.h | 17 +++++++++ FixaDaApp/FixaDaApp/VenueObject.m | 13 +++++++ FixaDaApp/FixaDaApp/ViewController.m | 34 ++++++++++-------- 6 files changed, 80 insertions(+), 29 deletions(-) create mode 100644 FixaDaApp/FixaDaApp/VenueObject.h create mode 100644 FixaDaApp/FixaDaApp/VenueObject.m diff --git a/FixaDaApp/FixaDaApp.xcodeproj/project.pbxproj b/FixaDaApp/FixaDaApp.xcodeproj/project.pbxproj index 956b01b..d9fb048 100644 --- a/FixaDaApp/FixaDaApp.xcodeproj/project.pbxproj +++ b/FixaDaApp/FixaDaApp.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 4D31B3791C792A6700171150 /* VenueObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D31B3781C792A6700171150 /* VenueObject.m */; }; 4D7723DC1C7920F30067969D /* APIManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D7723DB1C7920F30067969D /* APIManager.m */; }; 79510F25E25C142657CE2DC4 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C1C5BEFC8D1D1F43B84295A /* libPods.a */; }; 8D4F05B61C710A8E003B3131 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D4F05B51C710A8E003B3131 /* main.m */; }; @@ -21,6 +22,8 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 4D31B3771C792A6700171150 /* VenueObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VenueObject.h; sourceTree = ""; }; + 4D31B3781C792A6700171150 /* VenueObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VenueObject.m; sourceTree = ""; }; 4D7723DA1C7920F30067969D /* APIManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIManager.h; sourceTree = ""; }; 4D7723DB1C7920F30067969D /* APIManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APIManager.m; sourceTree = ""; }; 51DA72322BD0057FB2DF45ED /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; @@ -96,6 +99,8 @@ 8D4F05BB1C710A8E003B3131 /* ViewController.m */, 8DB9ED8E1C722B12003A03E0 /* FoursquareAPIManager.h */, 8DB9ED8F1C722B13003A03E0 /* FoursquareAPIManager.m */, + 4D31B3771C792A6700171150 /* VenueObject.h */, + 4D31B3781C792A6700171150 /* VenueObject.m */, 8D4F05BD1C710A8E003B3131 /* Main.storyboard */, 8D4F05C01C710A8E003B3131 /* Assets.xcassets */, 8D4F05C21C710A8E003B3131 /* LaunchScreen.storyboard */, @@ -246,6 +251,7 @@ 8D4F05B91C710A8E003B3131 /* AppDelegate.m in Sources */, 8D4F05B61C710A8E003B3131 /* main.m in Sources */, 8DB9ED901C722B13003A03E0 /* FoursquareAPIManager.m in Sources */, + 4D31B3791C792A6700171150 /* VenueObject.m in Sources */, 4D7723DC1C7920F30067969D /* APIManager.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/FixaDaApp/FixaDaApp/FoursquareAPIManager.h b/FixaDaApp/FixaDaApp/FoursquareAPIManager.h index fc359b0..7b53d29 100644 --- a/FixaDaApp/FixaDaApp/FoursquareAPIManager.h +++ b/FixaDaApp/FixaDaApp/FoursquareAPIManager.h @@ -17,8 +17,9 @@ //@property (weak, nonatomic) id delegate; + + (void)findSomething:(NSString *)query atLocation:(CLLocation *)location - completion:(void(^)(NSArray *data))completion; + completion:(void(^)(NSMutableArray *data))completion; @end diff --git a/FixaDaApp/FixaDaApp/FoursquareAPIManager.m b/FixaDaApp/FixaDaApp/FoursquareAPIManager.m index 405806a..3f93863 100644 --- a/FixaDaApp/FixaDaApp/FoursquareAPIManager.m +++ b/FixaDaApp/FixaDaApp/FoursquareAPIManager.m @@ -8,13 +8,14 @@ #import "FoursquareAPIManager.h" #import +#import "VenueObject.h" #define kFoursquareAPIClientID @"GWKJBVWFYBJQ02T3TRBB4VBL24AIO4TCMJCGIQ5ADKVKJXGP" #define kFoursquareAPIClientSecret @"2WMEZCDQNKNB5XAE5F4BY1VHBK1HITYRU1JEVCOAD2QRLXDJ" @interface FoursquareAPIManager () -@property (nonatomic, strong) NSArray *venue; // why can't I call "self" in this class? +//@property (nonatomic, strong) NSArray *venue; // why can't I call "self" in this class? @end @@ -34,17 +35,13 @@ @implementation FoursquareAPIManager + (void)findSomething:(NSString *)query atLocation:(CLLocation *)location - completion:(void(^)(NSArray *data))completion + completion:(void(^)(NSMutableArray *data))completion { - - + NSMutableArray *locations = [[NSMutableArray alloc] init]; NSString *baseURL = @"https://api.foursquare.com/v2/venues/search"; NSString *url = [NSString stringWithFormat:@"%@?client_id=%@&client_secret=%@&v=20160215&ll=%f,%f&query=%@", baseURL, kFoursquareAPIClientID, kFoursquareAPIClientSecret, location.coordinate.latitude, location.coordinate.longitude, query]; -// NSLog(@"url: %@", url); - - AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; [manager GET:url @@ -75,15 +72,28 @@ + (void)findSomething:(NSString *)query NSString *lat = [[venue objectForKey:@"location"]objectForKey:@"lat"]; NSString *lng = [[venue objectForKey:@"location"]objectForKey:@"lng"]; - [venueArray addObject:venueName]; - [venueLat addObject:lat]; - [venueLng addObject:lng]; + double latDbl = lat.doubleValue; + double lngDbl = lng.doubleValue; + + VenueObject *venue = [[VenueObject alloc] init]; + + venue.name = venueName; + venue.lat = latDbl; + venue.lng = lngDbl; + + [locations addObject:venue]; // add to array + + +// [venueArray addObject:venueName]; +// [venueLat addObject:lat]; +// [venueLng addObject:lng]; } + completion(locations); - NSLog(@"venue: %@", venueArray); - NSLog(@"lat: %@", venueLat); - NSLog(@"lng: %@", venueLng); +// NSLog(@"venue: %@", venueArray); +// NSLog(@"lat: %@", venueLat); +// NSLog(@"lng: %@", venueLng); } diff --git a/FixaDaApp/FixaDaApp/VenueObject.h b/FixaDaApp/FixaDaApp/VenueObject.h new file mode 100644 index 0000000..c004394 --- /dev/null +++ b/FixaDaApp/FixaDaApp/VenueObject.h @@ -0,0 +1,17 @@ +// +// VenueObject.h +// FixaDaApp +// +// Created by Shena Yoshida on 2/20/16. +// Copyright © 2016 Michael Kavouras. All rights reserved. +// + +#import + +@interface VenueObject : NSObject + +@property (nonatomic) NSString *name; +@property (nonatomic) double lat; +@property (nonatomic) double lng; + +@end diff --git a/FixaDaApp/FixaDaApp/VenueObject.m b/FixaDaApp/FixaDaApp/VenueObject.m new file mode 100644 index 0000000..598da64 --- /dev/null +++ b/FixaDaApp/FixaDaApp/VenueObject.m @@ -0,0 +1,13 @@ +// +// VenueObject.m +// FixaDaApp +// +// Created by Shena Yoshida on 2/20/16. +// Copyright © 2016 Michael Kavouras. All rights reserved. +// + +#import "VenueObject.h" + +@implementation VenueObject + +@end diff --git a/FixaDaApp/FixaDaApp/ViewController.m b/FixaDaApp/FixaDaApp/ViewController.m index 3bdfa3d..e55a7ea 100644 --- a/FixaDaApp/FixaDaApp/ViewController.m +++ b/FixaDaApp/FixaDaApp/ViewController.m @@ -11,6 +11,7 @@ #import #import "FoursquareAPIManager.h" #import "APIManager.h" +#import "VenueObject.h" @interface ViewController () < @@ -26,7 +27,7 @@ @interface ViewController () @property (nonatomic, assign) BOOL foundPlaces; -@property (nonatomic) NSArray *venues; +@property (nonatomic) NSMutableArray *venues; @end @@ -43,7 +44,10 @@ - (void)viewDidLoad { self.mapView.delegate = self; - self.venues = @[ @"I", @"had", @"a", @"difficult", @"time", @"passing", @"the", @"api", @"results", @"back", @"to", @"this", @"view", @"controller"]; + self.venues = [[NSMutableArray alloc] init]; + + +// self.venues = @[ @"I", @"had", @"a", @"difficult", @"time", @"passing", @"the", @"api", @"results", @"back", @"to", @"this", @"view", @"controller"]; // NSString *searchTerm = @"music"; // [self.makeNewFourSquareAPIRequestWithSearchTerm:searchTerm callbackBlock:^{ //make an API request @@ -75,12 +79,12 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"BeepBoopCellIdentifier"]; // original info: -// NSDictionary *venue = self.venues[indexPath.row]; -// NSString *name = venue[@"name"]; // this comes from the api call... -// cell.textLabel.text = name; + VenueObject *venue = self.venues[indexPath.row]; + NSString *name = venue.name; // this comes from the api call... + cell.textLabel.text = name; - NSString *venueToPass = self.venues[indexPath.row]; - cell.textLabel.text = venueToPass; +// NSString *venueToPass = self.venues[indexPath.row]; +// cell.textLabel.text = venueToPass; return cell; } @@ -111,7 +115,9 @@ - (void)fetchVenuesAtLocation:(CLLocation *)location __weak typeof(self) weakSelf = self; [FoursquareAPIManager findSomething:@"music" atLocation:location - completion:^(NSArray *data){ + completion:^(NSMutableArray *data){ + + self.venues = data; weakSelf.venues = data; [weakSelf.tableView reloadData]; @@ -124,17 +130,15 @@ - (void)showPins { // [self.mapView removeAnnotations:self.mapView.annotations]; -// for (NSDictionary *venue in self.venues) { -// double lat = [venue[@"location"][@"lat"] doubleValue]; -// double lng = [venue[@"location"][@"lng"] doubleValue]; - - double lat = [@"37.323605" doubleValue]; - double lng = [@"-122.023448" doubleValue]; + for (VenueObject *venue in self.venues) { + double lat = venue.lat; + double lng = venue.lng; + MKPointAnnotation *point = [[MKPointAnnotation alloc] init]; point.coordinate = CLLocationCoordinate2DMake(lat, lng); [self.mapView addAnnotation:point]; -// } + } } From de1e217b830a58a6813027e78bb072a4c9a967f6 Mon Sep 17 00:00:00 2001 From: shenayoshida Date: Sat, 20 Feb 2016 18:36:59 -0500 Subject: [PATCH 4/5] refactored and tidied up - everything works --- FixaDaApp/FixaDaApp.xcodeproj/project.pbxproj | 6 ---- FixaDaApp/FixaDaApp/APIManager.h | 18 ---------- FixaDaApp/FixaDaApp/APIManager.m | 34 ------------------ FixaDaApp/FixaDaApp/FoursquareAPIManager.h | 7 ---- FixaDaApp/FixaDaApp/FoursquareAPIManager.m | 35 ++++--------------- FixaDaApp/FixaDaApp/ViewController.m | 20 ++--------- 6 files changed, 8 insertions(+), 112 deletions(-) delete mode 100644 FixaDaApp/FixaDaApp/APIManager.h delete mode 100644 FixaDaApp/FixaDaApp/APIManager.m diff --git a/FixaDaApp/FixaDaApp.xcodeproj/project.pbxproj b/FixaDaApp/FixaDaApp.xcodeproj/project.pbxproj index d9fb048..fc163bd 100644 --- a/FixaDaApp/FixaDaApp.xcodeproj/project.pbxproj +++ b/FixaDaApp/FixaDaApp.xcodeproj/project.pbxproj @@ -8,7 +8,6 @@ /* Begin PBXBuildFile section */ 4D31B3791C792A6700171150 /* VenueObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D31B3781C792A6700171150 /* VenueObject.m */; }; - 4D7723DC1C7920F30067969D /* APIManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D7723DB1C7920F30067969D /* APIManager.m */; }; 79510F25E25C142657CE2DC4 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C1C5BEFC8D1D1F43B84295A /* libPods.a */; }; 8D4F05B61C710A8E003B3131 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D4F05B51C710A8E003B3131 /* main.m */; }; 8D4F05B91C710A8E003B3131 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D4F05B81C710A8E003B3131 /* AppDelegate.m */; }; @@ -24,8 +23,6 @@ /* Begin PBXFileReference section */ 4D31B3771C792A6700171150 /* VenueObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VenueObject.h; sourceTree = ""; }; 4D31B3781C792A6700171150 /* VenueObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VenueObject.m; sourceTree = ""; }; - 4D7723DA1C7920F30067969D /* APIManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIManager.h; sourceTree = ""; }; - 4D7723DB1C7920F30067969D /* APIManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APIManager.m; sourceTree = ""; }; 51DA72322BD0057FB2DF45ED /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; 5C1C5BEFC8D1D1F43B84295A /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; }; 8D4F05B11C710A8E003B3131 /* FixaDaApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FixaDaApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -93,8 +90,6 @@ children = ( 8D4F05B71C710A8E003B3131 /* AppDelegate.h */, 8D4F05B81C710A8E003B3131 /* AppDelegate.m */, - 4D7723DA1C7920F30067969D /* APIManager.h */, - 4D7723DB1C7920F30067969D /* APIManager.m */, 8D4F05BA1C710A8E003B3131 /* ViewController.h */, 8D4F05BB1C710A8E003B3131 /* ViewController.m */, 8DB9ED8E1C722B12003A03E0 /* FoursquareAPIManager.h */, @@ -252,7 +247,6 @@ 8D4F05B61C710A8E003B3131 /* main.m in Sources */, 8DB9ED901C722B13003A03E0 /* FoursquareAPIManager.m in Sources */, 4D31B3791C792A6700171150 /* VenueObject.m in Sources */, - 4D7723DC1C7920F30067969D /* APIManager.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/FixaDaApp/FixaDaApp/APIManager.h b/FixaDaApp/FixaDaApp/APIManager.h deleted file mode 100644 index ade8ad7..0000000 --- a/FixaDaApp/FixaDaApp/APIManager.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// APIManager.h -// FixaDaApp -// -// Created by Shena Yoshida on 2/20/16. -// Copyright © 2016 Michael Kavouras. All rights reserved. -// - -#import - -@interface APIManager : NSObject - -// public method: -+ (void)GETRequestWithURL:(NSURL *)URL // + makes it a class method, we don't have to alloc init it! - completionHandler:(void(^)(NSData *data, NSURLResponse *response, NSError *error))completionBlock; - -// completionHandler = block -@end diff --git a/FixaDaApp/FixaDaApp/APIManager.m b/FixaDaApp/FixaDaApp/APIManager.m deleted file mode 100644 index 509184f..0000000 --- a/FixaDaApp/FixaDaApp/APIManager.m +++ /dev/null @@ -1,34 +0,0 @@ -// -// APIManager.m -// FixaDaApp -// -// Created by Shena Yoshida on 2/20/16. -// Copyright © 2016 Michael Kavouras. All rights reserved. -// - -#import "APIManager.h" - -@implementation APIManager - -+ (void)GETRequestWithURL:(NSURL *)URL // + makes it a class method, we don't have to alloc init it! - completionHandler:(void(^)(NSData *data, NSURLResponse *response, NSError *error))completionBlock { - - // access the shared session - NSURLSession *session = [NSURLSession sharedSession]; - - // create a data task to execute a api request. By default this happens on a background thread - NSURLSessionDataTask *task = [session dataTaskWithURL:URL completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { - - // moving back to the main thread - dispatch_async(dispatch_get_main_queue(), ^{ - completionBlock(data, response, error); - }); - }]; - - - // kickoff the task - [task resume]; - -} - -@end diff --git a/FixaDaApp/FixaDaApp/FoursquareAPIManager.h b/FixaDaApp/FixaDaApp/FoursquareAPIManager.h index 7b53d29..613515d 100644 --- a/FixaDaApp/FixaDaApp/FoursquareAPIManager.h +++ b/FixaDaApp/FixaDaApp/FoursquareAPIManager.h @@ -9,15 +9,8 @@ #import #import -//@protocol VenuePassingDelegate // this doesn't work -//- (void)incomingVenuesFromFoursquare:(NSArray *)venues; -//@end - @interface FoursquareAPIManager : NSObject -//@property (weak, nonatomic) id delegate; - - + (void)findSomething:(NSString *)query atLocation:(CLLocation *)location completion:(void(^)(NSMutableArray *data))completion; diff --git a/FixaDaApp/FixaDaApp/FoursquareAPIManager.m b/FixaDaApp/FixaDaApp/FoursquareAPIManager.m index 3f93863..05b9931 100644 --- a/FixaDaApp/FixaDaApp/FoursquareAPIManager.m +++ b/FixaDaApp/FixaDaApp/FoursquareAPIManager.m @@ -15,8 +15,6 @@ @interface FoursquareAPIManager () -//@property (nonatomic, strong) NSArray *venue; // why can't I call "self" in this class? - @end @implementation FoursquareAPIManager @@ -37,7 +35,7 @@ + (void)findSomething:(NSString *)query atLocation:(CLLocation *)location completion:(void(^)(NSMutableArray *data))completion { - NSMutableArray *locations = [[NSMutableArray alloc] init]; + NSMutableArray *locations = [[NSMutableArray alloc] init]; // alloc init array NSString *baseURL = @"https://api.foursquare.com/v2/venues/search"; NSString *url = [NSString stringWithFormat:@"%@?client_id=%@&client_secret=%@&v=20160215&ll=%f,%f&query=%@", baseURL, kFoursquareAPIClientID, kFoursquareAPIClientSecret, location.coordinate.latitude, location.coordinate.longitude, query]; @@ -49,51 +47,30 @@ + (void)findSomething:(NSString *)query progress:nil success:^(NSURLSessionTask *task, id responseObject) { -// NSLog(@"response object: %@", responseObject); - if (responseObject != nil) { NSArray *venuesMy = [[responseObject objectForKey:@"response"] objectForKey:@"venues"]; - - // one idea: pass over array with delegate -// [self.delegate incomingVenuesFromFoursquare:[NSArray venues]]; - // then sort in the next view! - - - // I can access data from the api, no problem! - NSMutableArray *venueArray = [[NSMutableArray alloc] init]; - NSMutableArray *venueLat = [[NSMutableArray alloc] init]; - NSMutableArray *venueLng = [[NSMutableArray alloc] init]; for (NSDictionary *venue in venuesMy) { - NSString *venueName = [venue objectForKey:@"name"]; + NSString *venueName = [venue objectForKey:@"name"]; // pull info from dictionary NSString *lat = [[venue objectForKey:@"location"]objectForKey:@"lat"]; NSString *lng = [[venue objectForKey:@"location"]objectForKey:@"lng"]; - double latDbl = lat.doubleValue; + double latDbl = lat.doubleValue; // convert to doubles double lngDbl = lng.doubleValue; - VenueObject *venue = [[VenueObject alloc] init]; + VenueObject *venue = [[VenueObject alloc] init]; // initialize storage object - venue.name = venueName; + venue.name = venueName; // save in object venue.lat = latDbl; venue.lng = lngDbl; - [locations addObject:venue]; // add to array - - -// [venueArray addObject:venueName]; -// [venueLat addObject:lat]; -// [venueLng addObject:lng]; + [locations addObject:venue]; // add to object } completion(locations); - -// NSLog(@"venue: %@", venueArray); -// NSLog(@"lat: %@", venueLat); -// NSLog(@"lng: %@", venueLng); } diff --git a/FixaDaApp/FixaDaApp/ViewController.m b/FixaDaApp/FixaDaApp/ViewController.m index e55a7ea..4468676 100644 --- a/FixaDaApp/FixaDaApp/ViewController.m +++ b/FixaDaApp/FixaDaApp/ViewController.m @@ -10,7 +10,6 @@ #import #import #import "FoursquareAPIManager.h" -#import "APIManager.h" #import "VenueObject.h" @interface ViewController () @@ -22,11 +21,8 @@ @interface ViewController () @property (weak, nonatomic) IBOutlet MKMapView *mapView; @property (weak, nonatomic) IBOutlet UITableView *tableView; - @property (nonatomic) CLLocationManager *locationManager; - @property (nonatomic, assign) BOOL foundPlaces; - @property (nonatomic) NSMutableArray *venues; @end @@ -46,13 +42,6 @@ - (void)viewDidLoad { self.venues = [[NSMutableArray alloc] init]; - -// self.venues = @[ @"I", @"had", @"a", @"difficult", @"time", @"passing", @"the", @"api", @"results", @"back", @"to", @"this", @"view", @"controller"]; - -// NSString *searchTerm = @"music"; -// [self.makeNewFourSquareAPIRequestWithSearchTerm:searchTerm callbackBlock:^{ //make an API request -// [self.tableView reloadData]; // reload table data -// }]; } - (void)viewDidAppear:(BOOL)animated @@ -78,14 +67,10 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N { UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"BeepBoopCellIdentifier"]; -// original info: VenueObject *venue = self.venues[indexPath.row]; NSString *name = venue.name; // this comes from the api call... cell.textLabel.text = name; -// NSString *venueToPass = self.venues[indexPath.row]; -// cell.textLabel.text = venueToPass; - return cell; } @@ -117,7 +102,7 @@ - (void)fetchVenuesAtLocation:(CLLocation *)location atLocation:location completion:^(NSMutableArray *data){ - self.venues = data; + self.venues = data; // pull data with the block! weakSelf.venues = data; [weakSelf.tableView reloadData]; @@ -128,12 +113,11 @@ - (void)fetchVenuesAtLocation:(CLLocation *)location - (void)showPins { -// [self.mapView removeAnnotations:self.mapView.annotations]; + [self.mapView removeAnnotations:self.mapView.annotations]; for (VenueObject *venue in self.venues) { double lat = venue.lat; double lng = venue.lng; - MKPointAnnotation *point = [[MKPointAnnotation alloc] init]; point.coordinate = CLLocationCoordinate2DMake(lat, lng); From e679452c93b010691ba96f550566d075badeaf43 Mon Sep 17 00:00:00 2001 From: shenayoshida Date: Sat, 20 Feb 2016 20:50:21 -0500 Subject: [PATCH 5/5] remove .ds_store --- .DS_Store | Bin 6148 -> 0 bytes FixaDaApp/.DS_Store | Bin 6148 -> 0 bytes FixaDaApp/FixaDaApp/.DS_Store | Bin 6148 -> 0 bytes FixaDaApp/FixaDaApp/FoursquareAPIManager.m | 65 ++++++++++----------- FixaDaApp/FixaDaApp/ViewController.m | 4 +- 5 files changed, 33 insertions(+), 36 deletions(-) delete mode 100644 .DS_Store delete mode 100644 FixaDaApp/.DS_Store delete mode 100644 FixaDaApp/FixaDaApp/.DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index b45d3f3c936508311dfe0917ea20447b42bb0f64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKJ5EC}5S)b+K{P2-`U>2@L=P^&1^A>vij+tQiSkuBSB{q1PeJrT7n*2RT93Wn zvE?b=z6D^b@AU()05GRJV(-J$eBXUyHx)4=oo5Vq!y|Ust-mJO=L62Y!!thdL+&sB z$L4*z-T1al3P=GdAO)m=6u6)QRb1!y7d%r(NdYNv9SZpOq0t?C;g}eo4i3=*5N8aB zaUQ({v3Y>l3&%u8XqHrBQmtAHOFHAN@_ONzm~>b*A67S8bto3M^ZXX+u%4(<3P^!d z1#WY>@cREm|D*puC21uEq`*}vV6)+6Sn)|!TPKh6THENabk8}^-8c^lhbYIyD92oQ fIbKFm<~5&lzZZ^)L1#SZMEwl7E;1?b-wGT7sPGik diff --git a/FixaDaApp/.DS_Store b/FixaDaApp/.DS_Store deleted file mode 100644 index f05e99afaf2993cc648ccd309a9c4c0f83baf3cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKT}s115dK#4&?-nl1Rrw(p*M&n_5k(*tx54OA)&SCW6tQ4r|=AZv$IG;EHpld z=nTw!o8A4gnGbe11Her-`4|`h7|;cyBZeG2!5PF70=iiZHflJh=^L1yob(jLC zz;9DP_U;f<+~b9NcWeJ<#Z6Te+}1el4&#E;GgQd2-vU z(|q%k0k7|c9zuJrSyuTsnf2ZF*EaIeXFKzJW_~L?V$EC^%zN3+bt;El4|Xfx6Ir?+ zdn@PO>~`LBzqp0}seo*5+Td8xqA6esm;#>)$oUY{1(Se{qCYwqd2QgnMN_~OXe)52 zk0ZJNuXfk}ZIV5i0;a&9Qou#&ES)f=aJP1nle;#i&*@?^uTk_AhHxGGhFrzxbZ;Ds Xr9n&rHj3<_*^hvi!GbC9qY8Wgv*dPV diff --git a/FixaDaApp/FixaDaApp/.DS_Store b/FixaDaApp/FixaDaApp/.DS_Store deleted file mode 100644 index 5008ddfcf53c02e82d7eee2e57c38e5672ef89f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0