You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sn...@apache.org on 2016/02/16 14:16:07 UTC

[75/75] usergrid git commit: pr/481 Swift SDK ActivityFeed sample. This closes #481

pr/481 Swift SDK ActivityFeed sample. This closes #481

https://issues.apache.org/jira/browse/USERGRID-1257


Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/60d60fed
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/60d60fed
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/60d60fed

Branch: refs/heads/master
Commit: 60d60fed1bae24516f3b0e7c6f2ed74680c7a88e
Parents: 7c9564b
Author: Dave Johnson <sn...@apache.org>
Authored: Tue Feb 16 08:14:18 2016 -0500
Committer: Dave Johnson <sn...@apache.org>
Committed: Tue Feb 16 08:14:18 2016 -0500

----------------------------------------------------------------------
 .../ActivityFeed.xcodeproj/project.pbxproj      | 827 +++++++++++++++++++
 .../contents.xcworkspacedata                    |   7 +
 .../contents.xcworkspacedata                    |   7 +
 .../xcshareddata/ActivityFeed.xcscmblueprint    |  30 +
 sdks/swift/Samples/ActivityFeed/Podfile         |   8 +
 sdks/swift/Samples/ActivityFeed/Readme.md       |  29 +
 .../ActivityFeed/Source/ActivityEntity.swift    |  60 ++
 .../ActivityFeed/Source/AppDelegate.swift       |  65 ++
 .../AppIcon.appiconset/Contents.json            |  38 +
 .../Source/Assets.xcassets/Contents.json        |   6 +
 .../UsergridGuy.imageset/Contents.json          |  21 +
 .../UsergridGuy.imageset/UsergridGuy.png        | Bin 0 -> 6230 bytes
 .../Source/Base.lproj/LaunchScreen.storyboard   |  27 +
 .../Source/Base.lproj/Main.storyboard           | 371 +++++++++
 .../Source/FollowViewController.swift           |  50 ++
 .../ActivityFeed/Source/FormTextField.swift     |  71 ++
 .../Samples/ActivityFeed/Source/Info.plist      |  43 +
 .../Source/LoginViewController.swift            |  77 ++
 .../Source/MessageTableViewCell.swift           | 101 +++
 .../ActivityFeed/Source/MessageTextView.swift   |  39 +
 .../Source/MessageViewController.swift          | 224 +++++
 .../Source/RegisterViewController.swift         |  62 ++
 .../ActivityFeed/Source/UsergridManager.swift   |  78 ++
 .../Source/ViewControllerExtensions.swift       |  36 +
 .../Assets.xcassets/README__ignoredByTemplate__ |   1 +
 .../ExtensionDelegate.swift                     |  45 +
 .../WatchSample Extension/Info.plist            |  45 +
 .../InterfaceController.swift                   |  81 ++
 .../AppIcon.appiconset/Contents.json            |  55 ++
 .../WatchSample/Base.lproj/Interface.storyboard |  46 ++
 .../Samples/ActivityFeed/WatchSample/Info.plist |  35 +
 sdks/swift/Samples/Readme.md                    |  27 +
 32 files changed, 2612 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/60d60fed/sdks/swift/Samples/ActivityFeed/ActivityFeed.xcodeproj/project.pbxproj
