From e3534c38f50dfcc3e63d2b683498afe0a87ad407 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Tue, 2 Jun 2015 02:02:28 -0700 Subject: [PATCH 01/18] Add ObjC prefixes to the sample protos --- protos/hellostreamingworld.proto | 1 + protos/helloworld.proto | 1 + protos/route_guide.proto | 1 + 3 files changed, 3 insertions(+) diff --git a/protos/hellostreamingworld.proto b/protos/hellostreamingworld.proto index ec8405c..bd5af3b 100644 --- a/protos/hellostreamingworld.proto +++ b/protos/hellostreamingworld.proto @@ -30,6 +30,7 @@ syntax = "proto3"; option java_package = "ex.grpc"; +option objc_class_prefix = "HSW"; package hellostreamingworld; diff --git a/protos/helloworld.proto b/protos/helloworld.proto index 6281c93..7d58870 100644 --- a/protos/helloworld.proto +++ b/protos/helloworld.proto @@ -30,6 +30,7 @@ syntax = "proto3"; option java_package = "io.grpc.examples"; +option objc_class_prefix = "HLW"; package helloworld; diff --git a/protos/route_guide.proto b/protos/route_guide.proto index 3759049..bfde5f1 100644 --- a/protos/route_guide.proto +++ b/protos/route_guide.proto @@ -30,6 +30,7 @@ syntax = "proto3"; option java_package = "ex.grpc"; +option objc_class_prefix = "RTG"; package examples; From f3e6be42ec744d3d21b4300706800b53437ddd8c Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Mon, 1 Jun 2015 14:24:25 -0700 Subject: [PATCH 02/18] Add Podspec for the RouteGuide proto library --- objective-c/route_guide/RouteGuide.podspec | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 objective-c/route_guide/RouteGuide.podspec diff --git a/objective-c/route_guide/RouteGuide.podspec b/objective-c/route_guide/RouteGuide.podspec new file mode 100644 index 0000000..9086e23 --- /dev/null +++ b/objective-c/route_guide/RouteGuide.podspec @@ -0,0 +1,35 @@ +Pod::Spec.new do |s| + s.name = "RouteGuide" + s.version = "0.0.1" + s.license = "New BSD" + + s.ios.deployment_target = "6.0" + s.osx.deployment_target = "10.8" + + # Base directory where the .proto files are. + src = "../../protos" + + # Directory where the generated files will be place. + dir = "Pods/" + s.name + + # Run protoc with the Objective-C and gRPC plugins to generate protocol messages and gRPC clients. + s.prepare_command = <<-CMD + mkdir -p #{dir} + protoc -I #{src} --objc_out=#{dir} --objcgrpc_out=#{dir} #{src}/route_guide.proto + CMD + + s.subspec "Messages" do |ms| + ms.source_files = "#{dir}/*.pbobjc.{h,m}", "#{dir}/**/*.pbobjc.{h,m}" + ms.header_mappings_dir = dir + ms.requires_arc = false + ms.dependency "Protobuf", "~> 3.0.0-alpha-3" + end + + s.subspec "Services" do |ss| + ss.source_files = "#{dir}/*.pbrpc.{h,m}", "#{dir}/**/*.pbrpc.{h,m}" + ss.header_mappings_dir = dir + ss.requires_arc = true + ss.dependency "gRPC", "~> 0.5" + ss.dependency "#{s.name}/Messages" + end +end From cfeab21e52153e5a3ed62b13dcdb548cbedc0699 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Mon, 1 Jun 2015 14:24:53 -0700 Subject: [PATCH 03/18] Add Podfile to install RouteGuide proto library in sample app --- objective-c/route_guide/Podfile | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 objective-c/route_guide/Podfile diff --git a/objective-c/route_guide/Podfile b/objective-c/route_guide/Podfile new file mode 100644 index 0000000..a97f414 --- /dev/null +++ b/objective-c/route_guide/Podfile @@ -0,0 +1,7 @@ +source 'https://github.com/CocoaPods/Specs.git' +platform :ios, '8.0' + +target 'RouteGuideClient' do + # Depend on the generated RouteGuide library. + pod 'RouteGuide', :path => '.' +end From eb8d33dc754cc85d8d63c780b3e6417901cf9b2d Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Mon, 1 Jun 2015 16:29:06 -0700 Subject: [PATCH 04/18] Add tabbed app with one tab per RouteGuide demo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The app doesn’t do anything yet --- .gitignore | 21 +- objective-c/route_guide/AppDelegate.h | 38 ++ objective-c/route_guide/AppDelegate.m | 37 ++ .../route_guide/Base.lproj/Main.storyboard | 193 +++++++++ .../route_guide/GetFeatureViewController.h | 37 ++ .../route_guide/GetFeatureViewController.m | 43 ++ .../AppIcon.appiconset/Contents.json | 68 ++++ .../first.imageset/Contents.json | 12 + .../Images.xcassets/first.imageset/first.pdf | Bin 0 -> 2465 bytes .../second.imageset/Contents.json | 12 + .../second.imageset/second.pdf | Bin 0 -> 2423 bytes objective-c/route_guide/Info.plist | 57 +++ .../route_guide/ListFeaturesViewController.h | 37 ++ .../route_guide/ListFeaturesViewController.m | 43 ++ .../route_guide/RecordRouteViewController.h | 37 ++ .../route_guide/RecordRouteViewController.m | 43 ++ .../route_guide/RouteChatViewController.h | 37 ++ .../route_guide/RouteChatViewController.m | 43 ++ .../project.pbxproj | 373 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + objective-c/route_guide/main.m | 41 ++ 21 files changed, 1178 insertions(+), 1 deletion(-) create mode 100644 objective-c/route_guide/AppDelegate.h create mode 100644 objective-c/route_guide/AppDelegate.m create mode 100644 objective-c/route_guide/Base.lproj/Main.storyboard create mode 100644 objective-c/route_guide/GetFeatureViewController.h create mode 100644 objective-c/route_guide/GetFeatureViewController.m create mode 100644 objective-c/route_guide/Images.xcassets/AppIcon.appiconset/Contents.json create mode 100644 objective-c/route_guide/Images.xcassets/first.imageset/Contents.json create mode 100644 objective-c/route_guide/Images.xcassets/first.imageset/first.pdf create mode 100644 objective-c/route_guide/Images.xcassets/second.imageset/Contents.json create mode 100644 objective-c/route_guide/Images.xcassets/second.imageset/second.pdf create mode 100644 objective-c/route_guide/Info.plist create mode 100644 objective-c/route_guide/ListFeaturesViewController.h create mode 100644 objective-c/route_guide/ListFeaturesViewController.m create mode 100644 objective-c/route_guide/RecordRouteViewController.h create mode 100644 objective-c/route_guide/RecordRouteViewController.m create mode 100644 objective-c/route_guide/RouteChatViewController.h create mode 100644 objective-c/route_guide/RouteChatViewController.m create mode 100644 objective-c/route_guide/RouteGuideClient.xcodeproj/project.pbxproj create mode 100644 objective-c/route_guide/RouteGuideClient.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 objective-c/route_guide/main.m diff --git a/.gitignore b/.gitignore index 1a49c13..164603e 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,23 @@ pom.xml.tag pom.xml.releaseBackup pom.xml.versionsBackup pom.xml.next -release.properties \ No newline at end of file +release.properties + +# OS X +.DS_Store + +# XCode +build/ +DerivedData +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +*.xcuserstate diff --git a/objective-c/route_guide/AppDelegate.h b/objective-c/route_guide/AppDelegate.h new file mode 100644 index 0000000..102e7f3 --- /dev/null +++ b/objective-c/route_guide/AppDelegate.h @@ -0,0 +1,38 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#import + +@interface AppDelegate : UIResponder +@property (strong, nonatomic) UIWindow *window; +@end diff --git a/objective-c/route_guide/AppDelegate.m b/objective-c/route_guide/AppDelegate.m new file mode 100644 index 0000000..a38e366 --- /dev/null +++ b/objective-c/route_guide/AppDelegate.m @@ -0,0 +1,37 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#import "AppDelegate.h" + +@implementation AppDelegate +@end diff --git a/objective-c/route_guide/Base.lproj/Main.storyboard b/objective-c/route_guide/Base.lproj/Main.storyboard new file mode 100644 index 0000000..10c9b0c --- /dev/null +++ b/objective-c/route_guide/Base.lproj/Main.storyboard @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/objective-c/route_guide/GetFeatureViewController.h b/objective-c/route_guide/GetFeatureViewController.h new file mode 100644 index 0000000..034404e --- /dev/null +++ b/objective-c/route_guide/GetFeatureViewController.h @@ -0,0 +1,37 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#import + +@interface GetFeatureViewController : UIViewController +@end diff --git a/objective-c/route_guide/GetFeatureViewController.m b/objective-c/route_guide/GetFeatureViewController.m new file mode 100644 index 0000000..ef373f4 --- /dev/null +++ b/objective-c/route_guide/GetFeatureViewController.m @@ -0,0 +1,43 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#import "GetFeatureViewController.h" + +@implementation GetFeatureViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view, typically from a nib. +} + +@end diff --git a/objective-c/route_guide/Images.xcassets/AppIcon.appiconset/Contents.json b/objective-c/route_guide/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..36d2c80 --- /dev/null +++ b/objective-c/route_guide/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/objective-c/route_guide/Images.xcassets/first.imageset/Contents.json b/objective-c/route_guide/Images.xcassets/first.imageset/Contents.json new file mode 100644 index 0000000..33a7451 --- /dev/null +++ b/objective-c/route_guide/Images.xcassets/first.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "first.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/objective-c/route_guide/Images.xcassets/first.imageset/first.pdf b/objective-c/route_guide/Images.xcassets/first.imageset/first.pdf new file mode 100644 index 0000000000000000000000000000000000000000..47d911dea647d55983671ead4d08b6f6b3600715 GIT binary patch literal 2465 zcmai03se(l7FLvisY+L#f-EBsK`11Xkc1=%MIujmB|xQ!>5vQ%APFP`Mlf5nSPOKE z2-^C>7DZkM!J;Da5{kfrC?Kvp3J41-3shFXvhuJqKo*oer*r0H{{P-P_x0cTzLzjD!bE z0qT;#Q7l4Gy%fMoXJaKT`@{5#R(MOqJPwQifv8iK6A%Ot9L14h2`38T!2s4PM=1!< zmL06}VYAA|ay#jZRs>HpA%X+eQW4rufWU%d1w5GTy!X#LeZsF_+~ccZmn3Fi)v^Z; zIG;?uU*yLLEYs61tjD>gXOFvSWsh{48xJvPNqKrIJtMdCz2cA2aC7TF?b@K`V!Lw- zE;zpH&ApqhoRjAHt}gK}>(qAc8dvrkD31*`<5<%C(&4_LqhQ3-GOf8~n^leG?+-@@^pjPa$J2gW@O)!b9hdTJ zTauyIJ&~rqeEZC1p9dWgx7{_WRc2=drMO=wcT7B{Zd58z`d)r_36r4V<6PGkCjpGfbnVMtm@;b}F!T?)Qav$_y7H5T;Mf!T}M zWxP9TNqrV?e5;b|pWd3^u2KAatk&3aDB@0 zZBaQNdCZ2#fblzYZnRCCjQ-GQWb-s8bX&<)?SxnUGdDYVFVk`xIf7@g3~$DX`H71_;r5OSZz1p`$_8y_9 z{;MJJ+n=>7Ewg;GnGHoz)&ID0z@F2!e$F7cWQ?d6s(!VY)_Gw})xCyMvsD={5i&H* zAIr_ACo8;Se6<*!-mm9Am79Iz^RVlc?%S5sg|E*SyIV{dd9{Mpf#d3cih5WKt=%ps zBEo)bt8EjmeCFYJRYU|b7d`p+-V|X2wOCYtyLP6t=!WH-kgdf0A};ytPfZiCwVPx{ z`g;zpe{8a4RQxQUwVU02<4X3w|9h;}XjhGWquqn{vVqq8g{*}BQF9=ybe_TM*!M=rFs1pN)yzctIXAoicsCe6>fit>wgZ#vp^hZOY0`J`rx zwdSK?GwR_xm9;5XjH|vf{O+Yg-)z;s*xt>;-vU`D-_SK<=~4eEVQkV~57{vyH6ebu>DqwE~Mx_A31Lg~$ zy`i52ew?GEluE%AN>ju*5z~dx2QQLP-G+E>o|En2+s&<^4*d zWD+<8PXs_Jp7_5Dpi(Gg3J?M;%Rn0{dcxQRh!ip+iHJ_e`!bM1MGxwI8Iedr+x>wI zq@&04fsADHfBccq^gpm8Q_u-~Uj|Z$YwSR(^_mzUb!}Xb2Cj`uqphg}v_Y%?Fs=;= zWq3s{hy)Tu!ji@RJsd$C+G{F6V2j1*Xk+7xo|LO7M2yb)(wc=%x-AclP9pLsbTF7m tf?*P!2EjJu5MD57P32Q4pdJ3tO_shCDT2=K;$ebx8ymcd$v!V9{2$sQiO>K5 literal 0 HcmV?d00001 diff --git a/objective-c/route_guide/Images.xcassets/second.imageset/Contents.json b/objective-c/route_guide/Images.xcassets/second.imageset/Contents.json new file mode 100644 index 0000000..03bd9c9 --- /dev/null +++ b/objective-c/route_guide/Images.xcassets/second.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "second.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/objective-c/route_guide/Images.xcassets/second.imageset/second.pdf b/objective-c/route_guide/Images.xcassets/second.imageset/second.pdf new file mode 100644 index 0000000000000000000000000000000000000000..401614e288b4b160471c2776bed6f09762af3e1c GIT binary patch literal 2423 zcmai02~-nz8dqq7rWU#)x2z)&iMWtV?gK$2a)?|BP!TbkV}J-Gl1wmy+3G9S0=uOY zwCjai6uBOPMMdNiN`VDYKwLQr2#W^`R93*Ua=0^)EGYY4=grIf|KIohziYnv{elnR zdN_hk6db<(+3RPcxs!iut8c(j0TLh=9mY931H^rhEE0|aXo!dh5Iv+ZFr+}9F+v#P zLSnfD0$f~hN>~92V{z)WJA&2)5rW!|I?;o?oI*%zejJiuY>hFLQwKlAa9O+PnPh#% zJp~JAfs-De6u@;{cREMs}D-sGib_4>50m8_|Uj-zC0m@Qx zJV+^5Da4Qxpf3sBtKZs<_aI$Cb1T+h<->yL^rfiGNelYkqgC3#SqVP_iy*_RPcbjH)xYf zvYdC-)D_t8c{=5%;$VJQxs_#61J*kuXMC?|&PbPo-7uSxoNr~&J94|gKk+03JGXXM zx4w~=^VUzWqQveu_ilRgPdgNNdnLZCH`=;w91}cP5ihdm*B_jI+rk=Pz2Lk!)XUu| zkls3P5&YHJ!t0kF+MUVBHOAx)a zy|JxHNd37z*~b5#%*0w_F|#4?erNP;pG`Fevoq2%?9Y>%Cmzv1(ks;aPIGaiy1mhU zr{7lB^Mem&`QK{b{uiDC zLD8muY(FNk{YdV|zO#o_VB%);8|~Bh(Z4p?GM}g-HN2;q7~YNl-lD~HZ$taYw$Fzbn6c?c5eo=@`i>()el#qwB)hI-gp0 ztsw@dh-I5NJkk)RCoBC`L8ffKfY)=oG=#4LA9TO6eA}9~@a6dupB+=S{%s&NY}^0GY`hAqod)uxXHitrN%bWOJohV>t?!&Z#d4y^7J@=Oh`HV zee**4j>xRUd)|D0^I-B#<`m1-5PO{)!v(q?ecFYqr_8Q{+z7#n0uFbq%_?hZ-Ck(6NRn=vDS7Nb1Xxx_)9`!i- zGR>av*PJ+P_AGO*a_$FbtCCISg5PK44p&W#t$)+HVcxpR9LAL%_Pv$p`0tO*sYZD0 zCG3-ipr4WoVbjpw%Nf^r^rnWcDcjumgBPEjO;NM6QtZ8wU#0rjHx5zs%CahF4$W*U zxu!q8kYP+>v!BNPVIRJUGIWU@7qVvx2VZDw4gV8%z%bjpF#aF(W|PmliwlakuRq>= zhaCRc^R!7T)#Twb0{!Tns=CxGcGX|leErg`f3|v0eBXxHU&6Sj-_>zOL!!d+j5Xt* zPS;rWd^zEF{5d5%)nNK=)zFJ8Uc=aQKD%UK)_TNes1Gh{SD*Mb_@O` z7*zs9Uq~Vq?v|^8FcM-yLGMKzR3YFB0z@CFM2X-dio%Gu6&MJj=I?uS7sA3AdE^p8 zE49$PjJzPIJwfn;jso7X2#jynr3dO@p5QAK1O9wqKLC=PkQjj~p#n|-5O`ihbTzzu zL{}2QEe28pJYfVZRW56FL`LvO&|C^1Th{0}hQMW$Ng$QPpnzlwnMnf=kVy8(y==L% zLMa>r0gELdT + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + gRPC.$(PRODUCT_NAME:rfc1034identifier) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + Main + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UIStatusBarTintParameters + + UINavigationBar + + Style + UIBarStyleDefault + Translucent + + + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/objective-c/route_guide/ListFeaturesViewController.h b/objective-c/route_guide/ListFeaturesViewController.h new file mode 100644 index 0000000..d758d1c --- /dev/null +++ b/objective-c/route_guide/ListFeaturesViewController.h @@ -0,0 +1,37 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#import + +@interface ListFeaturesViewController : UIViewController +@end diff --git a/objective-c/route_guide/ListFeaturesViewController.m b/objective-c/route_guide/ListFeaturesViewController.m new file mode 100644 index 0000000..9afc89b --- /dev/null +++ b/objective-c/route_guide/ListFeaturesViewController.m @@ -0,0 +1,43 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#import "ListFeaturesViewController.h" + +@implementation ListFeaturesViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view, typically from a nib. +} + +@end diff --git a/objective-c/route_guide/RecordRouteViewController.h b/objective-c/route_guide/RecordRouteViewController.h new file mode 100644 index 0000000..155b7e6 --- /dev/null +++ b/objective-c/route_guide/RecordRouteViewController.h @@ -0,0 +1,37 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#import + +@interface RecordRouteViewController : UIViewController +@end diff --git a/objective-c/route_guide/RecordRouteViewController.m b/objective-c/route_guide/RecordRouteViewController.m new file mode 100644 index 0000000..56dbdd1 --- /dev/null +++ b/objective-c/route_guide/RecordRouteViewController.m @@ -0,0 +1,43 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#import "RecordRouteViewController.h" + +@implementation RecordRouteViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. +} + +@end diff --git a/objective-c/route_guide/RouteChatViewController.h b/objective-c/route_guide/RouteChatViewController.h new file mode 100644 index 0000000..4a92e58 --- /dev/null +++ b/objective-c/route_guide/RouteChatViewController.h @@ -0,0 +1,37 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#import + +@interface RouteChatViewController : UIViewController +@end diff --git a/objective-c/route_guide/RouteChatViewController.m b/objective-c/route_guide/RouteChatViewController.m new file mode 100644 index 0000000..67735e0 --- /dev/null +++ b/objective-c/route_guide/RouteChatViewController.m @@ -0,0 +1,43 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#import "RouteChatViewController.h" + +@implementation RouteChatViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. +} + +@end diff --git a/objective-c/route_guide/RouteGuideClient.xcodeproj/project.pbxproj b/objective-c/route_guide/RouteGuideClient.xcodeproj/project.pbxproj new file mode 100644 index 0000000..0fb054b --- /dev/null +++ b/objective-c/route_guide/RouteGuideClient.xcodeproj/project.pbxproj @@ -0,0 +1,373 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 124E20A2FC8EAE54460D4ED2 /* libPods-RouteGuideClient.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 71CEE03D66D40FC37264D6E4 /* libPods-RouteGuideClient.a */; }; + 632527831B1D0396003073D9 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 632527821B1D0396003073D9 /* main.m */; }; + 632527861B1D0396003073D9 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 632527851B1D0396003073D9 /* AppDelegate.m */; }; + 632527891B1D0396003073D9 /* GetFeatureViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 632527881B1D0396003073D9 /* GetFeatureViewController.m */; }; + 6325278C1B1D0396003073D9 /* ListFeaturesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6325278B1B1D0396003073D9 /* ListFeaturesViewController.m */; }; + 6325278F1B1D0396003073D9 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6325278D1B1D0396003073D9 /* Main.storyboard */; }; + 632527911B1D0396003073D9 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 632527901B1D0396003073D9 /* Images.xcassets */; }; + 632527AB1B1D1C20003073D9 /* RecordRouteViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 632527AA1B1D1C20003073D9 /* RecordRouteViewController.m */; }; + 632527AE1B1D1DFE003073D9 /* RouteChatViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 632527AD1B1D1DFE003073D9 /* RouteChatViewController.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 6325277D1B1D0396003073D9 /* RouteGuideClient.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RouteGuideClient.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 632527811B1D0396003073D9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 632527821B1D0396003073D9 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 632527841B1D0396003073D9 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 632527851B1D0396003073D9 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + 632527871B1D0396003073D9 /* GetFeatureViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GetFeatureViewController.h; sourceTree = ""; }; + 632527881B1D0396003073D9 /* GetFeatureViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GetFeatureViewController.m; sourceTree = ""; }; + 6325278A1B1D0396003073D9 /* ListFeaturesViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ListFeaturesViewController.h; sourceTree = ""; }; + 6325278B1B1D0396003073D9 /* ListFeaturesViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ListFeaturesViewController.m; sourceTree = ""; }; + 6325278E1B1D0396003073D9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 632527901B1D0396003073D9 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; + 632527A91B1D1C20003073D9 /* RecordRouteViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RecordRouteViewController.h; sourceTree = ""; }; + 632527AA1B1D1C20003073D9 /* RecordRouteViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RecordRouteViewController.m; sourceTree = ""; }; + 632527AC1B1D1DFE003073D9 /* RouteChatViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RouteChatViewController.h; sourceTree = ""; }; + 632527AD1B1D1DFE003073D9 /* RouteChatViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RouteChatViewController.m; sourceTree = ""; }; + 71CEE03D66D40FC37264D6E4 /* libPods-RouteGuideClient.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RouteGuideClient.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + ADA4C647BAE906F79AD9A45E /* Pods-RouteGuideClient.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RouteGuideClient.debug.xcconfig"; path = "Pods/Target Support Files/Pods-RouteGuideClient/Pods-RouteGuideClient.debug.xcconfig"; sourceTree = ""; }; + C83C5A54D1A4EA07569F1AED /* Pods-RouteGuideClient.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RouteGuideClient.release.xcconfig"; path = "Pods/Target Support Files/Pods-RouteGuideClient/Pods-RouteGuideClient.release.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 6325277A1B1D0395003073D9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 124E20A2FC8EAE54460D4ED2 /* libPods-RouteGuideClient.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 56849C29DC376BF4B902CD77 /* Pods */ = { + isa = PBXGroup; + children = ( + ADA4C647BAE906F79AD9A45E /* Pods-RouteGuideClient.debug.xcconfig */, + C83C5A54D1A4EA07569F1AED /* Pods-RouteGuideClient.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; + 632527741B1D0395003073D9 = { + isa = PBXGroup; + children = ( + 6325277F1B1D0396003073D9 /* RouteGuideClient */, + 6325277E1B1D0396003073D9 /* Products */, + 56849C29DC376BF4B902CD77 /* Pods */, + 7482B8A18481F7B13ADE4530 /* Frameworks */, + ); + sourceTree = ""; + }; + 6325277E1B1D0396003073D9 /* Products */ = { + isa = PBXGroup; + children = ( + 6325277D1B1D0396003073D9 /* RouteGuideClient.app */, + ); + name = Products; + sourceTree = ""; + }; + 6325277F1B1D0396003073D9 /* RouteGuideClient */ = { + isa = PBXGroup; + children = ( + 632527841B1D0396003073D9 /* AppDelegate.h */, + 632527851B1D0396003073D9 /* AppDelegate.m */, + 632527871B1D0396003073D9 /* GetFeatureViewController.h */, + 632527881B1D0396003073D9 /* GetFeatureViewController.m */, + 6325278A1B1D0396003073D9 /* ListFeaturesViewController.h */, + 6325278B1B1D0396003073D9 /* ListFeaturesViewController.m */, + 6325278D1B1D0396003073D9 /* Main.storyboard */, + 632527901B1D0396003073D9 /* Images.xcassets */, + 632527801B1D0396003073D9 /* Supporting Files */, + 632527A91B1D1C20003073D9 /* RecordRouteViewController.h */, + 632527AA1B1D1C20003073D9 /* RecordRouteViewController.m */, + 632527AC1B1D1DFE003073D9 /* RouteChatViewController.h */, + 632527AD1B1D1DFE003073D9 /* RouteChatViewController.m */, + ); + name = RouteGuideClient; + sourceTree = SOURCE_ROOT; + }; + 632527801B1D0396003073D9 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 632527811B1D0396003073D9 /* Info.plist */, + 632527821B1D0396003073D9 /* main.m */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 7482B8A18481F7B13ADE4530 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 71CEE03D66D40FC37264D6E4 /* libPods-RouteGuideClient.a */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 6325277C1B1D0395003073D9 /* RouteGuideClient */ = { + isa = PBXNativeTarget; + buildConfigurationList = 632527A31B1D0396003073D9 /* Build configuration list for PBXNativeTarget "RouteGuideClient" */; + buildPhases = ( + C6FC30AD2376EC04317237C5 /* Check Pods Manifest.lock */, + 632527791B1D0395003073D9 /* Sources */, + 6325277A1B1D0395003073D9 /* Frameworks */, + 6325277B1B1D0395003073D9 /* Resources */, + FFE0BCF30339E7A50A989EAB /* Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = RouteGuideClient; + productName = RouteGuideClient; + productReference = 6325277D1B1D0396003073D9 /* RouteGuideClient.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 632527751B1D0395003073D9 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0630; + ORGANIZATIONNAME = gRPC; + TargetAttributes = { + 6325277C1B1D0395003073D9 = { + CreatedOnToolsVersion = 6.3.1; + }; + }; + }; + buildConfigurationList = 632527781B1D0395003073D9 /* Build configuration list for PBXProject "RouteGuideClient" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 632527741B1D0395003073D9; + productRefGroup = 6325277E1B1D0396003073D9 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 6325277C1B1D0395003073D9 /* RouteGuideClient */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 6325277B1B1D0395003073D9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6325278F1B1D0396003073D9 /* Main.storyboard in Resources */, + 632527911B1D0396003073D9 /* Images.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + C6FC30AD2376EC04317237C5 /* Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + FFE0BCF30339E7A50A989EAB /* Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-RouteGuideClient/Pods-RouteGuideClient-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 632527791B1D0395003073D9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 632527AE1B1D1DFE003073D9 /* RouteChatViewController.m in Sources */, + 6325278C1B1D0396003073D9 /* ListFeaturesViewController.m in Sources */, + 632527861B1D0396003073D9 /* AppDelegate.m in Sources */, + 632527891B1D0396003073D9 /* GetFeatureViewController.m in Sources */, + 632527831B1D0396003073D9 /* main.m in Sources */, + 632527AB1B1D1C20003073D9 /* RecordRouteViewController.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 6325278D1B1D0396003073D9 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 6325278E1B1D0396003073D9 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 632527A11B1D0396003073D9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + 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; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + 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_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 632527A21B1D0396003073D9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + 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; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + 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_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 632527A41B1D0396003073D9 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = ADA4C647BAE906F79AD9A45E /* Pods-RouteGuideClient.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + INFOPLIST_FILE = Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 632527A51B1D0396003073D9 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C83C5A54D1A4EA07569F1AED /* Pods-RouteGuideClient.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + INFOPLIST_FILE = Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 632527781B1D0395003073D9 /* Build configuration list for PBXProject "RouteGuideClient" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 632527A11B1D0396003073D9 /* Debug */, + 632527A21B1D0396003073D9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 632527A31B1D0396003073D9 /* Build configuration list for PBXNativeTarget "RouteGuideClient" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 632527A41B1D0396003073D9 /* Debug */, + 632527A51B1D0396003073D9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 632527751B1D0395003073D9 /* Project object */; +} diff --git a/objective-c/route_guide/RouteGuideClient.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/objective-c/route_guide/RouteGuideClient.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..f208589 --- /dev/null +++ b/objective-c/route_guide/RouteGuideClient.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/objective-c/route_guide/main.m b/objective-c/route_guide/main.m new file mode 100644 index 0000000..fb70100 --- /dev/null +++ b/objective-c/route_guide/main.m @@ -0,0 +1,41 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#import +#import "AppDelegate.h" + +int main(int argc, char * argv[]) { + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} From 34b2629d4e27c6360969a060862dd7f4ac19a774 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Tue, 2 Jun 2015 02:11:09 -0700 Subject: [PATCH 05/18] Call GetFeature and put all ViewControllers in one file --- .../route_guide/GetFeatureViewController.h | 37 ----------- .../route_guide/GetFeatureViewController.m | 43 ------------- .../route_guide/ListFeaturesViewController.h | 37 ----------- .../route_guide/RecordRouteViewController.h | 37 ----------- .../route_guide/RecordRouteViewController.m | 43 ------------- .../route_guide/RouteChatViewController.h | 37 ----------- .../route_guide/RouteChatViewController.m | 43 ------------- .../project.pbxproj | 30 ++------- ...uresViewController.m => ViewControllers.m} | 61 ++++++++++++++++++- 9 files changed, 65 insertions(+), 303 deletions(-) delete mode 100644 objective-c/route_guide/GetFeatureViewController.h delete mode 100644 objective-c/route_guide/GetFeatureViewController.m delete mode 100644 objective-c/route_guide/ListFeaturesViewController.h delete mode 100644 objective-c/route_guide/RecordRouteViewController.h delete mode 100644 objective-c/route_guide/RecordRouteViewController.m delete mode 100644 objective-c/route_guide/RouteChatViewController.h delete mode 100644 objective-c/route_guide/RouteChatViewController.m rename objective-c/route_guide/{ListFeaturesViewController.m => ViewControllers.m} (59%) diff --git a/objective-c/route_guide/GetFeatureViewController.h b/objective-c/route_guide/GetFeatureViewController.h deleted file mode 100644 index 034404e..0000000 --- a/objective-c/route_guide/GetFeatureViewController.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * - * Copyright 2015, Google Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -#import - -@interface GetFeatureViewController : UIViewController -@end diff --git a/objective-c/route_guide/GetFeatureViewController.m b/objective-c/route_guide/GetFeatureViewController.m deleted file mode 100644 index ef373f4..0000000 --- a/objective-c/route_guide/GetFeatureViewController.m +++ /dev/null @@ -1,43 +0,0 @@ -/* - * - * Copyright 2015, Google Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -#import "GetFeatureViewController.h" - -@implementation GetFeatureViewController - -- (void)viewDidLoad { - [super viewDidLoad]; - // Do any additional setup after loading the view, typically from a nib. -} - -@end diff --git a/objective-c/route_guide/ListFeaturesViewController.h b/objective-c/route_guide/ListFeaturesViewController.h deleted file mode 100644 index d758d1c..0000000 --- a/objective-c/route_guide/ListFeaturesViewController.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * - * Copyright 2015, Google Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -#import - -@interface ListFeaturesViewController : UIViewController -@end diff --git a/objective-c/route_guide/RecordRouteViewController.h b/objective-c/route_guide/RecordRouteViewController.h deleted file mode 100644 index 155b7e6..0000000 --- a/objective-c/route_guide/RecordRouteViewController.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * - * Copyright 2015, Google Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -#import - -@interface RecordRouteViewController : UIViewController -@end diff --git a/objective-c/route_guide/RecordRouteViewController.m b/objective-c/route_guide/RecordRouteViewController.m deleted file mode 100644 index 56dbdd1..0000000 --- a/objective-c/route_guide/RecordRouteViewController.m +++ /dev/null @@ -1,43 +0,0 @@ -/* - * - * Copyright 2015, Google Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -#import "RecordRouteViewController.h" - -@implementation RecordRouteViewController - -- (void)viewDidLoad { - [super viewDidLoad]; - // Do any additional setup after loading the view. -} - -@end diff --git a/objective-c/route_guide/RouteChatViewController.h b/objective-c/route_guide/RouteChatViewController.h deleted file mode 100644 index 4a92e58..0000000 --- a/objective-c/route_guide/RouteChatViewController.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * - * Copyright 2015, Google Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -#import - -@interface RouteChatViewController : UIViewController -@end diff --git a/objective-c/route_guide/RouteChatViewController.m b/objective-c/route_guide/RouteChatViewController.m deleted file mode 100644 index 67735e0..0000000 --- a/objective-c/route_guide/RouteChatViewController.m +++ /dev/null @@ -1,43 +0,0 @@ -/* - * - * Copyright 2015, Google Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -#import "RouteChatViewController.h" - -@implementation RouteChatViewController - -- (void)viewDidLoad { - [super viewDidLoad]; - // Do any additional setup after loading the view. -} - -@end diff --git a/objective-c/route_guide/RouteGuideClient.xcodeproj/project.pbxproj b/objective-c/route_guide/RouteGuideClient.xcodeproj/project.pbxproj index 0fb054b..e09356b 100644 --- a/objective-c/route_guide/RouteGuideClient.xcodeproj/project.pbxproj +++ b/objective-c/route_guide/RouteGuideClient.xcodeproj/project.pbxproj @@ -10,12 +10,9 @@ 124E20A2FC8EAE54460D4ED2 /* libPods-RouteGuideClient.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 71CEE03D66D40FC37264D6E4 /* libPods-RouteGuideClient.a */; }; 632527831B1D0396003073D9 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 632527821B1D0396003073D9 /* main.m */; }; 632527861B1D0396003073D9 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 632527851B1D0396003073D9 /* AppDelegate.m */; }; - 632527891B1D0396003073D9 /* GetFeatureViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 632527881B1D0396003073D9 /* GetFeatureViewController.m */; }; - 6325278C1B1D0396003073D9 /* ListFeaturesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6325278B1B1D0396003073D9 /* ListFeaturesViewController.m */; }; 6325278F1B1D0396003073D9 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6325278D1B1D0396003073D9 /* Main.storyboard */; }; 632527911B1D0396003073D9 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 632527901B1D0396003073D9 /* Images.xcassets */; }; - 632527AB1B1D1C20003073D9 /* RecordRouteViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 632527AA1B1D1C20003073D9 /* RecordRouteViewController.m */; }; - 632527AE1B1D1DFE003073D9 /* RouteChatViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 632527AD1B1D1DFE003073D9 /* RouteChatViewController.m */; }; + 63A6015C1B1DAB5000FA5B86 /* ViewControllers.m in Sources */ = {isa = PBXBuildFile; fileRef = 63A6015B1B1DAB5000FA5B86 /* ViewControllers.m */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -24,16 +21,9 @@ 632527821B1D0396003073D9 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 632527841B1D0396003073D9 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 632527851B1D0396003073D9 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 632527871B1D0396003073D9 /* GetFeatureViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GetFeatureViewController.h; sourceTree = ""; }; - 632527881B1D0396003073D9 /* GetFeatureViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GetFeatureViewController.m; sourceTree = ""; }; - 6325278A1B1D0396003073D9 /* ListFeaturesViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ListFeaturesViewController.h; sourceTree = ""; }; - 6325278B1B1D0396003073D9 /* ListFeaturesViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ListFeaturesViewController.m; sourceTree = ""; }; 6325278E1B1D0396003073D9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 632527901B1D0396003073D9 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; - 632527A91B1D1C20003073D9 /* RecordRouteViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RecordRouteViewController.h; sourceTree = ""; }; - 632527AA1B1D1C20003073D9 /* RecordRouteViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RecordRouteViewController.m; sourceTree = ""; }; - 632527AC1B1D1DFE003073D9 /* RouteChatViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RouteChatViewController.h; sourceTree = ""; }; - 632527AD1B1D1DFE003073D9 /* RouteChatViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RouteChatViewController.m; sourceTree = ""; }; + 63A6015B1B1DAB5000FA5B86 /* ViewControllers.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ViewControllers.m; sourceTree = ""; }; 71CEE03D66D40FC37264D6E4 /* libPods-RouteGuideClient.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RouteGuideClient.a"; sourceTree = BUILT_PRODUCTS_DIR; }; ADA4C647BAE906F79AD9A45E /* Pods-RouteGuideClient.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RouteGuideClient.debug.xcconfig"; path = "Pods/Target Support Files/Pods-RouteGuideClient/Pods-RouteGuideClient.debug.xcconfig"; sourceTree = ""; }; C83C5A54D1A4EA07569F1AED /* Pods-RouteGuideClient.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RouteGuideClient.release.xcconfig"; path = "Pods/Target Support Files/Pods-RouteGuideClient/Pods-RouteGuideClient.release.xcconfig"; sourceTree = ""; }; @@ -81,19 +71,12 @@ 6325277F1B1D0396003073D9 /* RouteGuideClient */ = { isa = PBXGroup; children = ( + 63A6015B1B1DAB5000FA5B86 /* ViewControllers.m */, + 6325278D1B1D0396003073D9 /* Main.storyboard */, 632527841B1D0396003073D9 /* AppDelegate.h */, 632527851B1D0396003073D9 /* AppDelegate.m */, - 632527871B1D0396003073D9 /* GetFeatureViewController.h */, - 632527881B1D0396003073D9 /* GetFeatureViewController.m */, - 6325278A1B1D0396003073D9 /* ListFeaturesViewController.h */, - 6325278B1B1D0396003073D9 /* ListFeaturesViewController.m */, - 6325278D1B1D0396003073D9 /* Main.storyboard */, 632527901B1D0396003073D9 /* Images.xcassets */, 632527801B1D0396003073D9 /* Supporting Files */, - 632527A91B1D1C20003073D9 /* RecordRouteViewController.h */, - 632527AA1B1D1C20003073D9 /* RecordRouteViewController.m */, - 632527AC1B1D1DFE003073D9 /* RouteChatViewController.h */, - 632527AD1B1D1DFE003073D9 /* RouteChatViewController.m */, ); name = RouteGuideClient; sourceTree = SOURCE_ROOT; @@ -219,12 +202,9 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 632527AE1B1D1DFE003073D9 /* RouteChatViewController.m in Sources */, - 6325278C1B1D0396003073D9 /* ListFeaturesViewController.m in Sources */, 632527861B1D0396003073D9 /* AppDelegate.m in Sources */, - 632527891B1D0396003073D9 /* GetFeatureViewController.m in Sources */, 632527831B1D0396003073D9 /* main.m in Sources */, - 632527AB1B1D1C20003073D9 /* RecordRouteViewController.m in Sources */, + 63A6015C1B1DAB5000FA5B86 /* ViewControllers.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/objective-c/route_guide/ListFeaturesViewController.m b/objective-c/route_guide/ViewControllers.m similarity index 59% rename from objective-c/route_guide/ListFeaturesViewController.m rename to objective-c/route_guide/ViewControllers.m index 9afc89b..0a38f26 100644 --- a/objective-c/route_guide/ListFeaturesViewController.m +++ b/objective-c/route_guide/ViewControllers.m @@ -31,7 +31,38 @@ * */ -#import "ListFeaturesViewController.h" +#import +#import + +static NSString * const kHostAddress = @"http://localhost:50051"; + +#pragma mark Get Feature + +@interface GetFeatureViewController : UIViewController +@end + +@implementation GetFeatureViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + + RTGRouteGuide *client = [[RTGRouteGuide alloc] initWithHost:kHostAddress]; + + RTGPoint *point = [RTGPoint message]; + point.latitude = 409146138; + point.longitude = -746188906; + + [client getFeatureWithRequest:point handler:^(RTGFeature *response, NSError *error) { + NSLog(@"Response: %@", response); + }]; +} + +@end + +#pragma mark List Features + +@interface ListFeaturesViewController : UIViewController +@end @implementation ListFeaturesViewController @@ -41,3 +72,31 @@ } @end + +#pragma mark Record Route + +@interface RecordRouteViewController : UIViewController +@end + +@implementation RecordRouteViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. +} + +@end + +#pragma mark Route Chat + +@interface RouteChatViewController : UIViewController +@end + +@implementation RouteChatViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. +} + +@end From 6bae4b6bb7fb05158263aa2c9cd21ce662d3e638 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Tue, 2 Jun 2015 03:30:09 -0700 Subject: [PATCH 06/18] Move boilerplate files under Misc dir --- .../route_guide/{ => Misc}/AppDelegate.h | 0 .../route_guide/{ => Misc}/AppDelegate.m | 0 .../{ => Misc}/Base.lproj/Main.storyboard | 0 .../AppIcon.appiconset/Contents.json | 0 .../first.imageset/Contents.json | 0 .../Images.xcassets/first.imageset/first.pdf | Bin .../second.imageset/Contents.json | 0 .../second.imageset/second.pdf | Bin objective-c/route_guide/{ => Misc}/Info.plist | 0 objective-c/route_guide/{ => Misc}/main.m | 0 .../project.pbxproj | 21 +++++++++++++----- 11 files changed, 15 insertions(+), 6 deletions(-) rename objective-c/route_guide/{ => Misc}/AppDelegate.h (100%) rename objective-c/route_guide/{ => Misc}/AppDelegate.m (100%) rename objective-c/route_guide/{ => Misc}/Base.lproj/Main.storyboard (100%) rename objective-c/route_guide/{ => Misc}/Images.xcassets/AppIcon.appiconset/Contents.json (100%) rename objective-c/route_guide/{ => Misc}/Images.xcassets/first.imageset/Contents.json (100%) rename objective-c/route_guide/{ => Misc}/Images.xcassets/first.imageset/first.pdf (100%) rename objective-c/route_guide/{ => Misc}/Images.xcassets/second.imageset/Contents.json (100%) rename objective-c/route_guide/{ => Misc}/Images.xcassets/second.imageset/second.pdf (100%) rename objective-c/route_guide/{ => Misc}/Info.plist (100%) rename objective-c/route_guide/{ => Misc}/main.m (100%) diff --git a/objective-c/route_guide/AppDelegate.h b/objective-c/route_guide/Misc/AppDelegate.h similarity index 100% rename from objective-c/route_guide/AppDelegate.h rename to objective-c/route_guide/Misc/AppDelegate.h diff --git a/objective-c/route_guide/AppDelegate.m b/objective-c/route_guide/Misc/AppDelegate.m similarity index 100% rename from objective-c/route_guide/AppDelegate.m rename to objective-c/route_guide/Misc/AppDelegate.m diff --git a/objective-c/route_guide/Base.lproj/Main.storyboard b/objective-c/route_guide/Misc/Base.lproj/Main.storyboard similarity index 100% rename from objective-c/route_guide/Base.lproj/Main.storyboard rename to objective-c/route_guide/Misc/Base.lproj/Main.storyboard diff --git a/objective-c/route_guide/Images.xcassets/AppIcon.appiconset/Contents.json b/objective-c/route_guide/Misc/Images.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from objective-c/route_guide/Images.xcassets/AppIcon.appiconset/Contents.json rename to objective-c/route_guide/Misc/Images.xcassets/AppIcon.appiconset/Contents.json diff --git a/objective-c/route_guide/Images.xcassets/first.imageset/Contents.json b/objective-c/route_guide/Misc/Images.xcassets/first.imageset/Contents.json similarity index 100% rename from objective-c/route_guide/Images.xcassets/first.imageset/Contents.json rename to objective-c/route_guide/Misc/Images.xcassets/first.imageset/Contents.json diff --git a/objective-c/route_guide/Images.xcassets/first.imageset/first.pdf b/objective-c/route_guide/Misc/Images.xcassets/first.imageset/first.pdf similarity index 100% rename from objective-c/route_guide/Images.xcassets/first.imageset/first.pdf rename to objective-c/route_guide/Misc/Images.xcassets/first.imageset/first.pdf diff --git a/objective-c/route_guide/Images.xcassets/second.imageset/Contents.json b/objective-c/route_guide/Misc/Images.xcassets/second.imageset/Contents.json similarity index 100% rename from objective-c/route_guide/Images.xcassets/second.imageset/Contents.json rename to objective-c/route_guide/Misc/Images.xcassets/second.imageset/Contents.json diff --git a/objective-c/route_guide/Images.xcassets/second.imageset/second.pdf b/objective-c/route_guide/Misc/Images.xcassets/second.imageset/second.pdf similarity index 100% rename from objective-c/route_guide/Images.xcassets/second.imageset/second.pdf rename to objective-c/route_guide/Misc/Images.xcassets/second.imageset/second.pdf diff --git a/objective-c/route_guide/Info.plist b/objective-c/route_guide/Misc/Info.plist similarity index 100% rename from objective-c/route_guide/Info.plist rename to objective-c/route_guide/Misc/Info.plist diff --git a/objective-c/route_guide/main.m b/objective-c/route_guide/Misc/main.m similarity index 100% rename from objective-c/route_guide/main.m rename to objective-c/route_guide/Misc/main.m diff --git a/objective-c/route_guide/RouteGuideClient.xcodeproj/project.pbxproj b/objective-c/route_guide/RouteGuideClient.xcodeproj/project.pbxproj index e09356b..39efb02 100644 --- a/objective-c/route_guide/RouteGuideClient.xcodeproj/project.pbxproj +++ b/objective-c/route_guide/RouteGuideClient.xcodeproj/project.pbxproj @@ -50,6 +50,17 @@ name = Pods; sourceTree = ""; }; + 631C63891B1DBC41001295D5 /* Misc */ = { + isa = PBXGroup; + children = ( + 632527841B1D0396003073D9 /* AppDelegate.h */, + 632527851B1D0396003073D9 /* AppDelegate.m */, + 632527901B1D0396003073D9 /* Images.xcassets */, + 632527801B1D0396003073D9 /* Supporting Files */, + ); + path = Misc; + sourceTree = ""; + }; 632527741B1D0395003073D9 = { isa = PBXGroup; children = ( @@ -73,10 +84,7 @@ children = ( 63A6015B1B1DAB5000FA5B86 /* ViewControllers.m */, 6325278D1B1D0396003073D9 /* Main.storyboard */, - 632527841B1D0396003073D9 /* AppDelegate.h */, - 632527851B1D0396003073D9 /* AppDelegate.m */, - 632527901B1D0396003073D9 /* Images.xcassets */, - 632527801B1D0396003073D9 /* Supporting Files */, + 631C63891B1DBC41001295D5 /* Misc */, ); name = RouteGuideClient; sourceTree = SOURCE_ROOT; @@ -217,6 +225,7 @@ 6325278E1B1D0396003073D9 /* Base */, ); name = Main.storyboard; + path = Misc; sourceTree = ""; }; /* End PBXVariantGroup section */ @@ -309,7 +318,7 @@ baseConfigurationReference = ADA4C647BAE906F79AD9A45E /* Pods-RouteGuideClient.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - INFOPLIST_FILE = Info.plist; + INFOPLIST_FILE = Misc/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_NAME = "$(TARGET_NAME)"; }; @@ -320,7 +329,7 @@ baseConfigurationReference = C83C5A54D1A4EA07569F1AED /* Pods-RouteGuideClient.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - INFOPLIST_FILE = Info.plist; + INFOPLIST_FILE = Misc/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_NAME = "$(TARGET_NAME)"; }; From 3aed717df1678e3e8f42abd006465d2378a7d47c Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Thu, 4 Jun 2015 22:56:21 -0700 Subject: [PATCH 07/18] Make GetFeature demo the same as Node.js --- objective-c/route_guide/ViewControllers.m | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/objective-c/route_guide/ViewControllers.m b/objective-c/route_guide/ViewControllers.m index 0a38f26..797ef0a 100644 --- a/objective-c/route_guide/ViewControllers.m +++ b/objective-c/route_guide/ViewControllers.m @@ -38,6 +38,9 @@ static NSString * const kHostAddress = @"http://localhost:50051"; #pragma mark Get Feature +// Run the getFeature demo. Calls getFeature with a point known to have a feature and a point known +// not to have a feature. + @interface GetFeatureViewController : UIViewController @end @@ -48,13 +51,22 @@ static NSString * const kHostAddress = @"http://localhost:50051"; RTGRouteGuide *client = [[RTGRouteGuide alloc] initWithHost:kHostAddress]; + void (^handler)(RTGFeature *response, NSError *error) = ^(RTGFeature *response, NSError *error) { + if (response.name.length) { + NSLog(@"Found feature called %@ at %@.", response.name, response.location); + } else if (response) { + NSLog(@"Found no features at %@", response.location); + } else { + NSLog(@"RPC error: %@", error); + } + }; + RTGPoint *point = [RTGPoint message]; point.latitude = 409146138; point.longitude = -746188906; - [client getFeatureWithRequest:point handler:^(RTGFeature *response, NSError *error) { - NSLog(@"Response: %@", response); - }]; + [client getFeatureWithRequest:point handler:handler]; + [client getFeatureWithRequest:[RTGPoint message] handler:handler]; } @end From 4694cdb470f67e9fa70b194c3a2894ba4cf68f7e Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Thu, 4 Jun 2015 23:06:13 -0700 Subject: [PATCH 08/18] ListFeatures demo --- objective-c/route_guide/ViewControllers.m | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/objective-c/route_guide/ViewControllers.m b/objective-c/route_guide/ViewControllers.m index 797ef0a..6a1e8b9 100644 --- a/objective-c/route_guide/ViewControllers.m +++ b/objective-c/route_guide/ViewControllers.m @@ -73,6 +73,9 @@ static NSString * const kHostAddress = @"http://localhost:50051"; #pragma mark List Features +// Run the listFeatures demo. Calls listFeatures with a rectangle containing all of the features in +// the pre-generated database. Prints each response as it comes in. + @interface ListFeaturesViewController : UIViewController @end @@ -80,7 +83,23 @@ static NSString * const kHostAddress = @"http://localhost:50051"; - (void)viewDidLoad { [super viewDidLoad]; - // Do any additional setup after loading the view, typically from a nib. + + RTGRouteGuide *client = [[RTGRouteGuide alloc] initWithHost:kHostAddress]; + + RTGRectangle *rectangle = [RTGRectangle message]; + rectangle.lo.latitude = 40E7; + rectangle.lo.longitude = -75E7; + rectangle.hi.latitude = 42E7; + rectangle.hi.longitude = -73E7; + + NSLog(@"Looking for features between 40, -75 and 42, -73"); + [client listFeaturesWithRequest:rectangle handler:^(BOOL done, RTGFeature *response, NSError *error) { + if (response) { + NSLog(@"Found feature called %@ at %@.", response.name, response.location); + } else if (error) { + NSLog(@"RPC error: %@", error); + } + }]; } @end From 3fda5484e4a1bb975031d1b7e08473ae81c8b0ef Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Fri, 5 Jun 2015 12:05:00 -0700 Subject: [PATCH 09/18] Additional newline between demos --- objective-c/route_guide/ViewControllers.m | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/objective-c/route_guide/ViewControllers.m b/objective-c/route_guide/ViewControllers.m index 6a1e8b9..efcb2e7 100644 --- a/objective-c/route_guide/ViewControllers.m +++ b/objective-c/route_guide/ViewControllers.m @@ -36,6 +36,7 @@ static NSString * const kHostAddress = @"http://localhost:50051"; + #pragma mark Get Feature // Run the getFeature demo. Calls getFeature with a point known to have a feature and a point known @@ -71,6 +72,7 @@ static NSString * const kHostAddress = @"http://localhost:50051"; @end + #pragma mark List Features // Run the listFeatures demo. Calls listFeatures with a rectangle containing all of the features in @@ -104,6 +106,7 @@ static NSString * const kHostAddress = @"http://localhost:50051"; @end + #pragma mark Record Route @interface RecordRouteViewController : UIViewController @@ -118,6 +121,7 @@ static NSString * const kHostAddress = @"http://localhost:50051"; @end + #pragma mark Route Chat @interface RouteChatViewController : UIViewController From c9885954a2d6b4a9b94a46a1dd66208eff2dbe1c Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Fri, 5 Jun 2015 17:41:00 -0700 Subject: [PATCH 10/18] Fixup ListFeatures demo --- objective-c/route_guide/ViewControllers.m | 26 +++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/objective-c/route_guide/ViewControllers.m b/objective-c/route_guide/ViewControllers.m index efcb2e7..93cb2bf 100644 --- a/objective-c/route_guide/ViewControllers.m +++ b/objective-c/route_guide/ViewControllers.m @@ -36,6 +36,20 @@ static NSString * const kHostAddress = @"http://localhost:50051"; +// Category to override RTGPoint's description. +@interface RTGPoint (Description) +- (NSString *)description; +@end + +@implementation RTGPoint (Description) +- (NSString *)description { + NSString *verticalDirection = self.latitude >= 0 ? @"N" : @"S"; + NSString *horizontalDirection = self.longitude >= 0 ? @"E" : @"W"; + return [NSString stringWithFormat:@"%.02f%@ %.02f%@", + abs(self.latitude) / 1E7f, verticalDirection, + abs(self.longitude) / 1E7f, horizontalDirection]; +} +@end #pragma mark Get Feature @@ -89,15 +103,15 @@ static NSString * const kHostAddress = @"http://localhost:50051"; RTGRouteGuide *client = [[RTGRouteGuide alloc] initWithHost:kHostAddress]; RTGRectangle *rectangle = [RTGRectangle message]; - rectangle.lo.latitude = 40E7; - rectangle.lo.longitude = -75E7; - rectangle.hi.latitude = 42E7; - rectangle.hi.longitude = -73E7; + rectangle.lo.latitude = 405E6; + rectangle.lo.longitude = -750E6; + rectangle.hi.latitude = 410E6; + rectangle.hi.longitude = -745E6; - NSLog(@"Looking for features between 40, -75 and 42, -73"); + NSLog(@"Looking for features between %@ and %@", rectangle.lo, rectangle.hi); [client listFeaturesWithRequest:rectangle handler:^(BOOL done, RTGFeature *response, NSError *error) { if (response) { - NSLog(@"Found feature called %@ at %@.", response.name, response.location); + NSLog(@"Found feature at %@ called %@.", response.location, response.name); } else if (error) { NSLog(@"RPC error: %@", error); } From 59fdf718443bd92b9c274c85caeb06b60c241e58 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Fri, 5 Jun 2015 17:42:41 -0700 Subject: [PATCH 11/18] RecordRoute demo --- .../project.pbxproj | 4 + objective-c/route_guide/ViewControllers.m | 33 ++++- objective-c/route_guide/route_guide_db.json | 121 ++++++++++++++++++ 3 files changed, 157 insertions(+), 1 deletion(-) create mode 100644 objective-c/route_guide/route_guide_db.json diff --git a/objective-c/route_guide/RouteGuideClient.xcodeproj/project.pbxproj b/objective-c/route_guide/RouteGuideClient.xcodeproj/project.pbxproj index 39efb02..6ab6b27 100644 --- a/objective-c/route_guide/RouteGuideClient.xcodeproj/project.pbxproj +++ b/objective-c/route_guide/RouteGuideClient.xcodeproj/project.pbxproj @@ -12,6 +12,7 @@ 632527861B1D0396003073D9 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 632527851B1D0396003073D9 /* AppDelegate.m */; }; 6325278F1B1D0396003073D9 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6325278D1B1D0396003073D9 /* Main.storyboard */; }; 632527911B1D0396003073D9 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 632527901B1D0396003073D9 /* Images.xcassets */; }; + 6367B55B1B223AFA008861F5 /* route_guide_db.json in Resources */ = {isa = PBXBuildFile; fileRef = 6367B55A1B223AFA008861F5 /* route_guide_db.json */; }; 63A6015C1B1DAB5000FA5B86 /* ViewControllers.m in Sources */ = {isa = PBXBuildFile; fileRef = 63A6015B1B1DAB5000FA5B86 /* ViewControllers.m */; }; /* End PBXBuildFile section */ @@ -23,6 +24,7 @@ 632527851B1D0396003073D9 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 6325278E1B1D0396003073D9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 632527901B1D0396003073D9 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; + 6367B55A1B223AFA008861F5 /* route_guide_db.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = route_guide_db.json; sourceTree = ""; }; 63A6015B1B1DAB5000FA5B86 /* ViewControllers.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ViewControllers.m; sourceTree = ""; }; 71CEE03D66D40FC37264D6E4 /* libPods-RouteGuideClient.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RouteGuideClient.a"; sourceTree = BUILT_PRODUCTS_DIR; }; ADA4C647BAE906F79AD9A45E /* Pods-RouteGuideClient.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RouteGuideClient.debug.xcconfig"; path = "Pods/Target Support Files/Pods-RouteGuideClient/Pods-RouteGuideClient.debug.xcconfig"; sourceTree = ""; }; @@ -83,6 +85,7 @@ isa = PBXGroup; children = ( 63A6015B1B1DAB5000FA5B86 /* ViewControllers.m */, + 6367B55A1B223AFA008861F5 /* route_guide_db.json */, 6325278D1B1D0396003073D9 /* Main.storyboard */, 631C63891B1DBC41001295D5 /* Misc */, ); @@ -167,6 +170,7 @@ files = ( 6325278F1B1D0396003073D9 /* Main.storyboard in Resources */, 632527911B1D0396003073D9 /* Images.xcassets in Resources */, + 6367B55B1B223AFA008861F5 /* route_guide_db.json in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/objective-c/route_guide/ViewControllers.m b/objective-c/route_guide/ViewControllers.m index 93cb2bf..aeb8dca 100644 --- a/objective-c/route_guide/ViewControllers.m +++ b/objective-c/route_guide/ViewControllers.m @@ -32,6 +32,8 @@ */ #import +#import +#import #import static NSString * const kHostAddress = @"http://localhost:50051"; @@ -123,6 +125,10 @@ static NSString * const kHostAddress = @"http://localhost:50051"; #pragma mark Record Route +// Run the recordRoute demo. Sends several randomly chosen points from the pre-generated feature +// database with a variable delay in between. Prints the statistics when they are sent from the +// server. + @interface RecordRouteViewController : UIViewController @end @@ -145,7 +151,32 @@ static NSString * const kHostAddress = @"http://localhost:50051"; - (void)viewDidLoad { [super viewDidLoad]; - // Do any additional setup after loading the view. + + NSString *dataBasePath = [NSBundle.mainBundle pathForResource:@"route_guide_db" + ofType:@"json"]; + NSData *dataBaseContent = [NSData dataWithContentsOfFile:dataBasePath]; + NSArray *features = [NSJSONSerialization JSONObjectWithData:dataBaseContent options:0 error:NULL]; + + GRXWriter *locations = [[GRXWriter writerWithContainer:features] map:^id(id feature) { + RTGPoint *location = [RTGPoint message]; + location.longitude = [((NSNumber *) feature[@"location"][@"longitude"]) intValue]; + location.latitude = [((NSNumber *) feature[@"location"][@"latitude"]) intValue]; + NSLog(@"Visiting point %@", location); + return location; + }]; + + RTGRouteGuide *client = [[RTGRouteGuide alloc] initWithHost:kHostAddress]; + + [client recordRouteWithRequestsWriter:locations handler:^(RTGRouteSummary *response, NSError *error) { + if (response) { + NSLog(@"Finished trip with %i points", response.pointCount); + NSLog(@"Passed %i features", response.featureCount); + NSLog(@"Travelled %i meters", response.distance); + NSLog(@"It took %i seconds", response.elapsedTime); + } else { + NSLog(@"RPC error: %@", error); + } + }]; } @end diff --git a/objective-c/route_guide/route_guide_db.json b/objective-c/route_guide/route_guide_db.json new file mode 100644 index 0000000..9caebaa --- /dev/null +++ b/objective-c/route_guide/route_guide_db.json @@ -0,0 +1,121 @@ +[{ + "location": { + "latitude": 407838351, + "longitude": -746143763 + }, + "name": "Patriots Path, Mendham, NJ 07945, USA" +}, { + "location": { + "latitude": 408122808, + "longitude": -743999179 + }, + "name": "101 New Jersey 10, Whippany, NJ 07981, USA" +}, { + "location": { + "latitude": 413628156, + "longitude": -749015468 + }, + "name": "U.S. 6, Shohola, PA 18458, USA" +}, { + "location": { + "latitude": 419999544, + "longitude": -740371136 + }, + "name": "5 Conners Road, Kingston, NY 12401, USA" +}, { + "location": { + "latitude": 414008389, + "longitude": -743951297 + }, + "name": "Mid Hudson Psychiatric Center, New Hampton, NY 10958, USA" +}, { + "location": { + "latitude": 419611318, + "longitude": -746524769 + }, + "name": "287 Flugertown Road, Livingston Manor, NY 12758, USA" +}, { + "location": { + "latitude": 406109563, + "longitude": -742186778 + }, + "name": "4001 Tremley Point Road, Linden, NJ 07036, USA" +}, { + "location": { + "latitude": 416802456, + "longitude": -742370183 + }, + "name": "352 South Mountain Road, Wallkill, NY 12589, USA" +}, { + "location": { + "latitude": 412950425, + "longitude": -741077389 + }, + "name": "Bailey Turn Road, Harriman, NY 10926, USA" +}, { + "location": { + "latitude": 412144655, + "longitude": -743949739 + }, + "name": "193-199 Wawayanda Road, Hewitt, NJ 07421, USA" +}, { + "location": { + "latitude": 404306372, + "longitude": -741079661 + }, + "name": "" +}, { + "location": { + "latitude": 403966326, + "longitude": -748519297 + }, + "name": "" +}, { + "location": { + "latitude": 405002031, + "longitude": -748407866 + }, + "name": "" +}, { + "location": { + "latitude": 409532885, + "longitude": -742200683 + }, + "name": "" +}, { + "location": { + "latitude": 416851321, + "longitude": -742674555 + }, + "name": "" +}, { + "location": { + "latitude": 406411633, + "longitude": -741722051 + }, + "name": "3387 Richmond Terrace, Staten Island, NY 10303, USA" +}, { + "location": { + "latitude": 413069058, + "longitude": -744597778 + }, + "name": "261 Van Sickle Road, Goshen, NY 10924, USA" +}, { + "location": { + "latitude": 418465462, + "longitude": -746859398 + }, + "name": "" +}, { + "location": { + "latitude": 411733222, + "longitude": -744228360 + }, + "name": "" +}, { + "location": { + "latitude": 410248224, + "longitude": -747127767 + }, + "name": "3 Hasta Way, Newton, NJ 07860, USA" +}] From 8d748b32f43aaba57bcabe9351b31a234e0bf8fb Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Fri, 5 Jun 2015 17:43:40 -0700 Subject: [PATCH 12/18] RouteChat demo --- objective-c/route_guide/ViewControllers.m | 73 ++++++++++++++++++----- 1 file changed, 58 insertions(+), 15 deletions(-) diff --git a/objective-c/route_guide/ViewControllers.m b/objective-c/route_guide/ViewControllers.m index aeb8dca..f555862 100644 --- a/objective-c/route_guide/ViewControllers.m +++ b/objective-c/route_guide/ViewControllers.m @@ -53,6 +53,25 @@ static NSString * const kHostAddress = @"http://localhost:50051"; } @end +// Category to give RTGRouteNote a convenience constructor. +@interface RTGRouteNote (Constructors) ++ (instancetype)noteWithMessage:(NSString *)message + latitude:(float)latitude + longitude:(float)longitude; +@end + +@implementation RTGRouteNote (Constructors) ++ (instancetype)noteWithMessage:(NSString *)message + latitude:(float)latitude + longitude:(float)longitude { + RTGRouteNote *note = [self message]; + note.message = message; + note.location.latitude = (int32_t) latitude * 1E7; + note.location.longitude = (int32_t) longitude * 1E7; + return note; +} +@end + #pragma mark Get Feature // Run the getFeature demo. Calls getFeature with a point known to have a feature and a point known @@ -134,21 +153,6 @@ static NSString * const kHostAddress = @"http://localhost:50051"; @implementation RecordRouteViewController -- (void)viewDidLoad { - [super viewDidLoad]; - // Do any additional setup after loading the view. -} - -@end - - -#pragma mark Route Chat - -@interface RouteChatViewController : UIViewController -@end - -@implementation RouteChatViewController - - (void)viewDidLoad { [super viewDidLoad]; @@ -180,3 +184,42 @@ static NSString * const kHostAddress = @"http://localhost:50051"; } @end + + +#pragma mark Route Chat + +// Run the routeChat demo. Send some chat messages, and print any chat messages that are sent from +// the server. + +@interface RouteChatViewController : UIViewController +@end + +@implementation RouteChatViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + + NSArray *notes = @[[RTGRouteNote noteWithMessage:@"First message" latitude:0 longitude:0], + [RTGRouteNote noteWithMessage:@"Second message" latitude:0 longitude:1], + [RTGRouteNote noteWithMessage:@"Third message" latitude:1 longitude:0], + [RTGRouteNote noteWithMessage:@"Fourth message" latitude:0 longitude:0]]; + GRXWriter *notesWriter = [[GRXWriter writerWithContainer:notes] map:^id(RTGRouteNote *note) { + NSLog(@"Sending message %@ at %@", note.message, note.location); + return note; + }]; + + RTGRouteGuide *client = [[RTGRouteGuide alloc] initWithHost:kHostAddress]; + + [client routeChatWithRequestsWriter:notesWriter handler:^(BOOL done, RTGRouteNote *note, NSError *error) { + if (note) { + NSLog(@"Got message %@ at %@", note.message, note.location); + } else if (error) { + NSLog(@"RPC error: %@", error); + } + if (done) { + NSLog(@"Chat ended."); + } + }]; +} + +@end From 77606b6a0272cae2e2703d6f2f7bbae64a4c7c38 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Fri, 5 Jun 2015 17:55:34 -0700 Subject: [PATCH 13/18] Nit: source file and UI layout --- .../Misc/Base.lproj/Main.storyboard | 32 +++++++++---------- objective-c/route_guide/ViewControllers.m | 9 +++--- 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/objective-c/route_guide/Misc/Base.lproj/Main.storyboard b/objective-c/route_guide/Misc/Base.lproj/Main.storyboard index 10c9b0c..9bf9498 100644 --- a/objective-c/route_guide/Misc/Base.lproj/Main.storyboard +++ b/objective-c/route_guide/Misc/Base.lproj/Main.storyboard @@ -16,15 +16,15 @@ -