diff --git a/BusinessTableViewCell.h b/BusinessTableViewCell.h new file mode 100644 index 0000000..3b688e7 --- /dev/null +++ b/BusinessTableViewCell.h @@ -0,0 +1,22 @@ +// +// BusinessTableViewCell.h +// Yelp +// +// Created by Guozheng Ge on 6/20/14. +// Copyright (c) 2014 codepath. All rights reserved. +// + +#import + +@interface BusinessTableViewCell : UITableViewCell +@property (weak, nonatomic) IBOutlet UIImageView *businessImage; +@property (weak, nonatomic) IBOutlet UIImageView *ratingImage; +@property (weak, nonatomic) IBOutlet UILabel *businessName; +@property (weak, nonatomic) IBOutlet UILabel *distance; +@property (weak, nonatomic) IBOutlet UILabel *review; +@property (weak, nonatomic) IBOutlet UILabel *price; +@property (weak, nonatomic) IBOutlet UILabel *address; +@property (weak, nonatomic) IBOutlet UILabel *categories; + + +@end diff --git a/BusinessTableViewCell.m b/BusinessTableViewCell.m new file mode 100644 index 0000000..e961b76 --- /dev/null +++ b/BusinessTableViewCell.m @@ -0,0 +1,25 @@ +// +// BusinessTableViewCell.m +// Yelp +// +// Created by Guozheng Ge on 6/20/14. +// Copyright (c) 2014 codepath. All rights reserved. +// + +#import "BusinessTableViewCell.h" + +@implementation BusinessTableViewCell + +- (void)awakeFromNib +{ + // Initialization code +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated +{ + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + +@end diff --git a/BusinessTableViewCell.xib b/BusinessTableViewCell.xib new file mode 100644 index 0000000..3ba3355 --- /dev/null +++ b/BusinessTableViewCell.xib @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Podfile.lock b/Podfile.lock index 43e4c77..3a23aa0 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -27,7 +27,7 @@ DEPENDENCIES: - BDBOAuth1Manager SPEC CHECKSUMS: - AFNetworking: 0121f4b69be3fa58d1ab317866e036e12ac9651d - BDBOAuth1Manager: 25d18d56820695aa18aae44eecad55829274a290 + AFNetworking: 8dde8c8a6597ad95dac332a593c27e541bc87371 + BDBOAuth1Manager: 468477f0425ce24b3a19a34bbf176fac11225232 -COCOAPODS: 0.29.0 +COCOAPODS: 0.33.1 diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index 43e4c77..3a23aa0 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -27,7 +27,7 @@ DEPENDENCIES: - BDBOAuth1Manager SPEC CHECKSUMS: - AFNetworking: 0121f4b69be3fa58d1ab317866e036e12ac9651d - BDBOAuth1Manager: 25d18d56820695aa18aae44eecad55829274a290 + AFNetworking: 8dde8c8a6597ad95dac332a593c27e541bc87371 + BDBOAuth1Manager: 468477f0425ce24b3a19a34bbf176fac11225232 -COCOAPODS: 0.29.0 +COCOAPODS: 0.33.1 diff --git a/Pods/Pods-AFNetworking-prefix.pch b/Pods/Pods-AFNetworking-prefix.pch index 73f7e08..95cf11d 100644 --- a/Pods/Pods-AFNetworking-prefix.pch +++ b/Pods/Pods-AFNetworking-prefix.pch @@ -3,9 +3,3 @@ #endif #import "Pods-environment.h" - - - - - - diff --git a/Pods/Pods.xcconfig b/Pods/Pods.xcconfig index 17540e8..72268ff 100644 --- a/Pods/Pods.xcconfig +++ b/Pods/Pods.xcconfig @@ -1,5 +1,5 @@ GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/AFNetworking" "${PODS_ROOT}/Headers/BDBOAuth1Manager" -OTHER_CFLAGS = $(inherited) "-isystem${PODS_ROOT}/Headers" "-isystem${PODS_ROOT}/Headers/AFNetworking" "-isystem${PODS_ROOT}/Headers/BDBOAuth1Manager" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers" -isystem "${PODS_ROOT}/Headers/AFNetworking" -isystem "${PODS_ROOT}/Headers/BDBOAuth1Manager" OTHER_LDFLAGS = -ObjC -framework CoreGraphics -framework MobileCoreServices -framework Security -framework SystemConfiguration PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index a4d4008..d6c407c 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -10,96 +10,145 @@ 46 objects - 0028127B92A44A72B3F81B32 + 012FDF3835724EC1B885D599 includeInIndex 1 isa PBXFileReference lastKnownFileType - sourcecode.c.h - name - AFURLRequestSerialization.h + sourcecode.c.objc path - AFNetworking/AFURLRequestSerialization.h + Pods-dummy.m sourceTree <group> - 02E89E8A8078408F8CBD15D6 + 026349B779EC460CAB9AFFDE includeInIndex 1 isa PBXFileReference lastKnownFileType - sourcecode.c.objc + sourcecode.c.h name - AFURLConnectionOperation.m + AFHTTPSessionManager.h path - AFNetworking/AFURLConnectionOperation.m + AFNetworking/AFHTTPSessionManager.h sourceTree <group> - 03606861C0D9462084CAE6D1 + 0275FEF6346E4EBE8331D9D8 - includeInIndex - 1 + fileRef + 949DCC6276844F09B2F24BBB isa - PBXFileReference - lastKnownFileType - text - path - Pods-acknowledgements.markdown - sourceTree - <group> + PBXBuildFile - 04137369DAC147DFA0BC9DD3 + 039326F0F595419CA159C0DB - includeInIndex - 1 + baseConfigurationReference + 832C5489F83F4BF18DC8A74B + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + COPY_PHASE_STRIP + NO + DSTROOT + /tmp/xcodeproj.dst + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_DYNAMIC_NO_PIC + NO + GCC_OPTIMIZATION_LEVEL + 0 + GCC_PRECOMPILE_PREFIX_HEADER + YES + GCC_PREPROCESSOR_DEFINITIONS + + DEBUG=1 + $(inherited) + + GCC_SYMBOLS_PRIVATE_EXTERN + NO + GCC_VERSION + com.apple.compilers.llvm.clang.1_0 + INSTALL_PATH + $(BUILT_PRODUCTS_DIR) + IPHONEOS_DEPLOYMENT_TARGET + 7.0 + OTHER_LDFLAGS + + PRODUCT_NAME + $(TARGET_NAME) + PUBLIC_HEADERS_FOLDER_PATH + $(TARGET_NAME) + SDKROOT + iphoneos + SKIP_INSTALL + YES + isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - Pods-BDBOAuth1Manager-dummy.m - sourceTree - <group> + XCBuildConfiguration + name + Debug - 0862550EF0E1431BADA22463 + 047A90A6E3B2456C86659D39 + children + + B5ED90FDD972486C98E4D3CE + DFEE7B270DCB45FFA6E2DEF8 + DC30A303617C43B68727FC42 + 8AAEBCA0A7044538AC8797D0 + B2FF23743BBC4AC390BFD068 + 6A8E2D53E8BA4CAC94C3FC9E + isa - PBXTargetDependency - target - BA3292AA93EC4C249841C31D - targetProxy - 62231323D3774C4F9EE53E37 + PBXGroup + name + NSURLConnection + sourceTree + <group> - 08BEDD7D3F874F4E8F9CC7E3 + 05A0C00BB9A247B7A9C574A2 - fileRef - 5FCAED4760BB4BC38E9EF0A6 + children + + B7DE4AC65FCA4B0A8738E458 + ACCCD8DD781C4140B2CEAB4E + A5507D427D1E45759FA4F767 + 7BA60F54B8BA4A38BC9F9523 + 949DCC6276844F09B2F24BBB + 597F076CA0A1473BBBFB1E7C + A739D9B08393497D8FCDC776 + E6A66A52F71B44F18CA4C858 + 91611013282644F49B306AE6 + 14667C0B3FCF4C6FB12759ED + 493D738274EA43AAB9B848E1 + 5879FAB0F46243E7A9C47AB4 + 31DAE6E98CEA4064B5E6E50C + C0FB4B07820C4777BDCFEF4E + 573F7046E7A04B2B9DC2743D + 08103254577847B790B1D8D2 + 5AA74AA4383B49CF98E3DDF8 + isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - + PBXGroup + name + UIKit + sourceTree + <group> - 0ACD622641C54AFCBDC637E3 + 073233EF42A647ADA88DD03A fileRef - 3832820606024CFD839129A5 + 6E5AE312E51640629C104714 isa PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - - 0D25440A9D0640C9B045CDB1 + 08103254577847B790B1D8D2 includeInIndex 1 @@ -108,59 +157,119 @@ lastKnownFileType sourcecode.c.h name - UIImageView+AFNetworking.h + UIWebView+AFNetworking.h path - UIKit+AFNetworking/UIImageView+AFNetworking.h + UIKit+AFNetworking/UIWebView+AFNetworking.h sourceTree <group> - 0DD384B7AE7B464683EFB5E3 + 088A6B7B4C1A4A069643AB9E - fileRef - 04137369DAC147DFA0BC9DD3 + explicitFileType + archive.ar + includeInIndex + 0 isa - PBXBuildFile + PBXFileReference + path + libPods-BDBOAuth1Manager.a + sourceTree + BUILT_PRODUCTS_DIR - 11AD6073DD684803BC5513E9 + 0C3B76D7AB3842D7BAF96F67 - includeInIndex - 1 isa PBXFileReference lastKnownFileType - sourcecode.c.h + wrapper.framework name - AFURLResponseSerialization.h + SystemConfiguration.framework path - AFNetworking/AFURLResponseSerialization.h + Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/SystemConfiguration.framework sourceTree - <group> + DEVELOPER_DIR - 1203B8C7C1324F699E85E765 + 0C6ABA01A9D14703B776D245 - buildConfigurations - - 7E6DF8CF142347069D40A51A - 7A16570C975F44F5914B0CCF - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release + baseConfigurationReference + 832C5489F83F4BF18DC8A74B + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + COPY_PHASE_STRIP + YES + DSTROOT + /tmp/xcodeproj.dst + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_PRECOMPILE_PREFIX_HEADER + YES + GCC_VERSION + com.apple.compilers.llvm.clang.1_0 + INSTALL_PATH + $(BUILT_PRODUCTS_DIR) + IPHONEOS_DEPLOYMENT_TARGET + 7.0 + OTHER_CFLAGS + + -DNS_BLOCK_ASSERTIONS=1 + $(inherited) + + OTHER_CPLUSPLUSFLAGS + + -DNS_BLOCK_ASSERTIONS=1 + $(inherited) + + OTHER_LDFLAGS + + PRODUCT_NAME + $(TARGET_NAME) + PUBLIC_HEADERS_FOLDER_PATH + $(TARGET_NAME) + SDKROOT + iphoneos + SKIP_INSTALL + YES + VALIDATE_PRODUCT + YES + isa - XCConfigurationList + XCBuildConfiguration + name + Release - 13727B6FC14D4AA78E94FB4F + 0CCC55749F854FE4ADCAE72D - fileRef - D7E0786CD2CF4813A9E00ACD + buildConfigurationList + 8E2287664688427D87621AB0 + buildPhases + + 104920A42D894764920485DD + A9DF1BDC0CA946C092CC476C + 25DFB0F1E7FD477EB250EDCC + + buildRules + + dependencies + + 0F62DE59D2A04CFAA169215E + isa - PBXBuildFile + PBXNativeTarget + name + Pods-BDBOAuth1Manager + productName + Pods-BDBOAuth1Manager + productReference + 088A6B7B4C1A4A069643AB9E + productType + com.apple.product-type.library.static - 152B2FEB73DE4F95BEA984DE + 0E11A7A3F72E4F09910C7F6B fileRef - 816D049BC0484A92B4100FE0 + 6A8E2D53E8BA4CAC94C3FC9E isa PBXBuildFile settings @@ -169,379 +278,368 @@ -fobjc-arc - 168C68BC2923492AA51810C1 + 0EB9D236475F4B7C8C2BDD27 - children + buildConfigurationList + 668E2B0C530F4BE6B9D99B1D + buildPhases + + 123F6FA8273A49E8B2B915DB + 0FCFD7A303FD49749277BD8D + + buildRules + + dependencies - 32EBEEE13B564A81B69C35F8 - AECE7BD8C1B444F0B719B42A - 7758E9EB57B84895AE638F77 - F9B2B226227042FD99767222 - 1C31A43BDE5547599B75099B - CDB1B59A7A264CB0A10A7A56 - 2CBD3C2B674A454FA488BCCB - F8C7E0D223F540FFACA5D61B - 500C24E4D8374390921B9457 - 47E73E0A4D3346389D40F5B7 - 736DD9FE41DA489CAF2029E9 + F8BDFF38B9754FDDBB3CE7D8 + BB695387BC9F46B296657CB7 isa - PBXGroup + PBXNativeTarget name - BDBOAuth1Manager - path - BDBOAuth1Manager - sourceTree - <group> + Pods + productName + Pods + productReference + E84178ADE4E04666B8168EC9 + productType + com.apple.product-type.library.static - 172D170FA07A439A9E5313D9 + 0F235B28FA584BCE87EDDE62 fileRef - D58D00B5A527408FAEC0AA35 + 8828DF462EC64FCAA9DDD40A isa PBXBuildFile + settings + + COMPILER_FLAGS + -fobjc-arc + - 175D58CBD46C43F89C4972E6 + 0F62DE59D2A04CFAA169215E - fileRef - 1C31A43BDE5547599B75099B isa - PBXBuildFile + PBXTargetDependency + target + D2B2FCE1860045B18456EB17 + targetProxy + 1949418C02AB4C6FA6B69E60 - 195179D03AFB494E9A6FC86D + 0FCFD7A303FD49749277BD8D - includeInIndex - 1 + buildActionMask + 2147483647 + files + + 62D8FCF6F49E47AE94ED62EA + D9EAAC21D98D469FA9EE4EAC + DD5E8CB2035242DD84C6D1F8 + isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - UIAlertView+AFNetworking.m - path - UIKit+AFNetworking/UIAlertView+AFNetworking.m - sourceTree - <group> + PBXFrameworksBuildPhase + runOnlyForDeploymentPostprocessing + 0 - 1B2FB7F0D08C491BA75129CD + 104920A42D894764920485DD - fileRef - 6041EEA4FD8548989172B7A3 - isa - PBXBuildFile - - 1C31A43BDE5547599B75099B - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - BDBOAuth1SessionManager.h - path - BDBOAuth1Manager/BDBOAuth1SessionManager.h - sourceTree - <group> - - 1CE4A0F0ECF44A5BAC3C6AEE - - children + buildActionMask + 2147483647 + files - E3BD331831244E6F9BA72A49 - 76DD6410EF4B4872A699BD18 - A7541F134A464E94953865F5 + 321C6BCDB4534C9C91B2FEBA + 59BD176E482C4D7FBA95043F + B4A372BD83094271BF5E8712 + D83697576E834E4996FD9DFB + A07EDAFB4574461A944D4707 + 8F39E02FAD574762A11E762D isa - PBXGroup - name - Products - sourceTree - <group> + PBXSourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 - 1D0143C0D1F6457695989E23 + 10A286C0325145EA9FA20354 fileRef - B88A8B2C836342FF9287BD86 + 5879FAB0F46243E7A9C47AB4 isa PBXBuildFile - 1DD22AACFD574E98ACB08362 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - UIActivityIndicatorView+AFNetworking.m - path - UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.m - sourceTree - <group> - - 1E342FA6877E49BE85317401 + 123F6FA8273A49E8B2B915DB - containerPortal - 4E3E557B13204629994D3BB8 + buildActionMask + 2147483647 + files + + 40F090C1FD324EEEAA78949E + isa - PBXContainerItemProxy - proxyType - 1 - remoteGlobalIDString - BA3292AA93EC4C249841C31D - remoteInfo - Pods-AFNetworking + PBXSourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 - 2085B639350248C0950BBE3A + 13C3DDCDAA5142F7A8EA87B0 buildActionMask 2147483647 files - 827035396690490AB8A3F874 - A5E32BC8C3054CD89DE5DCC3 - C56D7ADFBB7E499DB1FE674C - B6FABB9473164729989393F7 - 08BEDD7D3F874F4E8F9CC7E3 - 75DD5AA3145F4A70997A7C7F - A79E0D731B974EBBB5F0134D - E17E2D6E23144E4BA819A316 - 91281656E20D41E5B5E3F1A7 - 0ACD622641C54AFCBDC637E3 - 172D170FA07A439A9E5313D9 - A028940A29FB4B4D9B7E00A0 - 8A098B51842A4CA8B5AA72C7 - C3B925F8A71846BBB1748F08 - 30DB85C575A448758285F008 - 152B2FEB73DE4F95BEA984DE - 2B5683AC64394F09A9F08121 - 57CE5B4E393947D99DA1B789 + 6C84569EAFC3448997628091 + 073233EF42A647ADA88DD03A + D2CADCB80D404374B1EA7353 + 842458D38DF0423B84D592CD + FA5E4A3294514708BEEEF23D isa - PBXSourcesBuildPhase + PBXFrameworksBuildPhase runOnlyForDeploymentPostprocessing 0 - 241368771B3F42BB8EDB63C4 + 13F0D1F4165248EF8AADC692 includeInIndex 1 isa PBXFileReference lastKnownFileType - sourcecode.c.h + sourcecode.c.objc name - UIRefreshControl+AFNetworking.h + AFSecurityPolicy.m path - UIKit+AFNetworking/UIRefreshControl+AFNetworking.h + AFNetworking/AFSecurityPolicy.m sourceTree <group> - 26267C75A8DD441EBB26B2D7 + 14667C0B3FCF4C6FB12759ED includeInIndex 1 isa PBXFileReference lastKnownFileType - sourcecode.c.h + sourcecode.c.objc name - UIActivityIndicatorView+AFNetworking.h + UIImageView+AFNetworking.m path - UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h + UIKit+AFNetworking/UIImageView+AFNetworking.m sourceTree <group> - 284B97FE6A8E40D59B7D06FF + 16CEC448DA724B5DABD2254C - includeInIndex - 1 + buildActionMask + 2147483647 + files + + 193C12C7D9414DFBB92C5725 + 7FB0569E833A4E3A8C957235 + 83219C9C3AE84C6FB9A73AA4 + 52885662C1144884A2CC2121 + 0F235B28FA584BCE87EDDE62 + 24A606D079AB4289B1CB890A + 0E11A7A3F72E4F09910C7F6B + B1B84F8FC12541B780F5F315 + FDD6E0B19271483F92526BFE + A68E5FD65A45430391EB7AD6 + BEA023E9E37C476A8BDF96FE + D48D74415A9C444A9DC74E95 + 8447C87FBC3E469186E2B0CE + 8AD1EF389F4F402E81564255 + 420F1A43DE454ABEBACFD623 + 1A85D0CB13564A67B76976E8 + D121B50E01DC4A57A2E4D797 + 624A08F582E0412290030245 + isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - AFNetworkActivityIndicatorManager.m - path - UIKit+AFNetworking/AFNetworkActivityIndicatorManager.m - sourceTree - <group> + PBXSourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 - 2875857077FA4A5CBD30924B + 17E2CF54F4964C3DBFE42C9C includeInIndex 1 isa PBXFileReference lastKnownFileType - sourcecode.c.objc + text name - UIRefreshControl+AFNetworking.m + Podfile path - UIKit+AFNetworking/UIRefreshControl+AFNetworking.m + ../Podfile sourceTree - <group> - - 2B5683AC64394F09A9F08121 - - fileRef - 2875857077FA4A5CBD30924B - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - + SOURCE_ROOT + xcLanguageSpecificationIdentifier + xcode.lang.ruby - 2C2A64BFA0204EC38FA9514C + 17E72F43AA8844BFBA4F8CFC + baseConfigurationReference + 60F4FB5B58C542CF99229145 buildSettings ALWAYS_SEARCH_USER_PATHS NO - CLANG_CXX_LANGUAGE_STANDARD - gnu++0x - CLANG_CXX_LIBRARY - libc++ - CLANG_ENABLE_MODULES - YES - CLANG_ENABLE_OBJC_ARC - NO - CLANG_WARN_BOOL_CONVERSION - YES - CLANG_WARN_CONSTANT_CONVERSION - YES - CLANG_WARN_DIRECT_OBJC_ISA_USAGE - YES_ERROR - CLANG_WARN_EMPTY_BODY - YES - CLANG_WARN_ENUM_CONVERSION - YES - CLANG_WARN_INT_CONVERSION - YES - CLANG_WARN_OBJC_ROOT_CLASS - YES_ERROR COPY_PHASE_STRIP YES + DSTROOT + /tmp/xcodeproj.dst GCC_C_LANGUAGE_STANDARD gnu99 - GCC_DYNAMIC_NO_PIC - NO - GCC_OPTIMIZATION_LEVEL - 0 - GCC_PREPROCESSOR_DEFINITIONS + GCC_PRECOMPILE_PREFIX_HEADER + YES + GCC_PREFIX_HEADER + Pods-AFNetworking-prefix.pch + GCC_VERSION + com.apple.compilers.llvm.clang.1_0 + INSTALL_PATH + $(BUILT_PRODUCTS_DIR) + IPHONEOS_DEPLOYMENT_TARGET + 7.0 + OTHER_CFLAGS - DEBUG=1 + -DNS_BLOCK_ASSERTIONS=1 $(inherited) - GCC_SYMBOLS_PRIVATE_EXTERN - NO - GCC_WARN_64_TO_32_BIT_CONVERSION - YES - GCC_WARN_ABOUT_RETURN_TYPE - YES_ERROR - GCC_WARN_UNDECLARED_SELECTOR - YES - GCC_WARN_UNINITIALIZED_AUTOS - YES - GCC_WARN_UNUSED_FUNCTION - YES - GCC_WARN_UNUSED_VARIABLE + OTHER_CPLUSPLUSFLAGS + + -DNS_BLOCK_ASSERTIONS=1 + $(inherited) + + OTHER_LDFLAGS + + PRODUCT_NAME + $(TARGET_NAME) + PUBLIC_HEADERS_FOLDER_PATH + $(TARGET_NAME) + SDKROOT + iphoneos + SKIP_INSTALL YES - IPHONEOS_DEPLOYMENT_TARGET - 7.0 - ONLY_ACTIVE_ARCH + VALIDATE_PRODUCT YES - STRIP_INSTALLED_PRODUCT - NO isa XCBuildConfiguration name - Debug + Release - 2CBD3C2B674A454FA488BCCB + 193C12C7D9414DFBB92C5725 + + fileRef + DFEE7B270DCB45FFA6E2DEF8 + isa + PBXBuildFile + settings + + COMPILER_FLAGS + -fobjc-arc + + + 1949418C02AB4C6FA6B69E60 + + containerPortal + DC0D312D51BB48E2A2934876 + isa + PBXContainerItemProxy + proxyType + 1 + remoteGlobalIDString + D2B2FCE1860045B18456EB17 + remoteInfo + Pods-AFNetworking + + 1A85D0CB13564A67B76976E8 + + fileRef + 31DAE6E98CEA4064B5E6E50C + isa + PBXBuildFile + settings + + COMPILER_FLAGS + -fobjc-arc + + + 1AB9B7F0274F40A2B514D4FE includeInIndex 1 isa PBXFileReference lastKnownFileType - sourcecode.c.h + sourcecode.c.objc name - NSDictionary+BDBOAuth1Manager.h + NSDictionary+BDBOAuth1Manager.m path - BDBOAuth1Manager/Categories/NSDictionary+BDBOAuth1Manager.h + BDBOAuth1Manager/Categories/NSDictionary+BDBOAuth1Manager.m sourceTree <group> - 2CE19D17FE244346AA16CA80 + 1B076F52DDDB4B1FB7586A6C + fileRef + B5ED90FDD972486C98E4D3CE isa - PBXFileReference - lastKnownFileType - wrapper.framework - name - CoreGraphics.framework - path - Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/System/Library/Frameworks/CoreGraphics.framework - sourceTree - DEVELOPER_DIR + PBXBuildFile - 2D16D57790704DE8A84D7A88 + 24A606D079AB4289B1CB890A + fileRef + 13F0D1F4165248EF8AADC692 + isa + PBXBuildFile + settings + + COMPILER_FLAGS + -fobjc-arc + + + 25DEFB558DBE4E1FB77F3B4A + + baseConfigurationReference + DCE7035AF51A4FF8BF642EAF buildSettings ALWAYS_SEARCH_USER_PATHS NO - CLANG_CXX_LANGUAGE_STANDARD - gnu++0x - CLANG_CXX_LIBRARY - libc++ - CLANG_ENABLE_MODULES - YES - CLANG_ENABLE_OBJC_ARC - NO - CLANG_WARN_BOOL_CONVERSION - YES - CLANG_WARN_CONSTANT_CONVERSION - YES - CLANG_WARN_DIRECT_OBJC_ISA_USAGE - YES_ERROR - CLANG_WARN_EMPTY_BODY - YES - CLANG_WARN_ENUM_CONVERSION - YES - CLANG_WARN_INT_CONVERSION - YES - CLANG_WARN_OBJC_ROOT_CLASS - YES_ERROR COPY_PHASE_STRIP - NO - ENABLE_NS_ASSERTIONS - NO + YES + DSTROOT + /tmp/xcodeproj.dst GCC_C_LANGUAGE_STANDARD gnu99 - GCC_WARN_64_TO_32_BIT_CONVERSION - YES - GCC_WARN_ABOUT_RETURN_TYPE - YES_ERROR - GCC_WARN_UNDECLARED_SELECTOR - YES - GCC_WARN_UNINITIALIZED_AUTOS - YES - GCC_WARN_UNUSED_FUNCTION - YES - GCC_WARN_UNUSED_VARIABLE + GCC_PRECOMPILE_PREFIX_HEADER YES + GCC_PREFIX_HEADER + Pods-BDBOAuth1Manager-prefix.pch + GCC_VERSION + com.apple.compilers.llvm.clang.1_0 + INSTALL_PATH + $(BUILT_PRODUCTS_DIR) IPHONEOS_DEPLOYMENT_TARGET 7.0 - STRIP_INSTALLED_PRODUCT - NO + OTHER_CFLAGS + + -DNS_BLOCK_ASSERTIONS=1 + $(inherited) + + OTHER_CPLUSPLUSFLAGS + + -DNS_BLOCK_ASSERTIONS=1 + $(inherited) + + OTHER_LDFLAGS + + PRODUCT_NAME + $(TARGET_NAME) + PUBLIC_HEADERS_FOLDER_PATH + $(TARGET_NAME) + SDKROOT + iphoneos + SKIP_INSTALL + YES VALIDATE_PRODUCT YES @@ -550,98 +648,110 @@ name Release - 2DC3991DC3FD44E58E51F109 + 25DFB0F1E7FD477EB250EDCC + + buildActionMask + 2147483647 + files + + EBBC0B26FF8D41E4A7FFCDA8 + 77351D1909D14B69B9882676 + 2A924B5DB508465699E39A33 + E2DD4AC3ABCE4CAA9425D8B6 + 5845C5EDD2E84C749653EE9D + + isa + PBXHeadersBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 27880D6550F04344B37ACCF8 fileRef - AECE7BD8C1B444F0B719B42A + A739D9B08393497D8FCDC776 isa PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - - 2F764968162C4DCFBDBEE6EE + 2A924B5DB508465699E39A33 - includeInIndex - 1 + fileRef + B285164BA007454EB435DBBA isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - AFNetworkReachabilityManager.h - path - AFNetworking/AFNetworkReachabilityManager.h - sourceTree - <group> + PBXBuildFile - 2FF3F1152A1249F69624BD15 + 2B1BE1C3A1AE42888E9B9E92 - includeInIndex - 1 + children + + 304F6B132A914DD08C3A3223 + 6E5AE312E51640629C104714 + 9C52863F85C84BD0A750EA33 + 8EEFB0F1AE20463CB6618657 + 0C3B76D7AB3842D7BAF96F67 + isa - PBXFileReference - lastKnownFileType - sourcecode.c.h + PBXGroup name - AFHTTPRequestOperationManager.h - path - AFNetworking/AFHTTPRequestOperationManager.h + iOS sourceTree <group> - 30DB85C575A448758285F008 + 2EF86B6505F7431E88362BD9 + + buildConfigurations + + B2B0046FE02047AFBABF60BA + 17E72F43AA8844BFBA4F8CFC + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + 304F6B132A914DD08C3A3223 - fileRef - 675F54EE7C844CFF9B022DC6 isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - + PBXFileReference + lastKnownFileType + wrapper.framework + name + CoreGraphics.framework + path + Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/CoreGraphics.framework + sourceTree + DEVELOPER_DIR - 32EBEEE13B564A81B69C35F8 + 309051BB06504BEFB6596FCD includeInIndex 1 isa PBXFileReference lastKnownFileType - sourcecode.c.h - name - BDBOAuth1RequestOperationManager.h + sourcecode.c.objc path - BDBOAuth1Manager/BDBOAuth1RequestOperationManager.h + Pods-BDBOAuth1Manager-dummy.m sourceTree <group> - 37281E23E7D64E3AAC1B9326 - - fileRef - A7541F134A464E94953865F5 - isa - PBXBuildFile - - 3784BC628509444CA07A46D3 + 31017F40D5A64E848DB7C125 includeInIndex 1 isa PBXFileReference lastKnownFileType - sourcecode.c.objc + sourcecode.c.h name - AFHTTPRequestOperationManager.m + AFURLSessionManager.h path - AFNetworking/AFHTTPRequestOperationManager.m + AFNetworking/AFURLSessionManager.h sourceTree <group> - 3832820606024CFD839129A5 + 31DAE6E98CEA4064B5E6E50C includeInIndex 1 @@ -650,223 +760,113 @@ lastKnownFileType sourcecode.c.objc name - AFURLSessionManager.m + UIProgressView+AFNetworking.m path - AFNetworking/AFURLSessionManager.m + UIKit+AFNetworking/UIProgressView+AFNetworking.m sourceTree <group> - 38DC109300EA4AEE98D8E07F - - fileRef - 2CE19D17FE244346AA16CA80 - isa - PBXBuildFile - - 39B7902F884247ACBB3ACD97 - - buildActionMask - 2147483647 - files - - 38DC109300EA4AEE98D8E07F - E754DC1DE3E044108A18104F - 55694747B9124AF583948FCA - A3DD400530D04932BF87ECC6 - 67CFC3B711204B1F86F970D2 - - isa - PBXFrameworksBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 3ADFDC4C2D6C40FDA9C166B0 + 32099B9542D746529341D64F - buildConfigurationList - F4E2B8DB00D4445890ADA4FB - buildPhases - - 57B8005E049C49E9BC019F94 - CE3AFAC471A549E5A893CFA9 - - buildRules - - dependencies + children - B977314728ED4B3B91D1BFCF - C80B52E86B0C489DB7EA5D09 + BAE31B4950924D15A6B21AFA isa - PBXNativeTarget + PBXGroup name - Pods - productName - Pods - productReference - E3BD331831244E6F9BA72A49 - productType - com.apple.product-type.library.static - - 3CB5071DCC414161B0940255 - - fileRef - F30B59C06DAE4F2C8E0CE969 - isa - PBXBuildFile - - 3E5968EC173446029C2B89EE - - fileRef - DADBD1CB7DFC495EB0983E80 - isa - PBXBuildFile + Targets Support Files + sourceTree + <group> - 4168CDEA4C0147E1A61E5CD1 + 321C6BCDB4534C9C91B2FEBA fileRef - A60409C24D0A4A8AB1C0056C + AAF8B21147EE454AA4CF4B86 isa PBXBuildFile + settings + + COMPILER_FLAGS + -fobjc-arc + - 41A7FE04E1644B348D728DD1 + 3345C312F0DB4089890E2606 children - 96649C75E4654B6D9297659F + 550F75F5BD164CD1A5F170C9 + 047A90A6E3B2456C86659D39 + D992C2ECF5BC477C8EBBC24C + 4E0625BB8C5F42B5A0022E4C + A87E064913454C5BBF937D9F + C5410B77BF9C400082A2E784 + FB732FA536D745C0A56F02D9 + 05A0C00BB9A247B7A9C574A2 isa PBXGroup name - Frameworks + AFNetworking + path + AFNetworking sourceTree <group> - 41CB7876D5674A3D8421BE87 - - children - - CF9A92992B57447B91657B89 - 66E8D3E19AB842768391E209 - D58D00B5A527408FAEC0AA35 - E56B154C3525404799C9C7C9 - - isa - PBXGroup - name - Support Files - sourceTree - SOURCE_ROOT - - 45DC7C997A0E4EF398C297A8 + 3364795A60214A36AD6F922A fileRef - 7DE14F2AA4884380A3254579 + 31017F40D5A64E848DB7C125 isa PBXBuildFile - 47E73E0A4D3346389D40F5B7 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - NSString+BDBOAuth1Manager.m - path - BDBOAuth1Manager/Categories/NSString+BDBOAuth1Manager.m - sourceTree - <group> - - 4ABE337FA7864BFD9AE1EE3B + 344DDFEAA50842C7B7B9B27F fileRef - 2FF3F1152A1249F69624BD15 + B7DE4AC65FCA4B0A8738E458 isa PBXBuildFile - 4B1E185A3A33413F833770B5 + 37218425FFDD401FBF956AFF includeInIndex 1 isa PBXFileReference lastKnownFileType - sourcecode.c.h + text.plist.xml path - Pods-environment.h + Pods-acknowledgements.plist sourceTree <group> - 4CD6E27ABBF248D2B3AF8F82 + 3E8D03838FD8460E841DC5B0 - children - - 940C0C766C594AE1851C1D21 - 7FDF5599F24F4D6F800BCBC7 - F6E2D6F05787459B8B8C730E - D40C302169384BF68FCEB750 - 6E8C62082D394BEC88545987 - 79FACA55D1194CE691354B1A - 41CB7876D5674A3D8421BE87 - 852A58BAC1514E2E8B7D3E4F - + fileRef + 550F75F5BD164CD1A5F170C9 isa - PBXGroup - name - AFNetworking - path - AFNetworking - sourceTree - <group> + PBXBuildFile - 4E3E557B13204629994D3BB8 + 40F090C1FD324EEEAA78949E - attributes - - LastUpgradeCheck - 0500 - - buildConfigurationList - 679DABF1AD694705BECE0442 - compatibilityVersion - Xcode 3.2 - developmentRegion - English - hasScannedForEncodings - 0 + fileRef + 012FDF3835724EC1B885D599 isa - PBXProject - knownRegions - - en - - mainGroup - E74827506991483DB6DCD747 - productRefGroup - 1CE4A0F0ECF44A5BAC3C6AEE - projectDirPath - - projectReferences - - projectRoot - - targets - - 3ADFDC4C2D6C40FDA9C166B0 - BA3292AA93EC4C249841C31D - 96C63594E4EF45049741F64F - + PBXBuildFile - 4F8D2EAFD63B490FA7C4F6AB + 420F1A43DE454ABEBACFD623 fileRef - 76DD6410EF4B4872A699BD18 + 14667C0B3FCF4C6FB12759ED isa PBXBuildFile + settings + + COMPILER_FLAGS + -fobjc-arc + - 500C24E4D8374390921B9457 + 493D738274EA43AAB9B848E1 includeInIndex 1 @@ -875,54 +875,62 @@ lastKnownFileType sourcecode.c.h name - NSString+BDBOAuth1Manager.h + UIKit+AFNetworking.h path - BDBOAuth1Manager/Categories/NSString+BDBOAuth1Manager.h + UIKit+AFNetworking/UIKit+AFNetworking.h sourceTree <group> - 50B6BCC17FF8465D83E22E59 + 4BEB9A4F732E4896A23ADB91 - buildActionMask - 2147483647 - files - - E9A931E6FA664B9583DF7094 - 8BF2FD4F6D114941937FD343 - 175D58CBD46C43F89C4972E6 - 7496F12D36134D44BC893072 - A25BA1F19126416A855F7F77 - + fileRef + DC30A303617C43B68727FC42 isa - PBXHeadersBuildPhase - runOnlyForDeploymentPostprocessing - 0 + PBXBuildFile - 512F3D0D2376406B96DF2E69 + 4C91740C52D346F09AD53718 children - 4CD6E27ABBF248D2B3AF8F82 - 168C68BC2923492AA51810C1 + BCBA86B987A64A27B7B8FD22 + AAF8B21147EE454AA4CF4B86 + 6D993E18A48D4637B1C8941E + 8C5E5944DE494677955EFEEE + B285164BA007454EB435DBBA + 5ECAE11723E845F2B3E4B712 + 961705C2042844288D7B6CB6 + 1AB9B7F0274F40A2B514D4FE + C368C7FC0B32423FBE8CF2AE + B49107BD40744AE7A5091F57 + A9163934C15149EBB4433D12 isa PBXGroup name - Pods + BDBOAuth1Manager + path + BDBOAuth1Manager sourceTree <group> - 51F8A2D88D034A74AB07898E + 4E0625BB8C5F42B5A0022E4C - fileRef - D7903E4B57EB4F3C82DA7268 + children + + 70A351EE410E499EA0A07CB7 + 8828DF462EC64FCAA9DDD40A + isa - PBXBuildFile + PBXGroup + name + Reachability + sourceTree + <group> - 5364E4B62B674243B7C41518 + 52885662C1144884A2CC2121 fileRef - 47E73E0A4D3346389D40F5B7 + ACCCD8DD781C4140B2CEAB4E isa PBXBuildFile settings @@ -931,59 +939,73 @@ -fobjc-arc - 55554E4C1D8D4FC0A20A1C9D + 546BA52AD9A04C448EBB6BCF + + fileRef + 026349B779EC460CAB9AFFDE + isa + PBXBuildFile + + 550F75F5BD164CD1A5F170C9 + includeInIndex + 1 isa PBXFileReference lastKnownFileType - wrapper.framework + sourcecode.c.h name - SystemConfiguration.framework + AFNetworking.h path - Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/System/Library/Frameworks/SystemConfiguration.framework + AFNetworking/AFNetworking.h sourceTree - DEVELOPER_DIR + <group> - 55694747B9124AF583948FCA + 5707AB7F74A74A448DCDEBB7 fileRef - 78D79C3E8F6E4AE0BD91C874 + C7CB16B3AE7641B8AAD648F6 isa PBXBuildFile - 57B8005E049C49E9BC019F94 + 573F7046E7A04B2B9DC2743D - buildActionMask - 2147483647 - files - - B6B7E8EFF36B409D82751648 - + includeInIndex + 1 isa - PBXSourcesBuildPhase - runOnlyForDeploymentPostprocessing - 0 + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + UIRefreshControl+AFNetworking.m + path + UIKit+AFNetworking/UIRefreshControl+AFNetworking.m + sourceTree + <group> - 57CE5B4E393947D99DA1B789 + 5845C5EDD2E84C749653EE9D fileRef - 8BD1D4AC9FF140D5A8ADAB08 + C368C7FC0B32423FBE8CF2AE isa PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - - 5A3DBBA21C474405B44E16B6 + 5879FAB0F46243E7A9C47AB4 - fileRef - DD5430B8C9E04CF4955BD62C + includeInIndex + 1 isa - PBXBuildFile + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + UIProgressView+AFNetworking.h + path + UIKit+AFNetworking/UIProgressView+AFNetworking.h + sourceTree + <group> - 5AEA0BF518DF412DAB83C76C + 597F076CA0A1473BBBFB1E7C includeInIndex 1 @@ -992,38 +1014,40 @@ lastKnownFileType sourcecode.c.objc name - AFURLResponseSerialization.m + UIAlertView+AFNetworking.m path - AFNetworking/AFURLResponseSerialization.m + UIKit+AFNetworking/UIAlertView+AFNetworking.m sourceTree <group> - 5DDCF6E8F819481E8995557B + 59BD176E482C4D7FBA95043F fileRef - EB9C06BC7CD047AFBA76E2AE + 8C5E5944DE494677955EFEEE isa PBXBuildFile + settings + + COMPILER_FLAGS + -fobjc-arc + - 5F435886E3944584BCF82428 + 5A65D1E4A98A4352B48A69FA children - AD9B8347F8A345ACB81AF36A - 03606861C0D9462084CAE6D1 - FB8BAA5BA74A4D3EAAC843C4 - 61E2433D637F47BBAABBB55C - 4B1E185A3A33413F833770B5 - 9810245015374860A417FC72 + 17E2CF54F4964C3DBFE42C9C + A130D6357598450386DBB1E7 + 86264E68F6FD491CAD76EB06 + 6858D7D2E1774834A25D5083 + 32099B9542D746529341D64F isa - PBXGroup - name - Pods + PBXGroup sourceTree <group> - 5FCAED4760BB4BC38E9EF0A6 + 5AA74AA4383B49CF98E3DDF8 includeInIndex 1 @@ -1032,41 +1056,48 @@ lastKnownFileType sourcecode.c.objc name - AFNetworkReachabilityManager.m + UIWebView+AFNetworking.m path - AFNetworking/AFNetworkReachabilityManager.m + UIKit+AFNetworking/UIWebView+AFNetworking.m sourceTree <group> - 6041EEA4FD8548989172B7A3 + 5ABDE63683BD4858ABFC0A2A + + fileRef + A5507D427D1E45759FA4F767 + isa + PBXBuildFile + + 5B164BD9B86A4B99BBAAE46E + includeInIndex + 1 isa PBXFileReference lastKnownFileType - wrapper.framework - name - Foundation.framework + sourcecode.c.h path - Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/System/Library/Frameworks/Foundation.framework + Pods-environment.h sourceTree - DEVELOPER_DIR + <group> - 60D0DF31AC9242B49745F84C + 5ECAE11723E845F2B3E4B712 includeInIndex 1 isa PBXFileReference lastKnownFileType - sourcecode.c.h + sourcecode.c.objc name - UIKit+AFNetworking.h + BDBOAuth1SessionManager.m path - UIKit+AFNetworking/UIKit+AFNetworking.h + BDBOAuth1Manager/BDBOAuth1SessionManager.m sourceTree <group> - 61E2433D637F47BBAABBB55C + 5F4F62D3E941439F9EDE31B7 includeInIndex 1 @@ -1074,25 +1105,14 @@ PBXFileReference lastKnownFileType sourcecode.c.objc + name + AFURLRequestSerialization.m path - Pods-dummy.m + AFNetworking/AFURLRequestSerialization.m sourceTree <group> - 62231323D3774C4F9EE53E37 - - containerPortal - 4E3E557B13204629994D3BB8 - isa - PBXContainerItemProxy - proxyType - 1 - remoteGlobalIDString - BA3292AA93EC4C249841C31D - remoteInfo - Pods-AFNetworking - - 66E8D3E19AB842768391E209 + 60F4FB5B58C542CF99229145 includeInIndex 1 @@ -1105,7 +1125,19 @@ sourceTree <group> - 675F54EE7C844CFF9B022DC6 + 624A08F582E0412290030245 + + fileRef + 5AA74AA4383B49CF98E3DDF8 + isa + PBXBuildFile + settings + + COMPILER_FLAGS + -fobjc-arc + + + 62815CBD25204B6DAA27031E includeInIndex 1 @@ -1113,290 +1145,84 @@ PBXFileReference lastKnownFileType sourcecode.c.objc - name - UIImageView+AFNetworking.m path - UIKit+AFNetworking/UIImageView+AFNetworking.m + Pods-AFNetworking-dummy.m sourceTree <group> - 679DABF1AD694705BECE0442 - - buildConfigurations - - 2C2A64BFA0204EC38FA9514C - 2D16D57790704DE8A84D7A88 - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release - isa - XCConfigurationList - - 67CFC3B711204B1F86F970D2 + 62D8FCF6F49E47AE94ED62EA fileRef - 55554E4C1D8D4FC0A20A1C9D + 6E5AE312E51640629C104714 isa PBXBuildFile - 68965D644A6D4B1097C3EB6A + 64549F753E864A8CA746BB5A fileRef - EC3C310268DC45C5B834C1F1 + 6C0D6D7E697B4F8EA25808B5 isa PBXBuildFile - 6A212CFD0E49482CBAF4D271 + 668E2B0C530F4BE6B9D99B1D - fileRef - 60D0DF31AC9242B49745F84C - isa - PBXBuildFile - - 6D96163FBB0D4EBCB64B8A09 - - baseConfigurationReference - 66E8D3E19AB842768391E209 - buildSettings - - ALWAYS_SEARCH_USER_PATHS - NO - COPY_PHASE_STRIP - YES - DSTROOT - /tmp/xcodeproj.dst - GCC_C_LANGUAGE_STANDARD - gnu99 - GCC_PRECOMPILE_PREFIX_HEADER - YES - GCC_PREFIX_HEADER - Pods-AFNetworking-prefix.pch - GCC_VERSION - com.apple.compilers.llvm.clang.1_0 - INSTALL_PATH - $(BUILT_PRODUCTS_DIR) - IPHONEOS_DEPLOYMENT_TARGET - 7.0 - OTHER_CFLAGS - - -DNS_BLOCK_ASSERTIONS=1 - $(inherited) - - OTHER_CPLUSPLUSFLAGS - - -DNS_BLOCK_ASSERTIONS=1 - $(inherited) - - OTHER_LDFLAGS - - PRODUCT_NAME - $(TARGET_NAME) - PUBLIC_HEADERS_FOLDER_PATH - $(TARGET_NAME) - SDKROOT - iphoneos - SKIP_INSTALL - YES - VALIDATE_PRODUCT - YES - - isa - XCBuildConfiguration - name - Release - - 6E8C62082D394BEC88545987 - - children + buildConfigurations - DD5430B8C9E04CF4955BD62C - D97A0D5442794AFC823E1B36 + 039326F0F595419CA159C0DB + 0C6ABA01A9D14703B776D245 + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release isa - PBXGroup - name - Security - sourceTree - <group> + XCConfigurationList - 734501AC28434564A85685EF + 681D2C27DA3A4BD9A5BAF646 - buildActionMask - 2147483647 - files - - 2DC3991DC3FD44E58E51F109 - F33F3D30CDA4453CB00ED595 - ABE9638973C04214A4C8995E - EFC275E3743040A986D979BC - 5364E4B62B674243B7C41518 - 0DD384B7AE7B464683EFB5E3 - + fileRef + 6E5AE312E51640629C104714 isa - PBXSourcesBuildPhase - runOnlyForDeploymentPostprocessing - 0 + PBXBuildFile - 736DD9FE41DA489CAF2029E9 + 6858D7D2E1774834A25D5083 children - BAD1023AFF4A498DA2B29F9E - D463AF1DC77146C2B91D9A31 - 04137369DAC147DFA0BC9DD3 - 83CF1DB77DB24D6780A0B2F1 + E84178ADE4E04666B8168EC9 + 829C69F660BD4A8BAEB98054 + 088A6B7B4C1A4A069643AB9E isa PBXGroup name - Support Files + Products sourceTree - SOURCE_ROOT - - 7496F12D36134D44BC893072 - - fileRef - 2CBD3C2B674A454FA488BCCB - isa - PBXBuildFile + <group> - 75DD5AA3145F4A70997A7C7F + 695C846DE307400EB6ECAA5E fileRef - D97A0D5442794AFC823E1B36 + 493D738274EA43AAB9B848E1 isa PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - - - 760D20BD3A6940619AFB4F2E - - containerPortal - 4E3E557B13204629994D3BB8 - isa - PBXContainerItemProxy - proxyType - 1 - remoteGlobalIDString - 96C63594E4EF45049741F64F - remoteInfo - Pods-BDBOAuth1Manager - - 76DD6410EF4B4872A699BD18 - - explicitFileType - archive.ar - includeInIndex - 0 - isa - PBXFileReference - path - libPods-AFNetworking.a - sourceTree - BUILT_PRODUCTS_DIR - 7758E9EB57B84895AE638F77 + 6A8E2D53E8BA4CAC94C3FC9E includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - name - BDBOAuth1RequestSerializer.h - path - BDBOAuth1Manager/BDBOAuth1RequestSerializer.h - sourceTree - <group> - - 78D79C3E8F6E4AE0BD91C874 - - isa - PBXFileReference - lastKnownFileType - wrapper.framework - name - MobileCoreServices.framework - path - Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/System/Library/Frameworks/MobileCoreServices.framework - sourceTree - DEVELOPER_DIR - - 79FACA55D1194CE691354B1A - - children - - 0028127B92A44A72B3F81B32 - 86BB9F2CA5954BCFBABB3FB8 - 11AD6073DD684803BC5513E9 - 5AEA0BF518DF412DAB83C76C - - isa - PBXGroup - name - Serialization - sourceTree - <group> - - 7A16570C975F44F5914B0CCF - - baseConfigurationReference - D463AF1DC77146C2B91D9A31 - buildSettings - - ALWAYS_SEARCH_USER_PATHS - NO - COPY_PHASE_STRIP - YES - DSTROOT - /tmp/xcodeproj.dst - GCC_C_LANGUAGE_STANDARD - gnu99 - GCC_PRECOMPILE_PREFIX_HEADER - YES - GCC_PREFIX_HEADER - Pods-BDBOAuth1Manager-prefix.pch - GCC_VERSION - com.apple.compilers.llvm.clang.1_0 - INSTALL_PATH - $(BUILT_PRODUCTS_DIR) - IPHONEOS_DEPLOYMENT_TARGET - 7.0 - OTHER_CFLAGS - - -DNS_BLOCK_ASSERTIONS=1 - $(inherited) - - OTHER_CPLUSPLUSFLAGS - - -DNS_BLOCK_ASSERTIONS=1 - $(inherited) - - OTHER_LDFLAGS - - PRODUCT_NAME - $(TARGET_NAME) - PUBLIC_HEADERS_FOLDER_PATH - $(TARGET_NAME) - SDKROOT - iphoneos - SKIP_INSTALL - YES - VALIDATE_PRODUCT - YES - + 1 isa - XCBuildConfiguration + PBXFileReference + lastKnownFileType + sourcecode.c.objc name - Release + AFURLConnectionOperation.m + path + AFNetworking/AFURLConnectionOperation.m + sourceTree + <group> - 7DE14F2AA4884380A3254579 + 6C0D6D7E697B4F8EA25808B5 includeInIndex 1 @@ -1405,183 +1231,139 @@ lastKnownFileType sourcecode.c.h name - AFHTTPSessionManager.h + AFSecurityPolicy.h path - AFNetworking/AFHTTPSessionManager.h + AFNetworking/AFSecurityPolicy.h sourceTree <group> - 7E6DF8CF142347069D40A51A + 6C84569EAFC3448997628091 - baseConfigurationReference - D463AF1DC77146C2B91D9A31 - buildSettings - - ALWAYS_SEARCH_USER_PATHS - NO - COPY_PHASE_STRIP - NO - DSTROOT - /tmp/xcodeproj.dst - GCC_C_LANGUAGE_STANDARD - gnu99 - GCC_DYNAMIC_NO_PIC - NO - GCC_OPTIMIZATION_LEVEL - 0 - GCC_PRECOMPILE_PREFIX_HEADER - YES - GCC_PREFIX_HEADER - Pods-BDBOAuth1Manager-prefix.pch - GCC_PREPROCESSOR_DEFINITIONS - - DEBUG=1 - $(inherited) - - GCC_SYMBOLS_PRIVATE_EXTERN - NO - GCC_VERSION - com.apple.compilers.llvm.clang.1_0 - INSTALL_PATH - $(BUILT_PRODUCTS_DIR) - IPHONEOS_DEPLOYMENT_TARGET - 7.0 - OTHER_LDFLAGS - - PRODUCT_NAME - $(TARGET_NAME) - PUBLIC_HEADERS_FOLDER_PATH - $(TARGET_NAME) - SDKROOT - iphoneos - SKIP_INSTALL - YES - + fileRef + 304F6B132A914DD08C3A3223 isa - XCBuildConfiguration - name - Debug + PBXBuildFile - 7FDF5599F24F4D6F800BCBC7 + 6D993E18A48D4637B1C8941E - children - - EC3C310268DC45C5B834C1F1 - 9C38608421EE4E3DB18D514A - 2FF3F1152A1249F69624BD15 - 3784BC628509444CA07A46D3 - EB9C06BC7CD047AFBA76E2AE - 02E89E8A8078408F8CBD15D6 - + includeInIndex + 1 isa - PBXGroup + PBXFileReference + lastKnownFileType + sourcecode.c.h name - NSURLConnection + BDBOAuth1RequestSerializer.h + path + BDBOAuth1Manager/BDBOAuth1RequestSerializer.h sourceTree <group> - 813FA198904D4718B801A7F9 + 6E5AE312E51640629C104714 - buildConfigurations - - D0504289ACBB4498B6E7BD2A - 6D96163FBB0D4EBCB64B8A09 - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release isa - XCConfigurationList + PBXFileReference + lastKnownFileType + wrapper.framework + name + Foundation.framework + path + Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/Foundation.framework + sourceTree + DEVELOPER_DIR - 816D049BC0484A92B4100FE0 + 70A351EE410E499EA0A07CB7 includeInIndex 1 isa PBXFileReference lastKnownFileType - sourcecode.c.objc + sourcecode.c.h name - UIProgressView+AFNetworking.m + AFNetworkReachabilityManager.h path - UIKit+AFNetworking/UIProgressView+AFNetworking.m + AFNetworking/AFNetworkReachabilityManager.h sourceTree <group> - 827035396690490AB8A3F874 + 7624737248D44CC6989AED03 + + containerPortal + DC0D312D51BB48E2A2934876 + isa + PBXContainerItemProxy + proxyType + 1 + remoteGlobalIDString + D2B2FCE1860045B18456EB17 + remoteInfo + Pods-AFNetworking + + 77351D1909D14B69B9882676 fileRef - 9C38608421EE4E3DB18D514A + 6D993E18A48D4637B1C8941E isa PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - - 83CF1DB77DB24D6780A0B2F1 + 7BA60F54B8BA4A38BC9F9523 includeInIndex 1 isa PBXFileReference lastKnownFileType - sourcecode.c.h + sourcecode.c.objc + name + UIActivityIndicatorView+AFNetworking.m path - Pods-BDBOAuth1Manager-prefix.pch + UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.m sourceTree <group> - 852A58BAC1514E2E8B7D3E4F + 7DCE16AEAE3E483988D851D4 - children - - B88A8B2C836342FF9287BD86 - 284B97FE6A8E40D59B7D06FF - 26267C75A8DD441EBB26B2D7 - 1DD22AACFD574E98ACB08362 - D7E0786CD2CF4813A9E00ACD - 195179D03AFB494E9A6FC86D - A60409C24D0A4A8AB1C0056C - A2C707F6A33D470BAB4C432F - 0D25440A9D0640C9B045CDB1 - 675F54EE7C844CFF9B022DC6 - 60D0DF31AC9242B49745F84C - DADBD1CB7DFC495EB0983E80 - 816D049BC0484A92B4100FE0 - 241368771B3F42BB8EDB63C4 - 2875857077FA4A5CBD30924B - F30B59C06DAE4F2C8E0CE969 - 8BD1D4AC9FF140D5A8ADAB08 - + includeInIndex + 1 isa - PBXGroup - name - UIKit + PBXFileReference + lastKnownFileType + text.script.sh + path + Pods-resources.sh sourceTree <group> - 86BB9F2CA5954BCFBABB3FB8 + 7FB0569E833A4E3A8C957235 + + fileRef + 8AAEBCA0A7044538AC8797D0 + isa + PBXBuildFile + settings + + COMPILER_FLAGS + -fobjc-arc + + + 829C69F660BD4A8BAEB98054 + explicitFileType + archive.ar includeInIndex - 1 + 0 isa PBXFileReference - lastKnownFileType - sourcecode.c.objc - name - AFURLRequestSerialization.m path - AFNetworking/AFURLRequestSerialization.m + libPods-AFNetworking.a sourceTree - <group> + BUILT_PRODUCTS_DIR - 8A098B51842A4CA8B5AA72C7 + 83219C9C3AE84C6FB9A73AA4 fileRef - 195179D03AFB494E9A6FC86D + C44AB2BC4A224710B5FF7E97 isa PBXBuildFile settings @@ -1590,32 +1372,30 @@ -fobjc-arc - 8BD1D4AC9FF140D5A8ADAB08 + 832C5489F83F4BF18DC8A74B includeInIndex 1 isa PBXFileReference lastKnownFileType - sourcecode.c.objc - name - UIWebView+AFNetworking.m + text.xcconfig path - UIKit+AFNetworking/UIWebView+AFNetworking.m + Pods.xcconfig sourceTree <group> - 8BF2FD4F6D114941937FD343 + 842458D38DF0423B84D592CD fileRef - 7758E9EB57B84895AE638F77 + 8EEFB0F1AE20463CB6618657 isa PBXBuildFile - 91281656E20D41E5B5E3F1A7 + 8447C87FBC3E469186E2B0CE fileRef - 5AEA0BF518DF412DAB83C76C + 597F076CA0A1473BBBFB1E7C isa PBXBuildFile settings @@ -1624,160 +1404,103 @@ -fobjc-arc - 936599475E1C405F82F3F1D8 - - baseConfigurationReference - AD9B8347F8A345ACB81AF36A - buildSettings - - ALWAYS_SEARCH_USER_PATHS - NO - COPY_PHASE_STRIP - YES - DSTROOT - /tmp/xcodeproj.dst - GCC_C_LANGUAGE_STANDARD - gnu99 - GCC_PRECOMPILE_PREFIX_HEADER - YES - GCC_VERSION - com.apple.compilers.llvm.clang.1_0 - INSTALL_PATH - $(BUILT_PRODUCTS_DIR) - IPHONEOS_DEPLOYMENT_TARGET - 7.0 - OTHER_CFLAGS - - -DNS_BLOCK_ASSERTIONS=1 - $(inherited) - - OTHER_CPLUSPLUSFLAGS - - -DNS_BLOCK_ASSERTIONS=1 - $(inherited) - - OTHER_LDFLAGS - - PRODUCT_NAME - $(TARGET_NAME) - PUBLIC_HEADERS_FOLDER_PATH - $(TARGET_NAME) - SDKROOT - iphoneos - SKIP_INSTALL - YES - VALIDATE_PRODUCT - YES - - isa - XCBuildConfiguration - name - Release - - 940C0C766C594AE1851C1D21 + 86138302FC4249939031FA72 includeInIndex 1 isa PBXFileReference lastKnownFileType - sourcecode.c.h - name - AFNetworking.h + text.xcconfig path - AFNetworking/AFNetworking.h + Pods-BDBOAuth1Manager.xcconfig sourceTree <group> - 96649C75E4654B6D9297659F + 86264E68F6FD491CAD76EB06 children - 2CE19D17FE244346AA16CA80 - 6041EEA4FD8548989172B7A3 - 78D79C3E8F6E4AE0BD91C874 - D204DAE978A0477FBBFF515B - 55554E4C1D8D4FC0A20A1C9D + 3345C312F0DB4089890E2606 + 4C91740C52D346F09AD53718 isa PBXGroup name - iOS + Pods sourceTree <group> - 96C63594E4EF45049741F64F + 879B9F0B10EB45168F0F5931 - buildConfigurationList - 1203B8C7C1324F699E85E765 - buildPhases - - 734501AC28434564A85685EF - BB5B49514B374B5F8C542841 - 50B6BCC17FF8465D83E22E59 - - buildRules - - dependencies - - 0862550EF0E1431BADA22463 - + containerPortal + DC0D312D51BB48E2A2934876 isa - PBXNativeTarget - name - Pods-BDBOAuth1Manager - productName + PBXContainerItemProxy + proxyType + 1 + remoteGlobalIDString + 0CCC55749F854FE4ADCAE72D + remoteInfo Pods-BDBOAuth1Manager - productReference - A7541F134A464E94953865F5 - productType - com.apple.product-type.library.static - 9810245015374860A417FC72 + 8828DF462EC64FCAA9DDD40A + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + AFNetworkReachabilityManager.m + path + AFNetworking/AFNetworkReachabilityManager.m + sourceTree + <group> + + 8831C2543ED844FDA80D9DB6 + + buildConfigurations + + BA043ED9B1FB4E7F8C474540 + A40162E94DBC49E793D25270 + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + 8AAEBCA0A7044538AC8797D0 includeInIndex 1 isa PBXFileReference lastKnownFileType - text.script.sh + sourcecode.c.objc + name + AFHTTPRequestOperationManager.m path - Pods-resources.sh + AFNetworking/AFHTTPRequestOperationManager.m sourceTree <group> - 9883D41A97974C7EB66CCF30 + 8AD1EF389F4F402E81564255 - buildActionMask - 2147483647 - files - - 68965D644A6D4B1097C3EB6A - 4ABE337FA7864BFD9AE1EE3B - 45DC7C997A0E4EF398C297A8 - 1D0143C0D1F6457695989E23 - DA905A68A6B54DDD9F14146D - AF3FBA1C658F4441B0AFDBF0 - 5A3DBBA21C474405B44E16B6 - 5DDCF6E8F819481E8995557B - EE46C7E685E2425A8A7187F7 - EC25FCB2B056405EABABBB46 - 51F8A2D88D034A74AB07898E - C327DD13513E473FAABB70B0 - 13727B6FC14D4AA78E94FB4F - 4168CDEA4C0147E1A61E5CD1 - DDC8F79E320242D78757D671 - 6A212CFD0E49482CBAF4D271 - 3E5968EC173446029C2B89EE - F4A84EDEE6B14F7A8D61846E - 3CB5071DCC414161B0940255 - + fileRef + E6A66A52F71B44F18CA4C858 isa - PBXHeadersBuildPhase - runOnlyForDeploymentPostprocessing - 0 + PBXBuildFile + settings + + COMPILER_FLAGS + -fobjc-arc + - 9C38608421EE4E3DB18D514A + 8C5E5944DE494677955EFEEE includeInIndex 1 @@ -1786,39 +1509,47 @@ lastKnownFileType sourcecode.c.objc name - AFHTTPRequestOperation.m + BDBOAuth1RequestSerializer.m path - AFNetworking/AFHTTPRequestOperation.m + BDBOAuth1Manager/BDBOAuth1RequestSerializer.m sourceTree <group> - 9E1DE05AC62E4B449FBFE042 + 8E2287664688427D87621AB0 - fileRef - 6041EEA4FD8548989172B7A3 + buildConfigurations + + AE6572C640E5419C9AAACB1F + 25DEFB558DBE4E1FB77F3B4A + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release isa - PBXBuildFile + XCConfigurationList - A028940A29FB4B4D9B7E00A0 + 8EEFB0F1AE20463CB6618657 - fileRef - 1DD22AACFD574E98ACB08362 isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - + PBXFileReference + lastKnownFileType + wrapper.framework + name + Security.framework + path + Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/Security.framework + sourceTree + DEVELOPER_DIR - A25BA1F19126416A855F7F77 + 8F39E02FAD574762A11E762D fileRef - 500C24E4D8374390921B9457 + 309051BB06504BEFB6596FCD isa PBXBuildFile - A2C707F6A33D470BAB4C432F + 913980731B0140EF8E8D373F includeInIndex 1 @@ -1827,32 +1558,43 @@ lastKnownFileType sourcecode.c.objc name - UIButton+AFNetworking.m + AFURLResponseSerialization.m path - UIKit+AFNetworking/UIButton+AFNetworking.m + AFNetworking/AFURLResponseSerialization.m sourceTree <group> - A3DD400530D04932BF87ECC6 + 91611013282644F49B306AE6 - fileRef - D204DAE978A0477FBBFF515B + includeInIndex + 1 isa - PBXBuildFile + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + UIImageView+AFNetworking.h + path + UIKit+AFNetworking/UIImageView+AFNetworking.h + sourceTree + <group> - A5E32BC8C3054CD89DE5DCC3 + 949DCC6276844F09B2F24BBB - fileRef - 3784BC628509444CA07A46D3 + includeInIndex + 1 isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + UIAlertView+AFNetworking.h + path + UIKit+AFNetworking/UIAlertView+AFNetworking.h + sourceTree + <group> - A60409C24D0A4A8AB1C0056C + 961705C2042844288D7B6CB6 includeInIndex 1 @@ -1861,54 +1603,66 @@ lastKnownFileType sourcecode.c.h name - UIButton+AFNetworking.h + NSDictionary+BDBOAuth1Manager.h path - UIKit+AFNetworking/UIButton+AFNetworking.h + BDBOAuth1Manager/Categories/NSDictionary+BDBOAuth1Manager.h sourceTree <group> - A7541F134A464E94953865F5 + 9654454D0B28483482395BA7 + + fileRef + 70A351EE410E499EA0A07CB7 + isa + PBXBuildFile + + 99BB0EBF76B3493194333FC5 - explicitFileType - archive.ar includeInIndex - 0 + 1 isa PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + AFURLSessionManager.m path - libPods-BDBOAuth1Manager.a + AFNetworking/AFURLSessionManager.m sourceTree - BUILT_PRODUCTS_DIR + <group> - A79E0D731B974EBBB5F0134D + 9C52863F85C84BD0A750EA33 - fileRef - 02E89E8A8078408F8CBD15D6 isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - + PBXFileReference + lastKnownFileType + wrapper.framework + name + MobileCoreServices.framework + path + Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/MobileCoreServices.framework + sourceTree + DEVELOPER_DIR - A96298DA5B704A4F8E7D488B + 9D947A2C814D438B82AD24CF - children - - 5F435886E3944584BCF82428 - + includeInIndex + 1 isa - PBXGroup + PBXFileReference + lastKnownFileType + sourcecode.c.h name - Targets Support Files + AFURLResponseSerialization.h + path + AFNetworking/AFURLResponseSerialization.h sourceTree <group> - ABE9638973C04214A4C8995E + A07EDAFB4574461A944D4707 fileRef - CDB1B59A7A264CB0A10A7A56 + B49107BD40744AE7A5091F57 isa PBXBuildFile settings @@ -1917,52 +1671,116 @@ -fobjc-arc - AD9B8347F8A345ACB81AF36A + A0CD83C5449641FD99A2CAD3 includeInIndex 1 isa PBXFileReference lastKnownFileType - text.xcconfig + sourcecode.c.h path - Pods.xcconfig + Pods-BDBOAuth1Manager-prefix.pch + sourceTree + <group> + + A130D6357598450386DBB1E7 + + children + + 2B1BE1C3A1AE42888E9B9E92 + + isa + PBXGroup + name + Frameworks sourceTree <group> - AECE7BD8C1B444F0B719B42A + A40162E94DBC49E793D25270 + + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + CLANG_CXX_LANGUAGE_STANDARD + gnu++0x + CLANG_CXX_LIBRARY + libc++ + CLANG_ENABLE_MODULES + YES + CLANG_ENABLE_OBJC_ARC + NO + CLANG_WARN_BOOL_CONVERSION + YES + CLANG_WARN_CONSTANT_CONVERSION + YES + CLANG_WARN_DIRECT_OBJC_ISA_USAGE + YES + CLANG_WARN_EMPTY_BODY + YES + CLANG_WARN_ENUM_CONVERSION + YES + CLANG_WARN_INT_CONVERSION + YES + CLANG_WARN_OBJC_ROOT_CLASS + YES + COPY_PHASE_STRIP + NO + ENABLE_NS_ASSERTIONS + NO + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_WARN_64_TO_32_BIT_CONVERSION + YES + GCC_WARN_ABOUT_RETURN_TYPE + YES + GCC_WARN_UNDECLARED_SELECTOR + YES + GCC_WARN_UNINITIALIZED_AUTOS + YES + GCC_WARN_UNUSED_FUNCTION + YES + GCC_WARN_UNUSED_VARIABLE + YES + IPHONEOS_DEPLOYMENT_TARGET + 7.0 + STRIP_INSTALLED_PRODUCT + NO + VALIDATE_PRODUCT + YES + + isa + XCBuildConfiguration + name + Release + + A5507D427D1E45759FA4F767 includeInIndex 1 isa PBXFileReference lastKnownFileType - sourcecode.c.objc + sourcecode.c.h name - BDBOAuth1RequestOperationManager.m + UIActivityIndicatorView+AFNetworking.h path - BDBOAuth1Manager/BDBOAuth1RequestOperationManager.m + UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h sourceTree <group> - AF3FBA1C658F4441B0AFDBF0 - - fileRef - 940C0C766C594AE1851C1D21 - isa - PBXBuildFile - - B6B7E8EFF36B409D82751648 + A5AFEB542A0446AC87716C59 fileRef - 61E2433D637F47BBAABBB55C + 08103254577847B790B1D8D2 isa PBXBuildFile - B6FABB9473164729989393F7 + A68E5FD65A45430391EB7AD6 fileRef - 284B97FE6A8E40D59B7D06FF + 99BB0EBF76B3493194333FC5 isa PBXBuildFile settings @@ -1971,7 +1789,7 @@ -fobjc-arc - B88A8B2C836342FF9287BD86 + A739D9B08393497D8FCDC776 includeInIndex 1 @@ -1980,93 +1798,96 @@ lastKnownFileType sourcecode.c.h name - AFNetworkActivityIndicatorManager.h + UIButton+AFNetworking.h path - UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h + UIKit+AFNetworking/UIButton+AFNetworking.h + sourceTree + <group> + + A87E064913454C5BBF937D9F + + children + + 6C0D6D7E697B4F8EA25808B5 + 13F0D1F4165248EF8AADC692 + + isa + PBXGroup + name + Security sourceTree <group> - B8AF5544514A49E4A9F3B31D + A9163934C15149EBB4433D12 + + children + + 86138302FC4249939031FA72 + DCE7035AF51A4FF8BF642EAF + 309051BB06504BEFB6596FCD + A0CD83C5449641FD99A2CAD3 + + isa + PBXGroup + name + Support Files + sourceTree + SOURCE_ROOT + + A9DF1BDC0CA946C092CC476C + + buildActionMask + 2147483647 + files + + 681D2C27DA3A4BD9A5BAF646 + + isa + PBXFrameworksBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + AAF8B21147EE454AA4CF4B86 includeInIndex 1 isa PBXFileReference lastKnownFileType - text + sourcecode.c.objc name - Podfile + BDBOAuth1RequestOperationManager.m path - ../Podfile + BDBOAuth1Manager/BDBOAuth1RequestOperationManager.m sourceTree - SOURCE_ROOT - xcLanguageSpecificationIdentifier - xcode.lang.ruby - - B977314728ED4B3B91D1BFCF - - isa - PBXTargetDependency - target - BA3292AA93EC4C249841C31D - targetProxy - 1E342FA6877E49BE85317401 - - BA3292AA93EC4C249841C31D - - buildConfigurationList - 813FA198904D4718B801A7F9 - buildPhases - - 2085B639350248C0950BBE3A - 39B7902F884247ACBB3ACD97 - 9883D41A97974C7EB66CCF30 - - buildRules - - dependencies - - isa - PBXNativeTarget - name - Pods-AFNetworking - productName - Pods-AFNetworking - productReference - 76DD6410EF4B4872A699BD18 - productType - com.apple.product-type.library.static + <group> - BAD1023AFF4A498DA2B29F9E + ACCCD8DD781C4140B2CEAB4E includeInIndex 1 isa PBXFileReference lastKnownFileType - text.xcconfig + sourcecode.c.objc + name + AFNetworkActivityIndicatorManager.m path - Pods-BDBOAuth1Manager.xcconfig + UIKit+AFNetworking/AFNetworkActivityIndicatorManager.m sourceTree <group> - BB5B49514B374B5F8C542841 + ADF920D4726D4C899A889AAD - buildActionMask - 2147483647 - files - - 1B2FB7F0D08C491BA75129CD - + fileRef + 91611013282644F49B306AE6 isa - PBXFrameworksBuildPhase - runOnlyForDeploymentPostprocessing - 0 + PBXBuildFile - BBDCFCE013B24382BF49B37E + AE6572C640E5419C9AAACB1F baseConfigurationReference - AD9B8347F8A345ACB81AF36A + DCE7035AF51A4FF8BF642EAF buildSettings ALWAYS_SEARCH_USER_PATHS @@ -2083,6 +1904,8 @@ 0 GCC_PRECOMPILE_PREFIX_HEADER YES + GCC_PREFIX_HEADER + Pods-BDBOAuth1Manager-prefix.pch GCC_PREPROCESSOR_DEFINITIONS DEBUG=1 @@ -2112,29 +1935,10 @@ name Debug - C327DD13513E473FAABB70B0 - - fileRef - 26267C75A8DD441EBB26B2D7 - isa - PBXBuildFile - - C3B925F8A71846BBB1748F08 - - fileRef - A2C707F6A33D470BAB4C432F - isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - - - C56D7ADFBB7E499DB1FE674C + B1B84F8FC12541B780F5F315 fileRef - DB7654ECECF141CFB4A35537 + 5F4F62D3E941439F9EDE31B7 isa PBXBuildFile settings @@ -2143,62 +1947,25 @@ -fobjc-arc - C80B52E86B0C489DB7EA5D09 - - isa - PBXTargetDependency - target - 96C63594E4EF45049741F64F - targetProxy - 760D20BD3A6940619AFB4F2E - - CDB1B59A7A264CB0A10A7A56 + B285164BA007454EB435DBBA includeInIndex 1 isa PBXFileReference lastKnownFileType - sourcecode.c.objc + sourcecode.c.h name - BDBOAuth1SessionManager.m - path - BDBOAuth1Manager/BDBOAuth1SessionManager.m - sourceTree - <group> - - CE3AFAC471A549E5A893CFA9 - - buildActionMask - 2147483647 - files - - 9E1DE05AC62E4B449FBFE042 - 4F8D2EAFD63B490FA7C4F6AB - 37281E23E7D64E3AAC1B9326 - - isa - PBXFrameworksBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - CF9A92992B57447B91657B89 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig + BDBOAuth1SessionManager.h path - Pods-AFNetworking.xcconfig + BDBOAuth1Manager/BDBOAuth1SessionManager.h sourceTree <group> - D0504289ACBB4498B6E7BD2A + B2B0046FE02047AFBABF60BA baseConfigurationReference - 66E8D3E19AB842768391E209 + 60F4FB5B58C542CF99229145 buildSettings ALWAYS_SEARCH_USER_PATHS @@ -2246,60 +2013,226 @@ name Debug - D204DAE978A0477FBBFF515B + B2FF23743BBC4AC390BFD068 + includeInIndex + 1 isa PBXFileReference lastKnownFileType - wrapper.framework + sourcecode.c.h name - Security.framework + AFURLConnectionOperation.h path - Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/System/Library/Frameworks/Security.framework + AFNetworking/AFURLConnectionOperation.h sourceTree - DEVELOPER_DIR + <group> - D40C302169384BF68FCEB750 + B49107BD40744AE7A5091F57 - children - - 2F764968162C4DCFBDBEE6EE - 5FCAED4760BB4BC38E9EF0A6 - + includeInIndex + 1 isa - PBXGroup + PBXFileReference + lastKnownFileType + sourcecode.c.objc name - Reachability + NSString+BDBOAuth1Manager.m + path + BDBOAuth1Manager/Categories/NSString+BDBOAuth1Manager.m sourceTree <group> - D463AF1DC77146C2B91D9A31 + B4A372BD83094271BF5E8712 + + fileRef + 5ECAE11723E845F2B3E4B712 + isa + PBXBuildFile + settings + + COMPILER_FLAGS + -fobjc-arc + + + B5ED90FDD972486C98E4D3CE includeInIndex 1 isa PBXFileReference lastKnownFileType - text.xcconfig + sourcecode.c.h + name + AFHTTPRequestOperation.h path - Pods-BDBOAuth1Manager-Private.xcconfig + AFNetworking/AFHTTPRequestOperation.h sourceTree <group> - D58D00B5A527408FAEC0AA35 + B7DE4AC65FCA4B0A8738E458 includeInIndex 1 isa PBXFileReference lastKnownFileType - sourcecode.c.objc + sourcecode.c.h + name + AFNetworkActivityIndicatorManager.h path - Pods-AFNetworking-dummy.m + UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h + sourceTree + <group> + + BA043ED9B1FB4E7F8C474540 + + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + CLANG_CXX_LANGUAGE_STANDARD + gnu++0x + CLANG_CXX_LIBRARY + libc++ + CLANG_ENABLE_MODULES + YES + CLANG_ENABLE_OBJC_ARC + NO + CLANG_WARN_BOOL_CONVERSION + YES + CLANG_WARN_CONSTANT_CONVERSION + YES + CLANG_WARN_DIRECT_OBJC_ISA_USAGE + YES + CLANG_WARN_EMPTY_BODY + YES + CLANG_WARN_ENUM_CONVERSION + YES + CLANG_WARN_INT_CONVERSION + YES + CLANG_WARN_OBJC_ROOT_CLASS + YES + COPY_PHASE_STRIP + YES + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_DYNAMIC_NO_PIC + NO + GCC_OPTIMIZATION_LEVEL + 0 + GCC_PREPROCESSOR_DEFINITIONS + + DEBUG=1 + $(inherited) + + GCC_SYMBOLS_PRIVATE_EXTERN + NO + GCC_WARN_64_TO_32_BIT_CONVERSION + YES + GCC_WARN_ABOUT_RETURN_TYPE + YES + GCC_WARN_UNDECLARED_SELECTOR + YES + GCC_WARN_UNINITIALIZED_AUTOS + YES + GCC_WARN_UNUSED_FUNCTION + YES + GCC_WARN_UNUSED_VARIABLE + YES + IPHONEOS_DEPLOYMENT_TARGET + 7.0 + ONLY_ACTIVE_ARCH + YES + STRIP_INSTALLED_PRODUCT + NO + + isa + XCBuildConfiguration + name + Debug + + BAE31B4950924D15A6B21AFA + + children + + 832C5489F83F4BF18DC8A74B + F514CC81456B44FDAC37DE26 + 37218425FFDD401FBF956AFF + 012FDF3835724EC1B885D599 + 5B164BD9B86A4B99BBAAE46E + 7DCE16AEAE3E483988D851D4 + + isa + PBXGroup + name + Pods + sourceTree + <group> + + BB695387BC9F46B296657CB7 + + isa + PBXTargetDependency + target + 0CCC55749F854FE4ADCAE72D + targetProxy + 879B9F0B10EB45168F0F5931 + + BCBA86B987A64A27B7B8FD22 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + BDBOAuth1RequestOperationManager.h + path + BDBOAuth1Manager/BDBOAuth1RequestOperationManager.h sourceTree <group> - D7903E4B57EB4F3C82DA7268 + BEA023E9E37C476A8BDF96FE + + fileRef + 62815CBD25204B6DAA27031E + isa + PBXBuildFile + + C0B9EFCE08A44D6F9975725A + + buildActionMask + 2147483647 + files + + 1B076F52DDDB4B1FB7586A6C + 4BEB9A4F732E4896A23ADB91 + 546BA52AD9A04C448EBB6BCF + 344DDFEAA50842C7B7B9B27F + 9654454D0B28483482395BA7 + 3E8D03838FD8460E841DC5B0 + 64549F753E864A8CA746BB5A + EB70D71B71664AEAA5099B24 + 5707AB7F74A74A448DCDEBB7 + ED7B867D8A6E4F0CA59CFE33 + 3364795A60214A36AD6F922A + 5ABDE63683BD4858ABFC0A2A + 0275FEF6346E4EBE8331D9D8 + 27880D6550F04344B37ACCF8 + ADF920D4726D4C899A889AAD + 695C846DE307400EB6ECAA5E + 10A286C0325145EA9FA20354 + D6361B5B89034643860BA32E + A5AFEB542A0446AC87716C59 + + isa + PBXHeadersBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + C0FB4B07820C4777BDCFEF4E includeInIndex 1 @@ -2308,13 +2241,13 @@ lastKnownFileType sourcecode.c.h name - AFURLSessionManager.h + UIRefreshControl+AFNetworking.h path - AFNetworking/AFURLSessionManager.h + UIKit+AFNetworking/UIRefreshControl+AFNetworking.h sourceTree <group> - D7E0786CD2CF4813A9E00ACD + C368C7FC0B32423FBE8CF2AE includeInIndex 1 @@ -2323,13 +2256,13 @@ lastKnownFileType sourcecode.c.h name - UIAlertView+AFNetworking.h + NSString+BDBOAuth1Manager.h path - UIKit+AFNetworking/UIAlertView+AFNetworking.h + BDBOAuth1Manager/Categories/NSString+BDBOAuth1Manager.h sourceTree <group> - D97A0D5442794AFC823E1B36 + C44AB2BC4A224710B5FF7E97 includeInIndex 1 @@ -2338,20 +2271,29 @@ lastKnownFileType sourcecode.c.objc name - AFSecurityPolicy.m + AFHTTPSessionManager.m path - AFNetworking/AFSecurityPolicy.m + AFNetworking/AFHTTPSessionManager.m sourceTree <group> - DA905A68A6B54DDD9F14146D + C5410B77BF9C400082A2E784 - fileRef - 2F764968162C4DCFBDBEE6EE + children + + C7CB16B3AE7641B8AAD648F6 + 5F4F62D3E941439F9EDE31B7 + 9D947A2C814D438B82AD24CF + 913980731B0140EF8E8D373F + isa - PBXBuildFile + PBXGroup + name + Serialization + sourceTree + <group> - DADBD1CB7DFC495EB0983E80 + C7CB16B3AE7641B8AAD648F6 includeInIndex 1 @@ -2360,53 +2302,73 @@ lastKnownFileType sourcecode.c.h name - UIProgressView+AFNetworking.h + AFURLRequestSerialization.h path - UIKit+AFNetworking/UIProgressView+AFNetworking.h + AFNetworking/AFURLRequestSerialization.h sourceTree <group> - DB7654ECECF141CFB4A35537 + D0580F4CD2C74E7890F9A154 includeInIndex 1 isa PBXFileReference lastKnownFileType - sourcecode.c.objc - name - AFHTTPSessionManager.m + text.xcconfig path - AFNetworking/AFHTTPSessionManager.m + Pods-AFNetworking.xcconfig sourceTree <group> - DD5430B8C9E04CF4955BD62C + D121B50E01DC4A57A2E4D797 - includeInIndex - 1 + fileRef + 573F7046E7A04B2B9DC2743D isa - PBXFileReference - lastKnownFileType - sourcecode.c.h + PBXBuildFile + settings + + COMPILER_FLAGS + -fobjc-arc + + + D2B2FCE1860045B18456EB17 + + buildConfigurationList + 2EF86B6505F7431E88362BD9 + buildPhases + + 16CEC448DA724B5DABD2254C + 13C3DDCDAA5142F7A8EA87B0 + C0B9EFCE08A44D6F9975725A + + buildRules + + dependencies + + isa + PBXNativeTarget name - AFSecurityPolicy.h - path - AFNetworking/AFSecurityPolicy.h - sourceTree - <group> + Pods-AFNetworking + productName + Pods-AFNetworking + productReference + 829C69F660BD4A8BAEB98054 + productType + com.apple.product-type.library.static - DDC8F79E320242D78757D671 + D2CADCB80D404374B1EA7353 fileRef - 0D25440A9D0640C9B045CDB1 + 9C52863F85C84BD0A750EA33 isa PBXBuildFile - E17E2D6E23144E4BA819A316 + D48D74415A9C444A9DC74E95 fileRef - 86BB9F2CA5954BCFBABB3FB8 + 7BA60F54B8BA4A38BC9F9523 isa PBXBuildFile settings @@ -2415,62 +2377,87 @@ -fobjc-arc - E3BD331831244E6F9BA72A49 + D6361B5B89034643860BA32E - explicitFileType - archive.ar - includeInIndex - 0 + fileRef + C0FB4B07820C4777BDCFEF4E isa - PBXFileReference - path - libPods.a - sourceTree - BUILT_PRODUCTS_DIR + PBXBuildFile - E56B154C3525404799C9C7C9 + D83697576E834E4996FD9DFB - includeInIndex - 1 + fileRef + 1AB9B7F0274F40A2B514D4FE isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - Pods-AFNetworking-prefix.pch - sourceTree - <group> + PBXBuildFile + settings + + COMPILER_FLAGS + -fobjc-arc + - E74827506991483DB6DCD747 + D992C2ECF5BC477C8EBBC24C children - B8AF5544514A49E4A9F3B31D - 41A7FE04E1644B348D728DD1 - 512F3D0D2376406B96DF2E69 - 1CE4A0F0ECF44A5BAC3C6AEE - A96298DA5B704A4F8E7D488B + 026349B779EC460CAB9AFFDE + C44AB2BC4A224710B5FF7E97 + 31017F40D5A64E848DB7C125 + 99BB0EBF76B3493194333FC5 isa PBXGroup + name + NSURLSession sourceTree <group> - E754DC1DE3E044108A18104F + D9EAAC21D98D469FA9EE4EAC fileRef - 6041EEA4FD8548989172B7A3 + 829C69F660BD4A8BAEB98054 isa PBXBuildFile - E9A931E6FA664B9583DF7094 + DC0D312D51BB48E2A2934876 - fileRef - 32EBEEE13B564A81B69C35F8 + attributes + + LastUpgradeCheck + 0510 + + buildConfigurationList + 8831C2543ED844FDA80D9DB6 + compatibilityVersion + Xcode 3.2 + developmentRegion + English + hasScannedForEncodings + 0 isa - PBXBuildFile + PBXProject + knownRegions + + en + + mainGroup + 5A65D1E4A98A4352B48A69FA + productRefGroup + 6858D7D2E1774834A25D5083 + projectDirPath + + projectReferences + + projectRoot + + targets + + 0EB9D236475F4B7C8C2BDD27 + D2B2FCE1860045B18456EB17 + 0CCC55749F854FE4ADCAE72D + - EB9C06BC7CD047AFBA76E2AE + DC30A303617C43B68727FC42 includeInIndex 1 @@ -2479,162 +2466,175 @@ lastKnownFileType sourcecode.c.h name - AFURLConnectionOperation.h + AFHTTPRequestOperationManager.h path - AFNetworking/AFURLConnectionOperation.h + AFNetworking/AFHTTPRequestOperationManager.h + sourceTree + <group> + + DCE7035AF51A4FF8BF642EAF + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + path + Pods-BDBOAuth1Manager-Private.xcconfig sourceTree <group> - EC25FCB2B056405EABABBB46 + DD5E8CB2035242DD84C6D1F8 fileRef - 11AD6073DD684803BC5513E9 + 088A6B7B4C1A4A069643AB9E isa PBXBuildFile - EC3C310268DC45C5B834C1F1 + DFEE7B270DCB45FFA6E2DEF8 includeInIndex 1 isa PBXFileReference lastKnownFileType - sourcecode.c.h + sourcecode.c.objc name - AFHTTPRequestOperation.h + AFHTTPRequestOperation.m path - AFNetworking/AFHTTPRequestOperation.h + AFNetworking/AFHTTPRequestOperation.m sourceTree <group> - EE46C7E685E2425A8A7187F7 - - fileRef - 0028127B92A44A72B3F81B32 - isa - PBXBuildFile - - EFC275E3743040A986D979BC + E2DD4AC3ABCE4CAA9425D8B6 fileRef - F8C7E0D223F540FFACA5D61B + 961705C2042844288D7B6CB6 isa PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - - F30B59C06DAE4F2C8E0CE969 + E6A66A52F71B44F18CA4C858 includeInIndex 1 isa PBXFileReference lastKnownFileType - sourcecode.c.h + sourcecode.c.objc name - UIWebView+AFNetworking.h + UIButton+AFNetworking.m path - UIKit+AFNetworking/UIWebView+AFNetworking.h + UIKit+AFNetworking/UIButton+AFNetworking.m sourceTree <group> - F33F3D30CDA4453CB00ED595 + E84178ADE4E04666B8168EC9 - fileRef - F9B2B226227042FD99767222 + explicitFileType + archive.ar + includeInIndex + 0 isa - PBXBuildFile - settings - - COMPILER_FLAGS - -fobjc-arc - + PBXFileReference + path + libPods.a + sourceTree + BUILT_PRODUCTS_DIR - F4A84EDEE6B14F7A8D61846E + EB70D71B71664AEAA5099B24 fileRef - 241368771B3F42BB8EDB63C4 + B2FF23743BBC4AC390BFD068 isa PBXBuildFile - F4E2B8DB00D4445890ADA4FB + EBBC0B26FF8D41E4A7FFCDA8 - buildConfigurations - - BBDCFCE013B24382BF49B37E - 936599475E1C405F82F3F1D8 - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release + fileRef + BCBA86B987A64A27B7B8FD22 isa - XCConfigurationList + PBXBuildFile - F6E2D6F05787459B8B8C730E + ED7B867D8A6E4F0CA59CFE33 - children - - 7DE14F2AA4884380A3254579 - DB7654ECECF141CFB4A35537 - D7903E4B57EB4F3C82DA7268 - 3832820606024CFD839129A5 - + fileRef + 9D947A2C814D438B82AD24CF isa - PBXGroup - name - NSURLSession - sourceTree - <group> + PBXBuildFile - F8C7E0D223F540FFACA5D61B + F514CC81456B44FDAC37DE26 includeInIndex 1 isa PBXFileReference lastKnownFileType - sourcecode.c.objc - name - NSDictionary+BDBOAuth1Manager.m + text path - BDBOAuth1Manager/Categories/NSDictionary+BDBOAuth1Manager.m + Pods-acknowledgements.markdown sourceTree <group> - F9B2B226227042FD99767222 + F8BDFF38B9754FDDBB3CE7D8 + + isa + PBXTargetDependency + target + D2B2FCE1860045B18456EB17 + targetProxy + 7624737248D44CC6989AED03 + + FA59AC1C9192404383DD84E5 includeInIndex 1 isa PBXFileReference lastKnownFileType - sourcecode.c.objc - name - BDBOAuth1RequestSerializer.m + sourcecode.c.h path - BDBOAuth1Manager/BDBOAuth1RequestSerializer.m + Pods-AFNetworking-prefix.pch sourceTree <group> - FB8BAA5BA74A4D3EAAC843C4 + FA5E4A3294514708BEEEF23D - includeInIndex - 1 + fileRef + 0C3B76D7AB3842D7BAF96F67 isa - PBXFileReference - lastKnownFileType - text.plist.xml - path - Pods-acknowledgements.plist + PBXBuildFile + + FB732FA536D745C0A56F02D9 + + children + + D0580F4CD2C74E7890F9A154 + 60F4FB5B58C542CF99229145 + 62815CBD25204B6DAA27031E + FA59AC1C9192404383DD84E5 + + isa + PBXGroup + name + Support Files sourceTree - <group> + SOURCE_ROOT + + FDD6E0B19271483F92526BFE + + fileRef + 913980731B0140EF8E8D373F + isa + PBXBuildFile + settings + + COMPILER_FLAGS + -fobjc-arc + rootObject - 4E3E557B13204629994D3BB8 + DC0D312D51BB48E2A2934876 diff --git a/README.md b/README.md index 100678d..52b5dde 100644 --- a/README.md +++ b/README.md @@ -1,83 +1,31 @@ -### Basic Yelp client +#ios_yelp -This is a headless example of how to implement an OAuth 1.0a Yelp API client. The Yelp API provides an application token that allows applications to make unauthenticated requests to their search API. +A simple iOS yelp search app -### Next steps +##Time spent: 10 + 5 hrs -- Check out `MainViewController.m` to see how to use the `YelpClient`. -- Augment the search method in the `YelpClient` with whatever search parameters you want to support. +##Requirements: -### Sample request + * Search results page + [x] Custom cells should have the proper Auto Layout constraints + [x] Search bar should be in the navigation bar (doesn't have to expand to show location like the real Yelp app does). + * Optional: Table rows should be dynamic height according to the content height + * Optional: infinite scroll for restaurant results + * Optional: Implement map view of restaurant results + * Filter page. Unfortunately, not all the filters are supported in the Yelp API. + [x] The filters you should actually have are: category, sort (best match, distance, highest rated), radius (meters), deals (on/off). + [x] The filters table should be organized into sections as in the mock. + [x] You can use the default UISwitch for on/off states. Optional: implement a custom switch + * Radius filter should expand as in the real Yelp app + [x] Categories should show a subset of the full list with a "Show All" row to expand and "Show Less" to collapse. Category list is here: http://www.yelp.com/developers/documentation/category_list + [x] Clicking on the "Search" button should dismiss the filters page and trigger the search w/ the new filter settings. + * Optional: Implement the restaurant detail page. -``` -self.client = [[YelpClient alloc] initWithConsumerKey:kYelpConsumerKey consumerSecret:kYelpConsumerSecret accessToken:kYelpToken accessSecret:kYelpTokenSecret]; - -[self.client searchWithTerm:@"Thai" success:^(AFHTTPRequestOperation *operation, id response) { - NSLog(@"response: %@", response); -} failure:^(AFHTTPRequestOperation *operation, NSError *error) { - NSLog(@"error: %@", [error description]); -}]; -``` +##Screencast -### Sample response +###Search screen + +Users enter search keywords and get a list of businesses. Users can use the Filter page to enter filters and fine tune the search result. The settings and last search can survive view change and app restart. + +Yelp search main view -``` -businesses = ( - { - categories = ( - ( - Thai, - thai - ) - ); - "display_phone" = "+1-415-931-6917"; - id = "lers-ros-thai-san-francisco"; - "image_url" = "http://s3-media2.ak.yelpcdn.com/bphoto/IStxUNVdfuPR2ddDAIPk_A/ms.jpg"; - "is_claimed" = 1; - "is_closed" = 0; - location = { - address = ( - "730 Larkin St" - ); - city = "San Francisco"; - "country_code" = US; - "cross_streets" = "Olive St & Ellis St"; - "display_address" = ( - "730 Larkin St", - "(b/t Olive St & Ellis St)", - Tenderloin, - "San Francisco, CA 94109" - ); - neighborhoods = ( - Tenderloin - ); - "postal_code" = 94109; - "state_code" = CA; - }; - "menu_date_updated" = 1387658025; - "menu_provider" = "single_platform"; - "mobile_url" = "http://m.yelp.com/biz/lers-ros-thai-san-francisco"; - name = "Lers Ros Thai"; - phone = 4159316917; - rating = 4; - "rating_img_url" = "http://s3-media4.ak.yelpcdn.com/assets/2/www/img/c2f3dd9799a5/ico/stars/v1/stars_4.png"; - "rating_img_url_large" = "http://s3-media2.ak.yelpcdn.com/assets/2/www/img/ccf2b76faa2c/ico/stars/v1/stars_large_4.png"; - "rating_img_url_small" = "http://s3-media4.ak.yelpcdn.com/assets/2/www/img/f62a5be2f902/ico/stars/v1/stars_small_4.png"; - "review_count" = 1154; - "snippet_image_url" = "http://s3-media4.ak.yelpcdn.com/photo/D40HpcJt-O6Ll654S_--6w/ms.jpg"; - "snippet_text" = "Fantastic pad-see-ew. Super rich, flavorful sauce and plenty of ginormous prawns, especially for a $12 price tag in San Francisco. I went through a pretty..."; - url = "http://www.yelp.com/biz/lers-ros-thai-san-francisco"; - } - ); - region = { - center = { - latitude = "37.7703124"; - longitude = "-122.43647245575"; - }; - span = { - "latitude_delta" = "0.06424638000000016"; - "longitude_delta" = "0.07145348265001417"; - }; - }; - total = 760; -``` diff --git a/Yelp.xcodeproj/project.pbxproj b/Yelp.xcodeproj/project.pbxproj index 54f5e66..e16c95f 100644 --- a/Yelp.xcodeproj/project.pbxproj +++ b/Yelp.xcodeproj/project.pbxproj @@ -7,6 +7,14 @@ objects = { /* Begin PBXBuildFile section */ + 3F4CD4401955185A0087D440 /* BusinessTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F4CD43E1955185A0087D440 /* BusinessTableViewCell.m */; }; + 3F4CD4411955185A0087D440 /* BusinessTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3F4CD43F1955185A0087D440 /* BusinessTableViewCell.xib */; }; + 3F4CD44619589F720087D440 /* FilterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F4CD44419589F720087D440 /* FilterViewController.m */; }; + 3F4CD44719589F720087D440 /* FilterViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3F4CD44519589F720087D440 /* FilterViewController.xib */; }; + 3F8559FD195E4B3600DC26C1 /* FilterTableViewCellWithPicker.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F8559FB195E4B3600DC26C1 /* FilterTableViewCellWithPicker.m */; }; + 3F8559FE195E4B3600DC26C1 /* FilterTableViewCellWithPicker.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3F8559FC195E4B3600DC26C1 /* FilterTableViewCellWithPicker.xib */; }; + 3FEA8B8D195968B4003A053F /* FilterTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FEA8B8B195968B4003A053F /* FilterTableViewCell.m */; }; + 3FEA8B8E195968B4003A053F /* FilterTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3FEA8B8C195968B4003A053F /* FilterTableViewCell.xib */; }; 420474F618DC299500E88E07 /* YelpClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 420474F518DC299500E88E07 /* YelpClient.m */; }; 420474FB18DC2B2100E88E07 /* MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 420474F918DC2B2100E88E07 /* MainViewController.m */; }; 420474FC18DC2B2100E88E07 /* MainViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 420474FA18DC2B2100E88E07 /* MainViewController.xib */; }; @@ -36,6 +44,18 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 3F4CD43D1955185A0087D440 /* BusinessTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BusinessTableViewCell.h; path = ../BusinessTableViewCell.h; sourceTree = ""; }; + 3F4CD43E1955185A0087D440 /* BusinessTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BusinessTableViewCell.m; path = ../BusinessTableViewCell.m; sourceTree = ""; }; + 3F4CD43F1955185A0087D440 /* BusinessTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = BusinessTableViewCell.xib; path = ../BusinessTableViewCell.xib; sourceTree = ""; }; + 3F4CD44319589F720087D440 /* FilterViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FilterViewController.h; sourceTree = ""; }; + 3F4CD44419589F720087D440 /* FilterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FilterViewController.m; sourceTree = ""; }; + 3F4CD44519589F720087D440 /* FilterViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FilterViewController.xib; sourceTree = ""; }; + 3F8559FA195E4B3600DC26C1 /* FilterTableViewCellWithPicker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FilterTableViewCellWithPicker.h; sourceTree = ""; }; + 3F8559FB195E4B3600DC26C1 /* FilterTableViewCellWithPicker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FilterTableViewCellWithPicker.m; sourceTree = ""; }; + 3F8559FC195E4B3600DC26C1 /* FilterTableViewCellWithPicker.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FilterTableViewCellWithPicker.xib; sourceTree = ""; }; + 3FEA8B8A195968B4003A053F /* FilterTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FilterTableViewCell.h; sourceTree = ""; }; + 3FEA8B8B195968B4003A053F /* FilterTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FilterTableViewCell.m; sourceTree = ""; }; + 3FEA8B8C195968B4003A053F /* FilterTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FilterTableViewCell.xib; sourceTree = ""; }; 420474F418DC299500E88E07 /* YelpClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YelpClient.h; sourceTree = ""; }; 420474F518DC299500E88E07 /* YelpClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YelpClient.m; sourceTree = ""; }; 420474F818DC2B2100E88E07 /* MainViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainViewController.h; sourceTree = ""; }; @@ -86,6 +106,22 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 3F4CD442195519EA0087D440 /* Views */ = { + isa = PBXGroup; + children = ( + 3F4CD43D1955185A0087D440 /* BusinessTableViewCell.h */, + 3F4CD43E1955185A0087D440 /* BusinessTableViewCell.m */, + 3F4CD43F1955185A0087D440 /* BusinessTableViewCell.xib */, + 3FEA8B8A195968B4003A053F /* FilterTableViewCell.h */, + 3FEA8B8B195968B4003A053F /* FilterTableViewCell.m */, + 3FEA8B8C195968B4003A053F /* FilterTableViewCell.xib */, + 3F8559FA195E4B3600DC26C1 /* FilterTableViewCellWithPicker.h */, + 3F8559FB195E4B3600DC26C1 /* FilterTableViewCellWithPicker.m */, + 3F8559FC195E4B3600DC26C1 /* FilterTableViewCellWithPicker.xib */, + ); + name = Views; + sourceTree = ""; + }; 420474F318DC297600E88E07 /* API */ = { isa = PBXGroup; children = ( @@ -101,6 +137,9 @@ 420474F818DC2B2100E88E07 /* MainViewController.h */, 420474F918DC2B2100E88E07 /* MainViewController.m */, 420474FA18DC2B2100E88E07 /* MainViewController.xib */, + 3F4CD44319589F720087D440 /* FilterViewController.h */, + 3F4CD44419589F720087D440 /* FilterViewController.m */, + 3F4CD44519589F720087D440 /* FilterViewController.xib */, ); name = "View Controllers"; sourceTree = ""; @@ -140,6 +179,7 @@ 42FD6C5018DC286B000BF2B9 /* Yelp */ = { isa = PBXGroup; children = ( + 3F4CD442195519EA0087D440 /* Views */, 420474F318DC297600E88E07 /* API */, 420474F718DC2A9200E88E07 /* View Controllers */, 42FD6C5918DC286B000BF2B9 /* AppDelegate.h */, @@ -256,7 +296,11 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 3F4CD44719589F720087D440 /* FilterViewController.xib in Resources */, + 3FEA8B8E195968B4003A053F /* FilterTableViewCell.xib in Resources */, 42FD6C5518DC286B000BF2B9 /* InfoPlist.strings in Resources */, + 3F8559FE195E4B3600DC26C1 /* FilterTableViewCellWithPicker.xib in Resources */, + 3F4CD4411955185A0087D440 /* BusinessTableViewCell.xib in Resources */, 420474FC18DC2B2100E88E07 /* MainViewController.xib in Resources */, 42FD6C5D18DC286B000BF2B9 /* Images.xcassets in Resources */, ); @@ -313,6 +357,10 @@ 42FD6C5B18DC286B000BF2B9 /* AppDelegate.m in Sources */, 42FD6C5718DC286B000BF2B9 /* main.m in Sources */, 420474F618DC299500E88E07 /* YelpClient.m in Sources */, + 3F4CD4401955185A0087D440 /* BusinessTableViewCell.m in Sources */, + 3FEA8B8D195968B4003A053F /* FilterTableViewCell.m in Sources */, + 3F8559FD195E4B3600DC26C1 /* FilterTableViewCellWithPicker.m in Sources */, + 3F4CD44619589F720087D440 /* FilterViewController.m in Sources */, 420474FB18DC2B2100E88E07 /* MainViewController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -435,6 +483,7 @@ GCC_PREFIX_HEADER = "Yelp/Yelp-Prefix.pch"; INFOPLIST_FILE = "Yelp/Yelp-Info.plist"; PRODUCT_NAME = "$(TARGET_NAME)"; + TARGETED_DEVICE_FAMILY = 1; WRAPPER_EXTENSION = app; }; name = Debug; @@ -449,6 +498,7 @@ GCC_PREFIX_HEADER = "Yelp/Yelp-Prefix.pch"; INFOPLIST_FILE = "Yelp/Yelp-Info.plist"; PRODUCT_NAME = "$(TARGET_NAME)"; + TARGETED_DEVICE_FAMILY = 1; WRAPPER_EXTENSION = app; }; name = Release; diff --git a/Yelp/AppDelegate.m b/Yelp/AppDelegate.m index c13ec3b..0d57b79 100644 --- a/Yelp/AppDelegate.m +++ b/Yelp/AppDelegate.m @@ -8,17 +8,25 @@ #import "AppDelegate.h" #import "MainViewController.h" +#import "FilterViewController.h" @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + // change status bar style, so we get white colored text + [application setStatusBarStyle:UIStatusBarStyleLightContent]; +// [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:NO]; + self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; - self.window.rootViewController = [[MainViewController alloc] init]; +// UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:[[FilterViewController alloc] init]]; + UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:[[MainViewController alloc] init]]; + self.window.rootViewController = nc; self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible]; + return YES; } diff --git a/Yelp/FilterTableViewCell.h b/Yelp/FilterTableViewCell.h new file mode 100644 index 0000000..90a9340 --- /dev/null +++ b/Yelp/FilterTableViewCell.h @@ -0,0 +1,15 @@ +// +// FilterTableViewCell.h +// Yelp +// +// Created by Guozheng Ge on 6/24/14. +// Copyright (c) 2014 codepath. All rights reserved. +// + +#import + +@interface FilterTableViewCell : UITableViewCell +@property (weak, nonatomic) IBOutlet UILabel *label; +@property (weak, nonatomic) IBOutlet UISwitch *filterSwitch; + +@end diff --git a/Yelp/FilterTableViewCell.m b/Yelp/FilterTableViewCell.m new file mode 100644 index 0000000..d41914b --- /dev/null +++ b/Yelp/FilterTableViewCell.m @@ -0,0 +1,25 @@ +// +// FilterTableViewCell.m +// Yelp +// +// Created by Guozheng Ge on 6/24/14. +// Copyright (c) 2014 codepath. All rights reserved. +// + +#import "FilterTableViewCell.h" + +@implementation FilterTableViewCell + +- (void)awakeFromNib +{ + // Initialization code +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated +{ + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + +@end diff --git a/Yelp/FilterTableViewCell.xib b/Yelp/FilterTableViewCell.xib new file mode 100644 index 0000000..0cfefe0 --- /dev/null +++ b/Yelp/FilterTableViewCell.xib @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Yelp/FilterTableViewCellWithPicker.h b/Yelp/FilterTableViewCellWithPicker.h new file mode 100644 index 0000000..36f7d09 --- /dev/null +++ b/Yelp/FilterTableViewCellWithPicker.h @@ -0,0 +1,15 @@ +// +// FilterTableViewCellWithPicker.h +// Yelp +// +// Created by Guozheng Ge on 6/27/14. +// Copyright (c) 2014 codepath. All rights reserved. +// + +#import + +@interface FilterTableViewCellWithPicker : UITableViewCell +@property (weak, nonatomic) IBOutlet UILabel *label; +@property (weak, nonatomic) IBOutlet UITextField *value; + +@end diff --git a/Yelp/FilterTableViewCellWithPicker.m b/Yelp/FilterTableViewCellWithPicker.m new file mode 100644 index 0000000..995312b --- /dev/null +++ b/Yelp/FilterTableViewCellWithPicker.m @@ -0,0 +1,27 @@ +// +// FilterTableViewCellWithPicker.m +// Yelp +// +// Created by Guozheng Ge on 6/27/14. +// Copyright (c) 2014 codepath. All rights reserved. +// + +#import "FilterTableViewCellWithPicker.h" + +@implementation FilterTableViewCellWithPicker + +- (void)awakeFromNib +{ + // Initialization code + +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated +{ + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state + +} + +@end diff --git a/Yelp/FilterTableViewCellWithPicker.xib b/Yelp/FilterTableViewCellWithPicker.xib new file mode 100644 index 0000000..8107eef --- /dev/null +++ b/Yelp/FilterTableViewCellWithPicker.xib @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Yelp/FilterViewController.h b/Yelp/FilterViewController.h new file mode 100644 index 0000000..729b8f6 --- /dev/null +++ b/Yelp/FilterViewController.h @@ -0,0 +1,13 @@ +// +// FilterViewController.h +// Yelp +// +// Created by Guozheng Ge on 6/23/14. +// Copyright (c) 2014 codepath. All rights reserved. +// + +#import + +@interface FilterViewController : UIViewController + +@end diff --git a/Yelp/FilterViewController.m b/Yelp/FilterViewController.m new file mode 100644 index 0000000..7860507 --- /dev/null +++ b/Yelp/FilterViewController.m @@ -0,0 +1,461 @@ +// +// FilterViewController.m +// Yelp +// +// Created by Guozheng Ge on 6/23/14. +// Copyright (c) 2014 codepath. All rights reserved. +// + +#import "FilterViewController.h" +#import "FilterTableViewCell.h" +#import "FilterTableViewCellWithPicker.h" + +@interface FilterViewController () +@property (weak, nonatomic) IBOutlet UITableView *tableView; +@property (strong, nonatomic) NSArray *filterNames; +@property (strong, nonatomic) NSArray *categoryDefs; + +@property (strong, nonatomic) NSString *radius; +@property (strong, nonatomic) NSString *sort; +@property (strong, nonatomic) NSString *deals; +@property (strong, nonatomic) NSMutableDictionary *catetory; + +@property BOOL categorySectionCollapsed; + +@end + +@implementation FilterViewController + +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil +{ + self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; + if (self) { + // Custom initialization + } + return self; +} + +- (void)viewDidLoad +{ + [super viewDidLoad]; + // Do any additional setup after loading the view from its nib. + + self.categorySectionCollapsed = YES; // category section initially collapsed + + self.tableView.delegate = self; + self.tableView.dataSource = self; + + [self.tableView registerNib:[UINib nibWithNibName:@"FilterTableViewCell" bundle:nil] forCellReuseIdentifier:@"FilterTableViewCell"]; + [self.tableView registerNib:[UINib nibWithNibName:@"FilterTableViewCellWithPicker" bundle:nil] forCellReuseIdentifier:@"FilterTableViewCellWithPicker"]; + + [self.navigationController.navigationBar setTranslucent:NO]; + [self.navigationController.navigationBar setBarTintColor:[UIColor colorWithRed:0.80 green:0.11 blue:0.09 alpha:1.0]]; + [self.navigationController.navigationBar setTintColor:[UIColor colorWithRed:1.0 green:0.93 blue:0.87 alpha:1.0]]; + + // cancel button + UIButton *cancelButton = [UIButton buttonWithType:UIButtonTypeCustom]; + cancelButton.layer.masksToBounds = NO; + cancelButton.frame = CGRectMake(0, 0, 60, 30); + cancelButton.layer.cornerRadius = 8.0; + cancelButton.layer.borderWidth = 2.0; + cancelButton.layer.borderColor = [[UIColor colorWithRed:0.76 green:0.09 blue:0.07 alpha:1.0] CGColor]; + CAGradientLayer *gradientLayer = [CAGradientLayer layer]; + gradientLayer.frame = cancelButton.layer.bounds; + gradientLayer.cornerRadius = 8.0; + gradientLayer.colors = [NSArray arrayWithObjects:(id)[[UIColor colorWithRed:0.89 green:0.22 blue:0.16 alpha:1.0] CGColor], + (id)[[UIColor colorWithRed:0.78 green:0.12 blue:0.11 alpha:1.0] CGColor], + nil]; + [cancelButton.layer insertSublayer:gradientLayer atIndex:0]; + + cancelButton.titleLabel.font = [UIFont boldSystemFontOfSize:13]; + [cancelButton setTitle:@"Cancel" forState:UIControlStateNormal]; + [cancelButton addTarget:self action:@selector(cancelFilters:) forControlEvents:UIControlEventTouchUpInside]; + + UIBarButtonItem *cancelButtonItem = [[UIBarButtonItem alloc] initWithCustomView:cancelButton]; + self.navigationItem.leftBarButtonItem = cancelButtonItem; + + // search button + UIButton *searchButton = [UIButton buttonWithType:UIButtonTypeCustom]; + searchButton.layer.masksToBounds = NO; + searchButton.frame = CGRectMake(0, 0, 60, 30); + searchButton.layer.cornerRadius = 8.0; + searchButton.layer.borderWidth = 2.0; + searchButton.layer.borderColor = [[UIColor colorWithRed:0.76 green:0.09 blue:0.07 alpha:1.0] CGColor]; + CAGradientLayer *gradientLayer2 = [CAGradientLayer layer]; + gradientLayer2.frame = searchButton.layer.bounds; + gradientLayer2.cornerRadius = 8.0; + gradientLayer2.colors = [NSArray arrayWithObjects:(id)[[UIColor colorWithRed:0.89 green:0.22 blue:0.16 alpha:1.0] CGColor], + (id)[[UIColor colorWithRed:0.78 green:0.12 blue:0.11 alpha:1.0] CGColor], + nil]; + [searchButton.layer insertSublayer:gradientLayer2 atIndex:0]; + + searchButton.titleLabel.font = [UIFont boldSystemFontOfSize:13]; + [searchButton setTitle:@"Search" forState:UIControlStateNormal]; + [searchButton addTarget:self action:@selector(setFilters:) forControlEvents:UIControlEventTouchUpInside]; + + UIBarButtonItem *searchButtonItem = [[UIBarButtonItem alloc] initWithCustomView:searchButton]; + self.navigationItem.rightBarButtonItem = searchButtonItem; + + // restore values from NSUserDefaults to initialize filters + [self restoreFilters]; + + self.filterNames = @[@"Radius", @"Sort", @"Deals", @"Category"]; + + self.categoryDefs = @[ + @{@"name": @"American (New)", @"value": @"newamerican"}, + @{@"name": @"American (Traditional)", @"value": @"tradamerican"}, + @{@"name": @"Argentine", @"value": @"argentine"}, + @{@"name": @"Asian Fusion", @"value": @"asianfusion"}, + @{@"name": @"Australian", @"value": @"australian"}, + @{@"name": @"Austrian", @"value": @"austrian"}, + @{@"name": @"Beer Garden", @"value": @"beergarden"}, + @{@"name": @"Belgian", @"value": @"belgian"}, + @{@"name": @"Brazilian", @"value": @"brazilian"}, + @{@"name": @"Breakfast & Brunch", @"value": @"breakfast_brunch"}, + @{@"name": @"Buffets", @"value": @"buffets"}, + @{@"name": @"Burgers", @"value": @"burgers"}, + @{@"name": @"Burmese", @"value": @"burmese"}, + @{@"name": @"Cafes", @"value": @"cafes"}, + @{@"name": @"Cajun/Creole", @"value": @"cajun"}, + @{@"name": @"Canadian", @"value": @"newcanadian"}, + @{@"name": @"Chinese", @"value": @"chinese"}, + @{@"name": @"Cantonese", @"value": @"cantonese"}, + @{@"name": @"Dim Sum", @"value": @"dimsum"}, + @{@"name": @"Cuban", @"value": @"cuban"}, + @{@"name": @"Diners", @"value": @"diners"}, + @{@"name": @"Dumplings", @"value": @"dumplings"}, + @{@"name": @"Ethiopian", @"value": @"ethiopian"}, + @{@"name": @"Fast Food", @"value": @"hotdogs"}, + @{@"name": @"French", @"value": @"french"}, + @{@"name": @"German", @"value": @"german"}, + @{@"name": @"Greek", @"value": @"greek"}, + @{@"name": @"Indian", @"value": @"indpak"}, + @{@"name": @"Indonesian", @"value": @"indonesian"}, + @{@"name": @"Irish", @"value": @"irish"}, + @{@"name": @"Italian", @"value": @"italian"}, + @{@"name": @"Japanese", @"value": @"japanese"}, + @{@"name": @"Jewish", @"value": @"jewish"}, + @{@"name": @"Korean", @"value": @"korean"}, + @{@"name": @"Venezuelan", @"value": @"venezuelan"}, + @{@"name": @"Malaysian", @"value": @"malaysian"}, + @{@"name": @"Pizza", @"value": @"pizza"}, + @{@"name": @"Russian", @"value": @"russian"}, + @{@"name": @"Salad", @"value": @"salad"}, + @{@"name": @"Scandinavian", @"value": @"scandinavian"}, + @{@"name": @"Seafood", @"value": @"seafood"}, + @{@"name": @"Turkish", @"value": @"turkish"}, + @{@"name": @"Vegan", @"value": @"vegan"}, + @{@"name": @"Vegetarian", @"value": @"vegetarian"}, + @{@"name": @"Vietnamese", @"value": @"vietnamese"} + ]; + + [self.tableView reloadData]; + + NSLog(@"vidDidLoad done"); +} + + +- (BOOL)tableView:(UITableView *)tableView collapsableSection:(NSInteger)section +{ + // only category section is collapsable + return (section == 3) ? YES : NO; +} + +- (void)didReceiveMemoryWarning +{ + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView +{ +// NSLog(@"num of sections: %d", [self.filterNames count]); + return [self.filterNames count]; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section +{ +// NSLog(@"section: %d", section); + + switch (section) { + case 0: + return 1; + break; + + case 1: + return 1; + break; + + case 2: + return 1; + break; + + case 3: + if (self.categorySectionCollapsed) + { + NSLog(@"category section collapsed, showing 4 rows"); + return 4; // 3 normal rows and 1 "See All" row + } else { + NSLog(@"category section expanded, showing all rows"); + return [self.categoryDefs count] + 1; + } + + break; + + default: + return 0; + } +} + +- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section +{ + return self.filterNames[section]; +} + +// By default, the section titles are in UPPER caes, +// to show the section titles in the case you need, but the height is not +// automatically adjusted +//- (UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section +//{ +// static NSString *identifier = @"defaultHeader"; +// UITableViewHeaderFooterView *headerView = [tableView dequeueReusableHeaderFooterViewWithIdentifier:identifier]; +// if (!headerView) { +// headerView = [[UITableViewHeaderFooterView alloc] initWithReuseIdentifier:identifier]; +// } +// headerView.textLabel.text = self.filtersNames[section]; +// return headerView; +//} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ +// NSLog(@"section=%d, row=%d", indexPath.section, indexPath.row); + + if (indexPath.section == 0) { + // radius + + FilterTableViewCellWithPicker *cell = [tableView dequeueReusableCellWithIdentifier:@"FilterTableViewCellWithPicker"]; + + if (cell == nil) { + cell = [[FilterTableViewCellWithPicker alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"FilterTableViewCellWithPicker"]; + } + + cell.label.text = @"Radius (meters)"; + cell.value.text = self.radius; + cell.value.tag = 0; + cell.value.delegate = self; + + return cell; + + } else if (indexPath.section == 1) { + // sort + + FilterTableViewCellWithPicker *cell = [tableView dequeueReusableCellWithIdentifier:@"FilterTableViewCellWithPicker"]; + + if (cell == nil) { + cell = [[FilterTableViewCellWithPicker alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"FilterTableViewCellWithPicker"]; + } + + cell.label.text = @"Sort"; + cell.value.text = self.sort; + cell.value.tag = 1; + cell.value.delegate = self; + + return cell; + + } else if (indexPath.section == 2) { + // deals + + FilterTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"FilterTableViewCell"]; + + if (cell == nil) { + cell = [[FilterTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"FilterTableViewCell"]; + } + cell.label.text = @"Deals"; + cell.filterSwitch.tag = [self.categoryDefs count]; + [cell.filterSwitch addTarget:self action:@selector(setSwitch:) forControlEvents:UIControlEventValueChanged]; + [cell.filterSwitch setOn:[self.deals isEqualToString:@"YES"] animated:YES]; + + return cell; + + } else if (indexPath.section == 3) { + // category + + // see all row + int totalRows = [self tableView:tableView numberOfRowsInSection:indexPath.section]; + if (indexPath.row == totalRows - 1) { + + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UITableViewCell"]; + + if (cell == nil) { + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"UITableViewCell"]; + } + + if (self.categorySectionCollapsed) { + cell.textLabel.text = @"See All"; + } else { + cell.textLabel.text = @"See Some"; + } + cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; + return cell; + } + + // other normal category rows + FilterTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"FilterTableViewCell"]; + + if (cell == nil) { + cell = [[FilterTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"FilterTableViewCell"]; + } + + cell.label.text = [self.categoryDefs objectAtIndex:indexPath.row][@"name"]; + cell.filterSwitch.tag = indexPath.row; + [cell.filterSwitch addTarget:self action:@selector(setSwitch:) forControlEvents:UIControlEventValueChanged]; + NSString *key = [self.categoryDefs objectAtIndex:indexPath.row][@"value"]; + BOOL isOn = [self.catetory[key] isEqualToString:@"YES"]; + [cell.filterSwitch setOn:isOn animated:YES]; + + return cell; + } + + UITableViewCell *cell = [[UITableViewCell alloc] init]; + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath +{ + // skip other sections except category + if (indexPath.section != 3) { + return; + } + + // see all row + int totalRows = [self tableView:tableView numberOfRowsInSection:indexPath.section]; + + // skip other rows except See All row + if (indexPath.row != totalRows - 1) { + return; + } + + NSMutableArray *indexPaths = [NSMutableArray array]; + + UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; + + if (self.categorySectionCollapsed) { + for (int i = 4; i < totalRows - 1; i++) + { + NSIndexPath *tmpIndexPath = [NSIndexPath indexPathForRow:i inSection:indexPath.section]; + [indexPaths addObject:tmpIndexPath]; + } + [tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationMiddle]; + cell.textLabel.text = @"Show Less"; + self.categorySectionCollapsed = NO; + NSLog(@"category section expanded"); + + } else { + self.categorySectionCollapsed = YES; + for (int i = 3; i < totalRows - 1; i++) + { + NSIndexPath *tmpIndexPath = [NSIndexPath indexPathForRow:i inSection:indexPath.section]; + [indexPaths addObject:tmpIndexPath]; + } + [tableView deleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationMiddle]; + cell.textLabel.text = @"Show All"; + NSLog(@"category section collapsed"); + } + + [tableView reloadData]; +} + +// restore values from NSUserDefaults +- (void)restoreFilters +{ + NSLog(@"restoring filters from saved values"); + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + + NSString *radius = [defaults objectForKey:@"radius"]; + self.radius = (radius) ? radius : @""; + NSLog(@"radius restored to %@", self.radius); + + NSString *sort = [defaults objectForKey:@"sort"]; + self.sort = (sort) ? sort : @""; + NSLog(@"sort restored to %@", self.sort); + + NSString *deals = [defaults objectForKey:@"deals"]; + self.deals = (deals) ? deals : @"NO"; + NSLog(@"deals restored to %@", self.deals); + + NSMutableDictionary *category = [defaults objectForKey:@"category"]; + self.catetory = (category) ? category : [@{} mutableCopy]; + NSLog(@"category restored to %@", self.catetory); + + NSLog(@"filters restored from user defaults"); +} + +// handle UISwitch events +- (void)setSwitch:(UISwitch *)sender +{ + if (sender){ + BOOL isOn = [sender isOn]; + if (sender.tag == [self.categoryDefs count]) { + // handle set deals + NSLog(@"change deals state: %d", isOn); + self.deals = (isOn) ? @"YES" : @"NO"; + + } else { + // handle set categories + NSString *key = self.categoryDefs[sender.tag][@"value"]; + NSLog(@"change category state: %d, tag: %d, category: %@", isOn, sender.tag, key); + [self.catetory setObject:(isOn) ? @"YES" : @"NO" forKey:key]; + } + } +} + +// handle cancel filter changes +- (void)cancelFilters:(UIButton *)sender +{ + NSLog(@"cancel filter button pressed"); + [self restoreFilters]; + [self.tableView reloadData]; +} + + +// handle update filters and search +- (void)setFilters:(UIButton *)sender +{ + NSLog(@"update filter button pressed"); + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + [defaults setObject:self.radius forKey:@"radius"]; + [defaults setObject:self.sort forKey:@"sort"]; + [defaults setObject:self.deals forKey:@"deals"]; + [defaults setObject:self.catetory forKey:@"category"]; + [defaults synchronize]; + NSLog(@"user defaults saved"); + + [self.navigationController popViewControllerAnimated:YES]; +} + +#pragma mark UITextFieldDelegate methods + +- (BOOL)textFieldShouldReturn:(UITextField *)textField +{ + [textField resignFirstResponder]; + return YES; +} + +- (void)textFieldDidEndEditing:(UITextField *)textField +{ + if (textField.tag == 0) { + // radius + NSLog(@"text field for radius set to value: %@", textField.text); + self.radius = textField.text; + + } else if (textField.tag == 1) { + // sort + NSLog(@"text field for sort set to value: %@", textField.text); + self.sort = textField.text; + + } else { + NSLog(@"unknown text field, value: %@", textField.text); + } +} + +@end diff --git a/Yelp/FilterViewController.xib b/Yelp/FilterViewController.xib new file mode 100644 index 0000000..e3e83eb --- /dev/null +++ b/Yelp/FilterViewController.xib @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Yelp/Images.xcassets/AppIcon.appiconset/Contents.json b/Yelp/Images.xcassets/AppIcon.appiconset/Contents.json index a396706..899fe7a 100644 --- a/Yelp/Images.xcassets/AppIcon.appiconset/Contents.json +++ b/Yelp/Images.xcassets/AppIcon.appiconset/Contents.json @@ -1,18 +1,21 @@ { "images" : [ { - "idiom" : "iphone", "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-Small@2x.png", "scale" : "2x" }, { - "idiom" : "iphone", "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-40@2x.png", "scale" : "2x" }, { - "idiom" : "iphone", "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-60@2x.png", "scale" : "2x" } ], diff --git a/Yelp/Images.xcassets/AppIcon.appiconset/Icon-40@2x.png b/Yelp/Images.xcassets/AppIcon.appiconset/Icon-40@2x.png new file mode 100644 index 0000000..8ed3fa3 Binary files /dev/null and b/Yelp/Images.xcassets/AppIcon.appiconset/Icon-40@2x.png differ diff --git a/Yelp/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png b/Yelp/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png new file mode 100644 index 0000000..5e0f46e Binary files /dev/null and b/Yelp/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png differ diff --git a/Yelp/Images.xcassets/AppIcon.appiconset/Icon-Small@2x.png b/Yelp/Images.xcassets/AppIcon.appiconset/Icon-Small@2x.png new file mode 100644 index 0000000..b4e94dc Binary files /dev/null and b/Yelp/Images.xcassets/AppIcon.appiconset/Icon-Small@2x.png differ diff --git a/Yelp/Images.xcassets/DefaultStars.imageset/Contents.json b/Yelp/Images.xcassets/DefaultStars.imageset/Contents.json new file mode 100644 index 0000000..d2064b0 --- /dev/null +++ b/Yelp/Images.xcassets/DefaultStars.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "stars_4.png" + }, + { + "idiom" : "universal", + "scale" : "2x", + "filename" : "stars_large_4.png" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Yelp/Images.xcassets/DefaultStars.imageset/stars_4.png b/Yelp/Images.xcassets/DefaultStars.imageset/stars_4.png new file mode 100644 index 0000000..4e2b3ae Binary files /dev/null and b/Yelp/Images.xcassets/DefaultStars.imageset/stars_4.png differ diff --git a/Yelp/Images.xcassets/DefaultStars.imageset/stars_large_4.png b/Yelp/Images.xcassets/DefaultStars.imageset/stars_large_4.png new file mode 100644 index 0000000..992914b Binary files /dev/null and b/Yelp/Images.xcassets/DefaultStars.imageset/stars_large_4.png differ diff --git a/Yelp/Images.xcassets/LaunchImage.launchimage/8068856098_8d0988a579_o-1.png b/Yelp/Images.xcassets/LaunchImage.launchimage/8068856098_8d0988a579_o-1.png new file mode 100644 index 0000000..7663771 Binary files /dev/null and b/Yelp/Images.xcassets/LaunchImage.launchimage/8068856098_8d0988a579_o-1.png differ diff --git a/Yelp/Images.xcassets/LaunchImage.launchimage/8068856098_8d0988a579_o.png b/Yelp/Images.xcassets/LaunchImage.launchimage/8068856098_8d0988a579_o.png new file mode 100644 index 0000000..7663771 Binary files /dev/null and b/Yelp/Images.xcassets/LaunchImage.launchimage/8068856098_8d0988a579_o.png differ diff --git a/Yelp/Images.xcassets/LaunchImage.launchimage/Contents.json b/Yelp/Images.xcassets/LaunchImage.launchimage/Contents.json index c79ebd3..d0e9190 100644 --- a/Yelp/Images.xcassets/LaunchImage.launchimage/Contents.json +++ b/Yelp/Images.xcassets/LaunchImage.launchimage/Contents.json @@ -5,14 +5,16 @@ "idiom" : "iphone", "extent" : "full-screen", "minimum-system-version" : "7.0", + "filename" : "8068856098_8d0988a579_o.png", "scale" : "2x" }, { - "orientation" : "portrait", + "extent" : "full-screen", "idiom" : "iphone", "subtype" : "retina4", - "extent" : "full-screen", + "filename" : "8068856098_8d0988a579_o-1.png", "minimum-system-version" : "7.0", + "orientation" : "portrait", "scale" : "2x" } ], diff --git a/Yelp/Images.xcassets/Placeholder.imageset/Contents.json b/Yelp/Images.xcassets/Placeholder.imageset/Contents.json new file mode 100644 index 0000000..f16a4a3 --- /dev/null +++ b/Yelp/Images.xcassets/Placeholder.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "yelp-70x70.png" + }, + { + "idiom" : "universal", + "scale" : "2x", + "filename" : "yelp-140x140.png" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Yelp/Images.xcassets/Placeholder.imageset/yelp-140x140.png b/Yelp/Images.xcassets/Placeholder.imageset/yelp-140x140.png new file mode 100644 index 0000000..868a7b4 Binary files /dev/null and b/Yelp/Images.xcassets/Placeholder.imageset/yelp-140x140.png differ diff --git a/Yelp/Images.xcassets/Placeholder.imageset/yelp-70x70.png b/Yelp/Images.xcassets/Placeholder.imageset/yelp-70x70.png new file mode 100644 index 0000000..176575f Binary files /dev/null and b/Yelp/Images.xcassets/Placeholder.imageset/yelp-70x70.png differ diff --git a/Yelp/MainViewController.h b/Yelp/MainViewController.h index b072ae7..8c15481 100644 --- a/Yelp/MainViewController.h +++ b/Yelp/MainViewController.h @@ -8,6 +8,6 @@ #import -@interface MainViewController : UIViewController +@interface MainViewController : UIViewController @end diff --git a/Yelp/MainViewController.m b/Yelp/MainViewController.m index 86c77a0..14407e7 100644 --- a/Yelp/MainViewController.m +++ b/Yelp/MainViewController.m @@ -8,6 +8,9 @@ #import "MainViewController.h" #import "YelpClient.h" +#import "BusinessTableViewCell.h" +#import "UIImageView+AFNetworking.h" +#import "FilterViewController.h" NSString * const kYelpConsumerKey = @"vxKwwcR_NMQ7WaEiQBK_CA"; NSString * const kYelpConsumerSecret = @"33QCvh5bIF5jIHR5klQr7RtBDhQ"; @@ -16,8 +19,14 @@ @interface MainViewController () +@property (weak, nonatomic) IBOutlet UITableView *tableView; + @property (nonatomic, strong) YelpClient *client; +@property (nonatomic, strong) NSArray *businesses; + +@property (nonatomic, strong) NSString *term; + @end @implementation MainViewController @@ -28,13 +37,8 @@ - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil if (self) { // You can register for Yelp API keys here: http://www.yelp.com/developers/manage_api_keys self.client = [[YelpClient alloc] initWithConsumerKey:kYelpConsumerKey consumerSecret:kYelpConsumerSecret accessToken:kYelpToken accessSecret:kYelpTokenSecret]; - - [self.client searchWithTerm:@"Thai" success:^(AFHTTPRequestOperation *operation, id response) { - NSLog(@"response: %@", response); - } failure:^(AFHTTPRequestOperation *operation, NSError *error) { - NSLog(@"error: %@", [error description]); - }]; } + return self; } @@ -42,6 +46,85 @@ - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view from its nib. + + self.tableView.delegate = self; + self.tableView.dataSource = self; + self.tableView.rowHeight = 90; + + // set background color for nav bar + [[UINavigationBar appearance] setBarTintColor:[UIColor colorWithRed:0.80 green:0.11 blue:0.09 alpha:1.0]]; + // this did not work and instead crashed app, see http://stackoverflow.com/questions/19125468/why-does-uinavigationbar-appearance-settranslucentno-crash-my-app +// [[UINavigationBar appearance] setTranslucent:NO]; + [self.navigationController.navigationBar setTranslucent:NO]; + + // search bar + UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 200, 30)]; + searchBar.delegate = self; + self.navigationItem.titleView = searchBar; + + // set text color for nav bar + [[UINavigationBar appearance] setTintColor:[UIColor colorWithRed:1.0 green:0.93 blue:0.87 alpha:1.0]]; + + UIButton *filterButton = [UIButton buttonWithType:UIButtonTypeCustom]; + filterButton.layer.masksToBounds = NO; + filterButton.frame = CGRectMake(0, 0, 60, 30); + filterButton.layer.cornerRadius = 8.0; + filterButton.layer.borderWidth = 2.0; + filterButton.layer.borderColor = [[UIColor colorWithRed:0.76 green:0.09 blue:0.07 alpha:1.0] CGColor]; + + // button shadow +// filterButton.layer.shadowColor = [[UIColor blackColor] CGColor]; +// filterButton.layer.shadowOffset = CGSizeMake(2.0, 2.0); +// filterButton.layer.shadowRadius = 1.0; +// filterButton.layer.shadowOpacity = 0.2; +// filterButton.layer.shadowPath = [UIBezierPath bezierPathWithRoundedRect:filterButton.layer.bounds cornerRadius:8.0].CGPath; + + // button gradient + CAGradientLayer *gradientLayer = [CAGradientLayer layer]; + gradientLayer.frame = filterButton.layer.bounds; + gradientLayer.cornerRadius = 8.0; + gradientLayer.colors = [NSArray arrayWithObjects:(id)[[UIColor colorWithRed:0.89 green:0.22 blue:0.16 alpha:1.0] CGColor], + (id)[[UIColor colorWithRed:0.78 green:0.12 blue:0.11 alpha:1.0] CGColor], + nil]; + [filterButton.layer insertSublayer:gradientLayer atIndex:0]; + + filterButton.titleLabel.font = [UIFont boldSystemFontOfSize:13]; + [filterButton setTitle:@"Filter" forState:UIControlStateNormal]; + + [filterButton addTarget:self action:@selector(showFilterView) forControlEvents:UIControlEventTouchDown]; + + UIBarButtonItem *filterButtonItem = [[UIBarButtonItem alloc] initWithCustomView:filterButton]; + self.navigationItem.leftBarButtonItem = filterButtonItem; + + // an invisible/empty button as space holder so the search bar is of the right size + UIBarButtonItem *invisibleButtonItem = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStylePlain target:nil action:nil]; + self.navigationItem.rightBarButtonItem = invisibleButtonItem; + + [self.tableView registerNib:[UINib nibWithNibName:@"BusinessTableViewCell" bundle:nil] forCellReuseIdentifier:@"BusinessTableViewCell"]; + + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + self.term = [defaults objectForKey:@"term"]; + if (!self.term) { + self.term = @"thai"; + } + searchBar.text = self.term; + [self doSearch:self.term]; + +} + +- (void)viewWillAppear:(BOOL)animated{ + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + self.term = [defaults objectForKey:@"term"]; + if (!self.term) { + self.term = @"thai"; + } + [self doSearch:self.term]; +} + +- (void)showFilterView{ + NSLog(@"showing filter view"); + FilterViewController *fvc = [[FilterViewController alloc] initWithNibName:@"FilterViewController" bundle:nil]; + [self.navigationController pushViewController:fvc animated:YES]; } - (void)didReceiveMemoryWarning @@ -50,4 +133,148 @@ - (void)didReceiveMemoryWarning // Dispose of any resources that can be recreated. } +#pragma mark UITableViewDataSource methods + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section +{ + return [self.businesses count]; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ +// NSLog(@"section=%d, row=%d", indexPath.section, indexPath.row); + + BusinessTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"BusinessTableViewCell"]; + + if (cell == nil) { + cell = [[BusinessTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"BusinessTableViewCell"]; + } + + NSDictionary *business = self.businesses[indexPath.row]; + + // load image + NSURL *imageURL = [NSURL URLWithString:business[@"image_url"]]; + UIImage *placeholderImage = [UIImage imageNamed:@"Placeholder"]; + // rounded corner with border and inner shadow +// cell.businessImage.layer.shadowColor = [[UIColor grayColor] CGColor]; +// cell.businessImage.layer.shadowRadius = 10.0; +// cell.businessImage.layer.shadowOpacity = 1.0; +// cell.businessImage.layer.shadowOffset = CGSizeMake(0, 0); +// UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:cell.businessImage.bounds cornerRadius:10.0]; +// cell.businessImage.layer.shadowPath = path.CGPath; + cell.businessImage.layer.cornerRadius = 10.0; + cell.businessImage.layer.borderColor = [[UIColor grayColor] CGColor]; + cell.businessImage.layer.borderWidth = 1.0; + cell.businessImage.layer.masksToBounds = YES; + [cell.businessImage setImageWithURL:imageURL placeholderImage:placeholderImage]; + + + // load start image + NSURL *ratingImageURL = [NSURL URLWithString:business[@"rating_img_url"]]; + UIImage *defaultStarImage = [UIImage imageNamed:@"DefaultStars"]; + [cell.ratingImage setImageWithURL:ratingImageURL placeholderImage:defaultStarImage]; + + // load text values + + // name + cell.businessName.text = [NSString stringWithFormat:@"%d. %@", indexPath.row+1, business[@"name"]]; + + // review count + cell.review.text = [NSString stringWithFormat:@"%@ Reviews", business[@"review_count"]]; + + // address + NSArray *addressArray = business[@"location"][@"display_address"]; + cell.address.text = [NSString stringWithFormat:@"%@, %@", addressArray[0], addressArray[1]]; + + // categories is an array of arrays + NSMutableString *categoriesString = [[NSMutableString alloc] init]; + NSArray *categories = business[@"categories"]; + NSInteger i = 0; + for (NSArray *category in categories) { + if (i != 0) { + [categoriesString appendString:@", "]; + } + [categoriesString appendString:category[0]]; + i++; + } + cell.categories.text = categoriesString; + + // distance, 1 meter = 0.000621371 mile + float distanceInMile = [business[@"distance"] floatValue] * 0.000621371; + cell.distance.text = [NSString stringWithFormat:@"%.1f mi", distanceInMile]; + + // cost + + return cell; +} + + + +#pragma mark UISearchBarDelegate methods + +- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar +{ + // hide keyboard + [searchBar resignFirstResponder]; + + [self doSearch:searchBar.text]; +} + +- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar +{ + // hide keyboard + [searchBar resignFirstResponder]; + + [self doSearch:searchBar.text]; +} + +- (void)doSearch:(NSString *)term +{ + NSLog(@"search term: %@", term); + + // get filters from saved settings + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + NSMutableDictionary *filters = [[NSMutableDictionary alloc] init]; + + NSString *radius = [defaults objectForKey:@"radius"]; + if (radius) { + [filters setObject:radius forKey:@"radius"]; + NSLog(@"setting radius filter in search to %@", radius); + } + + NSString *sort = [defaults objectForKey:@"sort"]; + if (sort) { + [filters setObject:sort forKey:@"sort"]; + NSLog(@"setting sort filter in search to %@", sort); + } + + NSString *deals = [defaults objectForKey:@"deals"]; + if (deals) { + [filters setObject:deals forKey:@"deals"]; + NSLog(@"setting deals filter in search to %@", deals); + } + + NSMutableDictionary *category = [defaults objectForKey:@"category"]; + if (category) { + [filters setObject:category forKey:@"category"]; + NSLog(@"setting category filter in search to %@", category); + } + + NSLog(@"filters set for search: %@", filters); + + [self.client searchWithTerm:term withFilters:filters success:^(AFHTTPRequestOperation *operation, id response) { + NSLog(@"response: %@", response); + self.businesses = response[@"businesses"]; + [self.tableView reloadData]; + + // save the search term to NSUserDefaults + [defaults setObject:term forKey:@"term"]; + [defaults synchronize]; + NSLog(@"search term %@ saved to NSUserDefaults", term); + + } failure:^(AFHTTPRequestOperation *operation, NSError *error) { + NSLog(@"error: %@", [error description]); + }]; +} + @end diff --git a/Yelp/MainViewController.xib b/Yelp/MainViewController.xib index 75b6e65..84d0768 100644 --- a/Yelp/MainViewController.xib +++ b/Yelp/MainViewController.xib @@ -1,11 +1,12 @@ - + + @@ -14,13 +15,11 @@ - + + + + + diff --git a/Yelp/Yelp-Info.plist b/Yelp/Yelp-Info.plist index 4429252..a333d3f 100644 --- a/Yelp/Yelp-Info.plist +++ b/Yelp/Yelp-Info.plist @@ -28,6 +28,10 @@ armv7 + UIStatusBarStyle + UIStatusBarStyleDefault + UIViewControllerBasedStatusBarAppearance + UISupportedInterfaceOrientations UIInterfaceOrientationPortrait diff --git a/Yelp/YelpClient.h b/Yelp/YelpClient.h index 145ada1..592eb00 100644 --- a/Yelp/YelpClient.h +++ b/Yelp/YelpClient.h @@ -15,4 +15,6 @@ - (AFHTTPRequestOperation *)searchWithTerm:(NSString *)term success:(void (^)(AFHTTPRequestOperation *operation, id response))success failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure; +- (AFHTTPRequestOperation *)searchWithTerm:(NSString *)term withFilters:(NSDictionary *)filters success:(void (^)(AFHTTPRequestOperation *operation, id response))success failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure; + @end diff --git a/Yelp/YelpClient.m b/Yelp/YelpClient.m index df77ec0..d02c087 100644 --- a/Yelp/YelpClient.m +++ b/Yelp/YelpClient.m @@ -20,12 +20,54 @@ - (id)initWithConsumerKey:(NSString *)consumerKey consumerSecret:(NSString *)con return self; } -- (AFHTTPRequestOperation *)searchWithTerm:(NSString *)term success:(void (^)(AFHTTPRequestOperation *operation, id response))success failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure { +- (AFHTTPRequestOperation *)searchWithTerm:(NSString *)term withFilters:(NSDictionary *)filters success:(void (^)(AFHTTPRequestOperation *operation, id response))success failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure { // For additional parameters, see http://www.yelp.com/developers/documentation/v2/search_api - NSDictionary *parameters = @{@"term": term, @"location" : @"San Francisco"}; +// NSDictionary *parameters = @{@"term": term, @"location" : @"San Francisco"}; + + // need to give lattitude and longitude to get distance info in response + NSMutableDictionary *parameters = [NSMutableDictionary dictionaryWithDictionary:@{@"term": term, @"ll" : @"37.788022,-122.399797"}]; + + // sort + NSString *sort = filters[@"sort"]; + if (sort && ([sort isEqualToString:@"0"] || [sort isEqualToString:@"1"] || [sort isEqualToString:@"2"])) { + [parameters setValue:sort forKey:@"sort"]; + NSLog(@"sort parameter set to %@", sort); + } + + // radius + int radius = [filters[@"radius"] intValue]; + if (radius != 0 && radius < 40000) { + [parameters setValue:[NSString stringWithFormat:@"%i", radius] forKey:@"radius_filter"]; + NSLog(@"radius parameter set to %i", radius); + } + + // deals + NSString *deals = filters[@"deals"]; + if (deals) { + [parameters setValue:([deals isEqualToString:@"YES"]) ? @"true" : @"false" forKey:@"deals_filter"]; + NSLog(@"deals parameter set to %@", deals); + } + + // category + NSMutableString *s = [NSMutableString stringWithString:@""]; + NSDictionary *categories = filters[@"category"]; + if (categories) { + [categories enumerateKeysAndObjectsUsingBlock:^(id k, id v, BOOL *stop) { + if ([v isEqualToString:@"YES"]) { + [s appendString:k]; + [s appendString:@","]; + NSLog(@"category %@ set to YES", k); + } + }]; + NSLog(@"category parameter set to %@", s); + } return [self GET:@"search" parameters:parameters success:success failure:failure]; } +- (AFHTTPRequestOperation *)searchWithTerm:(NSString *)term success:(void (^)(AFHTTPRequestOperation *, id))success failure:(void (^)(AFHTTPRequestOperation *, NSError *))failure { + return [self searchWithTerm:term withFilters:@{} success:success failure:failure]; +} + @end diff --git a/screenshots/screencast-final.gif b/screenshots/screencast-final.gif new file mode 100644 index 0000000..0b0ee3e Binary files /dev/null and b/screenshots/screencast-final.gif differ diff --git a/screenshots/screencast-search.gif b/screenshots/screencast-search.gif new file mode 100644 index 0000000..b15307b Binary files /dev/null and b/screenshots/screencast-search.gif differ