----------------------------------------------------------------------
diff --git a/sdks/swift/Samples/ActivityFeed/ActivityFeed.xcodeproj/project.pbxproj b/sdks/swift/Samples/ActivityFeed/ActivityFeed.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..215ca87
--- /dev/null
+++ b/sdks/swift/Samples/ActivityFeed/ActivityFeed.xcodeproj/project.pbxproj
@@ -0,0 +1,827 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 46;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		634855401C726AE9005FE016 /* UsergridSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 634855331C726AD3005FE016 /* UsergridSDK.framework */; };
+		634855411C726AE9005FE016 /* UsergridSDK.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 634855331C726AD3005FE016 /* UsergridSDK.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+		634855451C726AF7005FE016 /* UsergridSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 634855351C726AD3005FE016 /* UsergridSDK.framework */; };
+		634855461C726AF7005FE016 /* UsergridSDK.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 634855351C726AD3005FE016 /* UsergridSDK.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+		6348D95F1C4EAC0B005C978C /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6348D95D1C4EAC0B005C978C /* Interface.storyboard */; };
+		6348D9611C4EAC0B005C978C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6348D9601C4EAC0B005C978C /* Assets.xcassets */; };
+		6348D9681C4EAC0B005C978C /* WatchSample Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 6348D9671C4EAC0B005C978C /* WatchSample Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
+		6348D96D1C4EAC0B005C978C /* InterfaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6348D96C1C4EAC0B005C978C /* InterfaceController.swift */; };
+		6348D96F1C4EAC0B005C978C /* ExtensionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6348D96E1C4EAC0B005C978C /* ExtensionDelegate.swift */; };
+		6348D9711C4EAC0C005C978C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6348D9701C4EAC0C005C978C /* Assets.xcassets */; };
+		6348D9751C4EAC0C005C978C /* WatchSample.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = 6348D95B1C4EAC0B005C978C /* WatchSample.app */; };
+		6348D9861C4EC1FD005C978C /* UsergridManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6348D9851C4EC1FD005C978C /* UsergridManager.swift */; };
+		6348D9871C4EC1FD005C978C /* UsergridManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6348D9851C4EC1FD005C978C /* UsergridManager.swift */; };
+		6355FEC51BFE4FC600E07170 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6355FEC41BFE4FC600E07170 /* AppDelegate.swift */; };
+		6355FEC71BFE4FC600E07170 /* ViewControllerExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6355FEC61BFE4FC600E07170 /* ViewControllerExtensions.swift */; };
+		6355FECA1BFE4FC600E07170 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6355FEC81BFE4FC600E07170 /* Main.storyboard */; };
+		6355FECC1BFE4FC600E07170 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6355FECB1BFE4FC600E07170 /* Assets.xcassets */; };
+		6355FECF1BFE4FC600E07170 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6355FECD1BFE4FC600E07170 /* LaunchScreen.storyboard */; };
+		63C9E52A1C04F3B900C65F81 /* MessageTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63C9E5291C04F3B900C65F81 /* MessageTableViewCell.swift */; };
+		63C9E5311C05184900C65F81 /* MessageTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63C9E5301C05184900C65F81 /* MessageTextView.swift */; };
+		63CD143D1C505EC500C00076 /* ActivityEntity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63CD143C1C505EC500C00076 /* ActivityEntity.swift */; };
+		63CD143E1C505EC500C00076 /* ActivityEntity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63CD143C1C505EC500C00076 /* ActivityEntity.swift */; };
+		63E7DD741C518BAD00D84B12 /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63E7DD731C518BAD00D84B12 /* LoginViewController.swift */; };
+		63E7DD761C518C9000D84B12 /* RegisterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63E7DD751C518C9000D84B12 /* RegisterViewController.swift */; };
+		63E7DD781C518E0400D84B12 /* MessageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63E7DD771C518E0400D84B12 /* MessageViewController.swift */; };
+		63E7DD7A1C518F1700D84B12 /* FollowViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63E7DD791C518F1700D84B12 /* FollowViewController.swift */; };
+		63E7DD7E1C518FDD00D84B12 /* FormTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63E7DD7D1C518FDD00D84B12 /* FormTextField.swift */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+		634855321C726AD3005FE016 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 634855281C726AD3005FE016 /* UsergridSDK.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = 63AF0E881BBC38FB009D4196;
+			remoteInfo = "UsergridSDK iOS";
+		};
+		634855341C726AD3005FE016 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 634855281C726AD3005FE016 /* UsergridSDK.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = 639B4BEB1C3DD6CF005E26E7;
+			remoteInfo = "UsergridSDK watchOS";
+		};
+		634855361C726AD3005FE016 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 634855281C726AD3005FE016 /* UsergridSDK.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = 63EE610B1C406E1600AFC2CF;
+			remoteInfo = "UsergridSDK tvOS";
+		};
+		634855381C726AD3005FE016 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 634855281C726AD3005FE016 /* UsergridSDK.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = 631920451C48436500F99E86;
+			remoteInfo = "UsergridSDK OSX";
+		};
+		6348553A1C726AD3005FE016 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 634855281C726AD3005FE016 /* UsergridSDK.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = 6319204B1C49BC0700F99E86;
+			remoteInfo = UsergridSDK_TVOS_Tests;
+		};
+		6348553C1C726AD3005FE016 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 634855281C726AD3005FE016 /* UsergridSDK.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = 630A219F1C49BFFC008BE87F;
+			remoteInfo = UsergridSDK_OSX_Tests;
+		};
+		6348553E1C726AD3005FE016 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 634855281C726AD3005FE016 /* UsergridSDK.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = 630A21B81C49C473008BE87F;
+			remoteInfo = UsergridSDK_iOS_Tests;
+		};
+		634855421C726AE9005FE016 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 634855281C726AD3005FE016 /* UsergridSDK.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = 63AF0E871BBC38FB009D4196;
+			remoteInfo = "UsergridSDK iOS";
+		};
+		634855471C726AF7005FE016 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 634855281C726AD3005FE016 /* UsergridSDK.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = 639B4BEA1C3DD6CF005E26E7;
+			remoteInfo = "UsergridSDK watchOS";
+		};
+		6348D9691C4EAC0B005C978C /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 6355FEB91BFE4FC600E07170 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = 6348D9661C4EAC0B005C978C;
+			remoteInfo = "WatchSample Extension";
+		};
+		6348D9731C4EAC0C005C978C /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 6355FEB91BFE4FC600E07170 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = 6348D95A1C4EAC0B005C978C;
+			remoteInfo = WatchSample;
+		};
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+		634855441C726AE9005FE016 /* Embed Frameworks */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 10;
+			files = (
+				634855411C726AE9005FE016 /* UsergridSDK.framework in Embed Frameworks */,
+			);
+			name = "Embed Frameworks";
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		634855491C726AF8005FE016 /* Embed Frameworks */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 10;
+			files = (
+				634855461C726AF7005FE016 /* UsergridSDK.framework in Embed Frameworks */,
+			);
+			name = "Embed Frameworks";
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		6348D97B1C4EAC0C005C978C /* Embed App Extensions */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 13;
+			files = (
+				6348D9681C4EAC0B005C978C /* WatchSample Extension.appex in Embed App Extensions */,
+			);
+			name = "Embed App Extensions";
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		6348D97D1C4EAC0C005C978C /* Embed Watch Content */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "$(CONTENTS_FOLDER_PATH)/Watch";
+			dstSubfolderSpec = 16;
+			files = (
+				6348D9751C4EAC0C005C978C /* WatchSample.app in Embed Watch Content */,
+			);
+			name = "Embed Watch Content";
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+		634855281C726AD3005FE016 /* UsergridSDK.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = UsergridSDK.xcodeproj; path = ../../UsergridSDK.xcodeproj; sourceTree = "<group>"; };
+		6348D95B1C4EAC0B005C978C /* WatchSample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = WatchSample.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		6348D95E1C4EAC0B005C978C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Interface.storyboard; sourceTree = "<group>"; };
+		6348D9601C4EAC0B005C978C /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
+		6348D9621C4EAC0B005C978C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+		6348D9671C4EAC0B005C978C /* WatchSample Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "WatchSample Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; };
+		6348D96C1C4EAC0B005C978C /* InterfaceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InterfaceController.swift; sourceTree = "<group>"; };
+		6348D96E1C4EAC0B005C978C /* ExtensionDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtensionDelegate.swift; sourceTree = "<group>"; };
+		6348D9701C4EAC0C005C978C /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
+		6348D9721C4EAC0C005C978C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+		6348D9851C4EC1FD005C978C /* UsergridManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UsergridManager.swift; sourceTree = "<group>"; };
+		6355FEC11BFE4FC600E07170 /* ActivityFeed.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ActivityFeed.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		6355FEC41BFE4FC600E07170 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
+		6355FEC61BFE4FC600E07170 /* ViewControllerExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewControllerExtensions.swift; sourceTree = "<group>"; };
+		6355FEC91BFE4FC600E07170 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
+		6355FECB1BFE4FC600E07170 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
+		6355FECE1BFE4FC600E07170 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
+		6355FED01BFE4FC600E07170 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+		63C9E5291C04F3B900C65F81 /* MessageTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageTableViewCell.swift; sourceTree = "<group>"; };
+		63C9E5301C05184900C65F81 /* MessageTextView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageTextView.swift; sourceTree = "<group>"; };
+		63CD143C1C505EC500C00076 /* ActivityEntity.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ActivityEntity.swift; sourceTree = "<group>"; };
+		63E7DD731C518BAD00D84B12 /* LoginViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginViewController.swift; sourceTree = "<group>"; };
+		63E7DD751C518C9000D84B12 /* RegisterViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RegisterViewController.swift; sourceTree = "<group>"; };
+		63E7DD771C518E0400D84B12 /* MessageViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageViewController.swift; sourceTree = "<group>"; };
+		63E7DD791C518F1700D84B12 /* FollowViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FollowViewController.swift; sourceTree = "<group>"; };
+		63E7DD7D1C518FDD00D84B12 /* FormTextField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormTextField.swift; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		6348D9641C4EAC0B005C978C /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				634855451C726AF7005FE016 /* UsergridSDK.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		6355FEBE1BFE4FC600E07170 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				634855401C726AE9005FE016 /* UsergridSDK.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		634855291C726AD3005FE016 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				634855331C726AD3005FE016 /* UsergridSDK.framework */,
+				634855351C726AD3005FE016 /* UsergridSDK.framework */,
+				634855371C726AD3005FE016 /* UsergridSDK.framework */,
+				634855391C726AD3005FE016 /* UsergridSDK.framework */,
+				6348553B1C726AD3005FE016 /* UsergridSDK_TVOS_Tests.xctest */,
+				6348553D1C726AD3005FE016 /* UsergridSDK_OSX_Tests.xctest */,
+				6348553F1C726AD3005FE016 /* UsergridSDK_iOS_Tests.xctest */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		6348D95C1C4EAC0B005C978C /* WatchSample */ = {
+			isa = PBXGroup;
+			children = (
+				6348D95D1C4EAC0B005C978C /* Interface.storyboard */,
+				6348D9601C4EAC0B005C978C /* Assets.xcassets */,
+				6348D9621C4EAC0B005C978C /* Info.plist */,
+			);
+			path = WatchSample;
+			sourceTree = "<group>";
+		};
+		6348D96B1C4EAC0B005C978C /* WatchSample Extension */ = {
+			isa = PBXGroup;
+			children = (
+				6348D96C1C4EAC0B005C978C /* InterfaceController.swift */,
+				6348D96E1C4EAC0B005C978C /* ExtensionDelegate.swift */,
+				6348D9701C4EAC0C005C978C /* Assets.xcassets */,
+				6348D9721C4EAC0C005C978C /* Info.plist */,
+			);
+			path = "WatchSample Extension";
+			sourceTree = "<group>";
+		};
+		6355FEB81BFE4FC600E07170 = {
+			isa = PBXGroup;
+			children = (
+				634855281C726AD3005FE016 /* UsergridSDK.xcodeproj */,
+				6355FEC31BFE4FC600E07170 /* Source */,
+				6348D95C1C4EAC0B005C978C /* WatchSample */,
+				6348D96B1C4EAC0B005C978C /* WatchSample Extension */,
+				6355FEC21BFE4FC600E07170 /* Products */,
+			);
+			sourceTree = "<group>";
+		};
+		6355FEC21BFE4FC600E07170 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				6355FEC11BFE4FC600E07170 /* ActivityFeed.app */,
+				6348D95B1C4EAC0B005C978C /* WatchSample.app */,
+				6348D9671C4EAC0B005C978C /* WatchSample Extension.appex */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		6355FEC31BFE4FC600E07170 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				6355FEC41BFE4FC600E07170 /* AppDelegate.swift */,
+				6348D9851C4EC1FD005C978C /* UsergridManager.swift */,
+				63CD143C1C505EC500C00076 /* ActivityEntity.swift */,
+				63E7DD7B1C518F9600D84B12 /* View Controllers */,
+				63E7DD7C1C518FC300D84B12 /* Custom Views */,
+				63E7DD801C51903A00D84B12 /* Storyboards */,
+				63E7DD7F1C51902F00D84B12 /* Supporting Files */,
+			);
+			path = Source;
+			sourceTree = "<group>";
+		};
+		63E7DD7B1C518F9600D84B12 /* View Controllers */ = {
+			isa = PBXGroup;
+			children = (
+				63E7DD791C518F1700D84B12 /* FollowViewController.swift */,
+				63E7DD731C518BAD00D84B12 /* LoginViewController.swift */,
+				63E7DD771C518E0400D84B12 /* MessageViewController.swift */,
+				63E7DD751C518C9000D84B12 /* RegisterViewController.swift */,
+				6355FEC61BFE4FC600E07170 /* ViewControllerExtensions.swift */,
+			);
+			name = "View Controllers";
+			sourceTree = "<group>";
+		};
+		63E7DD7C1C518FC300D84B12 /* Custom Views */ = {
+			isa = PBXGroup;
+			children = (
+				63E7DD7D1C518FDD00D84B12 /* FormTextField.swift */,
+				63C9E5291C04F3B900C65F81 /* MessageTableViewCell.swift */,
+				63C9E5301C05184900C65F81 /* MessageTextView.swift */,
+			);
+			name = "Custom Views";
+			sourceTree = "<group>";
+		};
+		63E7DD7F1C51902F00D84B12 /* Supporting Files */ = {
+			isa = PBXGroup;
+			children = (
+				6355FECB1BFE4FC600E07170 /* Assets.xcassets */,
+				6355FED01BFE4FC600E07170 /* Info.plist */,
+			);
+			name = "Supporting Files";
+			sourceTree = "<group>";
+		};
+		63E7DD801C51903A00D84B12 /* Storyboards */ = {
+			isa = PBXGroup;
+			children = (
+				6355FEC81BFE4FC600E07170 /* Main.storyboard */,
+				6355FECD1BFE4FC600E07170 /* LaunchScreen.storyboard */,
+			);
+			name = Storyboards;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		6348D95A1C4EAC0B005C978C /* WatchSample */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 6348D97C1C4EAC0C005C978C /* Build configuration list for PBXNativeTarget "WatchSample" */;
+			buildPhases = (
+				6348D9591C4EAC0B005C978C /* Resources */,
+				6348D97B1C4EAC0C005C978C /* Embed App Extensions */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				6348D96A1C4EAC0B005C978C /* PBXTargetDependency */,
+			);
+			name = WatchSample;
+			productName = WatchSample;
+			productReference = 6348D95B1C4EAC0B005C978C /* WatchSample.app */;
+			productType = "com.apple.product-type.application.watchapp2";
+		};
+		6348D9661C4EAC0B005C978C /* WatchSample Extension */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 6348D97A1C4EAC0C005C978C /* Build configuration list for PBXNativeTarget "WatchSample Extension" */;
+			buildPhases = (
+				6348D9631C4EAC0B005C978C /* Sources */,
+				6348D9641C4EAC0B005C978C /* Frameworks */,
+				6348D9651C4EAC0B005C978C /* Resources */,
+				634855491C726AF8005FE016 /* Embed Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				634855481C726AF7005FE016 /* PBXTargetDependency */,
+			);
+			name = "WatchSample Extension";
+			productName = "WatchSample Extension";
+			productReference = 6348D9671C4EAC0B005C978C /* WatchSample Extension.appex */;
+			productType = "com.apple.product-type.watchkit2-extension";
+		};
+		6355FEC01BFE4FC600E07170 /* ActivityFeed */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 6355FED31BFE4FC600E07170 /* Build configuration list for PBXNativeTarget "ActivityFeed" */;
+			buildPhases = (
+				6355FEBD1BFE4FC600E07170 /* Sources */,
+				6355FEBE1BFE4FC600E07170 /* Frameworks */,
+				6355FEBF1BFE4FC600E07170 /* Resources */,
+				6348D97D1C4EAC0C005C978C /* Embed Watch Content */,
+				634855441C726AE9005FE016 /* Embed Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				6348D9741C4EAC0C005C978C /* PBXTargetDependency */,
+				634855431C726AE9005FE016 /* PBXTargetDependency */,
+			);
+			name = ActivityFeed;
+			productName = SDKSample;
+			productReference = 6355FEC11BFE4FC600E07170 /* ActivityFeed.app */;
+			productType = "com.apple.product-type.application";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		6355FEB91BFE4FC600E07170 /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				LastSwiftUpdateCheck = 0720;
+				LastUpgradeCheck = 0710;
+				ORGANIZATIONNAME = "Apigee Inc.";
+				TargetAttributes = {
+					6348D95A1C4EAC0B005C978C = {
+						CreatedOnToolsVersion = 7.2;
+					};
+					6348D9661C4EAC0B005C978C = {
+						CreatedOnToolsVersion = 7.2;
+					};
+					6355FEC01BFE4FC600E07170 = {
+						CreatedOnToolsVersion = 7.1.1;
+					};
+				};
+			};
+			buildConfigurationList = 6355FEBC1BFE4FC600E07170 /* Build configuration list for PBXProject "ActivityFeed" */;
+			compatibilityVersion = "Xcode 3.2";
+			developmentRegion = English;
+			hasScannedForEncodings = 0;
+			knownRegions = (
+				en,
+				Base,
+			);
+			mainGroup = 6355FEB81BFE4FC600E07170;
+			productRefGroup = 6355FEC21BFE4FC600E07170 /* Products */;
+			projectDirPath = "";
+			projectReferences = (
+				{
+					ProductGroup = 634855291C726AD3005FE016 /* Products */;
+					ProjectRef = 634855281C726AD3005FE016 /* UsergridSDK.xcodeproj */;
+				},
+			);
+			projectRoot = "";
+			targets = (
+				6355FEC01BFE4FC600E07170 /* ActivityFeed */,
+				6348D95A1C4EAC0B005C978C /* WatchSample */,
+				6348D9661C4EAC0B005C978C /* WatchSample Extension */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+		634855331C726AD3005FE016 /* UsergridSDK.framework */ = {
+			isa = PBXReferenceProxy;
+			fileType = wrapper.framework;
+			path = UsergridSDK.framework;
+			remoteRef = 634855321C726AD3005FE016 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		634855351C726AD3005FE016 /* UsergridSDK.framework */ = {
+			isa = PBXReferenceProxy;
+			fileType = wrapper.framework;
+			path = UsergridSDK.framework;
+			remoteRef = 634855341C726AD3005FE016 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		634855371C726AD3005FE016 /* UsergridSDK.framework */ = {
+			isa = PBXReferenceProxy;
+			fileType = wrapper.framework;
+			path = UsergridSDK.framework;
+			remoteRef = 634855361C726AD3005FE016 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		634855391C726AD3005FE016 /* UsergridSDK.framework */ = {
+			isa = PBXReferenceProxy;
+			fileType = wrapper.framework;
+			path = UsergridSDK.framework;
+			remoteRef = 634855381C726AD3005FE016 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		6348553B1C726AD3005FE016 /* UsergridSDK_TVOS_Tests.xctest */ = {
+			isa = PBXReferenceProxy;
+			fileType = wrapper.cfbundle;
+			path = UsergridSDK_TVOS_Tests.xctest;
+			remoteRef = 6348553A1C726AD3005FE016 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		6348553D1C726AD3005FE016 /* UsergridSDK_OSX_Tests.xctest */ = {
+			isa = PBXReferenceProxy;
+			fileType = wrapper.cfbundle;
+			path = UsergridSDK_OSX_Tests.xctest;
+			remoteRef = 6348553C1C726AD3005FE016 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		6348553F1C726AD3005FE016 /* UsergridSDK_iOS_Tests.xctest */ = {
+			isa = PBXReferenceProxy;
+			fileType = wrapper.cfbundle;
+			path = UsergridSDK_iOS_Tests.xctest;
+			remoteRef = 6348553E1C726AD3005FE016 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+/* End PBXReferenceProxy section */
+
+/* Begin PBXResourcesBuildPhase section */
+		6348D9591C4EAC0B005C978C /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				6348D9611C4EAC0B005C978C /* Assets.xcassets in Resources */,
+				6348D95F1C4EAC0B005C978C /* Interface.storyboard in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		6348D9651C4EAC0B005C978C /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				6348D9711C4EAC0C005C978C /* Assets.xcassets in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		6355FEBF1BFE4FC600E07170 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				6355FECF1BFE4FC600E07170 /* LaunchScreen.storyboard in Resources */,
+				6355FECC1BFE4FC600E07170 /* Assets.xcassets in Resources */,
+				6355FECA1BFE4FC600E07170 /* Main.storyboard in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		6348D9631C4EAC0B005C978C /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				6348D9871C4EC1FD005C978C /* UsergridManager.swift in Sources */,
+				63CD143E1C505EC500C00076 /* ActivityEntity.swift in Sources */,
+				6348D96F1C4EAC0B005C978C /* ExtensionDelegate.swift in Sources */,
+				6348D96D1C4EAC0B005C978C /* InterfaceController.swift in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		6355FEBD1BFE4FC600E07170 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				63E7DD741C518BAD00D84B12 /* LoginViewController.swift in Sources */,
+				63E7DD781C518E0400D84B12 /* MessageViewController.swift in Sources */,
+				6348D9861C4EC1FD005C978C /* UsergridManager.swift in Sources */,
+				6355FEC71BFE4FC600E07170 /* ViewControllerExtensions.swift in Sources */,
+				63E7DD761C518C9000D84B12 /* RegisterViewController.swift in Sources */,
+				6355FEC51BFE4FC600E07170 /* AppDelegate.swift in Sources */,
+				63E7DD7A1C518F1700D84B12 /* FollowViewController.swift in Sources */,
+				63CD143D1C505EC500C00076 /* ActivityEntity.swift in Sources */,
+				63C9E5311C05184900C65F81 /* MessageTextView.swift in Sources */,
+				63C9E52A1C04F3B900C65F81 /* MessageTableViewCell.swift in Sources */,
+				63E7DD7E1C518FDD00D84B12 /* FormTextField.swift in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+		634855431C726AE9005FE016 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = "UsergridSDK iOS";
+			targetProxy = 634855421C726AE9005FE016 /* PBXContainerItemProxy */;
+		};
+		634855481C726AF7005FE016 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = "UsergridSDK watchOS";
+			targetProxy = 634855471C726AF7005FE016 /* PBXContainerItemProxy */;
+		};
+		6348D96A1C4EAC0B005C978C /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = 6348D9661C4EAC0B005C978C /* WatchSample Extension */;
+			targetProxy = 6348D9691C4EAC0B005C978C /* PBXContainerItemProxy */;
+		};
+		6348D9741C4EAC0C005C978C /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = 6348D95A1C4EAC0B005C978C /* WatchSample */;
+			targetProxy = 6348D9731C4EAC0C005C978C /* PBXContainerItemProxy */;
+		};
+/* End PBXTargetDependency section */
+
+/* Begin PBXVariantGroup section */
+		6348D95D1C4EAC0B005C978C /* Interface.storyboard */ = {
+			isa = PBXVariantGroup;
+			children = (
+				6348D95E1C4EAC0B005C978C /* Base */,
+			);
+			name = Interface.storyboard;
+			sourceTree = "<group>";
+		};
+		6355FEC81BFE4FC600E07170 /* Main.storyboard */ = {
+			isa = PBXVariantGroup;
+			children = (
+				6355FEC91BFE4FC600E07170 /* Base */,
+			);
+			name = Main.storyboard;
+			sourceTree = "<group>";
+		};
+		6355FECD1BFE4FC600E07170 /* LaunchScreen.storyboard */ = {
+			isa = PBXVariantGroup;
+			children = (
+				6355FECE1BFE4FC600E07170 /* Base */,
+			);
+			name = LaunchScreen.storyboard;
+			sourceTree = "<group>";
+		};
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+		6348D9761C4EAC0C005C978C /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				CODE_SIGN_IDENTITY = "iPhone Developer";
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
+				IBSC_MODULE = WatchSample_Extension;
+				INFOPLIST_FILE = WatchSample/Info.plist;
+				PRODUCT_BUNDLE_IDENTIFIER = com.usergrid.activityfeed.watchkitapp;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SDKROOT = watchos;
+				SKIP_INSTALL = YES;
+				TARGETED_DEVICE_FAMILY = 4;
+				WATCHOS_DEPLOYMENT_TARGET = 2.1;
+			};
+			name = Debug;
+		};
+		6348D9771C4EAC0C005C978C /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				CODE_SIGN_IDENTITY = "iPhone Developer";
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
+				IBSC_MODULE = WatchSample_Extension;
+				INFOPLIST_FILE = WatchSample/Info.plist;
+				PRODUCT_BUNDLE_IDENTIFIER = com.usergrid.activityfeed.watchkitapp;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SDKROOT = watchos;
+				SKIP_INSTALL = YES;
+				TARGETED_DEVICE_FAMILY = 4;
+				WATCHOS_DEPLOYMENT_TARGET = 2.1;
+			};
+			name = Release;
+		};
+		6348D9781C4EAC0C005C978C /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
+				FRAMEWORK_SEARCH_PATHS = "$(inherited)";
+				INFOPLIST_FILE = "WatchSample Extension/Info.plist";
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
+				PRODUCT_BUNDLE_IDENTIFIER = com.usergrid.activityfeed.watchkitapp.watchkitextension;
+				PRODUCT_NAME = "${TARGET_NAME}";
+				SDKROOT = watchos;
+				SKIP_INSTALL = YES;
+				TARGETED_DEVICE_FAMILY = 4;
+				WATCHOS_DEPLOYMENT_TARGET = 2.1;
+			};
+			name = Debug;
+		};
+		6348D9791C4EAC0C005C978C /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
+				FRAMEWORK_SEARCH_PATHS = "$(inherited)";
+				INFOPLIST_FILE = "WatchSample Extension/Info.plist";
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
+				PRODUCT_BUNDLE_IDENTIFIER = com.usergrid.activityfeed.watchkitapp.watchkitextension;
+				PRODUCT_NAME = "${TARGET_NAME}";
+				SDKROOT = watchos;
+				SKIP_INSTALL = YES;
+				TARGETED_DEVICE_FAMILY = 4;
+				WATCHOS_DEPLOYMENT_TARGET = 2.1;
+			};
+			name = Release;
+		};
+		6355FED11BFE4FC600E07170 /* 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 = "iPhone Developer";
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COPY_PHASE_STRIP = NO;
+				DEBUG_INFORMATION_FORMAT = dwarf;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				ENABLE_TESTABILITY = 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_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 = 9.1;
+				MTL_ENABLE_DEBUG_INFO = YES;
+				ONLY_ACTIVE_ARCH = YES;
+				SDKROOT = iphoneos;
+				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+			};
+			name = Debug;
+		};
+		6355FED21BFE4FC600E07170 /* 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 = "iPhone Developer";
+				"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 = 9.1;
+				MTL_ENABLE_DEBUG_INFO = NO;
+				SDKROOT = iphoneos;
+				VALIDATE_PRODUCT = YES;
+			};
+			name = Release;
+		};
+		6355FED41BFE4FC600E07170 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				CLANG_ENABLE_MODULES = YES;
+				CODE_SIGN_IDENTITY = "iPhone Developer";
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
+				INFOPLIST_FILE = Source/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+				PRODUCT_BUNDLE_IDENTIFIER = com.usergrid.activityfeed;
+				PRODUCT_NAME = ActivityFeed;
+				PROVISIONING_PROFILE = "";
+				SWIFT_INSTALL_OBJC_HEADER = NO;
+				SWIFT_OBJC_BRIDGING_HEADER = "";
+				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+			};
+			name = Debug;
+		};
+		6355FED51BFE4FC600E07170 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				CLANG_ENABLE_MODULES = YES;
+				CODE_SIGN_IDENTITY = "iPhone Developer";
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
+				INFOPLIST_FILE = Source/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+				PRODUCT_BUNDLE_IDENTIFIER = com.usergrid.activityfeed;
+				PRODUCT_NAME = ActivityFeed;
+				PROVISIONING_PROFILE = "";
+				SWIFT_INSTALL_OBJC_HEADER = NO;
+				SWIFT_OBJC_BRIDGING_HEADER = "";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		6348D97A1C4EAC0C005C978C /* Build configuration list for PBXNativeTarget "WatchSample Extension" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				6348D9781C4EAC0C005C978C /* Debug */,
+				6348D9791C4EAC0C005C978C /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		6348D97C1C4EAC0C005C978C /* Build configuration list for PBXNativeTarget "WatchSample" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				6348D9761C4EAC0C005C978C /* Debug */,
+				6348D9771C4EAC0C005C978C /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		6355FEBC1BFE4FC600E07170 /* Build configuration list for PBXProject "ActivityFeed" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				6355FED11BFE4FC600E07170 /* Debug */,
+				6355FED21BFE4FC600E07170 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		6355FED31BFE4FC600E07170 /* Build configuration list for PBXNativeTarget "ActivityFeed" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				6355FED41BFE4FC600E07170 /* Debug */,
+				6355FED51BFE4FC600E07170 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 6355FEB91BFE4FC600E07170 /* Project object */;
+}

