From d5f506d8f648d3fd89522eee68da515ed476e0da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sanjin=20Grahovar=20Sadikovi=C4=87?= Date: Tue, 8 Feb 2022 08:55:46 +0000 Subject: [PATCH 1/3] Merged in develop (pull request #3) Updated Master with Develop * Initial commit * Merged in feature/update-to-shake-15.1.0 (pull request #2) aUpdate Shake SDK to v15.1.0, additional tweaks for App Store Submission * Implemented User Defaults. Shake iOS SDK settings are now the same as on Androids. Tiny fixups on various screens. * Added blackbox switch and enabled blackbox feature by default. * Implemented offline screen * Implemented Shaking Threshold slider on Settings screen * Adjusted user preferences and switched Shake API keys for Public Workspace * Disabled bitcode * Fixups for default states * Fixup for Floating Button being set incorrectly * Updated shaking threshold code * Updated demo app to remove any mentions of Shake from "main" screens. --- .gitignore | 3 + Podfile | 12 + Podfile.lock | 20 + shake-demo-ios.xcodeproj/project.pbxproj | 557 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 10103 bytes .../xcschemes/shake-demo-ios.xcscheme | 78 +++ .../xcschemes/xcschememanagement.plist | 22 + .../contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 171917 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 168 ++++++ shake-demo-ios/AppDelegate.swift | 131 ++++ .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/1024.png | Bin 0 -> 95824 bytes .../AppIcon.appiconset/120-1.png | Bin 0 -> 7056 bytes .../AppIcon.appiconset/120.png | Bin 0 -> 7056 bytes .../AppIcon.appiconset/152.png | Bin 0 -> 9930 bytes .../AppIcon.appiconset/167.png | Bin 0 -> 11150 bytes .../AppIcon.appiconset/180.png | Bin 0 -> 11816 bytes .../Assets.xcassets/AppIcon.appiconset/20.png | Bin 0 -> 872 bytes .../Assets.xcassets/AppIcon.appiconset/29.png | Bin 0 -> 1405 bytes .../AppIcon.appiconset/40-1.png | Bin 0 -> 2223 bytes .../AppIcon.appiconset/40-2.png | Bin 0 -> 2223 bytes .../Assets.xcassets/AppIcon.appiconset/40.png | Bin 0 -> 2223 bytes .../AppIcon.appiconset/58-1.png | Bin 0 -> 3488 bytes .../Assets.xcassets/AppIcon.appiconset/58.png | Bin 0 -> 3488 bytes .../Assets.xcassets/AppIcon.appiconset/60.png | Bin 0 -> 3654 bytes .../Assets.xcassets/AppIcon.appiconset/76.png | Bin 0 -> 4793 bytes .../AppIcon.appiconset/80-1.png | Bin 0 -> 5003 bytes .../Assets.xcassets/AppIcon.appiconset/80.png | Bin 0 -> 5003 bytes .../Assets.xcassets/AppIcon.appiconset/87.png | Bin 0 -> 5519 bytes .../AppIcon.appiconset/Contents.json | 116 ++++ shake-demo-ios/Assets.xcassets/Contents.json | 6 + .../Assets.xcassets/I.colorset/Contents.json | 38 ++ .../Assets.xcassets/color/Contents.json | 6 + .../shake_border_color.colorset/Contents.json | 38 ++ .../Contents.json | 38 ++ .../Contents.json | 38 ++ .../shake_steps_color.colorset/Contents.json | 38 ++ .../Contents.json | 38 ++ .../Contents.json | 38 ++ .../shake_url_color.colorset/Contents.json | 38 ++ .../crash-one.imageset/Contents.json | 21 + .../crash-one.imageset/crash-one.pdf | Bin 0 -> 5465 bytes .../crash-two.imageset/Contents.json | 21 + .../crash-two.imageset/crash-two.pdf | Bin 0 -> 5463 bytes .../Contents.json | 21 + .../crashReporting_icon.pdf | Bin 0 -> 3813 bytes .../customizing-one.imageset/Contents.json | 21 + .../customizing-one.pdf | Bin 0 -> 5465 bytes .../customizing-two.imageset/Contents.json | 21 + .../customizing-two.pdf | Bin 0 -> 5463 bytes .../customizing_icon.imageset/Contents.json | 21 + .../customizing_icon.pdf | Bin 0 -> 4418 bytes .../dots.imageset/Contents.json | 21 + .../Assets.xcassets/dots.imageset/dots.pdf | Bin 0 -> 3881 bytes .../Contents.json | 21 + .../feedbackCenter_icon.pdf | Bin 0 -> 3893 bytes .../feedback_exit_icon.imageset/Contents.json | 21 + .../feedback_exit_icon.pdf | Bin 0 -> 3923 bytes .../Contents.json | 21 + .../feedback_feedback_icon.pdf | Bin 0 -> 3969 bytes .../Contents.json | 21 + .../feedback_hashtag_icon.pdf | Bin 0 -> 3846 bytes .../Contents.json | 21 + .../feedback_notification_icon.pdf | Bin 0 -> 4224 bytes .../Contents.json | 21 + .../feedback_theme_icon.pdf | Bin 0 -> 4085 bytes .../four.imageset/Contents.json | 23 + .../Assets.xcassets/four.imageset/four.png | Bin 0 -> 284 bytes .../Assets.xcassets/four.imageset/four@2x.png | Bin 0 -> 351 bytes .../Assets.xcassets/four.imageset/four@3x.png | Bin 0 -> 416 bytes .../icons8-menu-30.imageset/Contents.json | 21 + .../icons8-menu-30.png | Bin 0 -> 131 bytes .../icons8-menu-60.imageset/Contents.json | 21 + .../icons8-menu-60.png | Bin 0 -> 181 bytes .../offline-four.imageset/Contents.json | 21 + .../offline-four.imageset/offline-four.pdf | Bin 0 -> 5576 bytes .../offline-one.imageset/Contents.json | 21 + .../offline-one.imageset/offline-one.pdf | Bin 0 -> 5461 bytes .../offline-three.imageset/Contents.json | 21 + .../offline-three.imageset/offline-three.pdf | Bin 0 -> 5512 bytes .../offline-two.imageset/Contents.json | 21 + .../offline-two.imageset/offline-two.pdf | Bin 0 -> 5463 bytes .../offline_icon.imageset/Contents.json | 21 + .../offline_icon.imageset/offline_icon.pdf | Bin 0 -> 4052 bytes .../shake_menu_logo.imageset/Contents.json | 21 + .../shake_menu_logo.pdf | Bin 0 -> 7101 bytes .../shaking-one.imageset/Contents.json | 21 + .../shaking-one.imageset/shaking-one.pdf | Bin 0 -> 5466 bytes .../shaking-two.imageset/Contents.json | 21 + .../shaking-two.imageset/shaking-two.pdf | Bin 0 -> 5465 bytes .../shaking_icon.imageset/Contents.json | 21 + .../shaking_icon.imageset/shaking_icon.pdf | Bin 0 -> 3854 bytes .../Base.lproj/LaunchScreen.storyboard | 25 + shake-demo-ios/Info.plist | 68 +++ .../Presentation/Base.lproj/Main.storyboard | 52 ++ .../Presentation/BottomBorderView.swift | 34 ++ shake-demo-ios/Presentation/CircleView.swift | 37 ++ .../CrashReportingVC.storyboard | 245 ++++++++ .../CrashReporting/CrashReportingVC.swift | 52 ++ .../Customizing/CustomizingVC.storyboard | 217 +++++++ .../Customizing/CustomizingVC.swift | 42 ++ .../FeedbackCenter/FeedbackVC.storyboard | 305 ++++++++++ .../FeedbackCenter/FeedbackVC.swift | 39 ++ .../Presentation/MainViewController.swift | 260 ++++++++ .../Presentation/Offline/OfflineVC.storyboard | 320 ++++++++++ .../Presentation/Offline/OfflineVC.swift | 44 ++ .../SettingsScreen/SettingsVC.storyboard | 367 ++++++++++++ .../SettingsScreen/SettingsVC.swift | 219 +++++++ .../Presentation/Shaking/ShakingVC.storyboard | 234 ++++++++ .../Presentation/Shaking/ShakingVC.swift | 52 ++ shake-demo-ios/SceneDelegate.swift | 57 ++ shake-demo-ios/ViewController.swift | 19 + 116 files changed, 4682 insertions(+) create mode 100644 Podfile create mode 100644 Podfile.lock create mode 100644 shake-demo-ios.xcodeproj/project.pbxproj create mode 100644 shake-demo-ios.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 shake-demo-ios.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 shake-demo-ios.xcodeproj/project.xcworkspace/xcuserdata/sanjingrahovarsadikovic.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 shake-demo-ios.xcodeproj/xcshareddata/xcschemes/shake-demo-ios.xcscheme create mode 100644 shake-demo-ios.xcodeproj/xcuserdata/sanjingrahovarsadikovic.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 shake-demo-ios.xcworkspace/contents.xcworkspacedata create mode 100644 shake-demo-ios.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 shake-demo-ios.xcworkspace/xcuserdata/sanjingrahovarsadikovic.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 shake-demo-ios.xcworkspace/xcuserdata/sanjingrahovarsadikovic.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist create mode 100644 shake-demo-ios/AppDelegate.swift create mode 100644 shake-demo-ios/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/AppIcon.appiconset/1024.png create mode 100644 shake-demo-ios/Assets.xcassets/AppIcon.appiconset/120-1.png create mode 100644 shake-demo-ios/Assets.xcassets/AppIcon.appiconset/120.png create mode 100644 shake-demo-ios/Assets.xcassets/AppIcon.appiconset/152.png create mode 100644 shake-demo-ios/Assets.xcassets/AppIcon.appiconset/167.png create mode 100644 shake-demo-ios/Assets.xcassets/AppIcon.appiconset/180.png create mode 100644 shake-demo-ios/Assets.xcassets/AppIcon.appiconset/20.png create mode 100644 shake-demo-ios/Assets.xcassets/AppIcon.appiconset/29.png create mode 100644 shake-demo-ios/Assets.xcassets/AppIcon.appiconset/40-1.png create mode 100644 shake-demo-ios/Assets.xcassets/AppIcon.appiconset/40-2.png create mode 100644 shake-demo-ios/Assets.xcassets/AppIcon.appiconset/40.png create mode 100644 shake-demo-ios/Assets.xcassets/AppIcon.appiconset/58-1.png create mode 100644 shake-demo-ios/Assets.xcassets/AppIcon.appiconset/58.png create mode 100644 shake-demo-ios/Assets.xcassets/AppIcon.appiconset/60.png create mode 100644 shake-demo-ios/Assets.xcassets/AppIcon.appiconset/76.png create mode 100644 shake-demo-ios/Assets.xcassets/AppIcon.appiconset/80-1.png create mode 100644 shake-demo-ios/Assets.xcassets/AppIcon.appiconset/80.png create mode 100644 shake-demo-ios/Assets.xcassets/AppIcon.appiconset/87.png create mode 100644 shake-demo-ios/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/I.colorset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/color/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/color/shake_border_color.colorset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/color/shake_feedback_grayedOut.colorset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/color/shake_headline_color.colorset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/color/shake_steps_color.colorset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/color/shake_steps_parent_view.colorset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/color/shake_subtitle_color.colorset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/color/shake_url_color.colorset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/crash-one.imageset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/crash-one.imageset/crash-one.pdf create mode 100644 shake-demo-ios/Assets.xcassets/crash-two.imageset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/crash-two.imageset/crash-two.pdf create mode 100644 shake-demo-ios/Assets.xcassets/crashReporting_icon.imageset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/crashReporting_icon.imageset/crashReporting_icon.pdf create mode 100644 shake-demo-ios/Assets.xcassets/customizing-one.imageset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/customizing-one.imageset/customizing-one.pdf create mode 100644 shake-demo-ios/Assets.xcassets/customizing-two.imageset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/customizing-two.imageset/customizing-two.pdf create mode 100644 shake-demo-ios/Assets.xcassets/customizing_icon.imageset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/customizing_icon.imageset/customizing_icon.pdf create mode 100644 shake-demo-ios/Assets.xcassets/dots.imageset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/dots.imageset/dots.pdf create mode 100644 shake-demo-ios/Assets.xcassets/feedbackCenter_icon.imageset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/feedbackCenter_icon.imageset/feedbackCenter_icon.pdf create mode 100644 shake-demo-ios/Assets.xcassets/feedback_exit_icon.imageset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/feedback_exit_icon.imageset/feedback_exit_icon.pdf create mode 100644 shake-demo-ios/Assets.xcassets/feedback_feedback_icon.imageset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/feedback_feedback_icon.imageset/feedback_feedback_icon.pdf create mode 100644 shake-demo-ios/Assets.xcassets/feedback_hashtag_icon.imageset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/feedback_hashtag_icon.imageset/feedback_hashtag_icon.pdf create mode 100644 shake-demo-ios/Assets.xcassets/feedback_notification_icon.imageset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/feedback_notification_icon.imageset/feedback_notification_icon.pdf create mode 100644 shake-demo-ios/Assets.xcassets/feedback_theme_icon.imageset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/feedback_theme_icon.imageset/feedback_theme_icon.pdf create mode 100644 shake-demo-ios/Assets.xcassets/four.imageset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/four.imageset/four.png create mode 100644 shake-demo-ios/Assets.xcassets/four.imageset/four@2x.png create mode 100644 shake-demo-ios/Assets.xcassets/four.imageset/four@3x.png create mode 100644 shake-demo-ios/Assets.xcassets/icons8-menu-30.imageset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/icons8-menu-30.imageset/icons8-menu-30.png create mode 100644 shake-demo-ios/Assets.xcassets/icons8-menu-60.imageset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/icons8-menu-60.imageset/icons8-menu-60.png create mode 100644 shake-demo-ios/Assets.xcassets/offline-four.imageset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/offline-four.imageset/offline-four.pdf create mode 100644 shake-demo-ios/Assets.xcassets/offline-one.imageset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/offline-one.imageset/offline-one.pdf create mode 100644 shake-demo-ios/Assets.xcassets/offline-three.imageset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/offline-three.imageset/offline-three.pdf create mode 100644 shake-demo-ios/Assets.xcassets/offline-two.imageset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/offline-two.imageset/offline-two.pdf create mode 100644 shake-demo-ios/Assets.xcassets/offline_icon.imageset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/offline_icon.imageset/offline_icon.pdf create mode 100644 shake-demo-ios/Assets.xcassets/shake_menu_logo.imageset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/shake_menu_logo.imageset/shake_menu_logo.pdf create mode 100644 shake-demo-ios/Assets.xcassets/shaking-one.imageset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/shaking-one.imageset/shaking-one.pdf create mode 100644 shake-demo-ios/Assets.xcassets/shaking-two.imageset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/shaking-two.imageset/shaking-two.pdf create mode 100644 shake-demo-ios/Assets.xcassets/shaking_icon.imageset/Contents.json create mode 100644 shake-demo-ios/Assets.xcassets/shaking_icon.imageset/shaking_icon.pdf create mode 100644 shake-demo-ios/Base.lproj/LaunchScreen.storyboard create mode 100644 shake-demo-ios/Info.plist create mode 100644 shake-demo-ios/Presentation/Base.lproj/Main.storyboard create mode 100644 shake-demo-ios/Presentation/BottomBorderView.swift create mode 100644 shake-demo-ios/Presentation/CircleView.swift create mode 100644 shake-demo-ios/Presentation/CrashReporting/CrashReportingVC.storyboard create mode 100644 shake-demo-ios/Presentation/CrashReporting/CrashReportingVC.swift create mode 100644 shake-demo-ios/Presentation/Customizing/CustomizingVC.storyboard create mode 100644 shake-demo-ios/Presentation/Customizing/CustomizingVC.swift create mode 100644 shake-demo-ios/Presentation/FeedbackCenter/FeedbackVC.storyboard create mode 100644 shake-demo-ios/Presentation/FeedbackCenter/FeedbackVC.swift create mode 100644 shake-demo-ios/Presentation/MainViewController.swift create mode 100644 shake-demo-ios/Presentation/Offline/OfflineVC.storyboard create mode 100644 shake-demo-ios/Presentation/Offline/OfflineVC.swift create mode 100644 shake-demo-ios/Presentation/SettingsScreen/SettingsVC.storyboard create mode 100644 shake-demo-ios/Presentation/SettingsScreen/SettingsVC.swift create mode 100644 shake-demo-ios/Presentation/Shaking/ShakingVC.storyboard create mode 100644 shake-demo-ios/Presentation/Shaking/ShakingVC.swift create mode 100644 shake-demo-ios/SceneDelegate.swift create mode 100644 shake-demo-ios/ViewController.swift diff --git a/.gitignore b/.gitignore index b24d71e..8748924 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,9 @@ node_modules/ dist/ +# iOS artifact files +Pods/ + # Compiled Java class files *.class diff --git a/Podfile b/Podfile new file mode 100644 index 0000000..9547d47 --- /dev/null +++ b/Podfile @@ -0,0 +1,12 @@ +# Uncomment the next line to define a global platform for your project +platform :ios, '12.0' + +target 'shake-demo-ios' do + # Comment the next line if you don't want to use dynamic frameworks + use_frameworks! + pod 'SideMenu', '~> 6.0' + pod 'Shake', '15.1.0' + + # Pods for shake-demo-ios + +end diff --git a/Podfile.lock b/Podfile.lock new file mode 100644 index 0000000..0ee70ad --- /dev/null +++ b/Podfile.lock @@ -0,0 +1,20 @@ +PODS: + - Shake (15.1.0) + - SideMenu (6.5.0) + +DEPENDENCIES: + - Shake (= 15.1.0) + - SideMenu (~> 6.0) + +SPEC REPOS: + trunk: + - Shake + - SideMenu + +SPEC CHECKSUMS: + Shake: a8621acdcf70761843b0f12f28bb090467c9f064 + SideMenu: f583187d21c5b1dd04c72002be544b555a2627a2 + +PODFILE CHECKSUM: cf8670ae364779d45244464c98ed96bdf4adccbf + +COCOAPODS: 1.11.2 diff --git a/shake-demo-ios.xcodeproj/project.pbxproj b/shake-demo-ios.xcodeproj/project.pbxproj new file mode 100644 index 0000000..b735d7b --- /dev/null +++ b/shake-demo-ios.xcodeproj/project.pbxproj @@ -0,0 +1,557 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 51; + objects = { + +/* Begin PBXBuildFile section */ + 29020897273554CA0002A80E /* MainViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29020896273554CA0002A80E /* MainViewController.swift */; }; + 290208A4273564F30002A80E /* BottomBorderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 290208A3273564F30002A80E /* BottomBorderView.swift */; }; + 29A9B49C2735440B006AF65F /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29A9B49B2735440B006AF65F /* AppDelegate.swift */; }; + 29A9B49E2735440B006AF65F /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29A9B49D2735440B006AF65F /* SceneDelegate.swift */; }; + 29A9B4A02735440B006AF65F /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29A9B49F2735440B006AF65F /* ViewController.swift */; }; + 29A9B4A32735440B006AF65F /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 29A9B4A12735440B006AF65F /* Main.storyboard */; }; + 29A9B4A52735440D006AF65F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 29A9B4A42735440D006AF65F /* Assets.xcassets */; }; + 29A9B4A82735440D006AF65F /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 29A9B4A62735440D006AF65F /* LaunchScreen.storyboard */; }; + 29A9B4D627354611006AF65F /* CircleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29A9B4D427354611006AF65F /* CircleView.swift */; }; + 29A9B4DB2735462B006AF65F /* CrashReportingVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29A9B4D92735462A006AF65F /* CrashReportingVC.swift */; }; + 29A9B4DC2735462B006AF65F /* CrashReportingVC.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 29A9B4DA2735462B006AF65F /* CrashReportingVC.storyboard */; }; + 29A9B4E027354637006AF65F /* CustomizingVC.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 29A9B4DE27354637006AF65F /* CustomizingVC.storyboard */; }; + 29A9B4E127354637006AF65F /* CustomizingVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29A9B4DF27354637006AF65F /* CustomizingVC.swift */; }; + 29A9B4E527354643006AF65F /* FeedbackVC.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 29A9B4E327354643006AF65F /* FeedbackVC.storyboard */; }; + 29A9B4E627354643006AF65F /* FeedbackVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29A9B4E427354643006AF65F /* FeedbackVC.swift */; }; + 29A9B4EA2735464D006AF65F /* SettingsVC.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 29A9B4E82735464D006AF65F /* SettingsVC.storyboard */; }; + 29A9B4EB2735464D006AF65F /* SettingsVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29A9B4E92735464D006AF65F /* SettingsVC.swift */; }; + 29A9B4EF27354658006AF65F /* ShakingVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29A9B4ED27354658006AF65F /* ShakingVC.swift */; }; + 29A9B4F027354658006AF65F /* ShakingVC.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 29A9B4EE27354658006AF65F /* ShakingVC.storyboard */; }; + 29AB1EE3277DF1BB00CC27B3 /* OfflineVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29AB1EE2277DF1BB00CC27B3 /* OfflineVC.swift */; }; + 29AB1EE5277DF1CE00CC27B3 /* OfflineVC.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 29AB1EE4277DF1CE00CC27B3 /* OfflineVC.storyboard */; }; + CCE0F46CD72C3A48DFADE57B /* Pods_shake_demo_ios.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 09FA0A17EE7AB1925E432E22 /* Pods_shake_demo_ios.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 29A19E9B273EF3C90000794E /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 09FA0A17EE7AB1925E432E22 /* Pods_shake_demo_ios.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_shake_demo_ios.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 29020896273554CA0002A80E /* MainViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainViewController.swift; sourceTree = ""; }; + 290208A3273564F30002A80E /* BottomBorderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BottomBorderView.swift; sourceTree = ""; }; + 29A9B4982735440B006AF65F /* shake-demo-ios.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "shake-demo-ios.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 29A9B49B2735440B006AF65F /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 29A9B49D2735440B006AF65F /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; + 29A9B49F2735440B006AF65F /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 29A9B4A22735440B006AF65F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 29A9B4A42735440D006AF65F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 29A9B4A72735440D006AF65F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 29A9B4A92735440D006AF65F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 29A9B4D427354611006AF65F /* CircleView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CircleView.swift; sourceTree = ""; }; + 29A9B4D92735462A006AF65F /* CrashReportingVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CrashReportingVC.swift; sourceTree = ""; }; + 29A9B4DA2735462B006AF65F /* CrashReportingVC.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = CrashReportingVC.storyboard; sourceTree = ""; }; + 29A9B4DE27354637006AF65F /* CustomizingVC.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = CustomizingVC.storyboard; sourceTree = ""; }; + 29A9B4DF27354637006AF65F /* CustomizingVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomizingVC.swift; sourceTree = ""; }; + 29A9B4E327354643006AF65F /* FeedbackVC.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = FeedbackVC.storyboard; sourceTree = ""; }; + 29A9B4E427354643006AF65F /* FeedbackVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FeedbackVC.swift; sourceTree = ""; }; + 29A9B4E82735464D006AF65F /* SettingsVC.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = SettingsVC.storyboard; sourceTree = ""; }; + 29A9B4E92735464D006AF65F /* SettingsVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsVC.swift; sourceTree = ""; }; + 29A9B4ED27354658006AF65F /* ShakingVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShakingVC.swift; sourceTree = ""; }; + 29A9B4EE27354658006AF65F /* ShakingVC.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = ShakingVC.storyboard; sourceTree = ""; }; + 29AB1EE2277DF1BB00CC27B3 /* OfflineVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OfflineVC.swift; sourceTree = ""; }; + 29AB1EE4277DF1CE00CC27B3 /* OfflineVC.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = OfflineVC.storyboard; sourceTree = ""; }; + 40A084753790884EF3919B15 /* Pods-shake-demo-ios.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-shake-demo-ios.release.xcconfig"; path = "Target Support Files/Pods-shake-demo-ios/Pods-shake-demo-ios.release.xcconfig"; sourceTree = ""; }; + 4518E2B635E3B39831148B1E /* Pods-shake-demo-ios.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-shake-demo-ios.debug.xcconfig"; path = "Target Support Files/Pods-shake-demo-ios/Pods-shake-demo-ios.debug.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 29A9B4952735440B006AF65F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + CCE0F46CD72C3A48DFADE57B /* Pods_shake_demo_ios.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 29A9B48F2735440B006AF65F = { + isa = PBXGroup; + children = ( + 29A9B49A2735440B006AF65F /* shake-demo-ios */, + 29A9B4992735440B006AF65F /* Products */, + 7D691D22BDE0D3160DDEDDC7 /* Pods */, + E6281403D791BACF6DAE6626 /* Frameworks */, + ); + sourceTree = ""; + }; + 29A9B4992735440B006AF65F /* Products */ = { + isa = PBXGroup; + children = ( + 29A9B4982735440B006AF65F /* shake-demo-ios.app */, + ); + name = Products; + sourceTree = ""; + }; + 29A9B49A2735440B006AF65F /* shake-demo-ios */ = { + isa = PBXGroup; + children = ( + 29A9B4B927354501006AF65F /* Presentation */, + 29A9B49B2735440B006AF65F /* AppDelegate.swift */, + 29A9B49D2735440B006AF65F /* SceneDelegate.swift */, + 29A9B49F2735440B006AF65F /* ViewController.swift */, + 29A9B4A42735440D006AF65F /* Assets.xcassets */, + 29A9B4A62735440D006AF65F /* LaunchScreen.storyboard */, + 29A9B4A92735440D006AF65F /* Info.plist */, + ); + path = "shake-demo-ios"; + sourceTree = ""; + }; + 29A9B4B927354501006AF65F /* Presentation */ = { + isa = PBXGroup; + children = ( + 29AB1EE1277DF17400CC27B3 /* Offline */, + 29A9B4A12735440B006AF65F /* Main.storyboard */, + 29A9B4D427354611006AF65F /* CircleView.swift */, + 29A9B4D3273545EE006AF65F /* Shaking */, + 29A9B4D2273545E5006AF65F /* SettingsScreen */, + 29A9B4D1273545D9006AF65F /* FeedbackCenter */, + 29A9B4D0273545CF006AF65F /* Customizing */, + 29A9B4CF273545BE006AF65F /* CrashReporting */, + 29020896273554CA0002A80E /* MainViewController.swift */, + 290208A3273564F30002A80E /* BottomBorderView.swift */, + ); + path = Presentation; + sourceTree = ""; + }; + 29A9B4CF273545BE006AF65F /* CrashReporting */ = { + isa = PBXGroup; + children = ( + 29A9B4DA2735462B006AF65F /* CrashReportingVC.storyboard */, + 29A9B4D92735462A006AF65F /* CrashReportingVC.swift */, + ); + path = CrashReporting; + sourceTree = ""; + }; + 29A9B4D0273545CF006AF65F /* Customizing */ = { + isa = PBXGroup; + children = ( + 29A9B4DE27354637006AF65F /* CustomizingVC.storyboard */, + 29A9B4DF27354637006AF65F /* CustomizingVC.swift */, + ); + path = Customizing; + sourceTree = ""; + }; + 29A9B4D1273545D9006AF65F /* FeedbackCenter */ = { + isa = PBXGroup; + children = ( + 29A9B4E327354643006AF65F /* FeedbackVC.storyboard */, + 29A9B4E427354643006AF65F /* FeedbackVC.swift */, + ); + path = FeedbackCenter; + sourceTree = ""; + }; + 29A9B4D2273545E5006AF65F /* SettingsScreen */ = { + isa = PBXGroup; + children = ( + 29A9B4E82735464D006AF65F /* SettingsVC.storyboard */, + 29A9B4E92735464D006AF65F /* SettingsVC.swift */, + ); + path = SettingsScreen; + sourceTree = ""; + }; + 29A9B4D3273545EE006AF65F /* Shaking */ = { + isa = PBXGroup; + children = ( + 29A9B4EE27354658006AF65F /* ShakingVC.storyboard */, + 29A9B4ED27354658006AF65F /* ShakingVC.swift */, + ); + path = Shaking; + sourceTree = ""; + }; + 29AB1EE1277DF17400CC27B3 /* Offline */ = { + isa = PBXGroup; + children = ( + 29AB1EE2277DF1BB00CC27B3 /* OfflineVC.swift */, + 29AB1EE4277DF1CE00CC27B3 /* OfflineVC.storyboard */, + ); + path = Offline; + sourceTree = ""; + }; + 7D691D22BDE0D3160DDEDDC7 /* Pods */ = { + isa = PBXGroup; + children = ( + 4518E2B635E3B39831148B1E /* Pods-shake-demo-ios.debug.xcconfig */, + 40A084753790884EF3919B15 /* Pods-shake-demo-ios.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; + E6281403D791BACF6DAE6626 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 09FA0A17EE7AB1925E432E22 /* Pods_shake_demo_ios.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 29A9B4972735440B006AF65F /* shake-demo-ios */ = { + isa = PBXNativeTarget; + buildConfigurationList = 29A9B4AC2735440D006AF65F /* Build configuration list for PBXNativeTarget "shake-demo-ios" */; + buildPhases = ( + D600BBFEC5A556C7730B50EA /* [CP] Check Pods Manifest.lock */, + 29A9B4942735440B006AF65F /* Sources */, + 29A9B4952735440B006AF65F /* Frameworks */, + 29A9B4962735440B006AF65F /* Resources */, + 083FC1A496E46F3CA9C126DB /* [CP] Embed Pods Frameworks */, + 29A19E9B273EF3C90000794E /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "shake-demo-ios"; + productName = "shake-demo-ios"; + productReference = 29A9B4982735440B006AF65F /* shake-demo-ios.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 29A9B4902735440B006AF65F /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1240; + LastUpgradeCheck = 1240; + TargetAttributes = { + 29A9B4972735440B006AF65F = { + CreatedOnToolsVersion = 12.4; + }; + }; + }; + buildConfigurationList = 29A9B4932735440B006AF65F /* Build configuration list for PBXProject "shake-demo-ios" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 29A9B48F2735440B006AF65F; + productRefGroup = 29A9B4992735440B006AF65F /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 29A9B4972735440B006AF65F /* shake-demo-ios */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 29A9B4962735440B006AF65F /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 29A9B4E527354643006AF65F /* FeedbackVC.storyboard in Resources */, + 29A9B4F027354658006AF65F /* ShakingVC.storyboard in Resources */, + 29AB1EE5277DF1CE00CC27B3 /* OfflineVC.storyboard in Resources */, + 29A9B4EA2735464D006AF65F /* SettingsVC.storyboard in Resources */, + 29A9B4A82735440D006AF65F /* LaunchScreen.storyboard in Resources */, + 29A9B4E027354637006AF65F /* CustomizingVC.storyboard in Resources */, + 29A9B4A52735440D006AF65F /* Assets.xcassets in Resources */, + 29A9B4DC2735462B006AF65F /* CrashReportingVC.storyboard in Resources */, + 29A9B4A32735440B006AF65F /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 083FC1A496E46F3CA9C126DB /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-shake-demo-ios/Pods-shake-demo-ios-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-shake-demo-ios/Pods-shake-demo-ios-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-shake-demo-ios/Pods-shake-demo-ios-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + D600BBFEC5A556C7730B50EA /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-shake-demo-ios-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 29A9B4942735440B006AF65F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 29A9B4D627354611006AF65F /* CircleView.swift in Sources */, + 29A9B4E627354643006AF65F /* FeedbackVC.swift in Sources */, + 29A9B4A02735440B006AF65F /* ViewController.swift in Sources */, + 29A9B4E127354637006AF65F /* CustomizingVC.swift in Sources */, + 29A9B49C2735440B006AF65F /* AppDelegate.swift in Sources */, + 29A9B49E2735440B006AF65F /* SceneDelegate.swift in Sources */, + 29A9B4EF27354658006AF65F /* ShakingVC.swift in Sources */, + 29A9B4DB2735462B006AF65F /* CrashReportingVC.swift in Sources */, + 29A9B4EB2735464D006AF65F /* SettingsVC.swift in Sources */, + 290208A4273564F30002A80E /* BottomBorderView.swift in Sources */, + 29AB1EE3277DF1BB00CC27B3 /* OfflineVC.swift in Sources */, + 29020897273554CA0002A80E /* MainViewController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 29A9B4A12735440B006AF65F /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 29A9B4A22735440B006AF65F /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 29A9B4A62735440D006AF65F /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 29A9B4A72735440D006AF65F /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 29A9B4AA2735440D006AF65F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + 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 = 12.1; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 29A9B4AB2735440D006AF65F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + 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 = 12.1; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 29A9B4AD2735440D006AF65F /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4518E2B635E3B39831148B1E /* Pods-shake-demo-ios.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_STYLE = Manual; + CURRENT_PROJECT_VERSION = 7; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = Y8Z27FN9Z7; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = "shake-demo-ios/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 12.1; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "agency.decode.ios-demo-app"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = "ios-demo-app-provisioning-profile-dev"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 29A9B4AE2735440D006AF65F /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 40A084753790884EF3919B15 /* Pods-shake-demo-ios.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_IDENTITY = "iPhone Distribution: DECODE HQ Ltd. (Y8Z27FN9Z7)"; + CODE_SIGN_STYLE = Manual; + CURRENT_PROJECT_VERSION = 7; + DEVELOPMENT_TEAM = Y8Z27FN9Z7; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = "shake-demo-ios/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 12.1; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "agency.decode.ios-demo-app"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = "ios-demo-app-provisioning-profile-distribution"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 29A9B4932735440B006AF65F /* Build configuration list for PBXProject "shake-demo-ios" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 29A9B4AA2735440D006AF65F /* Debug */, + 29A9B4AB2735440D006AF65F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 29A9B4AC2735440D006AF65F /* Build configuration list for PBXNativeTarget "shake-demo-ios" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 29A9B4AD2735440D006AF65F /* Debug */, + 29A9B4AE2735440D006AF65F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 29A9B4902735440B006AF65F /* Project object */; +} diff --git a/shake-demo-ios.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/shake-demo-ios.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/shake-demo-ios.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/shake-demo-ios.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/shake-demo-ios.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/shake-demo-ios.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/shake-demo-ios.xcodeproj/project.xcworkspace/xcuserdata/sanjingrahovarsadikovic.xcuserdatad/UserInterfaceState.xcuserstate b/shake-demo-ios.xcodeproj/project.xcworkspace/xcuserdata/sanjingrahovarsadikovic.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..f7846c9674017c32de6f1de8e9a7db9c085c398d GIT binary patch literal 10103 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 D!!D!Q literal 0 HcmV?d00001 diff --git a/shake-demo-ios.xcodeproj/xcshareddata/xcschemes/shake-demo-ios.xcscheme b/shake-demo-ios.xcodeproj/xcshareddata/xcschemes/shake-demo-ios.xcscheme new file mode 100644 index 0000000..ba8161f --- /dev/null +++ b/shake-demo-ios.xcodeproj/xcshareddata/xcschemes/shake-demo-ios.xcscheme @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/shake-demo-ios.xcodeproj/xcuserdata/sanjingrahovarsadikovic.xcuserdatad/xcschemes/xcschememanagement.plist b/shake-demo-ios.xcodeproj/xcuserdata/sanjingrahovarsadikovic.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..dff5c41 --- /dev/null +++ b/shake-demo-ios.xcodeproj/xcuserdata/sanjingrahovarsadikovic.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + shake-demo-ios.xcscheme_^#shared#^_ + + orderHint + 3 + + + SuppressBuildableAutocreation + + 29A9B4972735440B006AF65F + + primary + + + + + diff --git a/shake-demo-ios.xcworkspace/contents.xcworkspacedata b/shake-demo-ios.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..15cbcc3 --- /dev/null +++ b/shake-demo-ios.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/shake-demo-ios.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/shake-demo-ios.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/shake-demo-ios.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/shake-demo-ios.xcworkspace/xcuserdata/sanjingrahovarsadikovic.xcuserdatad/UserInterfaceState.xcuserstate b/shake-demo-ios.xcworkspace/xcuserdata/sanjingrahovarsadikovic.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..4c45d72f6de6b3666cea2cefa0c783c9bddef5fe GIT binary patch literal 171917 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 a;Q#)w1o8gg|14DL|NYPZ|G$U7^!PvcHGJ*> literal 0 HcmV?d00001 diff --git a/shake-demo-ios.xcworkspace/xcuserdata/sanjingrahovarsadikovic.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/shake-demo-ios.xcworkspace/xcuserdata/sanjingrahovarsadikovic.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist new file mode 100644 index 0000000..1ce806f --- /dev/null +++ b/shake-demo-ios.xcworkspace/xcuserdata/sanjingrahovarsadikovic.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/shake-demo-ios/AppDelegate.swift b/shake-demo-ios/AppDelegate.swift new file mode 100644 index 0000000..3304956 --- /dev/null +++ b/shake-demo-ios/AppDelegate.swift @@ -0,0 +1,131 @@ +// +// AppDelegate.swift +// shake-demo-ios +// +// Created by Sanjin Grahovar Sadiković on 05.11.2021.. +// + +import UIKit +import Shake + +@main +class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? + + + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // Override point for customization after application launch. + let defaults = UserDefaults.standard + + // Shaking invocation + if defaults.object(forKey: "isInvokedByShakeDeviceEvent") == nil{ + defaults.set(true, forKey: "isInvokedByShakeDeviceEvent") + } + Shake.configuration.isInvokedByShakeDeviceEvent = defaults.bool(forKey: "isInvokedByShakeDeviceEvent") + + // Floating button invocation + if defaults.object(forKey: "isFloatingReportButtonShown") == nil{ + defaults.set(false, forKey: "isFloatingReportButtonShown") + } + Shake.configuration.isFloatingReportButtonShown = defaults.bool(forKey: "isFloatingReportButtonShown") + + + // Screenshot invocation method + if defaults.object(forKey: "isInvokedByScreenshot") == nil{ + defaults.set(false, forKey: "isInvokedByScreenshot") + } + Shake.configuration.isInvokedByScreenshot = defaults.bool(forKey: "isInvokedByScreenshot") + + + // Console logs enabled/disabled + if defaults.object(forKey: "isConsoleLogsEnabled") == nil{ + defaults.set(false, forKey: "isConsoleLogsEnabled") + } + Shake.configuration.isConsoleLogsEnabled = defaults.bool(forKey: "isConsoleLogsEnabled") + + // Blackbox enabled/disabled + if defaults.object(forKey: "isBlackBoxEnabled") == nil{ + defaults.set(false, forKey: "isBlackBoxEnabled") + } + Shake.configuration.isBlackBoxEnabled = defaults.bool(forKey: "isBlackBoxEnabled") + + + // Included screenshot enabled/disabled + if defaults.object(forKey: "isScreenshotIncluded") == nil{ + defaults.set(false, forKey: "isScreenshotIncluded") + } + Shake.configuration.isScreenshotIncluded = defaults.bool(forKey: "isScreenshotIncluded") + + + // Email field enabled/disabled + if defaults.object(forKey: "isEmailFieldEnabled") == nil{ + defaults.set(false, forKey: "isEmailFieldEnabled") + } + Shake.configuration.isEmailFieldEnabled = defaults.bool(forKey: "isEmailFieldEnabled") + + // Inspect screen enabled/disabled + if defaults.object(forKey: "isInspectScreenEnabled") == nil{ + defaults.set(false, forKey: "isInspectScreenEnabled") + } + Shake.configuration.isInspectScreenEnabled = defaults.bool(forKey: "isInspectScreenEnabled") + + + // Feedback type enabled/disabled + if defaults.object(forKey: "isFeedbackTypeEnabled") == nil{ + defaults.set(false, forKey: "isFeedbackTypeEnabled") + } + Shake.configuration.isFeedbackTypeEnabled = defaults.bool(forKey: "isFeedbackTypeEnabled") + + // Feedback type enabled/disabled + if defaults.object(forKey: "shakingThreshold") == nil{ + defaults.set(600, forKey: "shakingThreshold") + } + Shake.configuration.shakingThreshold = defaults.float(forKey: "shakingThreshold") + + Shake.configuration.isCrashReportingEnabled = true + Shake.configuration.isAskForCrashDescriptionEnabled = true + Shake.configuration.setShowIntroMessage = true + Shake.configuration.isInvokedByRightEdgePan = false + Shake.configuration.isAutoVideoRecordingEnabled = false + + Shake.start(clientId: "lEtd511X2gn3qsgR1RWPVEL15RpKbdY0r6x99LFP", clientSecret: "nErTSH6tgNB1dMDAQKQaMNA1d8yD8tEDl82XPrYQEucvG9vFy89JqWZ") + + Shake.registerUser(userId: UIDevice.current.identifierForVendor!.uuidString) + + var userMetadata = [String: String]() + + userMetadata = [ + "first_name": "John", + "last_name": "Doe", + "email": "john.doe@email.com", + "status": "Active", + "cartItems": "3", + "cartTotal": "$25.33" + ] + + Shake.updateUserMetadata(userMetadata) + + return true + } + + // MARK: UISceneSession Lifecycle + + @available(iOS 13.0, *) + func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { + // Called when a new scene session is being created. + // Use this method to select a configuration to create the new scene with. + return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) + } + + @available(iOS 13.0, *) + func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { + // Called when the user discards a scene session. + // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. + // Use this method to release any resources that were specific to the discarded scenes, as they will not return. + } + + +} + diff --git a/shake-demo-ios/Assets.xcassets/AccentColor.colorset/Contents.json b/shake-demo-ios/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/1024.png b/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/1024.png new file mode 100644 index 0000000000000000000000000000000000000000..ccf7f496f303a2b63d861d8c748df854b3f0fc27 GIT binary patch literal 95824 zcmeGEWmuJ8^F9v47G%>Up>#_l(nu&EC9QO+Akqzz8w3PIS{ebBPDMgM*r-TL=cc>a z(zWBi_{9CapWo}}<$ZV@;tQ^8U2A66Ip;Yu%V=F~RZ^lGL^wD&r0QzQ`Zzdv;GcLn z(5v7FjEO%C{J{0pSG|W**~hqngTsoWu6+053(M^pg1|>B=+iw{5Aa7~vR6@UqBG}p z6!E~A-p&BoR==rZ1(wXrY^1IZVOlF_>gbGLyW32lOG796lbe;F5HAU5GJpp=?kS{+ zmmJ`^+h7;ixAlwot!K{KMUVo);aQGn4v&Dm$CDyA)({*B^uPZKslfkn6KBFdP@N1H zk3tdWzy8t+f#66&{(pZR2SP@Xhch2?ms{ok`E9(LIBw+s{pQPs=5cU|aLDLw^p*en z#o$Ts>XZNHOaAxj{~6@J;_rVE^1mbV7g+rdL;fGk{+~hqXOREP)c=1?yPskdCkB;U zPRq0@cdVE%-aW-0p22(pWlk1DEq3yY-uTO0EkT9^^OIGAD;&9G#+@ z8eP1YhRZKx_br*pQ0?)aW6TYB6p9W${i0ivWt;t(c7cjhh =)R7$9_xY~epEy4s^}t15f*f%GuI;d2CZr+@aZI9p4a!kH-OfK7JQn;xqC%lUA6b?*Y;pA78d>Sy|Z1~QG*v>&7R10Q7vgDCUraW zpqox@POKaQ-ig(Ys(G4Kh}A#R^fZh0@~WF$QRrL_4Y9?)iDT@u4rRo}>*b^1URZSR zh>>K!duJDK@9W~PrMO`X58oXD{U1N47m0jhG|{FP(mzg+KiIjpI~5{Tqcqvctd=Ak zOWPv;VhW1&_kK&JJ2qeVHJo^m} zM4JLiOq@2+DHa{~U_3Z(uQ)ddPDUQ@1;LeO|LZ7PM=3sajJRePTuK8$$eNOFBx_T+ zRpa2}@WjhEaLl`fLXB$Llnd3%c`QDR_9MuTwjM_IB*_0wE!&AkB+{O%gaoDVzu8Hj zrEp6J4@QzoZLrTj#5H;m&iR5sUEeG9SV?Yl?NLzCEa`IW<#$^fh9+ftSC^dHe|e>9 z4mGv}pSu#70J!D64J5HrYJ(<)t@*=M^(PNgIq%y+{x%s7gqEV%QTnEI0L$A|pRuc- zTHPo=`~vnec4~#v;o@lvQ7|P65b9k|q7c`mYR*7ZN&j=wS{or{#4HKjuOM68ip$V+ zU9cP>K|}(DVxA-JQMdw^PdcZHt$i|DN@uQ8c#-5EcKqpWYloljYtx$vS8(wTDf4jh z;yEf{^BB>;@L1@AOa1;ogx*afwEBFf`u+N?I>Ke z3GV+Rmr5?1=7PzeJVD}bZ&`8Y)e$_L!t-DaQJjZd!-3QRKL7t3@ad(0Iga^hAJt#4-juQ(reTxpKK z(@01kBr7I2^~o4yz$9fgn_UsNm6t;+2TFf4kM?jYO+zexJvl@J#%UA3Xt>&o_B24mp=EQSMgA6wGNfvTPlE6*(Wi|jm+n4 z{72qV@RnL~m}%sML2&U(m{_7!^r+Iw__$iX@V1LP{S7*jU!cIj1K>}Q(>68)y(!UkCA~cr@@6~HRlH3b7d;F znt&&=#b<4{+(M;vT)VUz6o;1DrOaO*{$sb+Zh%Et-W1X^L+#KBN@z3=en`TnVO~f( zu?=Sq+hms~*ASCq;M(Ee01wb|opWHske6krMX6})`BhvyLR}oUu@}h|SMZ;(4|B@e zRvt#PAX~T9um9u8ZEjuNz4zNvhlMjk>@0XB0JyB7x8Jc++`z4^&CNsw%>#yZ0K2-o1oFWs9mR7M=tg=Te&+Y8X{MY*< z35%oQd^n((qSy~&{IEB^j1rom_#$2NRe=Tj73zKx6A~|wH~&U6JhQyY24lnBAVq|1 zX4nkP4u^FB_@X+NCsZ{b6~Fn0kmxiSCw=&`lg=#tpNPm*3{Wi-;6IHKt2JbQi35>= z>f#LGCUR4V=;vAexaPdivhey=wb}W-e?=k*opH;WtNzqOn-_4es1OSPOB3EUT|KWL zj}dJ!-5~*n)%zO%!fWdqzQf1Vo_$i`pO^0@0`I0wE~J2_DrOhOljy)7CVh;&T1Jde z`S{zpt@d2UBhQQFCX|%|4{ZCcVu3o|A=NsAg5LcjOzPJk9ET1`KL4S!!-SmNs+vxw z$#)voY3*HHL@WaF!b2=B*Rtj8`soA7Q2$cnjFI}!15HG2zXEJeC*(bf-NWvn4q0|G zx&7FzZ-Au=uMkv(1hY;)P}CaBn%c^5 zs4z4|IOG>pXlG72<~LZNJ>MN8N023+Bj6j>1rz9pt&*0$aEb?i%5SsNG)0N*-EZHR zA>CmM2~ol~-*t>jv`u{B6?r$&v@MHP5lPg!kx*M zfMlgnHHOdu05Z^ba&jDQ59hbpe4{#kVH3>GQgxHh8dI<6j|VDlnv!Wa8$^%PGmmhe zF+%CtfEhTsWMZx(Jih&a>pEt+f) zOe(_NchaVSiV?>($-OA)wGz=WHO;)2%Sn03lt77->BW#lWUHSNhJDk_oa}%|tj-Wn zw9KC84#0%wPN%iTHo~g zQEjP{FY8whn&j0rD0grAs`;UPcI?RT-cUrvXq*I1M^<)1GKlUQs8Pk{wc=MafT=V93GppM} zYeZ|VdR6h=sBpEs+GfkFbt3@l`{y%51E#be)YiucA&;pFwf>BjT_7Yc+$Rw>R)P~9 zz=_axwmhxmwaQB>w^vdmiQpcxlP>Eh2Psf8T)TdbKj#bM$bC+D9J)l^2=ocG}zuAZNM ze6YZyfC37k7~*FBDg+K$IuEk)?}$A(5$z+_RTP}{Efz8&8(Vcq4kp7pyrvelTNacH zTh2m{guka+QXl$4i~yidKwRv)FBe%qE?c*gRddfZam4v zM&Bx*s(!F*C8d*TmKjFH9Lo-JBgjFA(+RW`r~07_8)@BnZC`YWK7{!HsLDAkCThu-P$nfZ=0s3 zcJN~!39c5=9vQ@3;QI@p554_PHx%&wrN;qK-382v-Abx4n6$(S+r$tRQrKk zv2+;^%3-l8SgbCUpjP-seM`vHirjfcu!B<}XUB!*0{QS$7J;pU1Y8L8P?zsY__+5l7Vg-YLU~|+?e)K#}f@Z0VS)n$fWPV%u84ZTr5>4){==`#a$UHI%APXcw0;?1J1w2uFx-Ew&5 zyBuYIE^=1ORL)1JgQ`?=HenfeAHGqmLA2|vX=&~sI}O*J@e2x%J%v68N}PlifQ*RL z%%qvMNBa>_NWHV_SEZY-)H2w@Mjd#|=9rgrp3gc#-1VAki_SJnT3jEu2t>zdNSdX$ zg@GahO_c83YCsVG9*aqS|B`pKf9;%*s`13aIBH4x<>!$u#P8haQ>faSx`~K4cPQMl z!PYuRr3nc%t!$fzr#=af6K9-C7*0Zg-u-(QpMpc{BED znU>s5FPnYU*6)yog$~-4gNhbp)*r{IorpdVGcwD5Hmx%$1W&1WX3(=+?C9m2leH{kKW;Fn7!hO$5K zBs$be=X`n|*pdA`L#z~0$lk>dvl^+#Fpgc*jj?dx|I=Zo?y$X(yY%JP4$(fxO-Bz( zaiCp!^9&Iuf}M21(*V5;f_Ydfp^51)5{r$WUPBV>sGj~}P|Uu)LI-JT+XM+(_5 zyTDK{166s@dP1KUeFDDUP>dh1&xGYm8p{QKp4smXLrB1yi0bIadF23Tv0Z}J<3eg# zq6dAapE*^@Yo9tau01q`TL5XF-2EzWW~%Tm8ZYU|?HZ%gTGwOXvq!igAc`s0OG0{R zjvKmK&V8%|yVqhpjt$Vlp0TeF zqvF3NBZ)m!6@_t~Z^_3aT!hWd-UttEWvx%yH_0`ZYdi5wuVfvnc0{W|Qzdk#P$gY3 zM}{dBzT+Evx=>x9uAxWJ0r(2u&=b|JaLl-=kjuv_LZy9)-}X=P-xrLmS8gDsLXBNF z2aQhRzjfzQ%+PTFg_hR=S$O<-(Qt0Vac=9vaNcNcBcRzuFXq_Y%SzFCsmSo)MA;X6 zqq#p2n`~tJ{R_a8dj1_YYY6~d&lo5dZ`CU1%NiDvoPKWePgi{Bke4}CYHKw4M6V3x zNzb29?p(WeVQ3{csT0>j<(lvRrtLDNA3kW^!Jzn2n*ku}_z(4GDaj=swV&slHgWh5 zY4leGZS3HG2nGr;1bwNrU~jr~RYM1x;k+Qdj(=7O5Pziq#nLB5aG?a25IIUs35?Y7 zjA_P4N9+6_#EKJY_dV@u@h|11_L{-@XBMEUW!z|P&vTuX!e?6?cGL|kj*sY{u3LgMq>ef&3Yw-?r8xo#a(G!4TtU0)+3?djt!$D? zf9|NGbR4BswE-rpVd1 z%_+I9i$x)>G??#6IU*0tf~+cjrjzziT9)AT=#f+cu1CYxGM8(cWfm7QN zjylKjcSeoitI*hxo*lE_R?Vxf?JqU^3gees@axsg0vw-*tkdA)-4jy8WnETM#Cb-m z_L^D1Kopakp(J*vu5mT2x?tI)#D!1nn`@aD{gQg>n~`WyR@)CY`46aSpZ}H82dHtK z%bGt{{kf={GML+n{4!&yW9;1|A*#X2t*wl98e3}Cu}qBU$NVZ^prnI9={Z3OkM()u z=fc)}+;Me{UZ~?$mhfW!8~dC^f7mwO#~N1h3A&;mM2&g#HhR$~WBsX)<1m#R zB#ug#e@B(kA|3hX-nux$h@(lP4AJ$fL$z)V~aZ;H*l49^r^~;k(Keo30TbYim`^wq19g(QeiL zctOeWA08&aae&^j7?_W7*`olHC&v(q;FT4-xPoYHjr(wF5Dky|*v0rlF z#~)fo$%nbmR4wO>V)p$$j`##@*V_$<;8kUbfUHM(6bqlM+uP#Xcz0%2!-HK(A!w3G znNtO-0!Tf#`Ml))68!1Pn;DsVSkAuTj=cvgYcssD6*O^Px>ZNy$bc3SB&;Q$i^Mx0 zSDhoI^;YOp;)AoCO-JgWT6P8EgUMY9J)N_Uqiu5^vg*qxPv1+Nxw^X6&rBpx0BOdd zh^xq=YWg|4b)Y83#%)MiqKo^F*zAuues(dweUP{OFp!BatmM8(zW+Og zkfSdxeBz;Oa>A55gwir`;zgob*7hu72qADHn9j3RC-5{Ilz&5AfPvQ~Xm}8hTDNw& zhHt~zn2o+!7@&r}WlNl~q|2ytleFlcbI1BDzepB?_)tD~C`oY;pLD&M)ZG|_;Dnb; zSZ!u%=wvLWzyD%0)F~|*+;-;km^I!7T8xh#DZ}h`x@0>g8jz*XIVNMjH9H;HC9-im zzR{a0g;eH zJR-*YcJmyKuz`Q8Q|xvm$}gADK_JW;o$hoq2q)JTp*=YrTPKA2*YE2L65sQ|7k0&UW3tqm(jKMN+OElaCXFy zi~ksvqdjVit37!{>$)~DyfxIz z%ZD*I2yV=`6*RY*=2-RzIa<-ARpgmS$aYGcY*b5ZYXg9`3-txu4 z+zKXHb&r$>eVDikPflsP-kWY- zk6X^s`g%=k>-;EE!IZm%lH#|NxZ@3VF6=b@MP>c*@F&A#8#$CeECtP-$S%A91%$34 z9V_2^rOTjYa`ln|;A9B(@=!2j2n`dU@0l+!AK=rqMU5e056MPXu6~XjkYL)_wM>8#nd`NKS(cX8o)4{qPp=1lgSDWpUo= zU1cF*R<-=659D|C?wXo*&sXDTap%!}6+?`WKI#G5)iVC1QebMsw4$IYE7N3Q2XBln zQ}g1GZS`>w)@dV6LhRw=fvWEip|q&;7AwJBx@TXUQH>v_6YJHpP(}~ae7yNC^&Rw7 z5S(XMQK3(bt(}KGTpWYaRZ%SEGn@>snd{F#y%WU@M`Cr`?Sg0O&JyV%-zhFhVCgx# zb3pTJ1jISX$}+16E&GKr1Kr-qc@%{GbHF7bGbr$wQZ)ge{aa-Hp6A&4H`PZ*RVU5| zrH#TfXhcf!CJ}p9WoO8&z~P?y-~MJz&!v*8QM$+%sB#uF8E;yE=Eo zA;GQ39e?P&B>4$>)4-TY`49e&AAwb8Wzn#&{HN%QhRC(K7iyLksPqgaP6?m_LCX*) zi-gnOOOS#lkrVU^cG6R@lC%oE1P&5jq)$KJesw6V*>~f}U{6`f2Fnu@OTKV}V*oK$ z+}wgR3k9hc#CT}2>uH78p$-do@(76UXPQ-C#rPw%%jGECRA0BX$9xJ6Bi~cdnPFoQ zs7K1k$$fqF^%^eTOIAR5p~YhM+M(rdCq+3|Af8u?JRizx%%#5EFOaFfalU$={F_?9 zet&34GTvrpPkv#Garf5oY2DN?H|lI?cJP_WtHH_Jw)@2mm&xLT;mMlYs}M<3P7UX! zwQ{BxI?`W%|BgkRU>H2oWS6e8Y68_10k&&Ea^)_bSu4$MDmc=nPuLB@W*&7;DHzwQ zNNm^7IfhezseEg%R7KVxjLS+P5E>WfQ{pfIHVZGD2e=tnVtZXO zS+5yxJNCybrmUh_&kz})>yY)@+i{qLRI3kD`QZA#-0kptB+zyCJi%TgD^41OK~U|@ zT%fgeM#|7Wvi?Oj-T8Vg&M1BVqk1#{Wltj9w5j?`xTIlt+8z1$nxK>W&ihs-7VT(I zrh?J~anb7LAwv?;3YZTUuMGb+3kJm6aadJPPIo-%&h3eJx6a7xM0NK^Mq(xP`yCG^o&S~m*+Ksle98H6$` zCkW+xKeUVP6XmzZy^Ti0p4+6cZS=%dVRSlCuO6@jJFDHu##P&RvIx6=6kjzjh?h+US-LHQifyAlFa4tWtN;j zWjn{&XAgxNj1)2gPsOpbykSf*m=u2N3RSdW)mg`@< zs*(pJe3gNkeMpaWcFIbdQogW$mZj$Z=GYHv{UTOLqAu zjnl!npn�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

{bAN;kSZU$+y%8Lc%!vwfFUj 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 @X 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

o3ZGJ|tVgH(- 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 z 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 H=T|hTrxmgCioFF*B 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 SHnJGtkAjTKlM*T8fd3E7R^ZG4 literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/120-1.png b/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/120-1.png new file mode 100644 index 0000000000000000000000000000000000000000..233925583d778a45e28880006a271dfc40bc9859 GIT binary patch literal 7056 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 literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/167.png b/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/167.png new file mode 100644 index 0000000000000000000000000000000000000000..8b5fc852e9f159ba3992e8c8f15ac9de1b3333cb GIT binary patch literal 11150 zcmbVS^H*kH7jLqgnlO2?YihEMr+Tt&+txHS*?h8X+jdQ^C)@Vh_g{E_xOcC0?z;P& zjdiv@f8~J^D2RB75D*Y3Qj(&IpS0+|2OjqG?TjsR`boYxDM|=KR8A5cK|uU~kP;PA zcGo@Afpb?DTlB44J}rFMkRtglA3rUWuZAvGt-z1f)5}B~cuB+lS{|wocZyY$cj_&Pc(Z>L{NJ)k;PLDd-?^Kd3 zcQ{k%B6KL&vd@1|TrDG@eg)2jehFIeM+d?3unh*__E_}$_gHqr1A{W~cDf_Lr{M3^ zwe=EG7M((tIXVGzfE`3FC#EGW=fH}8NR~!T;Ah92>gdyD%g=S@Rm3(Mm<>N(3h6u|$ z3F~j*`WerjDFgWSvzLa}UhZCqC@R0Oi0wmFKjk2}qNXRI+;OKh4R6zw-G zYeISh%Z$HvjRJG8goyY0_F(cns$MVl`NI9cXnQ^_4;6kum2uuKfPJ*mI48gM{UTAL zxU$5$c5M)afeqEZ{wgG|ff!W&1~$Zj#%Y`MjNc>(RHprAJ}#RxlLE-nMEcx9*5QXI zVds;JiIelPaVjhf5Ykkj%R|;PrFN9S7*k9d|EYa8TsAIeJ{00m@JIbsP+mh9w5S%6 zTgOA5T!1Ma);Me7bXqzf3xm3WHpSxT143F$(CUkK>p6<`dV_A3&WTu3kH3g1`A0ngqUH^Afa(k!dq*Dni8{j7R0!qSShp zQu3dr3#EP~{j;s835BMDva%=}x^3S>qAuDM8rY=0g1#Jp{RgW5H6sY@?!5*zr`%AP z4_MPKYj^^xc3aizs%|Y^Yf-FAo3Sk<^vR|dDne_o5b_Y^4M>@9=f+x&1q*r-qzYwvpY<8J?UdVR4z2uKQ%FaWj4A%$*%$xs29?6 zc+4(lK5cwRAoq?8vnQqP>lBINo$=B=RS^BD4|e5JF}87r`JWt%{({BKYSLaJn&`5} zYTP=5whAA|s_8nL$A=|+vt{kI*I|sLTER^!JtYcSd0m^{>S|{#Si8xE+12DQ9uy

fI~HV5mpR|r_L;J_noDB#iZ5^V6qaoED`{TRWt3AxwYvc9 zdtK#so1%qUy-Vb2Gb{O{MBZJTq90x4xE=$4hiQNb-Rg>&3@Ag3d32z=1Uq^ zn;4{1*$t(??BPMYxeIZs6OG~(u#@`94)D%+6AOzQ;Z?c2fI|ALWFsb-^9OFVDE{x3 z3gLmzi7|qb5aSF0QC$a&Qp?KCJ{Po31fSl)9JfPiALnSz`R)}U%!*PP;-l}wL#jb3g7VKPm8o}R* zMt4kK0EW+<>rC96u`FjM@y6vPXx*qjM;c?Pg!~!puZ||U!VwnNrbH#`N+ur_5Z~eJ z4GA245AK`6cX&uxhQIyh2jp(c$NEL3_Z~_1tX(m(NDDsQX2*R;6~W4Sv7hxCW{6DQ z!(H^Efm|Dy5|@%!acQZC+{dJntTMC^qX!BrXo$xj{OIqhs#g?uCWQLcP&ndPY4bSL z!{k8j`OVt8;&Q&vu4hA>_w~1}7krBI%iO;bm2R%)IYV`;J-eV<>B+6by@lG=JBO(5 zeEw|-(vp^3T{s<0kw!18a|bLFXf@NDZ8vM>02sf+kJna~3Bt+V+yFLwR0rI6Xw8bWCi8D$KO+JpF}X zo0K%N^$c2uItFP=T!sgGR_;9Xb{@5iEwM_nP`UxdDk8L4--E?9e0BT(l`Suu(dRw zPMRzC@yG{9FaGU)-!@vBLlBUV>4%-3mnrg;*o&VQq)XC=zHGzm>Du}9XP1?Al1^r5 z!$@Fz_=sVcsns{@WxsB-cS>uGxW2tzxpr6%v|N>Zg_{zPAJF=0R%`$arvGe z#kinRl3Cev_cBsb-Q>E^!dKSQql8ZZMa8~VUEcn_MRv7I@WcUAW*~FQJVMGuZD{9n z%i<38bv75w%B)}@GprRB?ZfRu7OLX>YisByTd(6#*avFlUGW#bHpK%`$($SBJEL|jR) z2rS_rHsq|-O?sE~qOdetHF_7FXfOqazG2w=|C+tl>JHa~FT8ux!O|l|_T;AF(4*I3 zhD1Er<33Pto@fWxI%CxyLrss{Ay}Wx$Npm;`#pzDikP%0p(8r&>lMbU&fYgVOf}=3 z@QhKaFDUT^imBTr8hYJB9b+gHn}3~n^3@(nmUMa@Re8IJHi%jY#e8mVcphC|l6!sX z;Rdl`iiU9yM&_AfRoy`)tAAseq$m3vMMKWI2sEi#nfjjBf>tH?Y5G@F{-TbcWo$&` z75PaRrai7V6~1a@gFZac&chgGyIveYnm@RVy`+pHGYDx4{I5T@btG^e>i-5s)TaMl;#d zT!(v1#CFOWDu3AgWcDWus5#L5(`ghST9Y2HX(4!vsBFipWBMAjT2PoFPEL9_D^W3meH7Id>#Ao6$^@>E=j zJ=T{WZic=d8NVgswkO`I3snILjCH@;eSPE1c!zSD6s=?~F&N*oc|2i#X`LFJMUS3( z{9YN=sjYn~Q1fNe#v^s?-~{XUp7f%_Q)oc@-{G>*_V9@Qe}ZNHbCbO|P_LQb$&vTp zSk&}gzIUuDCCn`sjxjsT(WpZ{f5~t<4Qdr$r$pvdg>6Qo-U)$p_W41$B)dGIC5ed4>^)@tmaRQ(v(U1JZds(344fp#wehx`1AWsC78dL$Jw z9aQ+3+&CStb_b)`#bdG(St5XQDawoABu>n(mqFTGSZaW)8MNpf;kZ|#s{t4*bUb>$ zsMYC_=g6|Fo&AP2ejXN)vViym{^<{?rL-673k$q>O_M(ev18z~emE$Y zHXHs{%wUtF@%KVG?=NqyV_9A7tbnmjYK_Yl80)6?4Fjl}-H-lB+EuI5=uY1pO)OAu z8CAg?e`YVgcT>~#VE=Hkpek>4Tx~P}o0m>m*vK?0q_9G`+74O{nc6T80&$+jSixDpgMD?CDdTpUHn3)4W$DW)d3Ej_#*?3CKYk~K6$qpc}4BELP8nm@7R@~5L# z;U6kXj3|riDbGDw=O!hwF7rpghk<++bNkj08VVq!xurO1a#J32JvXPAa4^c`}<1^=G0{Fw0{7GAdLfLwC~%A&Z|cZ;heFFMbJQWrKseOF3jzk zxtD6gySZjXjh>TQ5ueRtFu6^*DTr*tXoQ%o?h)B3?%5?Xcv!H;7}^iyt;4?Do4wJr zQ(0r^z@7E+jGSw@WRguY?l#h%XkUK-H~v<0Kvn*BzkmwEztM*W&1n(S(Qewa{wFIj zQqfLAM>jkdu~CSnc8K)1dnA~Tqf$B1&}m*Vf4_Do(H8d^UL37Gi>|1?UA`7f^Cwg+ zmd~~~SE7I0w{!LKi|_JEXRWI}R&lrfPjJ5dmSh%J^*`E8x4Am`jGW?x21UclLF2+k zhygqg1oF5EnpSc`W(8Vn>rG{bPXAR15B(XcDu<4%`q?>!9WFld>>-0C6sN2 zLFrj5u|tYHNG7DKx%tU6-aojaTMG_?Y2S$ktp)E9GZ3*jF!QOxLkXQ5hGA^^JKii22G6BCEJ(qGHJ zDz5$XOJH=ksX2(r9EuXlVm)P!I2MTKSr;p4QSW$nSWdb3?f7HRBVw3+5;}s3hiP36 z&i|sB#znGrAe57q!bNdF;s0-5RS%Acwvn6JFf}Gz$JL(Y5?UEs!BHK6K_^_s|HSmp-}~T-5xbD&j*JJ&my{UO7j+kaSHj9u)g_aqIw0;o za(1;aHCu%^3Y*g$tAcW7-hpT&@Cx9HPQq@CgONip@o?UL1$tlCy`s;Sm&h6R!oL>? z*$QEA=-#kS;@hLEWHP2*ck~3s6OE2lGPQcGG2D9BXmsruqOQ8t#h*Y#MC%7t)?6z6 z#jobr7ctG+uq8?1v7tDvcna2WBYKDJI*s8d%uIWMeMTg|4Qq48v-7F{3OyesYy$~m z#TA+~Lf;*C%m1MZ7>&^!=BL6$h_Om}?V76W`TIL7Mg0(+7ZYtGhahlm`m#tM$!Jl* z^$`|V+_(qs@v7q)jc7Fh%c?)3_8tPv4h2+n<#=cV+c0IBR2m4EmX77)=eH}m`i=|f z>}RV{)c^*xqPyr-w)AJFhuiFjii>{RSKk-GaALKkkKoVKAcqrcz-ZxnRhG;0bPgmF zlA{=YwpmI5;qVu5`99RqVYG^0U7n1lb$G)E?|rcY&R=^WOw_I^prjZhA8g1nyDvLm z>%*T0G~!^gKn|H)neXVI8EB9pZWIq7!Ydt;YNE7Z5M_(MZeUcOuD?sm{Imd{T#d&! z00NRy$3gLnDmI_}>dE0k@P)M_&0fMTxuWLaWPtNnF>VU83ID|dYC}VVyVb-Tr?<8M zg>^GwBZf#i6xGqlGA;DhhSP6v#&0+GVCz99nLCW1RHB{G(veVVZ#Z)g24fDbs2!Qq z<0;7G0%*Pn-A2r-SIbq`=k5=i4PTAy_Vw_L4+@Q*B#<1KkLcY_Z4z^21LG6UYy=?I z*NPC1-n0i{$#-iWyp(fe09awupLV%=&~P>3qScah`}9Vl*dP`z+A;K&rPwmU=t&*U z01g39M6m%5-NdLxH7oB;(;lf&L|5EsL8=95pnd@gSc5*MNcvG6`UIqAf>H- z?L9JX)N)gJ;)7P#o6BjW;pQICavMMmM9TK}oxc{Pj9;NLl9bSE@|96c95|JT(i{Uk{MUp^Tn zowTn_?tNND?=Ns1VgC&-2VY`lK5)EM4@5nj(Bn#qm^R4k4BC(Uih!m)$T zu8bU@NMAb)I3d@#oNV;YUQGO{O{=Blbf2&%Y=S@|)F&ap9~Fjp&oo|PWV*Gn`e^H? zqLQfI=}8hLR;Okt0!?fua|Q{zjj8-+5Qh^FuQR$FaHEl)QhtuALqUaJk?Oti{O1qO ztgF!~f~$oMkChoOs|!~9x=6D~uJ(D_(ar@I2BzeK;V#xs_ z^N&BSP{3IlEboHeDpF_49XRbtqYL~JZT7?o>>Q)ye>>e=u7ON`Rp)W>@C$RhGmURq zhI8j=#>?1KTEUmLLGFfMzu^Zj^1J8ikRw>Bf%8*OPCbzz37!&XEEUMsf0!g!Pa$~0 z$@F!9-9sKnkz97#_YtM4kp_f>L=F1HFPB*v<@+@4`7QYc`cR&n9+GHWCX7T$c%i;W zJ@DJTc*l^mRDyXJ@UVF;o>0%;nlOh~lTFs8322S%g*?1T9c*}N_ zwuF;RzVbRs6u6QHj5T}CD5%Nw?y;m=0&njKoga~BDipVZu-)^FJtb@nLUtD~Skh)3 zhx|>fz*_Jg%a8bg-GkX=9+iPTjafq8VEj7s;}o%G8jznwOhz)jiQ?q2K~Ygl$)@{w z+XcnBd#J(P;#jp2F;8%GjK8X>WipsNLosk=L-&C$Y07q*Plcw?a)3Vf(l9K@tv0p_ zeRGk6Cp$jET$q@ui-j@WFQR(?Bn8EjZal?YjyRLru}u0qSG93Q*^L`RT-aC=!5hNmxZ~QZ1mmBssP~E23s(5}nn$9r5mU9V#oTICC}0`^0Q2AK4gWyg3QD{r+h)l1qv#mu22Y52 z1L_=xJi5MBy!(VeQdy*<9vsE!{+=|m?Jv-FrT(3)^r?KD5(8((J-JiPfyv7);{%#6 z^XpvxJo#@!euHjWdv@tWnNI|NPnDb%XM>AWe!@qfiKZGABW*L4!459L>F+7@@>FZy{OTEZ-0|DYlPmA~=#lXg_yR}i0(B9MCm zjTEvk02*T237)vlkN`^gWQDJBn1$tSLkt7mx=q)Ag67MS;sO%XhBr8(zVqTb6$y+b ziXhun=>$S4oMQ3|L#F*L5ebTSJ~m&*-O~LCSV`#GY)g2-nKY}_*&!(R{tP8r(rD+( z3N1F8LS>efT|7k#QONmU{d`U1=Wy-~@6fJa26?FXB4~D=Z2d4ho{nFlcX}yYuVBxi z*uIH`z)>BkB#Rm_9|@4rWMyOyE^;Y`1r^oF6J^M5{K=R(rNw7N?Zgli8?{k_rV?`; zoyq&~Ko@zD1EavW)5@dNa#liTP`IDG`hHjCc6lIl->Fd6kWk6l$9?mrMH4i9ytTJ1Aq0z&HDaLU7r1U5c{)n$}4WKn`hWi!sY2Pi2=Biog{Gq zj-JN(lX)=;hf)dnDXO>xes{l~=nJBk3-Z>-7_DfI5GiQ6+T zdhPz}a7$nO+Z&%>H{d75SL$b4^NJ4W)vcZibQBSzNHq(wyBxGIHD6$=Y@Lv+?UmL566|tvf1gBWQ6Gr|oU~sJLVkzlSD|Yew^O9wf|5 zJs%|Y&iF=-r2E@2&UZ-9OqE$<9rRk@c{zFi`fFK7qN`8NZ`e%7_w+rPx%oo(3=34Z{Wv@}?HLq0fT{|E{qSFLw zeE^?{zX3bSb(HH&%j=FcFg_^doamuf`iH{zz3d|GTSwL(#_YXNg<;@tewp4-2TIFg zjj;Efgl zo(w`Uf;E++r7Rf)B*&QHjLiCIVZu zk`l0FoG_T;E}SJqRMGc3-m>gMPz`L0OOn{_ZG2sh;y{JZ`VH&TH#+wyZjT15&{{8+ zy*^L4@{KQria7*hQ$#n_5re^O z^~Z?RZ8kYz2sF@$C_^%d|j_sHrCJaI{csqWRB|&bP&tR z+(1E;sJ!6Xxx4G+CkuH>*Gd?^P>5-z;gQ7W^%)b+v9=a7zh$48x|Y?b)?ySCZ`_Idp#zr$!2@@g4dpr z@DK^ukVeUv>~dqH#+HgIEv2iutjH-Y?c4~NpBzNLU|h{k>4@@|g0PWd39QpyRenr- zUg(J6j}Pfq+2b{SOPkz!JNwD`D#jAcvfM=cC-(Ko}*G0c1)u z(W^rNYN#b{0Yz$F(sAe@2vVPYL=RGh{TSF7j2{RovJ?PBab0PVzQ?Bxv2F{SJ%2S~ zCDew;o$iB2n?W4CG|_btYS2Ddko@>h00yF&7y+|^~X!c0SQlV2|6`x=f<{O7?J3T zv%YLaz%&%Qq|B@-*$P$+NbK=shj(Av$$~D zw=O$N$W5inrye$XDx8s)8juSsA2x(Pm^nxlHP8@E%u3!R7?ct zQNxA^!;B%|FFHI-C{@n%58>= z)ad=F5`8^o?QVn1OzD}-nV&u=!cPJ}YBY-ZDScd}JP_}h`B)zr=bP2c{S4zxuH+?z z1Z{1g!53t-sCu*%;Mj9YaUnX0Mi+erv%_ODIrGi56h9)$o+&xXfxSn8@-l6etUlY} zhl@H~{BM3%MI?ObJ}_Jc{d_5GDqQqN_q__#^oDJlN8GyT@2+T*Uwq{x6WN?|`rA7= z)31KjAuJ3K5Ile7CG6EFjo}SgWHJ$ql6^y}DdCApSg(K6Ht!bXb)!~M(*#iR9&8m>!hXa=;^gkTr8>4VpPsEK6-sa9pR)rOfD1Baz25KLVPAB z#(VkOGiHx10%Ak-y^D-J76zsvU*3^&m>V!=0{WGdl>YW5Z%X(scPSYw5#CP{_32k` zEmmP3(eqtc6H?E)=H}L_=l><0>T~NPOTbM9@ee-*iD6@_J~}_4rlgH#>7Q~}qZ50R zB;{WHAuiPwY=bJQQ^6_WOezV>dan}tYohYB)xDM-)zk zyosJD#CB(#EG8X`yiy_!uXYgl3=fj2N#DKARnhdN;%AZjb+!EPAW1hxlxuXzR$08sG{zoF70X(9a9g%)noU(z}`fcRLs^6fbC zAW(GA*!<-|L>aA8DJemLV6k8wxsqyw4XUpqz^wlM53fdwZBeuP-yjh?J1VLBx9t(y z(4m^}6MK>j9~;SsH66%jvhFsVcI`m$wz}I!>C097wEg=)e!^AIcR2B=!JWFju|Zb& zRi{h0_J7UA4Xmgjv$j6VK_5mQU%&`{*Bu#pN+9ISYQ)VEdYc)kE4tNm zt#%0sPV%o>RVk3nYQ5G53Lqg4438>x#(!+)PJJbq&Y<(X$l1I)H>;?#oCU97a(0|P z=d{5M)Kq`Vwq)I(rM0ly$&NpWU87I6P%dVp3n*!Xc6Dv6Zg9mYT^h`|^Q5lJixbt< zo2uhE_Ihp3(4jcjJU>z*>dRNS{^te7Wb*8OANis+k5qD{)PQSGYvNs3U;QVe0*am? zeZNqg$XU~gtscAZXH)UZyk@CEsb%LvbtCq4k5lwtb=n8V{a#&By`}Ka;V`B`1-pvT z78#u&Zj_k$XIg!A2J6}$E9vEPS&v|Uf0=?R*EVQSMOjS-HT3U`X5^znjAljPzu8;j zpZ|gsiAU$9#J`p2f?hGn%?3#+$WV(6-AE{YsTPm@`1nbm@&XGYSo{5WRQ>jZK`ywW$P@9{ptlY2C8OyOA#r1HQL}5E(^$R`gYo3$dv#owLm^ASLdN@ext9;M%2QPiF4zuNm7%9ySoPPpYXK&yxjM9xn6A>x`0?@0;e195M36< zafXFvSCx75r&M1pmF2st%eY$a&w(Zh$sTgCuczV)ZbHHl)4Z!-KXr@*kB$_3aOb-P zmha0>Ss|-U5<4s$P|L{<`SA94y?~>OOF%)x{c)+}AYw(_AK=15;xOH$sHZ6}BRTO< z%OjNJNNaYJ!Dr91cVYmJ$d=#U?JhVZoTJs{2#Ezb9YFVwaj>UYAbq7>W94&%B7v3? z84GnDSQf%CUQb)RAgE$e$J?~=``@gO9K)N2&V!OxkfydCdY(fFieRpPP3<*C&Xu~> z@+Wf~O_Z+DkeF^yN)c#ElnMQAuA4@R6i(AHMs6FNcG;gRclT>J7?Y9m&q#_|P5GK!cNe6HjSKl_l6X{s(~RTf?gl9hI=Kd$w*Wsgnb z;AR?(nz>W_?r2dij}K*zy}Am|?)s|Yvyx(ellG`F?zt8@&9r7ICM4qI75?$7T*2Sm}HaMkHyP#3!PZ zJz6(X@h;gXE%y(danUEtSd;)AC Nq{M)tmBRXg{{vaX?L`0p literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/180.png b/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/180.png new file mode 100644 index 0000000000000000000000000000000000000000..409f2f5a621d0f46c7c66b13aaad9549905b46e7 GIT binary patch literal 11816 zcmXY1V{~Or)6GpLwv&l%+xEn^ZB6Xl*qqq5ZBFcD!ihDp{oZGN-;Zh9B??wMgMSJJMhqq+E~4gX zaG?+FrarRrnUtlw;B$p34Ngvezul!0O0|YkQj}lb|5o#NC@kVx4aEllwA8Ezr!C+j zX-+_qb|fc>y??jO%QA{N-pt7IzMB4HYff=+*<@)kJ7zYME3m`aq&l)Bg7pW2au2|U zJ4eZye9Qa|c|0&J$Vi1S0bsAPNP{d1)f@vzz70gMO3qa9VrI=ZNBETjZ6=(xxgeP&BX+UtC6{jiCWDq)|fihmgP|Y&( zW&AkF(9P?EggzF3YBB%f7$9(PA;EXG;;qnSVuTBN1veWRfpE^)AsO|6y-*%s(?C72 zvC`Jwq^m;N)s;dGPL7&^U5U0jzqvkiQ11_;eVZg1Mx2Hg_1}LMv6GNOe~&|mn#2BR zv>DF@#yRBy495Tr-`%|20ku2QBG$_so8=Q@u@kne@*bfEy3$Rm=|Ij#Wk(WvQ@RRMUd54?MGYz8nn|u z${ITW9bbMvH9THxt*D8MudZ9kvfX#`d;z;6ltaJx?T}(juBMY>u)XdDcyFP)bAWA2 zQ~h2iiq(1FhOSqO4W7OAj{@cpm7+i$b4Fjy3Je`)TMXu}jYMvv+PUDhb%hNwaF!q* zCZQ^Zt~J_LM5MV^8$|>J-yc^46h|M#U>(h@npc)tf`6^{%OLA64F9&M{b^fs@WE9= z)3R={N6>5GIeF?7FM+E52XHUiLbYcy_|pluysUn){DIYCsuZX}TRp#e1z0QJ>VQ^P zR}H)SV@OZnU_6F9i}V~ut$y?$restv(L z$9?)dxtg1|v|+w>6ia?vIpF03zPn}mniRJ)%uFdT?y(p9vQ>b)RJh9JV^lp`+6Nkw zV`OvonOll%&5yWSzwocs#pH*c6df%+Sc?v9YM8+qOf%NtY_q#n++1t0aCHOZaDCrh zSDUcmC?ynx)x=oDWA4yJA01@huIQtt-fKbbkgzb4+c~sc3&biLL5Z5KX7qW9bvavI zXituSFFyn@RnyeEV6~ENIRKu+$P~J~rdUe4inV5Dlo|@+M9^REuNmgx;gD&CZo9$j zCP61Lrza=)=Bx7`d&iR72@^dgIVocrzY;hWXTv&T@vsMpK#%j>2pt{Ur!o09%-FFX zZ)WREcrIFT98ypKE28k;i2L@OWzF3?xsI*`w+qWshacDUfT?Ch&TllGi44`Qa{?}o$3z*0*qp#gRxg01508#T?*u=gN+f4d5(S|23>de zeTfamqNN?A48!|a=$lxc2B8WNhPA1V6{l#dsx3iq>4Vw%|HeE>FV4>=KP1|^BxL>8 zfVz*eWsfm6)$F{pf^wQbuly%8CP54cQ#z@z=IypL> z7bUIDIekAiMFNj7P2ndSMwfR35el9)Tuh!E!l*6BAKo)XcpAg zVgb!hsi}LTY#($XjVG0SG2IcdFL5LV^n&O3Oz=$x#|Hll=#I=B7b}n*L52MaN3<(D@QG5^;&lcEPS*UQH{Z^O-mJnfBP({JKD^r>j}i zRx^q`7j1Pl?hKwV^zPF(uCW-dsJ|J~o^1G6^p*sH$O#^6>!W!4F_wpZ?7Lk!c;+!N zuy!&}+DG@8+u`&M-#5pnVbuHXuBt;SG20bPvk^JyaiE5R5lK+AnUvEPe=|q-s*!P| zG(g~7td?mwt(MYlDi=2a)&BYVF^reLkmu|B$Kam^xoh z$lwjc^Q=BxhUF>f$8HV70qgUuIDQ}LXa9(LVlL!-p)ffD<+&;JmJ-_{;A(g4#ks_eX&mxP0bS6Z8aOWMciEf+~@ma_Ps{) z`C_e%+xsV1t;KtC>iF^>cv~VLXobhx?xSx4svz@&+A$71;yF_o{~%1S`yk~BbJ}sn zA$&oxjp24VCBv70|5Z^Y7Zg`$%~AT%kZSH%=oC$FLo`G8Lu~Um6Y#^?*g39zF4BZQ8BBo3qli= zBQQDklI-rNb_PQzm*0)$oqtGMaOwOmB)~rw1ma8slrNAV;enezr7OixGkqx>0uvxL zV^G85z z!&%`|$dz|E_ic9K3H5vV4ywN;%w)q+JqWOLQjVEx(U0w*ESgT3MT-UY5huoZKK>k^ zhyu?3MWzqaVI`D`IsdqZzR%e&_m>O!*vx#Z2^VdZgOfm!N@czEg{G5>)Bb{^(iy!m zPns&i_qjguYEgH4;0cb2m_?Ce`DJu-$10QY7+|YlV01KmcxpI?<#or>Zhc_?*nhC0 zsS72qJ@4?V&yVnA6_e>*_bYvM1|!Xsr}@9>9%z@-yB%|VrZsE)T|i0B1*o!=Z;0mX z7cmn6&pi(#A@hc&E4-+DB}!I98AckO^`$2j{@UM`ZYT7j*WYh*cnhum8FZnCcE`yN zhZ340ClhiyG{;CSi;N@L^q>!uI@>-zgE#@qFEZP1_Gy2}|ja_7zO=Oyswx{gsUf8t^A*=ofdmLoy1&tr1yK%V}~t8G>eSl#}G z@kVd!`|Px{Mcqq6@M_E44{sGk^o8?;#8~$6+b*jFw9e_*PRn0MUY1Cc4ZiEfftN>u zu`*h(Cwu^L_-;Pyv4jH@GvplMkVHRyL#khTtZaj zswX6Umy0B#Nmg}`YXnPrHn|3{@`h{ zR5?8qQFV*BdkxyQE$EkopRiLr4nM90JFwE5iuVT@k+wZ;=2!J{i{7J=`QVv&hF;e?-u`)EQ{G zVd0g5NRaFgR!03~^~)!5Qt9f4B#d4HHso;wKH-~@f(5=$=V)vJWASC5WT!O)ENslK zQ?iVXAn$H`7kAk13DoDdJWN82IGw?EOdE31yX5*I49yoWQhx4v1T$mq7ndS>D!{x& zSG=4lr9gf)JOICd?dVAGNi6xWNDyRg72bH<`cH3WsxT{HtdGU!n%&~*le-(fuBUA0 zGuyfuoyP4M&c5ijKcDz9N=q*>uBajl2!3W#IJ**(`}OhfoICk8_CRfi&z!*99d8H{ zQm4SWq!d$E)?%v@M|EuWu<>ab`O0`hGfaIhscIi8e`z<6k_d$h+S#q1yyhBauc=k8 z^0euJm~4m02Tjvuqz!&W<5A0VL(&0DX6E-d(}xdc%TN4dd~+?vkaiS^a0-jC^eissmx}P!qw6KDygZ-BgtzR4 z`bTzO|c6sF9 z@MhB5dJgGI0B@1I&TJl*G>3d4vhbH@=Zo?3LTvsOzYFIs4rg}@+6cu$Oez0Q-srdi zuuS~RV{Vk)%QokiT#b|c3SAO){>4=aNv(?M>1Ue+e7W_oA=rgw<+6B#AmfIn_Sdw; ztcYp8w1RwT{>gX^EAW=2nx zyqs@o(?q2MfXs4tpEpJmm!Iqi8CE}O9Cc)0fzyE0vcHL$>$JWB|6q#^(03TuHrh>g zr(#86VF^hLI&*|%9L+6$WFo)rrPgfZ4$bxj%v5dDJRl&=vBS@37@u6UMfiyBu?b16 zyPqz0Dhm)wU|%WgJ;KQ?UVq$_3Ga-M&y|Iv%edEjMI?!U>vZK2hB|q0da$3aENSd}u4^2~i3^rHy%+y#xpvvBqL-j!uUTp~ ziI(~Cj5F1dDl~tR!=$;l1T>VeN3{oBl#z8^O9-+y(%d$n(O56YXix@ETObY@0pyG3 z%K`-?1YwrU(Ml3?>>-$0ED-G&UMhdg8)QB%sjzl_;cv3W#FGXw&MwH9$R6=1yBb`6 zigM2m#a{7hypND+^_f#lOgzKKal#WwJ|~DkWWM7bx^waWdyYD(cJqms*eO zKV0uTf4YChYR~=!$j?xuE#U0D=!G*D2hdzWlb=$vvgc3wMIdGV=5TZimZpkyE2O5J zc{Bhoub9A$pMxjup_ctU^&8%4W7vzo^jl7wpmw<7C-V&J=w`^0*gQ3u{C+{a;>h*yv>CCiHBg7`~4(8BXX$JbxKSHM5Fec%yK*h#$3bueB?o{UYo=@&z{bzEA zox0j4iUFG9DAC^qE_aF|0K2?+;J%WZd)^=i6-L3Fq~LH7z@~(Oa-=#aoQz1H(fm;P zXKu><1q-Z)f^TM(V{xxSyO^3`jS4(dB&z;1tyPJo{yI#7A9V>dZ@6 zX6nL%N=hWh<$^w+-Qk48Wbco0cxYZ4rC#fdOOS7^HZS-zuoV{1_o8zuVO)|{DS&gb zLWFMetf|p?D#~S0d=M9@SZIjMNdPV|TPS`qUy}!B0}pgq-wo^iCvc6p{jL-+D8*Qe z6Pct8u48W;ua)OD)fIv0nxNweW7#B_oSj7Y*=FMOY;s9c#24wtrTilW%Vw7%vF$Hq zG@9{2K8==BnFHa!(U0eyC*6kq4Teoq77mG`Z|w5HA?AT7Gp4EP4!`Qv&oy zuH`$sh_e!amd>y)Rkw4CqmU;wT;eDzD~V{889{uU2;+K~b+W!Li;qr9w8vzUMhm@5 zK0hrOV;dJ48HtloY-V)NzB%)oXSz^ase)ar$Bm41@Ohkck(J5x<47to(J$4OzO>Nn zKCm=0;=h2BRPQ2hWu=5>`$XmNWH;(Bnp@)%mxIiGRn1=EO|Mgd^8;f!=29WU_iTyC zzZa;)-Q=BJ*Y@V0{2nk&Jssew>U-t_?NC-`vXlTTTEV4BOGdrwF6R!Ry8B=!pj;)f za>5vKO#G2h@aO(!7Pp_e_pJ9U!z?MMsE5EvSX>h|s(08Ey2%pU%=lPtdtJi|+2=bZ zBlP$BBpI;GciR#d5vII1{MWM`a-7TkmC8ivpc;J9rF7*Go3Hq&q1IUU2Yx zVFcb^6e#6rZ$t5I_KL939ov{mZbe!Ky+S1-uj_QNj9{6nNMvfa1>9hcc3Ok*R6D6r$H$X+W{s@+ zBK00898zGIB5$zcT~6_;l754bNQcewMfIM?Eo^M)&RqqE$%xb%(nyKie$0@ivp(*X z3FW1$5q!U6+T;wYTf&b<3)1?f!SpBMnz`3RD&<^+DN?(mf?te9mLT~X`?PrRG5zz} zoxW}1IP{_KWdyK+zC`ZC9WlN4(NOh>PGExhzY#C(_Uw z^-tK?u-3<%tIW`Op=|FWQ|odQD! ztvC|Q_e@5V=YL1pyEalwYLVZb`Y%leB2)6hh9J(M_h|^hLeI6RN(T%V=X)0{?cE!E_!kQh$)hx z*P*2$tH5DxVgJaIe$d^yaS^8U;(mU?og&>tQS0nOPBs>U!9jYaUq*`Ji-qsA;YS@tZ-AD=by}eXK}@Di~;Ur`$<{vtPz7%I|@Xt#U~x`0G}iAm^n_ zc0K;moL7H5HJMaN_O=bAA$z8t1pVCimQ*Jne$r}e#nptQ+z9M#Pn?cb*7kcu{fb2p zUNGw&wOG8AEG=kiJLPCh(pQHVk&!I61&#H4Ea7D7f`jwoH@9wPMx(#Rn90Mg_86nl z2FBQ=@m`!B_s%wcKXdbcy}Hcx?yQxlf&_|pk?+yqe3GO2G@XDU(F;o638MiSOXacY zCQiP3riLwzHuFBFc-VDGT_ZJWAt@9L4^j7N)o_N?rq?KA4%{5O_G4Oa#A7e=cX*%L z4mk$?z$Wbl&DscGCR*!0 zqwD1J|5@J-2y4g&g3E!65a$D4c{bO1jD50#oCE>qH!enVU{oesL4h}vIL&V)-8V6AT31XEy&>*#JpN;0TMYk_(2hPMJE zrLapXJ}cXa=uS^&pOdwqGg*EmccmXf;`j17l$wIIJHkaY2o%5RBPEDXuPxe>1BS4Dfsy82A#9m1^2A$0lJ@== zGDKmii*X2uSI;rYLA>fBDOmoBb?A$eGyfNvOdpv6@WOiv|Iev`+)*E>RQf28z*-rHmQ!3AolrNZzmrN}W**2eXU9t=%K*4bcz zoa9o1^)I0;q1&6A{4j;n;?CT!fjAuoQ>5MMM{x3~n=$QN#l|Lvv+P zEt_g!`mjSm_Sdco=(exDe~)etUpR8<)LKw<*VN21>xO z@`(fI7JZQHmI?J-r9f(75HfOHD)h<|AzE+7JUS&JHc~5NSiGhYO#w~p{n=!KUN#gI zWE+&Vw-`-l>b0Hy+1)3`>zd$`U|&oPp)=UPxS}5#1%Pwy{pDga0LY$Bn|V3G`-yB4 zV(BVRc5^r{Lwa)@8ChnVfHLFSc&w`pV$P!QA7kBr-d86DH#-13AGG>EB5gr%X{i~8_^#oRcSln%#tyH@a)q?X{6 z3s#Km89q=2lCg4_g7W{b?cY4_mRT*8N$;cZ$q#(5C;IaG@FF#b<1fAJo6~X;tOWRF zfKk-hmJXv*CrSU8PE58d2uSZZ!5n^Ckl{e1xfS6+9~oXPs!F&swwxXl83c(KwtLP^ zAzRFJ4}ZRAP^vDl?;0(A-h%db;L4)&XI#kKbWR->d`8^tdStWcY2hzZ?^?-nY(vnp zS;!?KS31y93UtQwcU!;zaR!-JmxFHH@1o0t+c`EotUbG6_6LacL=B}Rz!n14Pv@){ zVJgAzb%nQT`0b?A+?5*ZFl}Q3JfL}QIadlXQVjXbjy5a%dQE|N4=5T$mDV#L0p<04 zK-k?4{2Fv(+njlbK(J!u`cS2rICt<|yODsbMg;`gL7(2exai`PzWw>wOKb)YBwx#}g7}H(r`C|CpS|;C)+_uvg z@uzLeM`*|=uV;A4Rt^$(Zu-8qr-Z1m=Q2q0bhtS|-}gJ!V#%pH9>R$#Sc*-CDw6wI zOLF1G#zs4cUIZ`oe|?Za>XcZwV4>5|;Z^It0Lt~67=KU5jD!GJY!*QU11ta40w~_< z$}K1Sq<^E`TU{$NtPZ&@r5gw3 zWKj&}SX+CY<)WdLa6fE%cyr^A&q3Vw&+$MDg@+x?`{}FvGVOzS`L29Lz#K@s4S}?q zY#b@2FT&AgXPj+Hbc2cQe9ziSZ-zQl-zy6< znbxiR2OJOYg7E1QCh2~9oJm4BO#GPtIR2YvESEtxJuW}!>L@oh5($i4`{gEMBZ;O_ zy&GM_#7WGtY2^wG!KKbk!Tu*}4O?}mgce#xQzKk_Xi8EL=S+Va^MJP|C}Y>{*$I@Syq zp!YRq+9c1K3!ghxg_H=H_+bweS|jz;nA*R^5UKCvw%GF=qYszXA7MH}K;Lf2Ll)>qwY|hF}EUf*|yYImKU^o9t)G&ll#P)YzW z>{TnJ!@~R|X$|PDkqC*5$~1XTYlmuapJvLCYL7HtM3{xFg}zinQ;vv7=61AjFs-#( zf43GO%73vuG>x6L;#;vO1(bOC^@Xzogy_kc_7sM4>j{B^5`@#`FqBUk6`W?|2}!nI zfW|ZVEGraq(@qQgq1mWIO7D_c+Uf=N@vtrbe3 zKJ&w_44NHy2nAhp#Hc*KwwQkVlY}Nd?~Y-vhv;4Z6-F1nlX>I&t@ftL0cND;Ia<@# zW{A+xsE&vJFjK%*gn(2rJpRR6HQ!Z7X)9C{R+H&=4a;XKCrF81(D%%bdC<^Lad^L^ zmAhH1&(Q4dd!M6wa}D~94d_gJWQCToX}ZRfT)taiq}*Z`dN^MXs7CjiWUi)`4>yUb zVg`25J>QOGtIalrmu7~`eO_U$Fs~onDZrkfq&MU<`3W6Hc-A z*i^>+r?eta0rEs^2S_}_>qo&8fXsO0`xZZTg5m6WAO`b@Gd}$pun0p&ap3X@Fy>H5 zBDP<$L_p$n&|<#BtThYJfIDq``wR){IjzfTes6cA+J3o*^y^%+>CAzegMc7JZRfa8 z=FOg2i;F2N3h7|qVx5@Vs;z25_YH|VmhEOWcRQA zY~2OF^Od&zRy`#2?T4`2H3GNRDN!9(9tK1Hot#SO^0Ub+AqAgUDg+NOGaeEwR=NiDnz)cHW2CAfZ|#ZlNxx%|9qrz?j`>yiWG*AL!3{QeC& z-3T!5X0(9Tk>CrXW{?quDDyj*k7#UMMD^FS-KQ1e2!6^&6AkxQ! z3;gnCt;zv$Kil^-e9hc@76W}%*vgBZuT2Y#^9CWxI9`wA{?}A49Ku==@B}Xhr}IUj z!Zp9UCUa_ftgd{+gei6^vCe{ z2!&-!*Op8TVp1Wm^}H(c~6Ax=I)neMvXx5X-E&Hj}cWf&nE zhLoB!LlbBL_rrkpgvZ%p3T!FEQ0ND#1Vv=e&alDxZHP45&b(DC+o1sS28jWU$W5F4UY%AqHo!9z#h|EEk5OB>wl?pyi**KMoCGd!g zi#0o`SMJu!j z9mxcwHZ*B6SgZw4qNVoYK0`HkPCYpTKvi)q6PO?G>0%Xge()LP)&J}XjLpp_*|;`& z)ynuNzEGlU(S+$G1Rac>8lQqwM_aW$P&@D(N==NNk$#T##6nQH-~CJUTDP(D63OJN zbH=9rdbvrz97RYS$R=?LNOe3t3%hT>OEjv;MNBo6jVMQuNI& zf6>X!8C_9PjW)Hu$vL$-o8-XlhTC^AD@&G zc&A`tJ#&ao5o9fxQ7l$}HcDZ#4sIbK(F0f8OJ;nkC+6UOQLoB*U*WXL(!nzh zN%@3%L}|DjY-{pZa89GBVQrnae|r>QgCy#Zn%Q580#;q|RjYvJ6 ztKE?fiDG#~c^X63)Gw(U!&k-xQ8V)zL1NGG{neg5@bc;lB_cUPyr3TCaqOD~d}4i8 zMh7nY16@u1o{qJqq3hiW|I4D~Syq{@QVMX&yWe8|shiyFfV{A>v(XDGi(lfmWP?C> zq2dyAEw}6b7$QaG{1Pe@vK8Fqe5@T^3EPs5+%83(^DF6vt#veUb^AjVW6;`KC~Xf~ z;G!$KGtVLUjDcX_`#ElnAVQP@N(eOt?u!>B*W_n~D|CYcdVox)1;@fvIH;Tf(U?cJ zw_tf~{`Y6yMKEe_`8@ve(o%kNH%bR&h4eH(@3JuNE5VQm1Hh7)u z)3sp4sbF!2(!Ai~*si|kg}@eNb3ums`V2Pb zl}h^hLARAE1t@;%h(b;rHn#XY6jSDwdM{HMgN=yjj8G8d^DGb5m508>l$ArNlT!rUu0tl8`HIRsncGWB;|HN?Vr zAvpN?d7#9(8+;@y)J}#k5$y0c3-FePhyj52`D>oBL6(Op@K^s2 zOe1*-1hhGgG)}D+GqRJ?2Kra8{MJ^iLrn8_W#zD_C_HK=CJC<*MDj8NjN8;?RrG|U zZI*1@*VtmObtu@AumUY=dgk&gZte{zIJ-QKmQ**LAf1Z}NFxm@-y*r%dy16ON(h^2 zn;@N6oE%h=#={MJptCp{FF$SA2S{rq_aFTU2O`WXrFOQHK-hs4h8NaN-MNy(= zfieh8ks{|T(N!DAb#ej`&6BcLKl?uEvTgQ{(psd9Kbp;^7=%{rjJqD|Ebu}c)a=Oc zls73N5bNap^vH$!0>luV`dbWKD=VN9=dBgOw2QVXP(5>7RoCI@`Z@$_{>J)HNgKhuX_DJX>2(RkMRF^5o;j@_!wcw_Hr^FF>cue#24ozYdxnld&x=|BclWZvJ+07W4(pTF|^@i*=|DD*XnN Mkx&q?6*UU}A2V_%X#fBK literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/20.png b/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/20.png new file mode 100644 index 0000000000000000000000000000000000000000..ed52ba05c4a5b0af838378e63b4b9ee44665c08c GIT binary patch literal 872 zcmV-u1DE`XP)Px&B1uF+R5(wqm1|6sR~W~CFK@e-7JH$6p$;vy)OX3HOmuTWO z@q>xF#U(SDLBDO9Y<{Ts1pJ^ljT$8yL%al{G|NW45G)$G6$?tas4%efU0RJ1p?HZW z=OiaN|L1p}^E}TvN6>$jt?&h#5DTbP%Sb9i%&oMVL=trt?loK*q!|KCN|;Exr4UKf z(cR}q5aLjan%6@Wk6NWgElLQ2fTWG%WaWm~Kz+QG8MbYBTZ$Q*?8ISlVba-Xe_qdj z1D)t~qp(}k5v4vt;xmd4tQ~TKK^{&>UL5sEHjO4p@8GuYcyylSoJEdvE?!?bDPt39 z3pU{{DH=8$gMiuAO*C~>;Bu~|)_;|8b~{riFQBaAFfaRC*}Uo(Jl<;*pWYucwu69Q z>$8XqMcsw0cc9V*agNW$eR?a$e!t3@vLl?j;2yCih9t#h{}F$;hfK$O0-d!uzDY$= zYiMluFe7I+`ws2o#mnxG^Dv?^X&q!+H&fSso;>FU?lhhyfBHNcp44EJRm4jP96T|6 z{377q|z@2 z$g(fverqXfmh9r>l|8Ijx}MUDZf@Q#8@X)WU(Fc3j91}aOr~Tk`gER!Jj|Z9lAGQV z)~(pi-aocb^)k$04HlE^RADO&T?Ua~KUq zGVM#L^_L@RJDHlXfWLibnV$7Mza9MP!@yko&y14H7|c3ky^XG(7OLuwF%Z|qqWmp1 zw?4pXlc{}J&E@N*v4NtXV*ZqUSmZI7WD_c>A58)njpnFPOIsb)53W(}DJI2|N;n** z(f=?u(7mUUL|NihZ$zV@2nr|zNE$W4jy3{Mn=l%ZP?Rvmf9>brdzB+6W%a^e>F9aH yfD(czEZPy?m^C!l5$tRw@U;2U3j1?^h5rF)g%q6GwCDx^0000Px)H%UZ6R7gwBmU~dtRTRfR>$1zTu(->*Eb@?tJjEBTIE+X$F$#(%<7+1qADIs% zEAs`WW}5FDA2X2#siXNUja2eQI5=jSin2lq2515*u;TJCQP^zwIhq*@OU_jHpWkoh zo^w9;oO|#0T#=(x_n3cqi2k=wmE0S(+~2Bt*h&<1RQu7;_>hzNYn%0HG1DOJFfPo1pyU9ayHO?Kh z1o(!a)woi9zZ{KLLA}|?+SDX|ExBf~I?ZMp?md^<`Z9{Djxr%~mjKDiTPJ)yI{FhD zJc!<1W02a|l9Qi_nHplEhfz>;nRO{iR8?2BxE;+xBmI_8Y|KP#`Z?Ht|M8Ds>Nx z95XEC{c)Qx)mE@2Er~&qdPWVILfVln>^|_B)xajhW}zDUKy)5cDX2_GW@kfWx0(EM zJByNlpO+n{7l0f$;PUNm7Fd&G? zK5^_mvW)ghDQ~_$hxE){Z2!7>1$uEcEhlTx9V?Soe9mWj) zkTZsZoX<~VUc!2+Ockt1p26LF<<@Jjr4@E}jlRbL zeSGhK25l!26X7!-JBbQY{Y`GxWDp)0k8^uJA>g%JC&)0Y!ogm}igz>Ec5neoCpr3| z@l2T$)pn@8#F;Sf8A#gM(I7I>$t3`}?8)=xj_C?#3${{GlTSyDFTtJr5fd?m)mz6B zGhifso?V!|badOG8bvT6t`l&ySD{p?v6adZ+dyMG6E^bS@bl^>bRDI_SqNNRSIOy1 zY215I%*@Fvg+tV)J?-J4r<9&Kq!fCCnJ@%dj@#?+>=}+dXC%l|J+=YAe=XxWXqn_ZC9kl@9Y7Q znFdTxoJD^|7XF?CT`PVfc?CrVE?@o0BJAme)iT&>q&67*C(u6t`~LSE%Y+WC00000 LNkvXXu0mjfkfN#H literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/40-1.png b/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/40-1.png new file mode 100644 index 0000000000000000000000000000000000000000..7ea52f87beef525df7b655d1164c18422ce08126 GIT binary patch literal 2223 zcmV;g2vGNlP)Px-X-PyuR9Hvtn0Zu`gg}r*5ZQ-ez2|)8*0gm!phBU0T=29|Bc2jA} z!&w(VFI``pw7qfE`iiSkp}r$fb89^cYZ(qY2b4B)R4O@Iog95HIq{#Z;>7m{IvtG; zhq#aP6nq`W3Al?zJ5ea)g!nv8px5L(glo;^RMizy-&BEvPDgLgzPP!1VI`M|zNY3< zyu4j#Xsl&Jd@N~~lRAZyI&=s)HefX>xt65-O;nolnKAfn+zbPSaBk^YDr)nosL2yo zgF#PN|A~YLO+;m_5q;`RRb0+H$)NC1dO5jMSo|}a;$yj1l+z`+4gu|LJQ(J)gu2EX zoXTCxAphA!1Vqu$Sk3;FS17B>7C|JS@SsTq`3-LmdaXEMp}|2&h;4G1z+{74=t1zP7a;Fgg1}&R_jV1eq}|hKC0|(H`)^<)a);+C@Rh z73R-+nen3^6KyBY9c0VbX z!GL}dqV20AAMo+Me|HP6!wf3rwmcHBMhGY7ypCF>W!A_zOy)}Vom)bitbsMp9TM%^ zKVQU;IcG$DRm=_o`-F-5&d=9#@c5_QhU*YeY8>MIJPzvK&Dki40#nl*HIMS zyug8!<^1X4=NLQa2`Z|J*!KBiO3HKF0VSsJen8Q=Pxl1pJ*Q zVrr`3hr)PV^nI8R@~Q}WE_)Z*#Yc#a+=Pc~Ka$e+^KrszW=wpFS=0YcPF^M(;$EVx zqPW|TodQbA1B|n9*F{iKpF?V4Ji*@67}{^1#UN>KVde(WGdE$Y){$^(2Zv6_v*5{B z7&r3IoWGRF`t3_;ZENioWS0QtRw}|g=3&tIbG_<3>BXNgI`BFE;60V5=6VuRSK{L0 z%G~L12#604tR(fvL&PrJL~!6xj-1%TySv|faDbAsoywIkkNK#T26D;|bG7_1Q^VKb z9lrBTwGoYm0*LftdRkn>vN;HlU5dfrs4xii6sR!pgH`ln?c=_2)1ojE#_?i7||IpIbQRz0IB&t{Y5bQn| z8-+btWd|v&IwNKpqald0>Z`)pBg1DfWz;iN)s_j<$mGq$F5HZ>!N{HiapLp903~6g zeJH_hQ6k2rqK{~7yT#P-*Riv4BDeGm-~6zeS(BDA?4jx87N&{UPk;Yl;cTg_-Li-a z8J2~{ZuTKQ0fB1sW4zF#W zX|i+EdG)Qi4-PQEX)<2=;V9)AvB$l5eU}Ip>^*}KfzhJ=-nWrx?R3P<*@>;%p4YZb zM{m&c&llep?emt7r@H3W{m-Ce5?Ad*Lb%Rc!ui5D8k#JDJRL)s7O_^;cb|ENo7K6@ zp0bj`10Ut!sW`ql9mmF1dvSO5Vb%Jl$;?i@zkox$7YPSTrN(@nGe57xUSlM}e>NUY zA=s)MMcb9aBYc~_UeqUzSit0w3)%s1FK+KU;Ap>PsFfCg(wcNk6fh`YHuh>)Ksqdw ziK#EE=sU8Cj<;uKMf8_A>pj~6*De1PFZY1^mq9ygSFy@g$Ss?6E0qcNUV&KuYSVtJ zwt)2f{iI*pFJN38d*kZpLulZ5JYD-!T%OAt@sarX1hO{v1I&$Po{AZB*OzveUF>Eb zCf0=tg$k|K0fWv7nU$3#JF-@qtjdw8DseQpV07}uWUfW6viqO^RYA#R4kT`)##F-M z1^>d+=u7gY6Rg|zLeE?r;5?Z?<1}>k4j3FAu~92fNk39e&8;0D9CZos)2+$K<-ZJNhtJxz z##>co96R-8r&HW*wN5iQ_b*HF>ouAdWeHN2EH1T_HtAgGm)rkV+uFaAc6Oy@g`#gw xZ6&v=%E`)26W6YmP64|r^q~6v4%pMo{s&f#PDa^01r7iJ002ovPDHLkV1f~jY6}1W literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/40-2.png b/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/40-2.png new file mode 100644 index 0000000000000000000000000000000000000000..7ea52f87beef525df7b655d1164c18422ce08126 GIT binary patch literal 2223 zcmV;g2vGNlP)Px-X-PyuR9Hvtn0Zu`gg}r*5ZQ-ez2|)8*0gm!phBU0T=29|Bc2jA} z!&w(VFI``pw7qfE`iiSkp}r$fb89^cYZ(qY2b4B)R4O@Iog95HIq{#Z;>7m{IvtG; zhq#aP6nq`W3Al?zJ5ea)g!nv8px5L(glo;^RMizy-&BEvPDgLgzPP!1VI`M|zNY3< zyu4j#Xsl&Jd@N~~lRAZyI&=s)HefX>xt65-O;nolnKAfn+zbPSaBk^YDr)nosL2yo zgF#PN|A~YLO+;m_5q;`RRb0+H$)NC1dO5jMSo|}a;$yj1l+z`+4gu|LJQ(J)gu2EX zoXTCxAphA!1Vqu$Sk3;FS17B>7C|JS@SsTq`3-LmdaXEMp}|2&h;4G1z+{74=t1zP7a;Fgg1}&R_jV1eq}|hKC0|(H`)^<)a);+C@Rh z73R-+nen3^6KyBY9c0VbX z!GL}dqV20AAMo+Me|HP6!wf3rwmcHBMhGY7ypCF>W!A_zOy)}Vom)bitbsMp9TM%^ zKVQU;IcG$DRm=_o`-F-5&d=9#@c5_QhU*YeY8>MIJPzvK&Dki40#nl*HIMS zyug8!<^1X4=NLQa2`Z|J*!KBiO3HKF0VSsJen8Q=Pxl1pJ*Q zVrr`3hr)PV^nI8R@~Q}WE_)Z*#Yc#a+=Pc~Ka$e+^KrszW=wpFS=0YcPF^M(;$EVx zqPW|TodQbA1B|n9*F{iKpF?V4Ji*@67}{^1#UN>KVde(WGdE$Y){$^(2Zv6_v*5{B z7&r3IoWGRF`t3_;ZENioWS0QtRw}|g=3&tIbG_<3>BXNgI`BFE;60V5=6VuRSK{L0 z%G~L12#604tR(fvL&PrJL~!6xj-1%TySv|faDbAsoywIkkNK#T26D;|bG7_1Q^VKb z9lrBTwGoYm0*LftdRkn>vN;HlU5dfrs4xii6sR!pgH`ln?c=_2)1ojE#_?i7||IpIbQRz0IB&t{Y5bQn| z8-+btWd|v&IwNKpqald0>Z`)pBg1DfWz;iN)s_j<$mGq$F5HZ>!N{HiapLp903~6g zeJH_hQ6k2rqK{~7yT#P-*Riv4BDeGm-~6zeS(BDA?4jx87N&{UPk;Yl;cTg_-Li-a z8J2~{ZuTKQ0fB1sW4zF#W zX|i+EdG)Qi4-PQEX)<2=;V9)AvB$l5eU}Ip>^*}KfzhJ=-nWrx?R3P<*@>;%p4YZb zM{m&c&llep?emt7r@H3W{m-Ce5?Ad*Lb%Rc!ui5D8k#JDJRL)s7O_^;cb|ENo7K6@ zp0bj`10Ut!sW`ql9mmF1dvSO5Vb%Jl$;?i@zkox$7YPSTrN(@nGe57xUSlM}e>NUY zA=s)MMcb9aBYc~_UeqUzSit0w3)%s1FK+KU;Ap>PsFfCg(wcNk6fh`YHuh>)Ksqdw ziK#EE=sU8Cj<;uKMf8_A>pj~6*De1PFZY1^mq9ygSFy@g$Ss?6E0qcNUV&KuYSVtJ zwt)2f{iI*pFJN38d*kZpLulZ5JYD-!T%OAt@sarX1hO{v1I&$Po{AZB*OzveUF>Eb zCf0=tg$k|K0fWv7nU$3#JF-@qtjdw8DseQpV07}uWUfW6viqO^RYA#R4kT`)##F-M z1^>d+=u7gY6Rg|zLeE?r;5?Z?<1}>k4j3FAu~92fNk39e&8;0D9CZos)2+$K<-ZJNhtJxz z##>co96R-8r&HW*wN5iQ_b*HF>ouAdWeHN2EH1T_HtAgGm)rkV+uFaAc6Oy@g`#gw xZ6&v=%E`)26W6YmP64|r^q~6v4%pMo{s&f#PDa^01r7iJ002ovPDHLkV1f~jY6}1W literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/40.png b/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/40.png new file mode 100644 index 0000000000000000000000000000000000000000..7ea52f87beef525df7b655d1164c18422ce08126 GIT binary patch literal 2223 zcmV;g2vGNlP)Px-X-PyuR9Hvtn0Zu`gg}r*5ZQ-ez2|)8*0gm!phBU0T=29|Bc2jA} z!&w(VFI``pw7qfE`iiSkp}r$fb89^cYZ(qY2b4B)R4O@Iog95HIq{#Z;>7m{IvtG; zhq#aP6nq`W3Al?zJ5ea)g!nv8px5L(glo;^RMizy-&BEvPDgLgzPP!1VI`M|zNY3< zyu4j#Xsl&Jd@N~~lRAZyI&=s)HefX>xt65-O;nolnKAfn+zbPSaBk^YDr)nosL2yo zgF#PN|A~YLO+;m_5q;`RRb0+H$)NC1dO5jMSo|}a;$yj1l+z`+4gu|LJQ(J)gu2EX zoXTCxAphA!1Vqu$Sk3;FS17B>7C|JS@SsTq`3-LmdaXEMp}|2&h;4G1z+{74=t1zP7a;Fgg1}&R_jV1eq}|hKC0|(H`)^<)a);+C@Rh z73R-+nen3^6KyBY9c0VbX z!GL}dqV20AAMo+Me|HP6!wf3rwmcHBMhGY7ypCF>W!A_zOy)}Vom)bitbsMp9TM%^ zKVQU;IcG$DRm=_o`-F-5&d=9#@c5_QhU*YeY8>MIJPzvK&Dki40#nl*HIMS zyug8!<^1X4=NLQa2`Z|J*!KBiO3HKF0VSsJen8Q=Pxl1pJ*Q zVrr`3hr)PV^nI8R@~Q}WE_)Z*#Yc#a+=Pc~Ka$e+^KrszW=wpFS=0YcPF^M(;$EVx zqPW|TodQbA1B|n9*F{iKpF?V4Ji*@67}{^1#UN>KVde(WGdE$Y){$^(2Zv6_v*5{B z7&r3IoWGRF`t3_;ZENioWS0QtRw}|g=3&tIbG_<3>BXNgI`BFE;60V5=6VuRSK{L0 z%G~L12#604tR(fvL&PrJL~!6xj-1%TySv|faDbAsoywIkkNK#T26D;|bG7_1Q^VKb z9lrBTwGoYm0*LftdRkn>vN;HlU5dfrs4xii6sR!pgH`ln?c=_2)1ojE#_?i7||IpIbQRz0IB&t{Y5bQn| z8-+btWd|v&IwNKpqald0>Z`)pBg1DfWz;iN)s_j<$mGq$F5HZ>!N{HiapLp903~6g zeJH_hQ6k2rqK{~7yT#P-*Riv4BDeGm-~6zeS(BDA?4jx87N&{UPk;Yl;cTg_-Li-a z8J2~{ZuTKQ0fB1sW4zF#W zX|i+EdG)Qi4-PQEX)<2=;V9)AvB$l5eU}Ip>^*}KfzhJ=-nWrx?R3P<*@>;%p4YZb zM{m&c&llep?emt7r@H3W{m-Ce5?Ad*Lb%Rc!ui5D8k#JDJRL)s7O_^;cb|ENo7K6@ zp0bj`10Ut!sW`ql9mmF1dvSO5Vb%Jl$;?i@zkox$7YPSTrN(@nGe57xUSlM}e>NUY zA=s)MMcb9aBYc~_UeqUzSit0w3)%s1FK+KU;Ap>PsFfCg(wcNk6fh`YHuh>)Ksqdw ziK#EE=sU8Cj<;uKMf8_A>pj~6*De1PFZY1^mq9ygSFy@g$Ss?6E0qcNUV&KuYSVtJ zwt)2f{iI*pFJN38d*kZpLulZ5JYD-!T%OAt@sarX1hO{v1I&$Po{AZB*OzveUF>Eb zCf0=tg$k|K0fWv7nU$3#JF-@qtjdw8DseQpV07}uWUfW6viqO^RYA#R4kT`)##F-M z1^>d+=u7gY6Rg|zLeE?r;5?Z?<1}>k4j3FAu~92fNk39e&8;0D9CZos)2+$K<-ZJNhtJxz z##>co96R-8r&HW*wN5iQ_b*HF>ouAdWeHN2EH1T_HtAgGm)rkV+uFaAc6Oy@g`#gw xZ6&v=%E`)26W6YmP64|r^q~6v4%pMo{s&f#PDa^01r7iJ002ovPDHLkV1f~jY6}1W literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/58-1.png b/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/58-1.png new file mode 100644 index 0000000000000000000000000000000000000000..9c0cac0706e5654e82081e17863f9d223d24b1db GIT binary patch literal 3488 zcmV;R4PWw!P)Px?T1iAfRA@u(S_xFt)f)f746`uIFbn%4!>S+(2q-Rzm1wD1J-6q})KW{6Q}E_0YNquSp?a4Vc55K?)@`=;AuHCjHlP~oik^?x%YqX z{eJV^`)&7cAmRCT;ZHyYe*yi2Y56aW{=pOqy=c^2H<#L1=VIK^!z=lqeU3n7Om8V#M9`?^-@PJ7a z?4zi*p%C{Qi_wW@$mI&SC_N#Q%3#PbV25^gwL>D~Qjmrm;MDm@>^iXSQB(h7zs5k7 zvOo;7e1T3>uFAmm!kv`2kq^NH@0AY)*w)?%0;*b7fNE7fYP!Fb_U`Z>{0zJXKJ|cL z<<)l~mU5wVv}5}sk8cP0^oKMCI()!V$c$jajWn&E0lwcCxQazK6HB)SL7f*^%$;YL_^h3gN3u-!-T*Y?AW^c8f@Giip)Dn zdI8yQpf3mRfyCIF3bX&xYjnF3ae(GzdX z`v|sHj%-_IRuXj|M5Fp9jerV_WEkiCAzizpvjwNK7+?0%*xitdY$<>B_BXhmdw}w9 zy|fK31AHkTeQ7&RT<&Wz{k_KGt%YmBGvcv$$XV3YM{4q?Xatl@G{z|uCOpRZ$K^+$ zw&^aE76F*-%NVJu`aB#@Tm@Bg1$;dwVE*%;()Q+-25gNCLC(EoR-QF0c445i7yG-v zK2onhJ*{TKPCAm#Sz4chl%j7bPk<7@g!0O-B06a`<);NL$2h;)lrO2srC_V?7t`Ns zSMG(AgFEH*;Uo15RBr4HKl>%rcM?i3J%Ga6cvzUaVT#`x2zgT4o|^w7E@ggA`9;$= zV5n;#4w#wHbY zC#g5%bO!RMfm#72llj=b0!#5wI&XbT36ctT(2T`fISr%Td$e@odKhxcV&QD>jm0y< zA>fD~?iU3kJ{35Gf_@o+;+6*W$kbvf|&oP@d0g|Pzei~1OGsXxKq+6ke-;V@S) zi9$-o6>QkH0xhjAI)VAML0SVPlbH$zP_TRsqosQ_SCCQ0#G}s+TMZ{m#%Pt)WFjhQ z63O|<_Zo(Ijz(y31S{j2OGmJ6AG5vnNjd=~0$7T@;A1SA5s48MQah@JD&2Y zhB~a@xZ7j*v#ZPYjwRwcv3X%uxk1_p+- z@6?suIDTOZBw`s>E{%Y*lF3)|3-93bua~2uiU~COLwW%!;7VyNNo|QM8*Wj}c6D_k z&?6Y04vfDf)dm8Vlu^bEn~qr%d+I+2PJW8mozY#7y5S>rWc?@ zAgNFZAG-ytB`&PJiuBThR9F%@IhYTpd_iR*q7ql3v#S%&Klvuc2QcTdtE-Dz;*6YF zx_!wuR#VJ{AFy+O&u?8ct2dxzaVxPmylv;Pa@?srft<=1h=mrI?7IdEv6A*>6hz^C z#wNA2jct!*qY?yPITX+LoBbTA6xsJLV;(F8+zVm%tNsQ46 ztlohVDcmhzgoBJpygNGEx-Ib?477b33VJH#Gh~;XryvPf0-6vhlznrQvDhS- zAVCG8y82qI+Y*91dFfh%eJntUHTAZc$Hv4Bt>x4bH?~&5*LgMq+?YV4xwQ_*lUAXu z_7>f~WE-pL=lH!idNzWFha^lS;Ud*|{!Ogi9D>@qDy_gi7NA4|p^==PR}wA~s%p%l zF)=AjKk4}vJnWfkjq>|h)HpS^)>6Yn43wIFIK3Vh5)Z(`)fX#+!)YQw=vwkwtl!qN zGc-Z`*npD7Ne=5}JHMADj;DDn$!Uotwl`xkmz>f|IGOwj<%!E7u18Hf53RtBtaCJ_ zBdHzRzJDEJE@)oweXKx#J zs326=P)#jyK}lwxguVKH1wLB82xS$8nkZENR`+46Iw_upoB0&lrD`d|{~_!X3&IxZMNBN+=# zir>5_BOTzvwFkp8f7?o2Wn`*#TdtTVa)4! zX`{8h9&rVm=#4lbM~eVhN(W(}?Rc07`o7$8IBprOOc1g*bHe+Jn0T3#NyZbLGoCms1vt=bq0eE? zWX7cstNXeALj&gQ5Gq$?BDG{M0tW}vlBf}farkO#ZEr+Y(HYz> zIfK%gn|=CZ5-Tj3wTWt#(8Z*Kh>ZE18mB$s7uYkpa7B22aJTpyV9=wd z>gG(?Sh&GPF@zeU|D~d;8#t4;5%o=_w2Q|R!rIIcR%XsnS`Vi8sp=AGOZ3Au#5`h{x20evx`vCRJlCN-A?v zT9HHVYSaM9*az=x!f-bBm_{JULt1OpSSUr%pw+Oka)exN3cfLyf)fb1eO{k=lmxBq zEvT!nKxtJTGIC>)TaXNLpp#Gp3qPC^q2~B6fZ7s3rRJ zYXwvwFh*GLk5IbwymZmo@rd<$+aZH)x1#>mN>t`yT}vuj0i8B!A!bcotb=&{A3|=# zFT_P5DUCU=+LBg4`Fvx1^~n*KiXZZJ7|~pJMUrKEoj;aUS1lj(IDKR%#-^w=AH`*N zk&tp8S-Gj&V$*%=sz-_hW@u<;!nxlIX{FKM3#f<5`4`aNv-bYf8vQRpn;T*rZtwU2 O0000Px?T1iAfRA@u(S_xFt)f)f746`uIFbn%4!>S+(2q-Rzm1wD1J-6q})KW{6Q}E_0YNquSp?a4Vc55K?)@`=;AuHCjHlP~oik^?x%YqX z{eJV^`)&7cAmRCT;ZHyYe*yi2Y56aW{=pOqy=c^2H<#L1=VIK^!z=lqeU3n7Om8V#M9`?^-@PJ7a z?4zi*p%C{Qi_wW@$mI&SC_N#Q%3#PbV25^gwL>D~Qjmrm;MDm@>^iXSQB(h7zs5k7 zvOo;7e1T3>uFAmm!kv`2kq^NH@0AY)*w)?%0;*b7fNE7fYP!Fb_U`Z>{0zJXKJ|cL z<<)l~mU5wVv}5}sk8cP0^oKMCI()!V$c$jajWn&E0lwcCxQazK6HB)SL7f*^%$;YL_^h3gN3u-!-T*Y?AW^c8f@Giip)Dn zdI8yQpf3mRfyCIF3bX&xYjnF3ae(GzdX z`v|sHj%-_IRuXj|M5Fp9jerV_WEkiCAzizpvjwNK7+?0%*xitdY$<>B_BXhmdw}w9 zy|fK31AHkTeQ7&RT<&Wz{k_KGt%YmBGvcv$$XV3YM{4q?Xatl@G{z|uCOpRZ$K^+$ zw&^aE76F*-%NVJu`aB#@Tm@Bg1$;dwVE*%;()Q+-25gNCLC(EoR-QF0c445i7yG-v zK2onhJ*{TKPCAm#Sz4chl%j7bPk<7@g!0O-B06a`<);NL$2h;)lrO2srC_V?7t`Ns zSMG(AgFEH*;Uo15RBr4HKl>%rcM?i3J%Ga6cvzUaVT#`x2zgT4o|^w7E@ggA`9;$= zV5n;#4w#wHbY zC#g5%bO!RMfm#72llj=b0!#5wI&XbT36ctT(2T`fISr%Td$e@odKhxcV&QD>jm0y< zA>fD~?iU3kJ{35Gf_@o+;+6*W$kbvf|&oP@d0g|Pzei~1OGsXxKq+6ke-;V@S) zi9$-o6>QkH0xhjAI)VAML0SVPlbH$zP_TRsqosQ_SCCQ0#G}s+TMZ{m#%Pt)WFjhQ z63O|<_Zo(Ijz(y31S{j2OGmJ6AG5vnNjd=~0$7T@;A1SA5s48MQah@JD&2Y zhB~a@xZ7j*v#ZPYjwRwcv3X%uxk1_p+- z@6?suIDTOZBw`s>E{%Y*lF3)|3-93bua~2uiU~COLwW%!;7VyNNo|QM8*Wj}c6D_k z&?6Y04vfDf)dm8Vlu^bEn~qr%d+I+2PJW8mozY#7y5S>rWc?@ zAgNFZAG-ytB`&PJiuBThR9F%@IhYTpd_iR*q7ql3v#S%&Klvuc2QcTdtE-Dz;*6YF zx_!wuR#VJ{AFy+O&u?8ct2dxzaVxPmylv;Pa@?srft<=1h=mrI?7IdEv6A*>6hz^C z#wNA2jct!*qY?yPITX+LoBbTA6xsJLV;(F8+zVm%tNsQ46 ztlohVDcmhzgoBJpygNGEx-Ib?477b33VJH#Gh~;XryvPf0-6vhlznrQvDhS- zAVCG8y82qI+Y*91dFfh%eJntUHTAZc$Hv4Bt>x4bH?~&5*LgMq+?YV4xwQ_*lUAXu z_7>f~WE-pL=lH!idNzWFha^lS;Ud*|{!Ogi9D>@qDy_gi7NA4|p^==PR}wA~s%p%l zF)=AjKk4}vJnWfkjq>|h)HpS^)>6Yn43wIFIK3Vh5)Z(`)fX#+!)YQw=vwkwtl!qN zGc-Z`*npD7Ne=5}JHMADj;DDn$!Uotwl`xkmz>f|IGOwj<%!E7u18Hf53RtBtaCJ_ zBdHzRzJDEJE@)oweXKx#J zs326=P)#jyK}lwxguVKH1wLB82xS$8nkZENR`+46Iw_upoB0&lrD`d|{~_!X3&IxZMNBN+=# zir>5_BOTzvwFkp8f7?o2Wn`*#TdtTVa)4! zX`{8h9&rVm=#4lbM~eVhN(W(}?Rc07`o7$8IBprOOc1g*bHe+Jn0T3#NyZbLGoCms1vt=bq0eE? zWX7cstNXeALj&gQ5Gq$?BDG{M0tW}vlBf}farkO#ZEr+Y(HYz> zIfK%gn|=CZ5-Tj3wTWt#(8Z*Kh>ZE18mB$s7uYkpa7B22aJTpyV9=wd z>gG(?Sh&GPF@zeU|D~d;8#t4;5%o=_w2Q|R!rIIcR%XsnS`Vi8sp=AGOZ3Au#5`h{x20evx`vCRJlCN-A?v zT9HHVYSaM9*az=x!f-bBm_{JULt1OpSSUr%pw+Oka)exN3cfLyf)fb1eO{k=lmxBq zEvT!nKxtJTGIC>)TaXNLpp#Gp3qPC^q2~B6fZ7s3rRJ zYXwvwFh*GLk5IbwymZmo@rd<$+aZH)x1#>mN>t`yT}vuj0i8B!A!bcotb=&{A3|=# zFT_P5DUCU=+LBg4`Fvx1^~n*KiXZZJ7|~pJMUrKEoj;aUS1lj(IDKR%#-^w=AH`*N zk&tp8S-Gj&V$*%=sz-_hW@u<;!nxlIX{FKM3#f<5`4`aNv-bYf8vQRpn;T*rZtwU2 O0000Px@07*naRA@u(TL*NM#TNdyWcy|}eUnY4q(evn1c8SX2}Ozu2#Nxtg76geDInOu zgCL3o6d@6mhXMu_gaDxlkq9w`W(a{4NUyson_f2W%>3-X$-^hR*+o1)zMMTf|I9yk z?zb~@=gyr8$5s&Df&U|L?i2o-_xAlB{+o9&tkS~@ktc+FIc#_m*l;D_^F-iqxZuz~ zF2Lac;DWU7W2+VkIjhVP*KNXn&X2&yeuP<#S^MQyeko3-uQf|-w+Q!f zodLCCK$nKfbeB=pcmqvsHE3?Fy-f+J&>jk@8VZRkY$Yn#N?aimI-0C3m&*ZPz=e%~ z3xR-(#x^a!KE4>W^%|39kQdD+9N_XOyzGXujg;yxB2Sxus>Yjao`c*64svfW-^@oQ zaxz&l4o?rUSO|fT$9zOQN>XmegGdS-JQa<-anUBr>-?fwgvneDaht`~FRVU`^wPcT zbD-xq1iO!elcKlD%IF%)(A-uFiBtqvl_wOoa!QcTCq|2)0}>erA{k&K1fqAX#)+SQ zFj@Y8zi2XH0bhziUavxIV^3vdSH>f|@+eJvIYnS#@7aGyv;!Tet}mn?t?nkYb$M`d zaz#L|FogIHzl}g`T{)CaGB`L$z~upLZLRnuW+_rGC3KstSwq@gIS|3BCun1p^;eNv zU>s62hi!wM)SXqNt-T2vT^_V`H&IoW2aPVDrt6w2pp-i!Ja7ym0>{8z<$s&!)1J{i7b7?a^_Ep&@;eC8{({hq2}hzwm$(|Hvsh)Z43MX$M2 z)*#e>)NQ(E-bg~~l_Qj>Uf&LxOo2tS-$PjN5cXYSn23S0HY_6Czt>Y3(3`Q^83jjh zDt!a1-}EudFeL0T_L&S@LNfJAJg(=Zu=yTtJt9S)r!hKzzgqtFQ z%DY~12)UXQP)gnLEc-ACTX*^B$>^OA+@5#DDQGh%Xoqt;kcRdy$REiN~C4wIJLm4gth zn#MMoRuF@V`V6?)_rZklRj}cUX<1HbBH}MF+qP*BFTv1oW}R+pZ^f3_mvQZ8GKLI@ z#7lGEXJ!3*{vp)1naAV=yf%*XH5#*u|)ifdAFxrFh!M)Y|V0q$dHx}!snxYW0hUzrL& z?*WuFpJzkMe!1`i_QbCSm&?V{g&WW>h#3I{QQMZ|mlS4WVr_JbFj0c+iOJsBfE>+n zWK|pnpC`nGh*ePAGsC{7p_q~;yQIPWreMZc#xo=M@zf@qNZJ8sM>i~87zKA%ADUlX ztHJu{CCJRaXl=gc2LL*2;O9IEKK90~-IdaBQBa)(dzlv|M685dtfH?I|C*52>)SAK z_(F^xG=~-Q<^DHu{^~IV`iA4pMNtq4M6@h7?p}0$zOPUA7L{Jgoct zHLLcr#e|9RBJ6kUmnP6OT*vu> z7_@h^VX*%^gx=aOld_{1S0lS50bZ_w)QHI>j3aX~^CY(IW7gsMv);yt2Pd+6@7nh% z_8w~^&F*AW&l8gnLpz!Ew6>rU+d zDGCA`0hTV>fM7pkWOU>96-Z2G{B%oTHNr#*ABU0fbDF^FV~Bf61WJsLSOsT=FD)yp zzJ|E86=-Uy#ppq^F>&}JwodHP4{_#vEZkhYC~1`w<8SNgYOrq0YZhB>s}d%P1-VRx zhn;av{jFp-ifWSKqV%Wkr%1qrcd|=Pu`+ew~X!0^SOI)?%J2& z@%UIUEed|#18Erv_Yn89v@(~5d`RfWfb;2zSo7)PZjWlK6DFF-gerup=RhiOrizhZ zL0UmH$XQTWkLeiXH~agqk0pZi?!ILvS)pAK0X+s|!L$wZ zHNr$QGMCAmHlU#D9Ilkbg3IAjBj)MIL{O^g z3n=N@h7t@3dmPipEM@B)I}@=$?2hHWtAvTx#A*}kZGa&>q>#8# zPmF|#2=XdYZ$&*jFlod~7&Y)|w$9GDcaZ$sA$Yp=q(;oq-j$Z+7iD4j+SzDsX*PLy z-*v)76LKEa`3(6|@z*G+O@q5bC?(C~GCQdByn{%{_>`ufee^^0^J9)9bVIzJ#_V2$IVd8#yzidI611I?R~75K|(V4Tz??9B;fo6S}%;lSuz5J**IW(WOenXWU2v zLolDDAMl-x@SZc+vcqZb;zs#7__+7Q{HYrt5ix7`>6Bgg{=|AZpI5#X18)yMn!jb| zO8oT8fxiY}Uowa7{{hY|YfZGeShNG=T)8twhb)1w8#9DUsxt6H5_7si91`M~81UAn zaj32<$BaoYV#-)%c}uzUGuD0n>b)l%qMij;dDr_NnPvNNv#RTnr$VBJpLzrh5gG8= z5hiLv@Wz~-@K7<1%;7W9IFc9*FAra=TfU2ZXWD$m;@=5(ZAcIFTnIZ!uP*JA6Gw9L zXn@+j4}9H5(hr{}VDqy|PUF}ux07Ucj(i#jll<5%#?y^^N_c3GrH~3-SOO$4@LS0q zl+-c`5>Lz5^&!Z_j3?F^WO+K1u^BZDMQrx`X&VsKlR0RMJ+>BS(wJKZ_na`FC&o~p zW%SOL0WIxyNXh>UdbD6@;EV8f8UP+oNQ;TrMeb)29z`=GzaeDJu&p;^~lih}yn=-+E5TolBjGUN>C=;*-J z!ef+Vk@nJUz1=@}93mf_2WNXvT6Q7x1h(&Eys)Vgo~Ivzq_h+C(A*SQWe$@Qi6GVE z%&j{E_)Snbc|j_2_+33ps?w31wG)LJ##+myc2GI^z{SyreybdP;D2lPM9Qmm<@o5U zr%_W^31>$&R=xfO>=ew+pv^np!|8KI+we!kEhbEsogSTBN4ZQ1rP3Y(8z%bL8Le%N z$g50-w&gN>+=Jlm;s+mfUoJQbO&$gwj|W?s9ptulu;DXqA_14jfk@1Ujj$a8i5^m!7$PAP_c8^9 zXyV0vID5f(O{w!xCNj)DJnuGPvh27hgJEl{ghFl)8vzd@F%Lp9A3`ycCV8f!Mpusf z(oB?8WTUtu8zmJvD6Yt1t4kzuj2|(BowuZ*JHY_62n%e4aI*8lV?#fH(pCYfTnvGL zxhY4k2AYa?eLI?3>Y%IFKvPqM(#kCQT~=AxMTDKw5%vlv`1S6G5dVP?3YpVMg5y7b zkCFUAd>5Y2cQkv+^>7;!}CnEGtI6YZ3uF6uWEn3@J zk(GP73z4dtN|aR=p|rdJ`NcWN&CBREQA0(u30vIaJr;1E@ICH;yWaf$9=_{8@jY(f YKaDF#@VXzyTmS$707*qoM6N<$f-*n=2><{9 literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/76.png b/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/76.png new file mode 100644 index 0000000000000000000000000000000000000000..a4e2677d3a816b13de70bfd17e3e9f519f51da69 GIT binary patch literal 4793 zcmV;q5=QNbP)Px{b4f%&RCr$PTnAWGSK5AIU>Y+FedtwCil|^kFtNngQd}cRTzAzZmT0n?m>B%` z*BH&Fn5g)tsTg;YST?pqV~Y)=#8?0o1rZRWmvN{=736=;xz4?F0S!}tXMlUo zx#xV}JEwf@U}h~0Z$&S48UeFjz&ec;ZP*K#et7i)rYBy#fb{~VF9LeD@3uY6O6UZk zK&~fyrfDt_+QP-j6IX8^M$7$1qdM&pz=ReuILimZTI3Fy$Qg368w6$+MlouNm+SA9 zBd0tbc@+r;cV|+-Y$bkhu^vdlBB1>dsZ?_vR|>Wn%$msn3sg>pm+dHn8R@PU(@OXC z>CV;}x97oS?!>$8g8r-+`MWX=g z@A4wt6hnDTl+;|s)xvLhWtJ8ac-Rkuoy-e%a&HQbz1-Vy=FLFC5Iq3LQq24<5(_|P z6d{omu(Ad$MZmWIuEnu4yA2;t=S_nFBR~5bGzc(v#ZZLk%&wxUM5Gk&V8;vc zn1InCZ#;7R>bhd6HMywJuoY#RR64Mu!XMEQpSNS8xFQWX zrROOy1RzaA8GoO%6k|y61PYYDXZS;fXu02lQy0ELNks;pn=%_dp8a@jldmVxW!Tiz zpcfFGZLBw7W@hFXAMgptZ$b^t)i{&&E<4`n;Kc~?oWwpiG}R#f#s*}U{@Ni=N;@wM zegM>?mR<4PY$PP_#pTqa2n`&9xigl-T5ikh^Hjo**u4Gy&dP33JG}uT+WauD*Vw`G zE6yXebPs(d`_!f|rX4@eKe-%{VbdPUXKU+y z{CZ_SE~g$rc0mf;jsQgfYfD>qeT?J3Fkf0%lSu({wF|}6VV|%(XB3^riEAJ8WSAH^ z50j$ibtqR^c^;ijL!`|nb~lC!_Z zZ@2h{?)$GFg+k`Y6EHI`8HuS3Q1_afcy%5wzF0VG75uz|c;)JfQVLc^_VsQ9iwvYU zU^1Z+k-pqA)3yHF&aiS#9(J9Z%M<9c<%zuKjXUNeD=(=-p$7&>VA1SVP{=ubk2K7> zlSaW(skvF$U8v~|7-1~Jdnv5Nj3P-4+0$7oaKE*MKEDvT3HEXymVa_WrsW@FpI6M^ z4<|cM_W9tM&vD|n|Fn~roPg_B?rwJyCZ?RFI#%16_=g6}*M1xV94E6p68{pJX@rP| zKh*zkY+cj6S{zDRf#M2APa84dY0Q|kk|*DP4*U~IX`GcnDrY?V8lIgno7e8-+5OnE z^Mmffro(Xznqk&r4@7u#M?3LOT+aIfjV(2FkST-ThnM3Jc0hGaHhxN6f!c<I5DO?#FgyMQxe=Fj|JjE#Jj?PJfOEg+wsCW8PYOb>LMMLnxpDyY1O8zujxk7P+s z8N3EEF}JzrlwH7)Bu2p{O7DW`SOob-u}m#GQ&?Xqk`G2uuoJ#j8)rJ%Dp*j8Dp5;YvYscJO7} zT+cjG9c`f=`~`i5G%e_c)ct;aw!7%;+dKjpLVwtbAp{FTCgqqK%m zHbcFhK~&H}Uj47>TW~dJA1&+S8ID(@Vd%$hiy|qi2|wTYtw%@Uwq{ z$2pu9N$CIl?a*)Fv4W0%U|KD7|i20tz;kaDw+Mt-}P~fAF!NP ze$%KK4D=a+`O&cum~(sL znZ#Y#cVZo_C&oBA1RU*M***$O?_k}gWhf}_`jgY7fDsAgA~%G4yaIB9YN@fg3W@n! zP}9g5%Wb`~q>L!FM7bptG3YONal-%bK;3_GJ>oC#q-BGGBPeKEuP-UPo_+~yzgmjM zM#F=&otdI02aF8rBnv^9JAZ?&sLP=zCo$H^iAu~T4+m~(X&O{Gl(+)wnjFgaQ;#jg z_=uNyGHl(yjP<-eF=`rhQ|r>1-+scE-@Mluxead9C4dobylkTosO0Nk#ns8UR>bI6 z3aJ}CIc==CsCjXDDm^)g!A@w_(`#r@L`yYw<x1Wicrgiw&jM2rqu!jmoO_AXq= zV0>h*PX5$kY8{vNZw1fB?8Jt{mJ)5kC44Yl{gr}!n2aVZTB9ff5J`JkrWx{Qy$Sc1kT z zA5>G?oZSi-5hz&s96W3}&jl&Ftv-%S)ln+2uW}?NhVgy=Hw%vA^mRtlms#0j!E+no z<;u;(oWd09;;yT&rfuGs`yobz^X=MA->t^!Um0t{80vPw1m;5O-gdO&#~D*gzDIr~ zbE*ySo{Gr81w6SfWqyatS=(uur%Mp^*2<+^_$@i@IR1Tru@2-i8|tm~_X%P9xOcCK z?q|dzFowDvFgip5pEr<`eBgUY+k}|U6YC) z0<}#lD$u0x_u%6+oE5IQrGZADipm)m_?V$HF?B3ohueMpW1LH3@+^i89F3(5xYPv- zx{(<^Jq8$I-rZ&dLY$*{-?q9ggX(B4t^`-Q^=f=N{ z$HMu}%guYTbPw0`oK8JHE#&-U36w;aDEF*8+P>QTT5vjL8i;M>OWm|k`OcgoLD zSzPTxFgbh;FZDB5bs2|~R)S>t5SsVgdi3|_?g&&=mr$FtNR>tFUz@WUqlR%gYk7rP zcz69g)YdYGgg(^cfDvXxU1q{n!DSs*)Mevh-e;^Feci@kTqxs2)KY5RVVp^2_A48? z6FmgnoC4VTE9ob(?FS|Y#Ld|otCnuzL-qV0dt;zi+%rm;&H@o<@?+^ z16+>+7ViEs9A(_muVwgB-e)MUYwtZB-TzGlxj)IuMSN)A#Lr}(qr#^ndOTy46S|#$ z6|vi2p?}*d9I*LgE-9w6T8(+jxV}0A7HQLCfJOPnz)Hw@AhZnMQXN8$`r&!?izf1u zR=zmO7y840oS@3BmOhA!2FZ^l^!~DK2=L{Sncx1`4CLlB7D8vK+X1r>ND$={1CfO_ zpU2i#WT}7V<@#$II4J_)?>dGW=Taf(`X=>l0c)G#sGEN_eabwLkCs-gn~${2j&su< z24J@WrjU4JsK_D`3Fu?reuE`9-4b#b^Ty3?AV&0^1Er1bMFsLdNSMo3gqrW)LuOGth#Q+^ zXt$-1K2exIeFLxfo!Bv~QU0d@j9jrHS8dvosy2<{jkWEMxUd&Y-vBoyr;FXlI*ZMFI4ytOySr&zlTb@bGyeK|1n%Ewl;6%$ zm+oOh+!w%J*0&umcgoMgP3a3?mq-W&kG{M`jO|}iKSOg%d#@?cxm+B4Feq?5h6Yc9 zRKh<}^~jlkioE-&;OM z&TYZb1TG(zxUGr%T1$7!OF(q69=9clpKG|+5?DMq-AD*bA-AESu#Sk_p0yOW!rZbJ zQfmRV^>nile-D_p_3Fw(9Ekr6#E#Tb+oed#x9<7~$A8(YZ}+sl$!3^R7K#CGf2ToN zl4EZzw*i@1TB28uCFGj11;pgH!~*1wwlP$txr-uICW^|kke+i9={fv3B=JxXPlYZe z-$=kmpYwfa`tV>9zd|z`#IQ z2+bjp8vox&&GQQ>ZN0jjDQrIt`f(QF5MCES$Wa8-IExbI-d$nE$x zRH`bVDV}MW$p(XE^pc!6-6W#`d-0h?m^zW4O=vVAMsz@u>C}~FC{g88pvcG6WE5b8 z8843jJQevmRGL(@vMLty2mPs|cD0&4cxWXSqD~u~b|g`SrBPx|MM*?KRCr$PTnBWN#rFRtyV;UWHf7U$Apt@{2_+yPLXaA4$RANb{)mF04^UB1 z;UVZ#K@{{MC4z{63W$L8E)XDuBqR_*8tKWVklqV`^vVy?X#7ggUvboNGrhA}FDHexS$$wJ|15oi!o536xWO)9Qrtutsi zqXFn@)gJ+l6TveT8pP1UYHVdKK~CLCL|oft(2zy}(A#zdx;jkI$_V){7gr^sy0IA5 z4aKN!EJE|$#x|L@weW{773i2xWRP-F&wJWz~5o ztI0(}QyFY+?cnRt9j?w^FfldJ+NUWGkXQj?3xF(PLVsR9gmqj0sTU9TYos@TF4Df} z>GCqucTCP^6jt3(mW>Hs3SY;;56pCJLpjQ;^H5TiiPEY}`u9#%CY&8S&@W&N`g9)& zbCI;o{wiwn;pycJftanb|M)iS*!#@`^Px*cy#XZP5fBxWQx=IE@?VtC-Q1o;XwbWD z@={)ti#wHBD6PssNmbT8(6W>Yh8Vy7dW@mJ0H4S1E7Q5?UGVmHN54LUH0o{J{WT7r z+Mx?3I@Q%1z)-(WsdcZQn4IrXSd~B@$#R`E_*;!-o0|V8l5$U>xFQWz^~G8lwY74l zv#oEBF>tZ>ZBv-iiUORC`WaC-4rAe*mFU)`w?^G>wtR#OSB~lgh_03O0?)wY0E?_joqPESJq>M;hiaUVlo5x^l zWsgtZ-vT>ZXQtn(>I$l9ZzNsO6%U>3>jhvJyV2-kH%2*FcIibV6zo<$zc6GYWR_ma z=PM~cAu4sdR^}ATw1@AI`!av=+CE&pc^D~~F|=NQe_t$JupXu+tk%uRzm2cM7a=?E zw$5Pa)4(VI5}Plz_!u2uXl99-BljqIX};TppUzH0b^RTNKWhsIOd0>tefKxAOe5nD zAS&Sq3QJUW+sL8M;q{k3(2zGF=_)l-Dyz!$!9uS#MhDQvwkMtqS*2vAx~>>o&%C6; z-1{?jz|FC%R;JUkuOaH@5nR1-1oaIyOr5FEFTjM6n*BvY9mCqqAL<2yA&uG{z@my& z?24Gn@c3BoXE0^#M;d&`-a1K@!u6DMT4j2F?$_uWG*si=p;J5YfA)hrEt)Ltj@u=NI3`_Jhlim4CBMLDqb{7cPz-8t-@f z{w?+&`%!NI3~i_vfEGd*4Dnv59J{``0%uZGTKLt_JrD_0j?+s?TM%>m*ERvHtFOkY zty7tOPF=8F8?I`V^Sd9H;q0Y@hGJk)d%XZ8BM$Li1Ph^~a`4NUYf)C4L7#^P%t24j zr)4HgHSM_vEBgsJ4}F&?Fi-21(k7#&D~0$t;}8V?7-EK2yK+_%c^s5@ahtj*W}T% zr=EBdPY#;Suzo3SKXx8o!IUj~dm}Yj6eKUqqTpp@w{24zfQQaa^#;&R(jEQWRr?qj z`G$NKa>_1ICddpVGf|zgi=!!scUzii@heY#LXT?dbm;s>9K8^(ENTrPd9nGIFL3Ov z%I?%zY9lt#8$b$@^Gi(Jqpq%-^Rc7R_A)3kmC)?kLS{GysWkZq^|Pbb5gi zzOr79n4ECbHkQ!x;eqoI;LZYcJ?j9@C2#?5p}?GK<}Mz=Oh4QHSW3^ybh-B*g?X>C z!K{wb%ti%}2-n(INXm+;6A_)gi3)FO!o&D}%i&?irhQzz^*v(KIor>W)gAIG;BQ=Zj2R=Re6}I0Et9_PE+7!%|`38OCyj_ z!1)QK=FZf-v5~kl033_`6sdB~wj*&6V&14bO!JD;sAevy$ftE?PFaLe!=7jQAewpQ zhIdg@Q^}OK*F(Di$TJmCrP5k6Cl&sI^pew57FXL|6huBxl?piW%fp7v!RS_+`9jPd{Cezj`rcmVf<|w(59Iy>T;=Ou4^i%Obict8v$;k89}dQ>_tQ(m%Aqr zi17y1%qp)8Dc`#PLmHhUG;H8_%$@!*(+APaU#@=_vF+&gYIgvMMA|fSLDhA{=5V$h z*)zlXEr*+obt;^{xgPPE`)C~}nK#wUGHX{QNVRp9*syyZZs)|)vWeqnV)9e784!tP zUiIDE$j)z{DBVK=kVvFWGiR2bLt?@2RA6g~D?Kw?o2vjKlT2RLdK?t1|Xj&LLb)|8k+f5!9HY^ z{z>H`GmvOzo~fBq&Z_!5)SFGR83+yP{VZM_%SPWw5NgvN&Rb)~7f_`V)QvTx9=YTq zeg2b{LMQZgouP4NCIKlDm?9M5J_f@B*$gjvX(A3rFF}1HXWNZ`d^W}mp2@I4@?&-% zUrEbIG7auCI0e;ia zzY81tP02rt-Kt5a=|C;lI2#6VbWhXlUY+A47Y-i*Bw@GIdB~k3{(BQZ*A%&FtsN9tpSX zTa4Jm6I>rdp24h_+4wWj%wMcqfcV5nW8l~RW=vaL`q__zuZ#sqUU?1Iayi?M?3qL} zlM{N8RHC5r>K-Lhyaq9{`UpF5OjcgcI*J;_I0FwN|KCaV2F6OAyP5EAA zm7S+W#A`#$8+E5bWo-dH?vV^uLW6oejTgr)Vfu(mK7;RnMQnK3d~ zI}|`7oTbPGya+_7~bO_3_y7$@%ZEF5;Qf}(eiOaXJPD+*VyHL^=JHc zVl^#uck#vIH`i$75-wTwDw5LTbe(w0`W+4+;l#nB2YR_qXEbwNQz_NVmGzwKig>b# zM_Zk4<(|N)_%D@3FO6S{fjysM>g+xF70yKMq-DW@L#TP9PEm2^uxdRU@zVv(M*={) zRBZ+$z>)RsisSl#$e7qEswJ z4oZ3J8Y-~k{0!7Ja3__nUIS>HnaoH99X`JaM=o$-1rnJ0z z$8*?yZS9U(NX?3--4U}UI7pS)PBL6crmL>hVF31bp97hMwf_k7#85t!@*$d<^ti@5Z8rfHOx*$>x1P$n>Htm(dmZGbpxp;If&6r(4gqkm_d-|-RUu0S z)3uFd_%n_5DiZ^m#F717Lg8!^pjAF{17PR**U-?&ULySG8~b2q?e@O}pb4JnvJ@h| zwFVF+)hW1={hhMhTH=Ps1Ln}Pu&Jpk`>S3-J&BozDta#1nFe>%FmkA_5` z(u}P^A-UGcxu+;-xh3~Meto-`O-v`bH6+JIK`TGp0WWveJ(XpvXW?cFr(krUcHaZN zWy9fbKLIAKY?S7^b%@Mbhe6$@!^>d+6JXaSKxM5Q2ckYeSv8k0sEwo&Tl5bc4>J4I zi5SpdY<`jE918F>b`L6<$LP< z@7TEG(+91*k^mA}y6PkniXoL+!P27bWlHMT)R)qu+2!OPU~TD$KHWoUwiW?M zYHo|V#u|E6;z1}T@i>0ir%DgecF%6@<_{1N#U+F4O6>yRK(BeQ7O8G)T1c!QwX}v< zENPQJlHFU^Qh+AYBFJPmkXgGyBDR95S_o4Y;YusyICgOhB4YP4&01gDiN1cGy7=`a zqXRh9=L727BZ3pqq*5E^OiCE#@l7BSb03Kiig^%|PmzesG>&q*3RPZJjGTfb#3!Fc zeDWDo)u?W52Ke>GvUk|86p{GIvemC6C0+HI0$s;68h}Ec1qOS+4-0b{q!u<5IFda@ zK0`vk)gt0ku!QD(n3=J6e060SEkI#u7V?WyK~mnxPfmXKl!SVJ4l)-E8x+QzIu!3o zh?9gm4I!fdXe0JPXpcp3baIBZjg$e*w2d!o=)yF)OIKDYM{Z#%(z0Sf-1QaJ?EPcX zAD_pErNkPR7FHnJ#=yRz7#0$yb?Z2D@c`CuTdoTmTI(7NU`V$~c=`FcaCB2$)4!Kg zuOD;wJTi(K4{A3b^y^PcD`U(&MYje6_|1xaaI#mOH;pD`J9JcZCl7lLh2zXcF6w6t zG919=d*Re7g~Aw&{be8Ik&~Z}9Cjcn9|M|`(Y#@-G0CoasAOZ$9{}0TL V4VtB!@V@{6002ovPDHLkV1l?&mV*EQ literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/80.png b/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/80.png new file mode 100644 index 0000000000000000000000000000000000000000..7725db405632081c615413a61f9a28a6ef97832b GIT binary patch literal 5003 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 V4VtB!@V@{6002ovPDHLkV1l?&mV*EQ literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/87.png b/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/87.png new file mode 100644 index 0000000000000000000000000000000000000000..5d2ff46f45c6268f264edc07e21204f483c5edcd GIT binary patch literal 5519 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 RS)%{|002ovPDHLkV1km_z7zle literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/Contents.json b/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..e594077 --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,116 @@ +{ + "images" : [ + { + "filename" : "40.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "filename" : "60.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "filename" : "58.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "87.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "filename" : "80.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "120.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "filename" : "120-1.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "filename" : "180.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "filename" : "20.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" + }, + { + "filename" : "40-1.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" + }, + { + "filename" : "29.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" + }, + { + "filename" : "58-1.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "40-2.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" + }, + { + "filename" : "80-1.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "76.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" + }, + { + "filename" : "152.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "76x76" + }, + { + "filename" : "167.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" + }, + { + "filename" : "1024.png", + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/Contents.json b/shake-demo-ios/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/I.colorset/Contents.json b/shake-demo-ios/Assets.xcassets/I.colorset/Contents.json new file mode 100644 index 0000000..22c4bb0 --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/I.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "1.000", + "red" : "1.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "1.000", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/color/Contents.json b/shake-demo-ios/Assets.xcassets/color/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/color/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/color/shake_border_color.colorset/Contents.json b/shake-demo-ios/Assets.xcassets/color/shake_border_color.colorset/Contents.json new file mode 100644 index 0000000..79e78b3 --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/color/shake_border_color.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.969", + "green" : "0.949", + "red" : "0.949" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.180", + "green" : "0.173", + "red" : "0.173" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/color/shake_feedback_grayedOut.colorset/Contents.json b/shake-demo-ios/Assets.xcassets/color/shake_feedback_grayedOut.colorset/Contents.json new file mode 100644 index 0000000..1280a8d --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/color/shake_feedback_grayedOut.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.290", + "green" : "0.282", + "red" : "0.282" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.290", + "green" : "0.282", + "red" : "0.282" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/color/shake_headline_color.colorset/Contents.json b/shake-demo-ios/Assets.xcassets/color/shake_headline_color.colorset/Contents.json new file mode 100644 index 0000000..bd094ff --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/color/shake_headline_color.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.118", + "green" : "0.110", + "red" : "0.110" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.969", + "green" : "0.949", + "red" : "0.949" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/color/shake_steps_color.colorset/Contents.json b/shake-demo-ios/Assets.xcassets/color/shake_steps_color.colorset/Contents.json new file mode 100644 index 0000000..e14a8e9 --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/color/shake_steps_color.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "display-p3", + "components" : { + "alpha" : "1.000", + "blue" : "0.455", + "green" : "0.446", + "red" : "0.443" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.839", + "green" : "0.820", + "red" : "0.820" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/color/shake_steps_parent_view.colorset/Contents.json b/shake-demo-ios/Assets.xcassets/color/shake_steps_parent_view.colorset/Contents.json new file mode 100644 index 0000000..b9f3cc9 --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/color/shake_steps_parent_view.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "display-p3", + "components" : { + "alpha" : "1.000", + "blue" : "0.973", + "green" : "0.957", + "red" : "0.957" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.180", + "green" : "0.173", + "red" : "0.173" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/color/shake_subtitle_color.colorset/Contents.json b/shake-demo-ios/Assets.xcassets/color/shake_subtitle_color.colorset/Contents.json new file mode 100644 index 0000000..7fec402 --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/color/shake_subtitle_color.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.576", + "green" : "0.557", + "red" : "0.557" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.576", + "green" : "0.557", + "red" : "0.557" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/color/shake_url_color.colorset/Contents.json b/shake-demo-ios/Assets.xcassets/color/shake_url_color.colorset/Contents.json new file mode 100644 index 0000000..bd094ff --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/color/shake_url_color.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.118", + "green" : "0.110", + "red" : "0.110" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.969", + "green" : "0.949", + "red" : "0.949" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/crash-one.imageset/Contents.json b/shake-demo-ios/Assets.xcassets/crash-one.imageset/Contents.json new file mode 100644 index 0000000..2acac76 --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/crash-one.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "crash-one.pdf", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/crash-one.imageset/crash-one.pdf b/shake-demo-ios/Assets.xcassets/crash-one.imageset/crash-one.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6e0253d185e2e7bf52290854fad5c259330b768e GIT binary patch literal 5465 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 Jh=#r<_+PpiZnOXZ literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/crash-two.imageset/Contents.json b/shake-demo-ios/Assets.xcassets/crash-two.imageset/Contents.json new file mode 100644 index 0000000..afc1105 --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/crash-two.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "crash-two.pdf", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/crash-two.imageset/crash-two.pdf b/shake-demo-ios/Assets.xcassets/crash-two.imageset/crash-two.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9cbf52cbcfb5cb07f62a9ceec59da5fe43c5d898 GIT binary patch literal 5463 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 BYTf_< literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/crashReporting_icon.imageset/Contents.json b/shake-demo-ios/Assets.xcassets/crashReporting_icon.imageset/Contents.json new file mode 100644 index 0000000..75e178b --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/crashReporting_icon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "crashReporting_icon.pdf", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/crashReporting_icon.imageset/crashReporting_icon.pdf b/shake-demo-ios/Assets.xcassets/crashReporting_icon.imageset/crashReporting_icon.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c12d86b606667780c18628b62d1c587f892b9caa GIT binary patch literal 3813 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%0DOc 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 BXCD9n literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/customizing_icon.imageset/Contents.json b/shake-demo-ios/Assets.xcassets/customizing_icon.imageset/Contents.json new file mode 100644 index 0000000..d0c8ac6 --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/customizing_icon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "customizing_icon.pdf", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/customizing_icon.imageset/customizing_icon.pdf b/shake-demo-ios/Assets.xcassets/customizing_icon.imageset/customizing_icon.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5064774d61db574e8cd41cea0c18c87258b928c7 GIT binary patch literal 4418 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 literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/feedback_exit_icon.imageset/Contents.json b/shake-demo-ios/Assets.xcassets/feedback_exit_icon.imageset/Contents.json new file mode 100644 index 0000000..cc3c5e3 --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/feedback_exit_icon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "feedback_exit_icon.pdf", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/feedback_exit_icon.imageset/feedback_exit_icon.pdf b/shake-demo-ios/Assets.xcassets/feedback_exit_icon.imageset/feedback_exit_icon.pdf new file mode 100644 index 0000000000000000000000000000000000000000..62930de492e1b8c290ad4d570df9900c49b15ba2 GIT binary patch literal 3923 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 literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/feedback_feedback_icon.imageset/Contents.json b/shake-demo-ios/Assets.xcassets/feedback_feedback_icon.imageset/Contents.json new file mode 100644 index 0000000..4a1af96 --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/feedback_feedback_icon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "feedback_feedback_icon.pdf", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/feedback_feedback_icon.imageset/feedback_feedback_icon.pdf b/shake-demo-ios/Assets.xcassets/feedback_feedback_icon.imageset/feedback_feedback_icon.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9b1d15618e3358153255e69dd3b3846852c6558a GIT binary patch literal 3969 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 literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/feedback_notification_icon.imageset/Contents.json b/shake-demo-ios/Assets.xcassets/feedback_notification_icon.imageset/Contents.json new file mode 100644 index 0000000..365240d --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/feedback_notification_icon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "feedback_notification_icon.pdf", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/feedback_notification_icon.imageset/feedback_notification_icon.pdf b/shake-demo-ios/Assets.xcassets/feedback_notification_icon.imageset/feedback_notification_icon.pdf new file mode 100644 index 0000000000000000000000000000000000000000..77ba8dc17a6eaab06429501c7c372b05d307914f GIT binary patch literal 4224 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 LK0XzUD&+qFg&b*o literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/feedback_theme_icon.imageset/Contents.json b/shake-demo-ios/Assets.xcassets/feedback_theme_icon.imageset/Contents.json new file mode 100644 index 0000000..06af471 --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/feedback_theme_icon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "feedback_theme_icon.pdf", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/feedback_theme_icon.imageset/feedback_theme_icon.pdf b/shake-demo-ios/Assets.xcassets/feedback_theme_icon.imageset/feedback_theme_icon.pdf new file mode 100644 index 0000000000000000000000000000000000000000..dec0a18b470dd296976c06e3fdba7df96546b9ad GIT binary patch literal 4085 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 KKbLh*2~7Yv&2muy literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/four.imageset/four@2x.png b/shake-demo-ios/Assets.xcassets/four.imageset/four@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..724312fc934924929aabbfacd532f5a5e5d4219a GIT binary patch literal 351 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SM3?%Ea%ijShmUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UIIDl0X`wF?gc(?A|u~MM0|{meG?J!E;8~>c=-RUEFc?*fZ{*|6j4;Du>xx0 zDGBlmX7EW7xvBSsZSI!h`XftwdV%8mJY5_^EKa|@qR4m1L4fr_V_QzJYx7${0TtgJ zOl*OzhZ4gbnB;=nUodJ}9FSw+zG;&Ai{Dk;iSjOEGl_P|Df*jZH(t~ ze3RX@7?Mk^{_JYm!dP!HTUPtNL43yIAa^H* zb?0PW0y&BSJ|V8|1wNnS;@(6=fKYh&TQCV^0~zn5qJSb+`(1j0in&UH{DK)oOXt3| zxv(KvqpV6h5ojE{r;B5V$MLt9AIwuHVV3Xsmnv z%7gE68;VYIct{<%s=NHayh)4!T3*{4CDoU{sr52@R-xfl*3dNBJGR&@?S!+JS94z1 zq=}izip$dkcP`BnP+jV%sb1PFktucLgjhh~r%(4p{4}j!IGkLUDWIqvt-SrtNxnxa zIlXg?E_BbBXtc1UF8!2e<(%VYMURe5{&4?}{ioj6m<-08FZ)P?_(e_S#0m$cfws$b4G6&O$qp00i_>zopr0CE$p A`~Uy| literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/icons8-menu-30.imageset/Contents.json b/shake-demo-ios/Assets.xcassets/icons8-menu-30.imageset/Contents.json new file mode 100644 index 0000000..5df2dbe --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/icons8-menu-30.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "icons8-menu-30.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/icons8-menu-30.imageset/icons8-menu-30.png b/shake-demo-ios/Assets.xcassets/icons8-menu-30.imageset/icons8-menu-30.png new file mode 100644 index 0000000000000000000000000000000000000000..8c03aff93b87e3a21e8e66eca57a1a93eb0ff757 GIT binary patch literal 131 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX1|+Qw)-3{3Y)RhkE)4%caKYZ?lYt@@o-U3d z9-VJ5Z{%b!;9)+f{yYEa!8uwJt_kcuDZfHYi)E4&%Y?I?!Q0r_?iTIv-~ZX~lJPyy bpp$GHL;d|6iy8j_&0z3!^>bP0l+XkKXoxEC literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/icons8-menu-60.imageset/Contents.json b/shake-demo-ios/Assets.xcassets/icons8-menu-60.imageset/Contents.json new file mode 100644 index 0000000..0aa9356 --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/icons8-menu-60.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "icons8-menu-60.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/icons8-menu-60.imageset/icons8-menu-60.png b/shake-demo-ios/Assets.xcassets/icons8-menu-60.imageset/icons8-menu-60.png new file mode 100644 index 0000000000000000000000000000000000000000..e9aca58e1b9e7cb7f31aa777d057e0ea1a4a2328 GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1|+Ti+$;i8Y)RhkE)4%caKYZ?lYt^xo-U3d z8I5nRTXP)>5OKZOyV&^Lem{pf?cXLTJz}oiB{t_@-Kt=qLYd-~+g{mKZp*UV^x-Ra zo9xuvpNp0&i~lI~-umt5`#rO_TJi7WWnj?1I8Ci@+ZOj|CWZuo+{{NA-ql-F85kP& be`fGJb-YLC?A9wl!x%hW{an^LB{Ts5J-0>V literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/offline-four.imageset/Contents.json b/shake-demo-ios/Assets.xcassets/offline-four.imageset/Contents.json new file mode 100644 index 0000000..ece190f --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/offline-four.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "offline-four.pdf", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/offline-four.imageset/offline-four.pdf b/shake-demo-ios/Assets.xcassets/offline-four.imageset/offline-four.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5088352e10b14e3d425312cf3bae688e1bcd75d5 GIT binary patch literal 5576 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 RG9m+$kq3&3YUpVK{|lpQp}+tD literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/offline-one.imageset/Contents.json b/shake-demo-ios/Assets.xcassets/offline-one.imageset/Contents.json new file mode 100644 index 0000000..c7ee12e --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/offline-one.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "offline-one.pdf", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/offline-one.imageset/offline-one.pdf b/shake-demo-ios/Assets.xcassets/offline-one.imageset/offline-one.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7b02e925f99045d7a10775a6d079eb6c465e9bef GIT binary patch literal 5461 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 E0QW3tng9R* literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/offline-three.imageset/Contents.json b/shake-demo-ios/Assets.xcassets/offline-three.imageset/Contents.json new file mode 100644 index 0000000..af9a089 --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/offline-three.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "offline-three.pdf", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/offline-three.imageset/offline-three.pdf b/shake-demo-ios/Assets.xcassets/offline-three.imageset/offline-three.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9ae5be616391190e99c614509121f6c72f68f801 GIT binary patch literal 5512 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 literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/shake_menu_logo.imageset/Contents.json b/shake-demo-ios/Assets.xcassets/shake_menu_logo.imageset/Contents.json new file mode 100644 index 0000000..57fb63d --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/shake_menu_logo.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "shake_menu_logo.pdf", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/shake_menu_logo.imageset/shake_menu_logo.pdf b/shake-demo-ios/Assets.xcassets/shake_menu_logo.imageset/shake_menu_logo.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d5f9ac779ab3fe251704730ac17679a4535ef4e8 GIT binary patch literal 7101 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 G;Qs>om2dR` literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/shaking-two.imageset/Contents.json b/shake-demo-ios/Assets.xcassets/shaking-two.imageset/Contents.json new file mode 100644 index 0000000..3183cf5 --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/shaking-two.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "shaking-two.pdf", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/shaking-two.imageset/shaking-two.pdf b/shake-demo-ios/Assets.xcassets/shaking-two.imageset/shaking-two.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3a9160ae358552b1e6f962827c29391aa1450905 GIT binary patch literal 5465 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 HjvDA+ey?o3 literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Assets.xcassets/shaking_icon.imageset/Contents.json b/shake-demo-ios/Assets.xcassets/shaking_icon.imageset/Contents.json new file mode 100644 index 0000000..92d5103 --- /dev/null +++ b/shake-demo-ios/Assets.xcassets/shaking_icon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "shaking_icon.pdf", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/shake-demo-ios/Assets.xcassets/shaking_icon.imageset/shaking_icon.pdf b/shake-demo-ios/Assets.xcassets/shaking_icon.imageset/shaking_icon.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b48384d11ae91f5e162e671231e0617a963733c4 GIT binary patch literal 3854 zcmai%c{tSF`^PO)7_yWlQho9m5;2RVsqDibWtXuwGsez{v1iTlU}R5}B(fw+QG_8& zBp#D&Nk|OYk|q1(J9?gePv5KG@A{qVT<3GH``qU~=iKklAFmr?h|)d{lSP0bt+Zv@ zT;a;SH?3`81ONqyI2Z8w^MIVTvm1%v#rV2mNdy!DPqZfha{2@hN0Ji&M<4+e6|gtS zi-2_p`!kyv)p@i+xrSE+cEU~EF(H2q)gFbfvPQ7DCrf)ScsAO-RyP)n5Kq&3TXn5n zz|Y#a>A@;EK6-#NWOON-D6V^e2UWjJ*GP&msPAgzTWQt{;w+Xn>P>q(%->qkMdC`~ z+prczfvx^}Bd&!Q7v=@i#yl>X`bDWejH#_O1?zaxY1Fje9F=o zZW%t+If=doHl378NT^UM;;vA?7})v#u)egZMwQ69rOCd2AtY>hgNVBx=+ad!V$NFH z)lP2EX~NRJ@qh1+jA~O!4hAGwKtXaz-@>B?ed(+l3zv1k1P}XvUe1{9r3>~;+DrpH z8F@0qI{p~F2p%K=&R8}E|98oMl{x#SpQ*`^U<{R_M0s;i41lbP1abgx&*=z&jAC`e3|XQh zC45o)wE6j@%D!?wXJ!`Z zv{kNskqxu28=keJLB!E_7P%ikr}8IEQ_#`DOaTSAG?^ZMGyaPra*7zKa=in|~xn5oB5ux4eC{vLW4!smgu78g2ZM!6Lx4ypO4B z^v=q$XgAxG)=ylLobmJXZr;o}uCmgfm9}#th_4%?k?WbAU$)K96$q(@|Dh{@AZXDF z3JWfvy1KZyGpP3Tb>7{H7f9#7I$C7zU_9GlB_*AGPHj@ z^su5Nn{Y_BE5DPE9aC@=(y&IC?G;g(N%Id@aSzo%mf$%nUKsdQL%maJa=CXRJn;MU z)^SejIFE6Cbup8vHLgT^FUWlv;k>a(w@?{ybXroQmNH=s)qik|zeL6=_~@Z{tQL#u(Kn=U|^ zN5h@jBfjzq+*f~?B$&^WsWHHN#F9NgQ{C_kKkG})*d*Q*waqsYMTbvaf0(OjsJ!|I zNu-wD=K9t>wl{$MemZk-B;PHTUhIK)OwYoGD$a?rqnkTFqWlH!unD~w9@nc8RN<~} z78*bDl}RSbt~r%m?G-y~kG2K-ktLKyl7%=k-wD@bv3!dPPdw0 zNxWiJk@1-I9d`blD0lk{;ZLHTAvK4s;T{TQplY5$a$VS5%Yku;CI9+Uqx_2zJWbwT zao0{XfI~$?kBucBZ)=oH;;;m{M(~`t35dIioAQdVPqWh_`I_a8!ix+@V$r+-t=2fH z$2Z=o*XxQ(TuSBFjTRR&7MIGb3OCht5wnp{mY|$S?Ko?X_BxDFvo$Ca&jIWpJSnP% zX(uK44fI5{G=?rA^`5H*s0C;~Fg{S^(P#1SR&BPW0RG0#pjd6D;w|LC2@#Fn2LW$usxDTYeNT7~J&IP!-|kJFdAWN0Gi8;7 z03le>PSQkaBDBia#`~M0S2hsF!Vk!)I8LIvE12qw_YlJ^OVP_Yw2R? z4(ZJ4i4XP7i2eNi*$>?x8uUS3BwVmALoVC>vLy-BLaN_gYPOyH?&MC)Y(;HsV9l1x zx0YGu*;J7%kp>ZA5i^kt`8EaNERU>?ELzsIe0!CXCFfI+CCzgBsVy`;^Glbh1Eew@ znOj=6PZohnYhv3H+b}le82=aw_xd}M@5#Ez;C{Zj&*L@SOXLYQ$sozcy}E^C*_dvr z?gQObf|XFzwsw-a7J5d5B)K zEzNU*Cm9{zo>rJTEkfnA{WGKda`NT!>XdcdqRV2T%2}0Il?0VT4ZaN}!Ezf|It$%* zYh-2c>-5&(wgKo2=n={+VO76y&Q1r@O(EWw8`Lp37iCI&W*`Vr$?Dy@%gNl;)mQc6>7PDp8cJaM(1 zNdNdvGw4vsj3FZL`3C6B3FOkJ_Ko9vm+yg*Iv7Pxa8nd29-tkD*=6dx-TbM`VxrM7DF zZFX5j*=T2YM!D_MbFboI%Jz;~Mu}q?(&k)nb}(fjnw~IltnThjyZI33nWu~Hlo`)T z`pt>b8x8w{r?+gjlazcJ`gOj(`3H+Y3w`KM!Ibd9FmZu(}qLCZdBF;!Z-N_!Svil&k` z$s>V}S6_bZBxm$aL^Vo%f3}|9Q<4+nw@q=xb+mqU?U~C|)f+8pKyD4Jxlh}Fp6vB= zUMwh#8!c&2T??n@ZsS+mlV|1)HVo2p5>)-JaqKMnOSn5sjjcznZ2!*6d#Jj{whW%t z)zs9$dK2t{JytaaY<}YJ9xwmI-+yu18<4w5uy@945d8rwD8mJ=#OObG*oOhxFhK5t zv%NQillN$x5$zWiR{AZVCYFSCBRc*K>fZkl`o92v=9di&0JrzSGb*8z?pVBm31Cj} z@^&VA05F)WB4B+|!^hdp9)Ls9FhvDxDZt1F>qQC#7^wb(?)^zp3_@pANhHP=6a&7& zCsAkNP&f<*g);^P1t`K23YBDZhTlb^{hkZ(f4ls9Lw_%V0~iV*!O;I{fTDr|LIH39 ze%cTSMq#nn0FR$G1RTzI+ke}jjH~=+lZXAj7l!=J29-a82pdm8M`Q4C4X!xZ64XP^!+c`P1|g~}tL ra3o$HL4cmY!4(O399{+d|GWJCOL&tQ0{zGyLIDm1Lm*lP+Ti~HapI~S literal 0 HcmV?d00001 diff --git a/shake-demo-ios/Base.lproj/LaunchScreen.storyboard b/shake-demo-ios/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..865e932 --- /dev/null +++ b/shake-demo-ios/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/shake-demo-ios/Info.plist b/shake-demo-ios/Info.plist new file mode 100644 index 0000000..4a08ffa --- /dev/null +++ b/shake-demo-ios/Info.plist @@ -0,0 +1,68 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Shake Demo + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + LSRequiresIPhoneOS + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + UISceneStoryboardFile + Main + + + + + UIApplicationSupportsIndirectInputEvents + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/shake-demo-ios/Presentation/Base.lproj/Main.storyboard b/shake-demo-ios/Presentation/Base.lproj/Main.storyboard new file mode 100644 index 0000000..a6864be --- /dev/null +++ b/shake-demo-ios/Presentation/Base.lproj/Main.storyboard @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/shake-demo-ios/Presentation/BottomBorderView.swift b/shake-demo-ios/Presentation/BottomBorderView.swift new file mode 100644 index 0000000..5b009e2 --- /dev/null +++ b/shake-demo-ios/Presentation/BottomBorderView.swift @@ -0,0 +1,34 @@ +// +// BottomBorderView.swift +// shake-demo-ios +// +// Created by Sanjin Grahovar Sadiković on 05.11.2021.. +// + +import Foundation +import UIKit +import Shake + +class BottomBorderView: UIView{ + + override init(frame: CGRect) { + super.init(frame: frame) + commonInit() + } + + required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + commonInit() + } + + func commonInit(){ + let border = CALayer() + border.backgroundColor = UIColor(named: "shake_border_color")?.cgColor + border.frame = CGRect(x: 0, y: self.frame.height - 1.0, width: self.frame.width + 10, height: 1.0) + self.layer.addSublayer(border) + } + + @objc func handleTap(sender: UITapGestureRecognizer) { + Shake.show(.home) + } +} diff --git a/shake-demo-ios/Presentation/CircleView.swift b/shake-demo-ios/Presentation/CircleView.swift new file mode 100644 index 0000000..495a58e --- /dev/null +++ b/shake-demo-ios/Presentation/CircleView.swift @@ -0,0 +1,37 @@ +// +// CircleView.swift +// shake-demo-ios +// +// Created by Sanjin Grahovar Sadiković on 05.11.2021.. +// + +import Foundation +import UIKit + +class CircleView: UIView{ + + override init(frame: CGRect) { + super.init(frame: frame) + commonInit() + } + + required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + commonInit() + } + + func commonInit(){ + print(self.bounds) + let circleView = UIImageView(frame: self.bounds) + circleView.clipsToBounds = true + circleView.backgroundColor = self.backgroundColor + self.backgroundColor = UIColor(white: 1, alpha: 0) + + // print("Background color: \(String(describing: self.backgroundColor))") + + circleView.layer.cornerRadius = circleView.frame.size.width/2 + + addSubview(circleView) + bringSubviewToFront(circleView) + } +} diff --git a/shake-demo-ios/Presentation/CrashReporting/CrashReportingVC.storyboard b/shake-demo-ios/Presentation/CrashReporting/CrashReportingVC.storyboard new file mode 100644 index 0000000..210852b --- /dev/null +++ b/shake-demo-ios/Presentation/CrashReporting/CrashReportingVC.storyboard @@ -0,0 +1,245 @@ + + + + + + + + + + + + + + Roobert-Medium + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + On your computer visit www.shk.sh/demo to see how your crash report looks like. Shake SDK has attached all that data automatically! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/shake-demo-ios/Presentation/CrashReporting/CrashReportingVC.swift b/shake-demo-ios/Presentation/CrashReporting/CrashReportingVC.swift new file mode 100644 index 0000000..78ae5ce --- /dev/null +++ b/shake-demo-ios/Presentation/CrashReporting/CrashReportingVC.swift @@ -0,0 +1,52 @@ +// +// CrashReportingVC.swift +// shake-demo-ios +// +// Created by Sanjin Grahovar Sadiković on 02.11.2021.. +// + +import Foundation +import UIKit +import Shake + +class CrashReportingVC: UIViewController, UIGestureRecognizerDelegate, UITextViewDelegate{ + + @IBOutlet weak var tutorialStepCrash: UIView! + @IBOutlet weak var stepsTextView: UITextView! + + + override func viewDidLoad() { + super.viewDidLoad() + + let tapGesture = UITapGestureRecognizer(target: self, action: #selector(handleCrash(sender:))) + tutorialStepCrash.addGestureRecognizer(tapGesture) + tutorialStepCrash.isUserInteractionEnabled = true + + var attributes = [NSAttributedString.Key: Any]() + attributes[.foregroundColor] = UIColor(named: "shake_url_color") + attributes[.underlineColor] = UIColor(named: "shake_url_color") + attributes[.underlineStyle] = NSUnderlineStyle.single.rawValue + attributes[.strokeWidth] = -2 + + // textView.linkTextAttributes = attributes + stepsTextView.linkTextAttributes = attributes + } + + @objc func handleCrash(sender: UITapGestureRecognizer) { + fatalError() + } + + func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool { + print("URL: \(URL.absoluteString)") + + if(URL.absoluteString == "www.shk.sh/demo"){ + let baseUrl : String = URL.absoluteString + let moreUrl : String = "" + let newUrl = Foundation.URL(string: baseUrl + moreUrl) + + UIApplication.shared.open(newUrl!) + } + + return false + } +} diff --git a/shake-demo-ios/Presentation/Customizing/CustomizingVC.storyboard b/shake-demo-ios/Presentation/Customizing/CustomizingVC.storyboard new file mode 100644 index 0000000..1d17f32 --- /dev/null +++ b/shake-demo-ios/Presentation/Customizing/CustomizingVC.storyboard @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + Roobert-Medium + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The customizations are simple so you get the idea. Visit www.shakebugs.com/docs to read how to tweak dozens of things to your needs: From custom logs and variables to managing sensitive data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/shake-demo-ios/Presentation/Customizing/CustomizingVC.swift b/shake-demo-ios/Presentation/Customizing/CustomizingVC.swift new file mode 100644 index 0000000..1d9b954 --- /dev/null +++ b/shake-demo-ios/Presentation/Customizing/CustomizingVC.swift @@ -0,0 +1,42 @@ +// +// CustomizingVC.swift +// shake-demo-ios +// +// Created by Sanjin Grahovar Sadiković on 02.11.2021.. +// + +import Foundation +import UIKit + +class CustomizingVC: UIViewController, UITextViewDelegate{ + + @IBOutlet weak var circularView: UIView! + @IBOutlet weak var urlTextView: UITextView! + + override func viewDidLoad() { + super.viewDidLoad() + urlTextView.delegate = self + + var attributes = [NSAttributedString.Key: Any]() + attributes[.foregroundColor] = UIColor(named: "shake_url_color") + attributes[.underlineColor] = UIColor(named: "shake_url_color") + attributes[.underlineStyle] = NSUnderlineStyle.single.rawValue + attributes[.strokeWidth] = -2 + + urlTextView.linkTextAttributes = attributes + } + + func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool { + print("URL: \(URL.absoluteString)") + + if(URL.absoluteString == "http://www.shakebugs.com/docs"){ + let baseUrl : String = URL.absoluteString + let moreUrl : String = "" + let newUrl = Foundation.URL(string: baseUrl + moreUrl) + + UIApplication.shared.open(newUrl!) + } + + return false + } +} diff --git a/shake-demo-ios/Presentation/FeedbackCenter/FeedbackVC.storyboard b/shake-demo-ios/Presentation/FeedbackCenter/FeedbackVC.storyboard new file mode 100644 index 0000000..766f341 --- /dev/null +++ b/shake-demo-ios/Presentation/FeedbackCenter/FeedbackVC.storyboard @@ -0,0 +1,305 @@ + + + + + + + + + + + + + + Roobert-Medium + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/shake-demo-ios/Presentation/FeedbackCenter/FeedbackVC.swift b/shake-demo-ios/Presentation/FeedbackCenter/FeedbackVC.swift new file mode 100644 index 0000000..f9ba707 --- /dev/null +++ b/shake-demo-ios/Presentation/FeedbackCenter/FeedbackVC.swift @@ -0,0 +1,39 @@ +// +// FeedbackVC.swift +// shake-demo-ios +// +// Created by Sanjin Grahovar Sadiković on 02.11.2021.. +// + +import Foundation +import UIKit +import Shake + +class FeedbackVC: UIViewController, UIGestureRecognizerDelegate{ + + @IBOutlet weak var feedbackItem: UIView! + @IBOutlet weak var feedbackCenter: UILabel! + + override func viewDidLoad() { + super.viewDidLoad() + + let tapGesture = UITapGestureRecognizer(target: self.feedbackItem, action: #selector(handleTap(sender:))) + + tapGesture.delegate = self + tapGesture.numberOfTapsRequired = 1 + tapGesture.numberOfTouchesRequired = 1 + + feedbackItem.addGestureRecognizer(tapGesture) + feedbackItem.isUserInteractionEnabled = true + } + + @objc func handleTap(sender: UITapGestureRecognizer) { + print("tap") + } + + @objc func feedbackTapped(gesture: UIGestureRecognizer) { + print("TAP") + Shake.show(.home) + } + +} diff --git a/shake-demo-ios/Presentation/MainViewController.swift b/shake-demo-ios/Presentation/MainViewController.swift new file mode 100644 index 0000000..84999be --- /dev/null +++ b/shake-demo-ios/Presentation/MainViewController.swift @@ -0,0 +1,260 @@ +// +// MainViewController.swift +// shake-demo-ios +// +// Created by Sanjin Grahovar Sadiković on 05.11.2021.. +// + +import Foundation +import UIKit +import SideMenu + +enum NavigationOption: Int { + case shaking + case customizing + case crashReporting + case feedbackCenter + case offlineSupport + + var description: (String, String) { + switch self { + case .shaking: + return ("Hi, try shaking", "shaking_icon") + case .customizing: + return ("Customizing Shake", "customizing_icon") + case .crashReporting: + return ("Crash reporting", "crashReporting_icon") + case .feedbackCenter: + return ("Feedback center", "feedbackCenter_icon") + case .offlineSupport: + return ("Offline support", "offline_icon") + } + } +} + + +class MainViewController: UIViewController, MenuControllerDelegate { + + var menu: SideMenuNavigationController? + + override func viewDidLoad() { + super.viewDidLoad() + +// sliding menu + let hamburgerIcon = UIImage(named: "icons8-menu-60") + + let button = UIBarButtonItem(image: hamburgerIcon, style: .plain, target: self, action: #selector(self.didTapMenu)) + self.navigationItem.leftBarButtonItem = button + self.navigationItem.leftBarButtonItem?.tintColor = UIColor(named: "shake_headline_color") + + self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: UIImage(named: "dots"), style: .done, target: self, action: #selector(rightMenuTapped(sender:))) + self.navigationItem.rightBarButtonItem?.tintColor = UIColor(named: "shake_headline_color") + + self.navigationController?.navigationItem.hidesBackButton = true + + let menuController = MenuListController(navigationOptions: [.shaking, .customizing, .crashReporting, .feedbackCenter, .offlineSupport]) + menuController.delegate = self + + menu = SideMenuNavigationController(rootViewController: menuController) + menu?.leftSide = true + + SideMenuManager.default.leftMenuNavigationController = menu + + updateMenus() + + // initial vc + configureWithNavigationOption(option: .shaking, inRootController: self) + } + + @objc func rightMenuTapped(sender: UIBarButtonItem) { + + let alert = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet) + + alert.popoverPresentationController?.barButtonItem = sender + + alert.addAction(UIAlertAction(title: "Settings", style: .default , handler:{ (UIAlertAction)in + + let storyboard = UIStoryboard(name: "SettingsVC", bundle: .main) + + if #available(iOS 13.0, *) { + let settingsVC = storyboard.instantiateViewController(identifier: "SettingsVC") + self.navigationController?.pushViewController(settingsVC, animated: true) + } else{ + let settingsVC = storyboard.instantiateViewController(withIdentifier: "SettingsVC") + self.navigationController?.pushViewController(settingsVC, animated: true) + } + })) + + alert.addAction(UIAlertAction(title: "Dismiss", style: .cancel, handler:{ (UIAlertAction)in + print("User click Dismiss button") + })) + + self.present(alert, animated: true, completion: { + print("completion block") + }) + } + + func configureWithNavigationOption(option: NavigationOption, inRootController rootVC: UIViewController) { + + var configuredViewController: UIViewController? + + switch option { + case .customizing: + let storyboard = UIStoryboard(name: "CustomizingVC", bundle: .main) + if #available(iOS 13.0, *) { + configuredViewController = storyboard.instantiateViewController(identifier: "CustomizingVC") + } else{ + configuredViewController = storyboard.instantiateViewController(withIdentifier: "CustomizingVC") + } + + + case .shaking: + let storyboard = UIStoryboard(name: "ShakingVC", bundle: .main) + if #available(iOS 13.0, *) { + configuredViewController = storyboard.instantiateViewController(identifier: "ShakingVC") + } else{ + configuredViewController = storyboard.instantiateViewController(withIdentifier: "ShakingVC") + } + + case .crashReporting: + let storyboard = UIStoryboard(name: "CrashReportingVC", bundle: .main) + if #available(iOS 13.0, *) { + configuredViewController = storyboard.instantiateViewController(identifier: "CrashReportingVC") + } else{ + configuredViewController = storyboard.instantiateViewController(withIdentifier: "CrashReportingVC") + } + + case .feedbackCenter: + let storyboard = UIStoryboard(name: "FeedbackVC", bundle: .main) + if #available(iOS 13.0, *) { + configuredViewController = storyboard.instantiateViewController(identifier: "FeedbackVC") + } else{ + configuredViewController = storyboard.instantiateViewController(withIdentifier: "FeedbackVC") + } + + case .offlineSupport: + let storyboard = UIStoryboard(name: "OfflineVC", bundle: .main) + if #available(iOS 13.0, *) { + configuredViewController = storyboard.instantiateViewController(identifier: "OfflineVC") + } else{ + configuredViewController = storyboard.instantiateViewController(withIdentifier: "OfflineVC") + } + + default: + break + } + +// todo add more cases + + guard let vc = configuredViewController else { return } + detachChildFromParent(parent: rootVC) + attachChild(childVC: vc, toParentVC: rootVC) + } + + + func detachChildFromParent(parent: UIViewController) { + guard let child = parent.children.first else { return } + child.view.removeFromSuperview() + child.didMove(toParent: nil) + } + + func attachChild(childVC: UIViewController, toParentVC parent: UIViewController) { + parent.view.addSubview(childVC.view) + childVC.view.autoresizingMask = [.flexibleWidth, .flexibleHeight] + parent.addChild(childVC) + childVC.didMove(toParent: parent) + } + + + @IBAction func didTapMenu(){ + present(menu!, animated: true) + } + + private func updateMenus() { + var settings = SideMenuSettings() + settings.presentationStyle = .menuSlideIn + + SideMenuManager.default.leftMenuNavigationController?.settings = settings + SideMenuManager.default.rightMenuNavigationController?.settings = settings + } + + + func didSelectMenuItem(option: NavigationOption){ + dismiss(animated: true, completion: nil) + configureWithNavigationOption(option: option, inRootController: self) + } + + +} + +protocol MenuControllerDelegate{ + func didSelectMenuItem(option: NavigationOption) +} + +class MenuListController: UITableViewController { + + let items: [NavigationOption] + + init(navigationOptions: [NavigationOption]) { + items = navigationOptions + super.init(style: .plain) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + public var delegate: MenuControllerDelegate? + + override func viewDidLoad() { + super.viewDidLoad() + tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell") + tableView.register(UITableViewHeaderFooterView.self, forHeaderFooterViewReuseIdentifier: "cell") + tableView.separatorStyle = UITableViewCell.SeparatorStyle.none + } + + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return items.count + } + + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) + let option = items[indexPath.row] + cell.textLabel?.text = option.description.0 + + if(option.description.1 != ""){ + cell.imageView?.image = UIImage(named: option.description.1) + } + + return cell + } + + override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + tableView.deselectRow(at: indexPath, animated: true) + let option = items[indexPath.row] + delegate?.didSelectMenuItem(option: option) + } + + override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { + return 70 + } + + override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { + return 100 + } + + override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { + let headerView = UIView.init(frame: CGRect.init(x: 0, y: 0, width: tableView.frame.width, height: 100)) + + let imageView = UIImageView() + imageView.image = UIImage(named: "shake_menu_logo") + imageView.frame = CGRect(x: 0, y: 0, width: 100, height: 100) + imageView.contentMode = .scaleAspectFit + imageView.center = headerView.center + + headerView.addSubview(imageView) + + return headerView + } + +} diff --git a/shake-demo-ios/Presentation/Offline/OfflineVC.storyboard b/shake-demo-ios/Presentation/Offline/OfflineVC.storyboard new file mode 100644 index 0000000..d7d9ab3 --- /dev/null +++ b/shake-demo-ios/Presentation/Offline/OfflineVC.storyboard @@ -0,0 +1,320 @@ + + + + + + + + + + + + + + Roobert-Medium + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/shake-demo-ios/Presentation/Offline/OfflineVC.swift b/shake-demo-ios/Presentation/Offline/OfflineVC.swift new file mode 100644 index 0000000..fe4a2e2 --- /dev/null +++ b/shake-demo-ios/Presentation/Offline/OfflineVC.swift @@ -0,0 +1,44 @@ +// +// OfflineVC.swift +// shake-demo-ios +// +// Created by Sanjin Grahovar Sadiković on 30.12.2021.. +// + +import Foundation +import UIKit +import Shake + +class OfflineVC: UIViewController, UIGestureRecognizerDelegate, UITextViewDelegate{ + @IBOutlet weak var linkTextView: UITextView! + +// @IBOutlet weak var linkTextView: UITextView! + + override func viewDidLoad() { + super.viewDidLoad() + + linkTextView.delegate = self + + var attributes = [NSAttributedString.Key: Any]() + attributes[.foregroundColor] = UIColor(named: "shake_url_color") + attributes[.underlineColor] = UIColor(named: "shake_url_color") + attributes[.underlineStyle] = NSUnderlineStyle.single.rawValue + attributes[.strokeWidth] = -2 + + linkTextView.linkTextAttributes = attributes + } + + func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool { + print("URL: \(URL.absoluteString)") + + if(URL.absoluteString == "www.shk.sh/demo"){ + let baseUrl : String = URL.absoluteString + let moreUrl : String = "" + let newUrl = Foundation.URL(string: baseUrl + moreUrl) + + UIApplication.shared.open(newUrl!) + } + + return false + } +} diff --git a/shake-demo-ios/Presentation/SettingsScreen/SettingsVC.storyboard b/shake-demo-ios/Presentation/SettingsScreen/SettingsVC.storyboard new file mode 100644 index 0000000..d94c703 --- /dev/null +++ b/shake-demo-ios/Presentation/SettingsScreen/SettingsVC.storyboard @@ -0,0 +1,367 @@ + + + + + + + + + + + + + + Roobert-Medium + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The customizations are simple so you get the idea. Visit www.shakebugs.com/docs to read how to tweak dozens of things to your needs: From custom logs and variables to managing sensitive data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/shake-demo-ios/Presentation/SettingsScreen/SettingsVC.swift b/shake-demo-ios/Presentation/SettingsScreen/SettingsVC.swift new file mode 100644 index 0000000..fc176f7 --- /dev/null +++ b/shake-demo-ios/Presentation/SettingsScreen/SettingsVC.swift @@ -0,0 +1,219 @@ +// +// SettingsVC.swift +// shake-demo-ios +// +// Created by Sanjin Grahovar Sadiković on 02.11.2021.. +// + +import Foundation +import UIKit +import Shake + +class SettingsVC: UIViewController, UITextViewDelegate{ + + @IBOutlet weak var shakingOutlet: UISwitch! + @IBOutlet weak var screenshotOutlet: UISwitch! + @IBOutlet weak var floatingOutlet: UISwitch! + + @IBOutlet weak var feedbackTypeOutlet: UISwitch! + @IBOutlet weak var emailOutlet: UISwitch! + @IBOutlet weak var inspectOutlet: UISwitch! + @IBOutlet weak var textView: UITextView! + + @IBOutlet weak var attachScreenshotOutlet: UISwitch! + @IBOutlet weak var blackboxOutlet: UISwitch! + @IBOutlet weak var thresholdSlider: UISlider! + + let defaults = UserDefaults.standard + + + @IBAction func sliderValueChanged(_ sender: UISlider) { + let currentValue = Int(thresholdSlider.value) + + defaults.set(currentValue, forKey: "shakingThreshold") + Shake.configuration.shakingThreshold = defaults.float(forKey: "shakingThreshold") + + print("Threshold current value: \(currentValue)") + + } + + @IBAction func shakingAction(_ sender: Any) { + if(shakingOutlet.isOn){ + Shake.configuration.isInvokedByShakeDeviceEvent = true + defaults.set(true, forKey: "isInvokedByShakeDeviceEvent") + } + else { + Shake.configuration.isInvokedByShakeDeviceEvent = false + defaults.set(false, forKey: "isInvokedByShakeDeviceEvent") + } + } + + @IBAction func screenshotAction(_ sender: Any) { + if(screenshotOutlet.isOn){ + Shake.configuration.isInvokedByScreenshot = true + defaults.set(true, forKey: "isInvokedByScreenshot") + } + else { + Shake.configuration.isInvokedByScreenshot = false + defaults.set(false, forKey: "isInvokedByScreenshot") + } + } + + @IBAction func floatingAction(_ sender: Any) { + if(floatingOutlet.isOn){ + Shake.configuration.isFloatingReportButtonShown = true + defaults.set(true, forKey: "isFloatingReportButtonShown") + } + else { + Shake.configuration.isFloatingReportButtonShown = false + defaults.set(false, forKey: "isFloatingReportButtonShown") + } + } + + + + @IBAction func feedbackTypeAction(_ sender: Any) { + if(feedbackTypeOutlet.isOn){ + Shake.configuration.isFeedbackTypeEnabled = true + defaults.set(true, forKey: "isFeedbackTypeEnabled") + } + else { + Shake.configuration.isFeedbackTypeEnabled = false + defaults.set(false, forKey: "isFeedbackTypeEnabled") + } + } + + @IBAction func emailAction(_ sender: Any) { + if(emailOutlet.isOn){ + Shake.configuration.isEmailFieldEnabled = true + defaults.set(true, forKey: "isEmailFieldEnabled") + } + else { + Shake.configuration.isEmailFieldEnabled = false + defaults.set(false, forKey: "isEmailFieldEnabled") + } + } + + @IBAction func inspectAction(_ sender: Any) { + if(inspectOutlet.isOn){ + Shake.configuration.isInspectScreenEnabled = true + defaults.set(true, forKey: "isInspectScreenEnabled") + } + else { + Shake.configuration.isInspectScreenEnabled = false + defaults.set(false, forKey: "isInspectScreenEnabled") + } + } + + @IBAction func attachScreenshotAction(_ sender: Any) { + if(attachScreenshotOutlet.isOn){ + Shake.configuration.isScreenshotIncluded = true + defaults.set(true, forKey: "isScreenshotIncluded") + } + else { + Shake.configuration.isScreenshotIncluded = false + defaults.set(false, forKey: "isScreenshotIncluded") + } + } + + + @IBAction func blackboxAction(_ sender: Any) { + if(blackboxOutlet.isOn){ + Shake.configuration.isBlackBoxEnabled = true + defaults.set(true, forKey: "isBlackBoxEnabled") + } + else { + Shake.configuration.isBlackBoxEnabled = false + defaults.set(false, forKey: "isBlackBoxEnabled") + } + } + + + override func viewDidLoad() { + super.viewDidLoad() + + + + if(Shake.configuration.isInvokedByShakeDeviceEvent == true){ + shakingOutlet.isOn = true + } + else{ + shakingOutlet.isOn = false + } + + if(Shake.configuration.isInvokedByScreenshot == true){ + screenshotOutlet.isOn = true + } + else{ + screenshotOutlet.isOn = false + } + + if(Shake.configuration.isFloatingReportButtonShown == true){ + floatingOutlet.isOn = true + print("Button shown") + } + else{ + floatingOutlet.isOn = false + print("Button not shown") + } + + if(Shake.configuration.isFeedbackTypeEnabled == true){ + feedbackTypeOutlet.isOn = true + } + else{ + feedbackTypeOutlet.isOn = false + } + + if(Shake.configuration.isEmailFieldEnabled == true){ + emailOutlet.isOn = true + } + else{ + emailOutlet.isOn = false + } + + if(Shake.configuration.isInspectScreenEnabled == true){ + inspectOutlet.isOn = true + } + else{ + inspectOutlet.isOn = false + } + + if(Shake.configuration.isScreenshotIncluded == true){ + attachScreenshotOutlet.isOn = true + } + else{ + attachScreenshotOutlet.isOn = false + } + + if(Shake.configuration.isBlackBoxEnabled == true){ + blackboxOutlet.isOn = true + } + else{ + blackboxOutlet.isOn = false + } + + textView.delegate = self + + var attributes = [NSAttributedString.Key: Any]() + attributes[.foregroundColor] = UIColor(named: "shake_url_color") + attributes[.underlineColor] = UIColor(named: "shake_url_color") + attributes[.underlineStyle] = NSUnderlineStyle.single.rawValue + attributes[.strokeWidth] = -2 + + textView.linkTextAttributes = attributes + + if defaults.object(forKey: "shakingThreshold") != nil{ + thresholdSlider.value = defaults.float(forKey: "shakingThreshold") + Shake.configuration.shakingThreshold = defaults.float(forKey: "shakingThreshold") + } + + + + } + + func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool { + print("URL: \(URL.absoluteString)") + + return true + } +} diff --git a/shake-demo-ios/Presentation/Shaking/ShakingVC.storyboard b/shake-demo-ios/Presentation/Shaking/ShakingVC.storyboard new file mode 100644 index 0000000..a616a7b --- /dev/null +++ b/shake-demo-ios/Presentation/Shaking/ShakingVC.storyboard @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + Roobert-Medium + + + + + + + + + + + + + + + + + + + + + + + + To learn about Shake SDK, visit www.shakebugs.com + +This application is a playground where you can try what Shake SDK can do, without having to add it to your app. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + On your computer visit www.shk.sh/demo to see how your submitted ticket looks like. Shake SDK has attached all that data automatically! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/shake-demo-ios/Presentation/Shaking/ShakingVC.swift b/shake-demo-ios/Presentation/Shaking/ShakingVC.swift new file mode 100644 index 0000000..fdfacbc --- /dev/null +++ b/shake-demo-ios/Presentation/Shaking/ShakingVC.swift @@ -0,0 +1,52 @@ +// +// ShakingVC.swift +// shake-demo-ios +// +// Created by Sanjin Grahovar Sadiković on 02.11.2021.. +// + +import Foundation +import UIKit + +class ShakingVC: UIViewController, UITextViewDelegate{ + + @IBOutlet weak var textView: UITextView! + @IBOutlet weak var stepsTextView: UITextView! + + override func viewDidLoad() { + super.viewDidLoad() + + textView.delegate = self + stepsTextView.delegate = self + + var attributes = [NSAttributedString.Key: Any]() + attributes[.foregroundColor] = UIColor(named: "shake_url_color") + attributes[.underlineColor] = UIColor(named: "shake_url_color") + attributes[.underlineStyle] = NSUnderlineStyle.single.rawValue + attributes[.strokeWidth] = -2 + + textView.linkTextAttributes = attributes + stepsTextView.linkTextAttributes = attributes + + print("ShakingVC did load") + } + + func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool { + print("URL: \(URL.absoluteString)") + + if(URL.absoluteString == "http://www.shakebugs.com"){ + let baseUrl : String = URL.absoluteString + let moreUrl : String = "/?utm_source=ios_demo_app" + let newUrl = Foundation.URL(string: baseUrl + moreUrl) + + UIApplication.shared.open(newUrl!) + } + + else if(URL.absoluteString == "http://www.shk.sh/demo"){ + UIApplication.shared.open(URL) + } + + return false + } +} + diff --git a/shake-demo-ios/SceneDelegate.swift b/shake-demo-ios/SceneDelegate.swift new file mode 100644 index 0000000..e7738d2 --- /dev/null +++ b/shake-demo-ios/SceneDelegate.swift @@ -0,0 +1,57 @@ +// +// SceneDelegate.swift +// shake-demo-ios +// +// Created by Sanjin Grahovar Sadiković on 05.11.2021.. +// + +import UIKit + +class SceneDelegate: UIResponder, UIWindowSceneDelegate { + + var window: UIWindow? + + @available(iOS 13.0, *) + func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { + // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. + // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. + // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). + guard let _ = (scene as? UIWindowScene) else { return } + } + + @available(iOS 13.0, *) + func sceneDidDisconnect(_ scene: UIScene) { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that can be re-created the next time the scene connects. + // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). + } + + @available(iOS 13.0, *) + func sceneDidBecomeActive(_ scene: UIScene) { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. + } + + @available(iOS 13.0, *) + func sceneWillResignActive(_ scene: UIScene) { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions (ex. an incoming phone call). + } + + @available(iOS 13.0, *) + func sceneWillEnterForeground(_ scene: UIScene) { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. + } + + @available(iOS 13.0, *) + func sceneDidEnterBackground(_ scene: UIScene) { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. + } + + +} + diff --git a/shake-demo-ios/ViewController.swift b/shake-demo-ios/ViewController.swift new file mode 100644 index 0000000..0dc5752 --- /dev/null +++ b/shake-demo-ios/ViewController.swift @@ -0,0 +1,19 @@ +// +// ViewController.swift +// shake-demo-ios +// +// Created by Sanjin Grahovar Sadiković on 05.11.2021.. +// + +import UIKit + +class ViewController: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + // Do any additional setup after loading the view. + } + + +} + From 2cd7cb62c6b7df9e565d7c6f5f8c9bf7218fa912 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sanjin=20Grahovar=20Sadikovic=CC=81?= Date: Mon, 28 Feb 2022 10:29:52 +0100 Subject: [PATCH 2/3] Updated readme --- README.md | 71 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 51 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 39af52c..eacb730 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,60 @@ -# README # +# Shake SDK Demo App -This README would normally document whatever steps are necessary to get your application up and running. +iOS app you can use to try out [Shake](https://www.shakebugs.com/) and its features. -### What is this repository for? ### +## Use -* Quick summary -* Version -* [Learn Markdown](https://bitbucket.org/tutorials/markdowndemo) +This repository contains the source code for the Shake Demo App. -### How do I get set up? ### +### License -* Summary of set up -* Configuration -* Dependencies -* Database configuration -* How to run tests -* Deployment instructions +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/shakebugs/shake-demo-ios/blob/master/LICENSE.md) -### Contribution guidelines ### +``` -* Writing tests -* Code review -* Other guidelines +Copyright (c) 2021 Shake and Sanjin Grahovar Sadiković -### Who do I talk to? ### +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: -* Repo owner or admin -* Other community or team contact \ No newline at end of file +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +``` + +## Description + +This app is intended as a playground for what Shake can do, without having to add it to a specific project. + +### Features + +- Bug reporting - submit a bug you can check out on the [Demo Dashboard](https://app.shakebugs.com/signin?user=demo). +- Crash reporting - simulate a crash you can check out on the [Demo Dashboard](https://app.shakebugs.com/signin?user=demo). +- Customize - change how the SDK is invoked, its form fields and data that's attached. + +### Screens + + + +## How to run + +1. Clone the GitHub repository and open the project. +2. Run ```pod install``` to install the necessary dependencies. +3. Build the app & enjoy. + +## Authors + +- Sanjin Grahovar Sadiković - [sgrahovar-shake](https://github.com/orgs/shakebugs/people/sgrahovar-shake) \ No newline at end of file From a1600b33290bdb5b850a54f80c14d307117f505e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sanjin=20Grahovar=20Sadikovic=CC=81?= Date: Mon, 28 Feb 2022 10:31:27 +0100 Subject: [PATCH 3/3] Updated readme v2 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index eacb730..defdfbc 100644 --- a/README.md +++ b/README.md @@ -57,4 +57,4 @@ This app is intended as a playground for what Shake can do, without having to ad ## Authors -- Sanjin Grahovar Sadiković - [sgrahovar-shake](https://github.com/orgs/shakebugs/people/sgrahovar-shake) \ No newline at end of file +- Sanjin Grahovar Sadikovic - [sgrahovar-shake](https://github.com/orgs/shakebugs/people/sgrahovar-shake) \ No newline at end of file