├── .gitignore ├── Screenshots └── 1.png ├── Podfile ├── Places.xcworkspace └── contents.xcworkspacedata ├── Podfile.lock ├── Places.xcodeproj ├── project.xcworkspace │ └── contents.xcworkspacedata ├── xcshareddata │ └── xcschemes │ │ └── Places.xcscheme └── project.pbxproj ├── Code ├── BBUPlacesViewController.h ├── BBUAppDelegate.h ├── BBUPlace.h ├── BBUPlace.m ├── BBUAppDelegate.m └── BBUPlacesViewController.m ├── Supporting_Files ├── Places-Prefix.pch ├── main.m └── Places-Info.plist ├── Resources └── Images.xcassets │ ├── AppIcon.appiconset │ └── Contents.json │ └── LaunchImage.launchimage │ └── Contents.json ├── README.md └── LICENSE /.gitignore: -------------------------------------------------------------------------------- 1 | xcuserdata 2 | Pods 3 | -------------------------------------------------------------------------------- /Screenshots/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/neonichu/Places/HEAD/Screenshots/1.png -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, "7.0" 2 | 3 | target "Places" do 4 | 5 | pod 'moves-ios-sdk' 6 | 7 | end 8 | 9 | -------------------------------------------------------------------------------- /Places.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - moves-ios-sdk (0.1.1) 3 | 4 | DEPENDENCIES: 5 | - moves-ios-sdk 6 | 7 | SPEC CHECKSUMS: 8 | moves-ios-sdk: 2909733793bcea629b476958dd39aa61342593a2 9 | 10 | COCOAPODS: 0.29.0 11 | -------------------------------------------------------------------------------- /Places.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Code/BBUPlacesViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // BBUPlacesViewController.h 3 | // Places 4 | // 5 | // Created by Boris Bügling on 27.03.14. 6 | // Copyright (c) 2014 Boris Bügling. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface BBUPlacesViewController : UIViewController 12 | 13 | -(void)refresh; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Code/BBUAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // BBUAppDelegate.h 3 | // Places 4 | // 5 | // Created by Boris Bügling on 27.03.14. 6 | // Copyright (c) 2014 Boris Bügling. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface BBUAppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Supporting_Files/Places-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_3_0 10 | #warning "This project uses features only available in iOS SDK 3.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /Supporting_Files/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // Places 4 | // 5 | // Created by Boris Bügling on 27.03.14. 6 | // Copyright (c) 2014 Boris Bügling. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "BBUAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([BBUAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Resources/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "60x60", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Code/BBUPlace.h: -------------------------------------------------------------------------------- 1 | // 2 | // BBUPlace.h 3 | // Places 4 | // 5 | // Created by Boris Bügling on 27.03.14. 6 | // Copyright (c) 2014 Boris Bügling. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @class MVPlace; 13 | 14 | @interface BBUPlace : NSObject 15 | 16 | @property (nonatomic, readonly) MKCircle* circle; 17 | @property (nonatomic) NSTimeInterval duration; 18 | @property (nonatomic, readonly) MVPlace* place; 19 | 20 | -(id)initWithPlace:(MVPlace*)place; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Places 2 | 3 | [![No Maintenance Intended](http://unmaintained.tech/badge.svg)](http://unmaintained.tech/) 4 | 5 | Places uses the [Moves][1] API to visualize which places you spent the most 6 | time at in the last seven days. 7 | 8 | It runs on iOS 7 only and you need to obtain OAuth credentials from 9 | [Moves][2] to use it. 10 | 11 | ## Screenshots 12 | 13 | ![](Screenshots/1.png) 14 | 15 | --- 16 | 17 | Created by Boris Bügling () 18 | 19 | [1]: http://www.moves-app.com 20 | [2]: https://dev.moves-app.com/login 21 | 22 | -------------------------------------------------------------------------------- /Resources/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014 Boris Buegling (http://buegling.com/) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Code/BBUPlace.m: -------------------------------------------------------------------------------- 1 | // 2 | // BBUPlace.m 3 | // Places 4 | // 5 | // Created by Boris Bügling on 27.03.14. 6 | // Copyright (c) 2014 Boris Bügling. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "BBUPlace.h" 12 | 13 | @interface BBUPlace () 14 | 15 | @property (nonatomic) MVPlace* place; 16 | 17 | @end 18 | 19 | #pragma mark - 20 | 21 | @implementation BBUPlace 22 | 23 | -(MKCircle *)circle { 24 | return [MKCircle circleWithCenterCoordinate:self.coordinate radius:MIN(self.duration / 100.0, 300.0)]; 25 | } 26 | 27 | -(CLLocationCoordinate2D)coordinate { 28 | return CLLocationCoordinate2DMake(self.place.location.lat, self.place.location.lon); 29 | } 30 | 31 | -(NSString *)description { 32 | return [NSString stringWithFormat:@"BBUPlace: %@ for %f seconds", self.place.name, self.duration]; 33 | } 34 | 35 | -(id)initWithPlace:(MVPlace*)place { 36 | self = [super init]; 37 | if (self) { 38 | self.duration = 0.0f; 39 | self.place = place; 40 | } 41 | return self; 42 | } 43 | 44 | -(NSString *)subtitle { 45 | return [NSString stringWithFormat:@"%.1f hours", self.duration / 60.0 / 60.0]; 46 | } 47 | 48 | -(NSString *)title { 49 | return self.place.name; 50 | } 51 | 52 | @end 53 | -------------------------------------------------------------------------------- /Supporting_Files/Places-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | ${PRODUCT_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIdentifier 12 | org.vu0.${PRODUCT_NAME:rfc1034identifier} 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1.0 25 | LSRequiresIPhoneOS 26 | 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | 35 | CFBundleURLTypes 36 | 37 | 38 | CFBundleURLName 39 | vu0.org.places 40 | CFBundleURLSchemes 41 | 42 | places://login 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /Code/BBUAppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // BBUAppDelegate.m 3 | // Places 4 | // 5 | // Created by Boris Bügling on 27.03.14. 6 | // Copyright (c) 2014 Boris Bügling. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "BBUAppDelegate.h" 12 | #import "BBUPlacesViewController.h" 13 | 14 | static NSString* const BBUMovesClientId = @"MyMovesClientId"; 15 | static NSString* const BBUMovesClientSecret = @"MyMovesClientSecret"; 16 | static NSString* const BBUMovesURLScheme = @"my://movesUrlScheme"; 17 | 18 | @implementation BBUAppDelegate 19 | 20 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 21 | { 22 | [[MovesAPI sharedInstance] setShareMovesOauthClientId:BBUMovesClientId 23 | oauthClientSecret:BBUMovesClientSecret 24 | callbackUrlScheme:BBUMovesURLScheme]; 25 | 26 | BBUPlacesViewController* placesViewController = [BBUPlacesViewController new]; 27 | 28 | self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 29 | self.window.backgroundColor = [UIColor whiteColor]; 30 | self.window.rootViewController = [[UINavigationController alloc] initWithRootViewController:placesViewController]; 31 | [self.window makeKeyAndVisible]; 32 | 33 | [[MovesAPI sharedInstance] authorizationWithViewController:self.window.rootViewController 34 | success:^{ 35 | [[MovesAPI sharedInstance] getUserSuccess:^(MVUser *user) { 36 | [placesViewController refresh]; 37 | } failure:^(NSError *error) { 38 | [self showError:error]; 39 | }]; 40 | } failure:^(NSError *error) { 41 | [self showError:error]; 42 | }]; 43 | 44 | return YES; 45 | } 46 | 47 | - (BOOL)application:(UIApplication *)application 48 | openURL:(NSURL *)url 49 | sourceApplication:(NSString *)sourceApplication 50 | annotation:(id)annotation 51 | { 52 | if ([[MovesAPI sharedInstance] canHandleOpenUrl:url]) { 53 | return YES; 54 | } 55 | 56 | return NO; 57 | } 58 | 59 | - (void)showError:(NSError*)error 60 | { 61 | UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error", nil) 62 | message:error.localizedDescription 63 | delegate:nil 64 | cancelButtonTitle:NSLocalizedString(@"OK", nil) 65 | otherButtonTitles:nil]; 66 | [alertView show]; 67 | } 68 | 69 | @end 70 | -------------------------------------------------------------------------------- /Places.xcodeproj/xcshareddata/xcschemes/Places.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 51 | 52 | 58 | 59 | 60 | 61 | 62 | 63 | 69 | 70 | 76 | 77 | 78 | 79 | 81 | 82 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /Code/BBUPlacesViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // BBUPlacesViewController.m 3 | // Places 4 | // 5 | // Created by Boris Bügling on 27.03.14. 6 | // Copyright (c) 2014 Boris Bügling. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | #import "BBUPlace.h" 13 | #import "BBUPlacesViewController.h" 14 | 15 | @interface BBUPlacesViewController () 16 | 17 | @property (nonatomic) MKMapView* mapView; 18 | 19 | @end 20 | 21 | #pragma mark - 22 | 23 | @implementation BBUPlacesViewController 24 | 25 | -(void)adjustMapRectToOverlays { 26 | MKMapRect zoomRect = MKMapRectNull; 27 | 28 | for (id overlay in self.mapView.overlays) { 29 | MKMapPoint overlayPoint = MKMapPointForCoordinate(overlay.coordinate); 30 | MKMapRect pointRect = MKMapRectMake(overlayPoint.x, overlayPoint.y, 0.1, 0.1); 31 | zoomRect = MKMapRectUnion(zoomRect, pointRect); 32 | } 33 | 34 | [self.mapView setVisibleMapRect:zoomRect animated:YES]; 35 | } 36 | 37 | -(id)init { 38 | self = [super init]; 39 | if (self) { 40 | self.title = NSLocalizedString(@"Places", nil); 41 | } 42 | return self; 43 | } 44 | 45 | -(void)refresh { 46 | [[MovesAPI sharedInstance] getDailyPlacesByPastDays:7 success:^(NSArray *dailyPlaces) { 47 | NSMutableDictionary* places = [@{} mutableCopy]; 48 | 49 | for (MVDailyPlace* place in dailyPlaces) { 50 | for (MVSegment* segment in place.segments) { 51 | if (segment.type != MVSegmentTypePlace) { 52 | continue; 53 | } 54 | 55 | BBUPlace* currentPlace = places[segment.place.placeId]; 56 | if (!currentPlace) { 57 | currentPlace = [[BBUPlace alloc] initWithPlace:segment.place]; 58 | places[segment.place.placeId] = currentPlace; 59 | } 60 | 61 | currentPlace.duration += [segment.endTime timeIntervalSinceDate:segment.startTime]; 62 | } 63 | } 64 | 65 | for (BBUPlace* place in places.allValues) { 66 | [self.mapView addAnnotation:place]; 67 | [self.mapView addOverlay:place.circle]; 68 | } 69 | 70 | NSArray* placesByDuration = [places.allValues sortedArrayUsingComparator:^NSComparisonResult(BBUPlace* place1, 71 | BBUPlace* place2) { 72 | return [@(place1.duration) compare:@(place2.duration)]; 73 | }]; 74 | 75 | [self.mapView setCenterCoordinate:[[placesByDuration firstObject] coordinate] animated:YES]; 76 | [self adjustMapRectToOverlays]; 77 | } failure:^(NSError *error) { 78 | UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error", nil) 79 | message:error.localizedDescription 80 | delegate:nil 81 | cancelButtonTitle:NSLocalizedString(@"OK", nil) 82 | otherButtonTitles:nil]; 83 | [alertView show]; 84 | }]; 85 | } 86 | 87 | -(void)viewDidLoad { 88 | [super viewDidLoad]; 89 | 90 | self.mapView = [[MKMapView alloc] initWithFrame:self.view.bounds]; 91 | self.mapView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 92 | self.mapView.delegate = self; 93 | [self.view addSubview:self.mapView]; 94 | } 95 | 96 | #pragma mark - 97 | 98 | -(MKOverlayView *)mapView:(MKMapView *)map viewForOverlay:(id )overlay { 99 | MKCircleView *circleView = [[MKCircleView alloc] initWithOverlay:overlay]; 100 | circleView.strokeColor = [UIColor redColor]; 101 | circleView.fillColor = [[UIColor redColor] colorWithAlphaComponent:0.4]; 102 | return circleView; 103 | } 104 | 105 | @end 106 | -------------------------------------------------------------------------------- /Places.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 20F15D6022174B52B4520CED /* libPods-Places.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D376BD0E15CC4510BD225856 /* libPods-Places.a */; }; 11 | 86FB841C18E4D680008A41BA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 86FB841B18E4D680008A41BA /* Foundation.framework */; }; 12 | 86FB841E18E4D680008A41BA /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 86FB841D18E4D680008A41BA /* CoreGraphics.framework */; }; 13 | 86FB842018E4D680008A41BA /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 86FB841F18E4D680008A41BA /* UIKit.framework */; }; 14 | 86FB842818E4D680008A41BA /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 86FB842718E4D680008A41BA /* main.m */; }; 15 | 86FB842C18E4D680008A41BA /* BBUAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 86FB842B18E4D680008A41BA /* BBUAppDelegate.m */; }; 16 | 86FB842E18E4D680008A41BA /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 86FB842D18E4D680008A41BA /* Images.xcassets */; }; 17 | 86FB844D18E4DBA5008A41BA /* BBUPlacesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 86FB844C18E4DBA5008A41BA /* BBUPlacesViewController.m */; }; 18 | 86FB845018E4E2D9008A41BA /* BBUPlace.m in Sources */ = {isa = PBXBuildFile; fileRef = 86FB844F18E4E2D9008A41BA /* BBUPlace.m */; }; 19 | /* End PBXBuildFile section */ 20 | 21 | /* Begin PBXFileReference section */ 22 | 0B6EE380F972459891CECE5C /* Pods-Places.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Places.xcconfig"; path = "Pods/Pods-Places.xcconfig"; sourceTree = ""; }; 23 | 86FB841818E4D680008A41BA /* Places.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Places.app; sourceTree = BUILT_PRODUCTS_DIR; }; 24 | 86FB841B18E4D680008A41BA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 25 | 86FB841D18E4D680008A41BA /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 26 | 86FB841F18E4D680008A41BA /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 27 | 86FB842318E4D680008A41BA /* Places-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Places-Info.plist"; sourceTree = ""; }; 28 | 86FB842718E4D680008A41BA /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 29 | 86FB842918E4D680008A41BA /* Places-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Places-Prefix.pch"; sourceTree = ""; }; 30 | 86FB842A18E4D680008A41BA /* BBUAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BBUAppDelegate.h; sourceTree = ""; }; 31 | 86FB842B18E4D680008A41BA /* BBUAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BBUAppDelegate.m; sourceTree = ""; }; 32 | 86FB842D18E4D680008A41BA /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 33 | 86FB844B18E4DBA5008A41BA /* BBUPlacesViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BBUPlacesViewController.h; sourceTree = ""; }; 34 | 86FB844C18E4DBA5008A41BA /* BBUPlacesViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BBUPlacesViewController.m; sourceTree = ""; }; 35 | 86FB844E18E4E2D9008A41BA /* BBUPlace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BBUPlace.h; sourceTree = ""; }; 36 | 86FB844F18E4E2D9008A41BA /* BBUPlace.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BBUPlace.m; sourceTree = ""; }; 37 | D376BD0E15CC4510BD225856 /* libPods-Places.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Places.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 38 | /* End PBXFileReference section */ 39 | 40 | /* Begin PBXFrameworksBuildPhase section */ 41 | 86FB841518E4D680008A41BA /* Frameworks */ = { 42 | isa = PBXFrameworksBuildPhase; 43 | buildActionMask = 2147483647; 44 | files = ( 45 | 86FB841E18E4D680008A41BA /* CoreGraphics.framework in Frameworks */, 46 | 86FB842018E4D680008A41BA /* UIKit.framework in Frameworks */, 47 | 86FB841C18E4D680008A41BA /* Foundation.framework in Frameworks */, 48 | 20F15D6022174B52B4520CED /* libPods-Places.a in Frameworks */, 49 | ); 50 | runOnlyForDeploymentPostprocessing = 0; 51 | }; 52 | /* End PBXFrameworksBuildPhase section */ 53 | 54 | /* Begin PBXGroup section */ 55 | 86FB840F18E4D680008A41BA = { 56 | isa = PBXGroup; 57 | children = ( 58 | 86FB842118E4D680008A41BA /* Code */, 59 | 86FB841A18E4D680008A41BA /* Frameworks */, 60 | 86FB841918E4D680008A41BA /* Products */, 61 | 86FB844A18E4D6D3008A41BA /* Resources */, 62 | 86FB842218E4D680008A41BA /* Supporting Files */, 63 | 0B6EE380F972459891CECE5C /* Pods-Places.xcconfig */, 64 | ); 65 | sourceTree = ""; 66 | }; 67 | 86FB841918E4D680008A41BA /* Products */ = { 68 | isa = PBXGroup; 69 | children = ( 70 | 86FB841818E4D680008A41BA /* Places.app */, 71 | ); 72 | name = Products; 73 | sourceTree = ""; 74 | }; 75 | 86FB841A18E4D680008A41BA /* Frameworks */ = { 76 | isa = PBXGroup; 77 | children = ( 78 | 86FB841D18E4D680008A41BA /* CoreGraphics.framework */, 79 | 86FB841B18E4D680008A41BA /* Foundation.framework */, 80 | 86FB841F18E4D680008A41BA /* UIKit.framework */, 81 | D376BD0E15CC4510BD225856 /* libPods-Places.a */, 82 | ); 83 | name = Frameworks; 84 | sourceTree = ""; 85 | }; 86 | 86FB842118E4D680008A41BA /* Code */ = { 87 | isa = PBXGroup; 88 | children = ( 89 | 86FB842A18E4D680008A41BA /* BBUAppDelegate.h */, 90 | 86FB842B18E4D680008A41BA /* BBUAppDelegate.m */, 91 | 86FB844E18E4E2D9008A41BA /* BBUPlace.h */, 92 | 86FB844F18E4E2D9008A41BA /* BBUPlace.m */, 93 | 86FB844B18E4DBA5008A41BA /* BBUPlacesViewController.h */, 94 | 86FB844C18E4DBA5008A41BA /* BBUPlacesViewController.m */, 95 | ); 96 | path = Code; 97 | sourceTree = ""; 98 | }; 99 | 86FB842218E4D680008A41BA /* Supporting Files */ = { 100 | isa = PBXGroup; 101 | children = ( 102 | 86FB842718E4D680008A41BA /* main.m */, 103 | 86FB842318E4D680008A41BA /* Places-Info.plist */, 104 | 86FB842918E4D680008A41BA /* Places-Prefix.pch */, 105 | ); 106 | name = "Supporting Files"; 107 | path = Supporting_Files; 108 | sourceTree = ""; 109 | }; 110 | 86FB844A18E4D6D3008A41BA /* Resources */ = { 111 | isa = PBXGroup; 112 | children = ( 113 | 86FB842D18E4D680008A41BA /* Images.xcassets */, 114 | ); 115 | path = Resources; 116 | sourceTree = ""; 117 | }; 118 | /* End PBXGroup section */ 119 | 120 | /* Begin PBXNativeTarget section */ 121 | 86FB841718E4D680008A41BA /* Places */ = { 122 | isa = PBXNativeTarget; 123 | buildConfigurationList = 86FB844418E4D680008A41BA /* Build configuration list for PBXNativeTarget "Places" */; 124 | buildPhases = ( 125 | 88ED3A2A3BB347A893B16888 /* Check Pods Manifest.lock */, 126 | 86FB841418E4D680008A41BA /* Sources */, 127 | 86FB841518E4D680008A41BA /* Frameworks */, 128 | 86FB841618E4D680008A41BA /* Resources */, 129 | 881B0B89FAA046188732D870 /* Copy Pods Resources */, 130 | ); 131 | buildRules = ( 132 | ); 133 | dependencies = ( 134 | ); 135 | name = Places; 136 | productName = Places; 137 | productReference = 86FB841818E4D680008A41BA /* Places.app */; 138 | productType = "com.apple.product-type.application"; 139 | }; 140 | /* End PBXNativeTarget section */ 141 | 142 | /* Begin PBXProject section */ 143 | 86FB841018E4D680008A41BA /* Project object */ = { 144 | isa = PBXProject; 145 | attributes = { 146 | CLASSPREFIX = BBU; 147 | LastUpgradeCheck = 0510; 148 | ORGANIZATIONNAME = "Boris Bügling"; 149 | }; 150 | buildConfigurationList = 86FB841318E4D680008A41BA /* Build configuration list for PBXProject "Places" */; 151 | compatibilityVersion = "Xcode 3.2"; 152 | developmentRegion = English; 153 | hasScannedForEncodings = 0; 154 | knownRegions = ( 155 | en, 156 | ); 157 | mainGroup = 86FB840F18E4D680008A41BA; 158 | productRefGroup = 86FB841918E4D680008A41BA /* Products */; 159 | projectDirPath = ""; 160 | projectRoot = ""; 161 | targets = ( 162 | 86FB841718E4D680008A41BA /* Places */, 163 | ); 164 | }; 165 | /* End PBXProject section */ 166 | 167 | /* Begin PBXResourcesBuildPhase section */ 168 | 86FB841618E4D680008A41BA /* Resources */ = { 169 | isa = PBXResourcesBuildPhase; 170 | buildActionMask = 2147483647; 171 | files = ( 172 | 86FB842E18E4D680008A41BA /* Images.xcassets in Resources */, 173 | ); 174 | runOnlyForDeploymentPostprocessing = 0; 175 | }; 176 | /* End PBXResourcesBuildPhase section */ 177 | 178 | /* Begin PBXShellScriptBuildPhase section */ 179 | 881B0B89FAA046188732D870 /* Copy Pods Resources */ = { 180 | isa = PBXShellScriptBuildPhase; 181 | buildActionMask = 2147483647; 182 | files = ( 183 | ); 184 | inputPaths = ( 185 | ); 186 | name = "Copy Pods Resources"; 187 | outputPaths = ( 188 | ); 189 | runOnlyForDeploymentPostprocessing = 0; 190 | shellPath = /bin/sh; 191 | shellScript = "\"${SRCROOT}/Pods/Pods-Places-resources.sh\"\n"; 192 | showEnvVarsInLog = 0; 193 | }; 194 | 88ED3A2A3BB347A893B16888 /* Check Pods Manifest.lock */ = { 195 | isa = PBXShellScriptBuildPhase; 196 | buildActionMask = 2147483647; 197 | files = ( 198 | ); 199 | inputPaths = ( 200 | ); 201 | name = "Check Pods Manifest.lock"; 202 | outputPaths = ( 203 | ); 204 | runOnlyForDeploymentPostprocessing = 0; 205 | shellPath = /bin/sh; 206 | shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; 207 | showEnvVarsInLog = 0; 208 | }; 209 | /* End PBXShellScriptBuildPhase section */ 210 | 211 | /* Begin PBXSourcesBuildPhase section */ 212 | 86FB841418E4D680008A41BA /* Sources */ = { 213 | isa = PBXSourcesBuildPhase; 214 | buildActionMask = 2147483647; 215 | files = ( 216 | 86FB842C18E4D680008A41BA /* BBUAppDelegate.m in Sources */, 217 | 86FB844D18E4DBA5008A41BA /* BBUPlacesViewController.m in Sources */, 218 | 86FB842818E4D680008A41BA /* main.m in Sources */, 219 | 86FB845018E4E2D9008A41BA /* BBUPlace.m in Sources */, 220 | ); 221 | runOnlyForDeploymentPostprocessing = 0; 222 | }; 223 | /* End PBXSourcesBuildPhase section */ 224 | 225 | /* Begin XCBuildConfiguration section */ 226 | 86FB844218E4D680008A41BA /* Debug */ = { 227 | isa = XCBuildConfiguration; 228 | buildSettings = { 229 | ALWAYS_SEARCH_USER_PATHS = NO; 230 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 231 | CLANG_CXX_LIBRARY = "libc++"; 232 | CLANG_ENABLE_MODULES = YES; 233 | CLANG_ENABLE_OBJC_ARC = YES; 234 | CLANG_WARN_BOOL_CONVERSION = YES; 235 | CLANG_WARN_CONSTANT_CONVERSION = YES; 236 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 237 | CLANG_WARN_EMPTY_BODY = YES; 238 | CLANG_WARN_ENUM_CONVERSION = YES; 239 | CLANG_WARN_INT_CONVERSION = YES; 240 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 241 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 242 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 243 | COPY_PHASE_STRIP = NO; 244 | GCC_C_LANGUAGE_STANDARD = gnu99; 245 | GCC_DYNAMIC_NO_PIC = NO; 246 | GCC_OPTIMIZATION_LEVEL = 0; 247 | GCC_PREPROCESSOR_DEFINITIONS = ( 248 | "DEBUG=1", 249 | "$(inherited)", 250 | ); 251 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 252 | GCC_TREAT_WARNINGS_AS_ERRORS = YES; 253 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 254 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 255 | GCC_WARN_UNDECLARED_SELECTOR = YES; 256 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 257 | GCC_WARN_UNUSED_FUNCTION = YES; 258 | GCC_WARN_UNUSED_VARIABLE = YES; 259 | IPHONEOS_DEPLOYMENT_TARGET = 7.0; 260 | ONLY_ACTIVE_ARCH = YES; 261 | SDKROOT = iphoneos; 262 | }; 263 | name = Debug; 264 | }; 265 | 86FB844318E4D680008A41BA /* Release */ = { 266 | isa = XCBuildConfiguration; 267 | buildSettings = { 268 | ALWAYS_SEARCH_USER_PATHS = NO; 269 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 270 | CLANG_CXX_LIBRARY = "libc++"; 271 | CLANG_ENABLE_MODULES = YES; 272 | CLANG_ENABLE_OBJC_ARC = YES; 273 | CLANG_WARN_BOOL_CONVERSION = YES; 274 | CLANG_WARN_CONSTANT_CONVERSION = YES; 275 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 276 | CLANG_WARN_EMPTY_BODY = YES; 277 | CLANG_WARN_ENUM_CONVERSION = YES; 278 | CLANG_WARN_INT_CONVERSION = YES; 279 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 280 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 281 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 282 | COPY_PHASE_STRIP = YES; 283 | ENABLE_NS_ASSERTIONS = NO; 284 | GCC_C_LANGUAGE_STANDARD = gnu99; 285 | GCC_TREAT_WARNINGS_AS_ERRORS = YES; 286 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 287 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 288 | GCC_WARN_UNDECLARED_SELECTOR = YES; 289 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 290 | GCC_WARN_UNUSED_FUNCTION = YES; 291 | GCC_WARN_UNUSED_VARIABLE = YES; 292 | IPHONEOS_DEPLOYMENT_TARGET = 7.0; 293 | SDKROOT = iphoneos; 294 | VALIDATE_PRODUCT = YES; 295 | }; 296 | name = Release; 297 | }; 298 | 86FB844518E4D680008A41BA /* Debug */ = { 299 | isa = XCBuildConfiguration; 300 | baseConfigurationReference = 0B6EE380F972459891CECE5C /* Pods-Places.xcconfig */; 301 | buildSettings = { 302 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 303 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; 304 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 305 | GCC_PREFIX_HEADER = "Supporting_Files/Places-Prefix.pch"; 306 | INFOPLIST_FILE = "$(SRCROOT)/Supporting_Files/Places-Info.plist"; 307 | PRODUCT_NAME = "$(TARGET_NAME)"; 308 | WRAPPER_EXTENSION = app; 309 | }; 310 | name = Debug; 311 | }; 312 | 86FB844618E4D680008A41BA /* Release */ = { 313 | isa = XCBuildConfiguration; 314 | baseConfigurationReference = 0B6EE380F972459891CECE5C /* Pods-Places.xcconfig */; 315 | buildSettings = { 316 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 317 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; 318 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 319 | GCC_PREFIX_HEADER = "Supporting_Files/Places-Prefix.pch"; 320 | INFOPLIST_FILE = "$(SRCROOT)/Supporting_Files/Places-Info.plist"; 321 | PRODUCT_NAME = "$(TARGET_NAME)"; 322 | WRAPPER_EXTENSION = app; 323 | }; 324 | name = Release; 325 | }; 326 | /* End XCBuildConfiguration section */ 327 | 328 | /* Begin XCConfigurationList section */ 329 | 86FB841318E4D680008A41BA /* Build configuration list for PBXProject "Places" */ = { 330 | isa = XCConfigurationList; 331 | buildConfigurations = ( 332 | 86FB844218E4D680008A41BA /* Debug */, 333 | 86FB844318E4D680008A41BA /* Release */, 334 | ); 335 | defaultConfigurationIsVisible = 0; 336 | defaultConfigurationName = Release; 337 | }; 338 | 86FB844418E4D680008A41BA /* Build configuration list for PBXNativeTarget "Places" */ = { 339 | isa = XCConfigurationList; 340 | buildConfigurations = ( 341 | 86FB844518E4D680008A41BA /* Debug */, 342 | 86FB844618E4D680008A41BA /* Release */, 343 | ); 344 | defaultConfigurationIsVisible = 0; 345 | defaultConfigurationName = Release; 346 | }; 347 | /* End XCConfigurationList section */ 348 | }; 349 | rootObject = 86FB841018E4D680008A41BA /* Project object */; 350 | } 351 | --------------------------------------------------------------------------------