http://git-wip-us.apache.org/repos/asf/usergrid/blob/60d60fed/sdks/swift/Samples/ActivityFeed/ActivityFeed.xcodeproj/project.xcworkspace/contents.xcworkspacedata
----------------------------------------------------------------------
diff --git a/sdks/swift/Samples/ActivityFeed/ActivityFeed.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/sdks/swift/Samples/ActivityFeed/ActivityFeed.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..3603482
--- /dev/null
+++ b/sdks/swift/Samples/ActivityFeed/ActivityFeed.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "self:SDKSample.xcodeproj">
+   </FileRef>
+</Workspace>

http://git-wip-us.apache.org/repos/asf/usergrid/blob/60d60fed/sdks/swift/Samples/ActivityFeed/ActivityFeed.xcworkspace/contents.xcworkspacedata
----------------------------------------------------------------------
diff --git a/sdks/swift/Samples/ActivityFeed/ActivityFeed.xcworkspace/contents.xcworkspacedata b/sdks/swift/Samples/ActivityFeed/ActivityFeed.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..1344aa3
--- /dev/null
+++ b/sdks/swift/Samples/ActivityFeed/ActivityFeed.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "group:ActivityFeed.xcodeproj">
+   </FileRef>
+</Workspace>

http://git-wip-us.apache.org/repos/asf/usergrid/blob/60d60fed/sdks/swift/Samples/ActivityFeed/ActivityFeed.xcworkspace/xcshareddata/ActivityFeed.xcscmblueprint
----------------------------------------------------------------------
diff --git a/sdks/swift/Samples/ActivityFeed/ActivityFeed.xcworkspace/xcshareddata/ActivityFeed.xcscmblueprint b/sdks/swift/Samples/ActivityFeed/ActivityFeed.xcworkspace/xcshareddata/ActivityFeed.xcscmblueprint
new file mode 100644
index 0000000..cd872fc
--- /dev/null
+++ b/sdks/swift/Samples/ActivityFeed/ActivityFeed.xcworkspace/xcshareddata/ActivityFeed.xcscmblueprint
@@ -0,0 +1,30 @@
+{
+  "DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "E28DB29D4B8B9FB468FB340D2257B16682332D89",
+  "DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : {
+
+  },
+  "DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : {
+    "E28DB29D4B8B9FB468FB340D2257B16682332D89" : 0,
+    "AD57BFF635DD66DF5DF78257082332592EB51D31" : 0
+  },
+  "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "F8EC72FE-9B21-4617-8470-0D30DC16A66E",
+  "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : {
+    "E28DB29D4B8B9FB468FB340D2257B16682332D89" : "swift\/",
+    "AD57BFF635DD66DF5DF78257082332592EB51D31" : ".."
+  },
+  "DVTSourceControlWorkspaceBlueprintNameKey" : "ActivityFeed",
+  "DVTSourceControlWorkspaceBlueprintVersion" : 204,
+  "DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "Samples\/ActivityFeed\/ActivityFeed.xcworkspace",
+  "DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [
+    {
+      "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "github.com:RobertWalsh\/usergrid.git",
+      "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git",
+      "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "AD57BFF635DD66DF5DF78257082332592EB51D31"
+    },
+    {
+      "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "github.com:RobertWalsh\/UsergridSDK.git",
+      "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git",
+      "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "E28DB29D4B8B9FB468FB340D2257B16682332D89"
+    }
+  ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/usergrid/blob/60d60fed/sdks/swift/Samples/ActivityFeed/Podfile
----------------------------------------------------------------------
diff --git a/sdks/swift/Samples/ActivityFeed/Podfile b/sdks/swift/Samples/ActivityFeed/Podfile
new file mode 100644
index 0000000..23d5db6
--- /dev/null
+++ b/sdks/swift/Samples/ActivityFeed/Podfile
@@ -0,0 +1,8 @@
+use_frameworks!
+inhibit_all_warnings!
+
+target 'ActivityFeed' do
+    platform :ios, '9.0'
+    pod 'SlackTextViewController'
+end
+

http://git-wip-us.apache.org/repos/asf/usergrid/blob/60d60fed/sdks/swift/Samples/ActivityFeed/Readme.md
----------------------------------------------------------------------
diff --git a/sdks/swift/Samples/ActivityFeed/Readme.md b/sdks/swift/Samples/ActivityFeed/Readme.md
new file mode 100644
index 0000000..9fb6555
--- /dev/null
+++ b/sdks/swift/Samples/ActivityFeed/Readme.md
@@ -0,0 +1,29 @@
+#ActivityFeed
+
+## Installing dependencies
+
+The `ActivityFeed` sample app utilizes `Cocoapods` and you will need to run the `$ pod install` command from within the root folder of the sample project in order for the sample to run properly.
+
+## Running the Sample
+
+To run the sample app, simply open the `ActivityFeed.xcworkspace` file in Xcode.
+
+Two targets in Xcode specific to this application will be available:
+
+- **ActivityFeed Target**
+
+	This will run the iOS sample application.
+	
+- **Watch Sample Target**
+
+	This will run the watchOS companion app.
+
+##Configuring the Sample Apps
+
+Before running the sample applications you will need to configure each sample application. 
+
+Each sample application should include a source file named `UsergridManager.swift`.  This source file is used to contain interaction with the UsergridSDK within a single source file.  In doing so, the interactions within the sample apps can be easily seen and examined.
+
+Within the `UsergridManager.swift` source there will be at least two different static vars named `ORG_ID` and `APP_ID`.  You will need to configure those values in order to run the applications in your environment.    
+
+Applications which utilize push notifications will require a valid provisioning profile and device for the push services to work correctly.   

http://git-wip-us.apache.org/repos/asf/usergrid/blob/60d60fed/sdks/swift/Samples/ActivityFeed/Source/ActivityEntity.swift
----------------------------------------------------------------------
diff --git a/sdks/swift/Samples/ActivityFeed/Source/ActivityEntity.swift b/sdks/swift/Samples/ActivityFeed/Source/ActivityEntity.swift
new file mode 100644
index 0000000..5ddcf12
--- /dev/null
+++ b/sdks/swift/Samples/ActivityFeed/Source/ActivityEntity.swift
@@ -0,0 +1,60 @@
+//
+//  ActivityEntity.swift
+//  ActivityFeed
+//
+//  Created by Robert Walsh on 1/20/16.
+//
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.  For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ *
+ */
+
+import Foundation
+import UsergridSDK
+
+public class ActivityEntity: UsergridEntity {
+
+    public var actor: [String:AnyObject]? { return self["actor"] as? [String:AnyObject] }
+
+    public var content: String? { return self["content"] as? String }
+
+    public var displayName: String? { return self.actor?["displayName"] as? String }
+
+    public var email: String? { return self.actor?["email"] as? String }
+
+    public var imageInfo: [String:AnyObject]? { return self.actor?["image"] as? [String:AnyObject] }
+
+    public var imageURL: String? { return self.imageInfo?["url"] as? String }
+
+    static func registerSubclass() {
+        UsergridEntity.mapCustomType("activity", toSubclass: ActivityEntity.self)
+    }
+
+    required public init(type: String, name: String?, propertyDict: [String : AnyObject]?) {
+        super.init(type: type, name: name, propertyDict: propertyDict)
+    }
+
+    required public init?(coder aDecoder: NSCoder) {
+        super.init(coder: aDecoder)
+    }
+
+    public override func encodeWithCoder(aCoder: NSCoder) {
+        super.encodeWithCoder(aCoder)
+    }
+    
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/usergrid/blob/60d60fed/sdks/swift/Samples/ActivityFeed/Source/AppDelegate.swift
----------------------------------------------------------------------
diff --git a/sdks/swift/Samples/ActivityFeed/Source/AppDelegate.swift b/sdks/swift/Samples/ActivityFeed/Source/AppDelegate.swift
new file mode 100644
index 0000000..cca5c41
--- /dev/null
+++ b/sdks/swift/Samples/ActivityFeed/Source/AppDelegate.swift
@@ -0,0 +1,65 @@
+//
+//  AppDelegate.swift
+//  ActivityFeed
+//
+//  Created by Robert Walsh on 11/19/15.
+//
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.  For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ *
+ */
+
+
+import UIKit
+import UsergridSDK
+
+// TODO: Change the values to correspond to your organization, application, and notifier identifiers.
+
+@UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate {
+
+    var window: UIWindow?
+
+    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
+
+        UINavigationBar.appearance().tintColor = UIColor.whiteColor()
+        application.registerUserNotificationSettings(UIUserNotificationSettings( forTypes: [.Alert, .Badge, .Sound], categories: nil))
+        application.registerForRemoteNotifications()
+
+        // Initialize the Usergrid shared instance.
+        UsergridManager.initializeSharedInstance()
+
+        // If there is a current user already logged in from the keychain we will skip the login page and go right to the chat screen
+
+        if Usergrid.currentUser != nil {
+            let rootViewController = self.window!.rootViewController as! UINavigationController
+            let loginViewController = rootViewController.viewControllers.first!
+            loginViewController.performSegueWithIdentifier("loginSuccessNonAnimatedSegue", sender: loginViewController)
+        }
+
+        return true
+    }
+
+    func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
+        Usergrid.applyPushToken(deviceToken, notifierID: UsergridManager.NOTIFIER_ID, completion: nil)
+    }
+
+    func application(application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError) {
+        print("Application failed to register for remote notifications")
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/usergrid/blob/60d60fed/sdks/swift/Samples/ActivityFeed/Source/Assets.xcassets/AppIcon.appiconset/Contents.json
----------------------------------------------------------------------
diff --git a/sdks/swift/Samples/ActivityFeed/Source/Assets.xcassets/AppIcon.appiconset/Contents.json b/sdks/swift/Samples/ActivityFeed/Source/Assets.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 0000000..118c98f
--- /dev/null
+++ b/sdks/swift/Samples/ActivityFeed/Source/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,38 @@
+{
+  "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"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/usergrid/blob/60d60fed/sdks/swift/Samples/ActivityFeed/Source/Assets.xcassets/Contents.json
----------------------------------------------------------------------
diff --git a/sdks/swift/Samples/ActivityFeed/Source/Assets.xcassets/Contents.json b/sdks/swift/Samples/ActivityFeed/Source/Assets.xcassets/Contents.json
new file mode 100644
index 0000000..da4a164
--- /dev/null
+++ b/sdks/swift/Samples/ActivityFeed/Source/Assets.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/usergrid/blob/60d60fed/sdks/swift/Samples/ActivityFeed/Source/Assets.xcassets/UsergridGuy.imageset/Contents.json
----------------------------------------------------------------------
diff --git a/sdks/swift/Samples/ActivityFeed/Source/Assets.xcassets/UsergridGuy.imageset/Contents.json b/sdks/swift/Samples/ActivityFeed/Source/Assets.xcassets/UsergridGuy.imageset/Contents.json
new file mode 100644
index 0000000..c19ad83
--- /dev/null
+++ b/sdks/swift/Samples/ActivityFeed/Source/Assets.xcassets/UsergridGuy.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "filename" : "UsergridGuy.png",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/usergrid/blob/60d60fed/sdks/swift/Samples/ActivityFeed/Source/Assets.xcassets/UsergridGuy.imageset/UsergridGuy.png
----------------------------------------------------------------------
diff --git a/sdks/swift/Samples/ActivityFeed/Source/Assets.xcassets/UsergridGuy.imageset/UsergridGuy.png b/sdks/swift/Samples/ActivityFeed/Source/Assets.xcassets/UsergridGuy.imageset/UsergridGuy.png
new file mode 100644
index 0000000..b8a6844
Binary files /dev/null and b/sdks/swift/Samples/ActivityFeed/Source/Assets.xcassets/UsergridGuy.imageset/UsergridGuy.png differ

http://git-wip-us.apache.org/repos/asf/usergrid/blob/60d60fed/sdks/swift/Samples/ActivityFeed/Source/Base.lproj/LaunchScreen.storyboard
----------------------------------------------------------------------
diff --git a/sdks/swift/Samples/ActivityFeed/Source/Base.lproj/LaunchScreen.storyboard b/sdks/swift/Samples/ActivityFeed/Source/Base.lproj/LaunchScreen.storyboard
new file mode 100644
index 0000000..78686cd
--- /dev/null
+++ b/sdks/swift/Samples/ActivityFeed/Source/Base.lproj/LaunchScreen.storyboard
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="9531" systemVersion="15C50" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" initialViewController="01J-lp-oVM">
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9529"/>
+    </dependencies>
+    <scenes>
+        <!--View Controller-->
+        <scene sceneID="EHf-IW-A2E">
+            <objects>
+                <viewController id="01J-lp-oVM" sceneMemberID="viewController">
+                    <layoutGuides>
+                        <viewControllerLayoutGuide type="top" id="Llm-lL-Icb"/>
+                        <viewControllerLayoutGuide type="bottom" id="xb3-aO-Qok"/>
+                    </layoutGuides>
+                    <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
+                        <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+                    </view>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="53" y="375"/>
+        </scene>
+    </scenes>
+</document>