├── CodingCafe.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcuserdata │ │ └── yujiaheng.xcuserdatad │ │ └── UserInterfaceState.xcuserstate └── xcuserdata │ └── yujiaheng.xcuserdatad │ └── xcschemes │ ├── CodingCafe.xcscheme │ └── xcschememanagement.plist ├── CodingCafe.xcworkspace ├── contents.xcworkspacedata └── xcuserdata │ └── yujiaheng.xcuserdatad │ ├── UserInterfaceState.xcuserstate │ └── xcdebugger │ └── Breakpoints_v2.xcbkptlist ├── CodingCafe ├── AppDelegate.swift ├── Assets.xcassets │ ├── AboutImage.imageset │ │ ├── Contents.json │ │ ├── copy.png │ │ ├── copy@2x.png │ │ └── copy@3x.png │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── Icon-App-20x20@1x.png │ │ ├── Icon-App-20x20@2x.png │ │ ├── Icon-App-20x20@3x.png │ │ ├── Icon-App-29x29@1x.png │ │ ├── Icon-App-29x29@2x.png │ │ ├── Icon-App-29x29@3x.png │ │ ├── Icon-App-40x40@1x.png │ │ ├── Icon-App-40x40@2x.png │ │ ├── Icon-App-40x40@3x.png │ │ ├── Icon-App-57x57@1x.png │ │ ├── Icon-App-57x57@2x.png │ │ ├── Icon-App-60x60@2x.png │ │ ├── Icon-App-60x60@3x.png │ │ ├── Icon-App-72x72@1x.png │ │ ├── Icon-App-72x72@2x.png │ │ ├── Icon-App-76x76@1x.png │ │ ├── Icon-App-76x76@2x.png │ │ ├── Icon-App-83.5x83.5@2x.png │ │ ├── Icon-Small-50x50@1x.png │ │ └── Icon-Small-50x50@2x.png │ ├── CafePin.imageset │ │ ├── Contents.json │ │ ├── fill30.png │ │ ├── fill30@2x.png │ │ └── fill30@3x.png │ ├── Contents.json │ ├── fbIcon.imageset │ │ ├── Contents.json │ │ ├── fbIcon.png │ │ ├── fbIcon@2x.png │ │ └── fbIcon@3x.png │ ├── fill137.imageset │ │ ├── Contents.json │ │ ├── fill137.png │ │ ├── fill137@2x.png │ │ └── fill137@3x.png │ ├── fill275.imageset │ │ ├── Contents.json │ │ ├── fill275.png │ │ ├── fill275@2x.png │ │ └── fill275@3x.png │ ├── iconShapeFB.imageset │ │ ├── Contents.json │ │ ├── iconShape.png │ │ ├── iconShape@2x.png │ │ └── iconShape@3x.png │ ├── iconShapeMail.imageset │ │ ├── Contents.json │ │ ├── iconShapeCopy3.png │ │ ├── iconShapeCopy3@2x.png │ │ └── iconShapeCopy3@3x.png │ ├── iconShapeStar.imageset │ │ ├── Contents.json │ │ ├── iconShapeCopy4.png │ │ ├── iconShapeCopy4@2x.png │ │ └── iconShapeCopy4@3x.png │ ├── iconShapeWorld.imageset │ │ ├── Contents.json │ │ ├── iconShapeCopy.png │ │ ├── iconShapeCopy@2x.png │ │ └── iconShapeCopy@3x.png │ ├── iconTabBar_About.imageset │ │ ├── Contents.json │ │ └── iconTabBar_About_N.pdf │ ├── iconTabBar_Add.imageset │ │ ├── Contents.json │ │ └── iconTabBar_Add_N.pdf │ ├── iconTabBar_Add_H.imageset │ │ ├── Contents.json │ │ └── iconTabBar_Add_H.pdf │ ├── iconTabBar_Cafe.imageset │ │ ├── Contents.json │ │ └── iconTabBar_Cafe.pdf │ ├── iconTabBar_Cafe_H.imageset │ │ ├── Contents.json │ │ └── iconTabBar_Cafe_H.pdf │ ├── loading.imageset │ │ ├── Contents.json │ │ ├── loading.png │ │ ├── loading@2x.png │ │ └── loading@3x.png │ ├── star.imageset │ │ ├── Contents.json │ │ ├── star.png │ │ ├── star@2x.png │ │ └── star@3x.png │ ├── starItem0.imageset │ │ ├── Contents.json │ │ ├── starItem.png │ │ ├── starItem@2x.png │ │ └── starItem@3x.png │ ├── starItem1.imageset │ │ ├── Contents.json │ │ ├── starItemCopy2.png │ │ ├── starItemCopy2@2x.png │ │ └── starItemCopy2@3x.png │ ├── starItem2.imageset │ │ ├── Contents.json │ │ ├── starItemCopy2_2.png │ │ ├── starItemCopy2_2@2x.png │ │ └── starItemCopy2_2@3x.png │ ├── starItem3.imageset │ │ ├── Contents.json │ │ ├── starItemCopy2_3.png │ │ ├── starItemCopy2_3@2x.png │ │ └── starItemCopy2_3@3x.png │ ├── starItem4.imageset │ │ ├── Contents.json │ │ ├── starItem_2.png │ │ ├── starItem_2@2x.png │ │ └── starItem_2@3x.png │ └── starItem5.imageset │ │ ├── Contents.json │ │ ├── starItemCopy2_4.png │ │ ├── starItemCopy2_4@2x.png │ │ └── starItemCopy2_4@3x.png ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard ├── Controller │ ├── AboutViewController.swift │ ├── AddNewDataWebViewController.swift │ ├── MapCollectionViewCell.swift │ ├── MapViewController.swift │ └── WebViewController.swift ├── GoogleService-Info.plist ├── Info.plist ├── Model │ ├── Communicator.swift │ └── CoreEntity.swift ├── View │ └── MapView.swift └── ViewController.swift ├── Podfile ├── Podfile.lock └── Pods ├── Alamofire ├── LICENSE ├── README.md └── Source │ ├── AFError.swift │ ├── Alamofire.swift │ ├── DispatchQueue+Alamofire.swift │ ├── MultipartFormData.swift │ ├── NetworkReachabilityManager.swift │ ├── Notifications.swift │ ├── ParameterEncoding.swift │ ├── Request.swift │ ├── Response.swift │ ├── ResponseSerialization.swift │ ├── Result.swift │ ├── ServerTrustPolicy.swift │ ├── SessionDelegate.swift │ ├── SessionManager.swift │ ├── TaskDelegate.swift │ ├── Timeline.swift │ └── Validation.swift ├── Firebase ├── Core │ └── Sources │ │ ├── Firebase.h │ │ └── module.modulemap └── README.md ├── FirebaseAnalytics └── Frameworks │ └── frameworks │ └── FirebaseAnalytics.framework │ ├── FirebaseAnalytics │ ├── Headers │ ├── FIRAnalytics+AppDelegate.h │ ├── FIRAnalytics.h │ ├── FIRAnalyticsConfiguration.h │ ├── FIRApp.h │ ├── FIRConfiguration.h │ ├── FIREventNames.h │ ├── FIROptions.h │ ├── FIRParameterNames.h │ ├── FIRUserPropertyNames.h │ └── FirebaseAnalytics.h │ └── Modules │ └── module.modulemap ├── FirebaseCore └── Frameworks │ └── frameworks │ └── FirebaseCore.framework │ ├── FirebaseCore │ ├── Headers │ ├── FIRAnalyticsConfiguration.h │ ├── FIRApp.h │ ├── FIRConfiguration.h │ ├── FIROptions.h │ └── FirebaseCore.h │ └── Modules │ └── module.modulemap ├── FirebaseInstanceID ├── Frameworks │ └── frameworks │ │ └── FirebaseInstanceID.framework │ │ ├── FirebaseInstanceID │ │ ├── Headers │ │ ├── FIRInstanceID.h │ │ └── FirebaseInstanceID.h │ │ └── Modules │ │ └── module.modulemap └── Sources │ └── FIRInstanceID.h ├── FirebaseMessaging ├── Frameworks │ └── frameworks │ │ └── FirebaseMessaging.framework │ │ ├── FirebaseMessaging │ │ ├── Headers │ │ ├── FIRMessaging.h │ │ └── FirebaseMessaging.h │ │ └── Modules │ │ └── module.modulemap └── Sources │ └── FIRMessaging.h ├── FirebaseRemoteConfig ├── CHANGELOG ├── Frameworks │ └── frameworks │ │ └── FirebaseRemoteConfig.framework │ │ ├── FirebaseRemoteConfig │ │ ├── Headers │ │ ├── FIRRemoteConfig.h │ │ └── FirebaseRemoteConfig.h │ │ └── Modules │ │ └── module.modulemap └── README.md ├── GoogleInterchangeUtilities └── Frameworks │ └── frameworks │ └── GoogleInterchangeUtilities.framework │ └── GoogleInterchangeUtilities ├── GoogleSymbolUtilities └── Frameworks │ └── frameworks │ └── GoogleSymbolUtilities.framework │ └── GoogleSymbolUtilities ├── GoogleToolboxForMac ├── Foundation │ ├── GTMLogger.h │ ├── GTMLogger.m │ ├── GTMNSData+zlib.h │ └── GTMNSData+zlib.m ├── GTMDefines.h ├── LICENSE └── README.md ├── Headers ├── Private │ ├── Firebase │ │ └── Firebase.h │ ├── FirebaseInstanceID │ │ └── FIRInstanceID.h │ └── FirebaseMessaging │ │ └── FIRMessaging.h └── Public │ ├── Firebase │ └── Firebase.h │ ├── FirebaseInstanceID │ └── FIRInstanceID.h │ └── FirebaseMessaging │ └── FIRMessaging.h ├── Manifest.lock ├── Pods.xcodeproj ├── project.pbxproj └── xcuserdata │ ├── .xcuserdatad │ └── xcschemes │ │ ├── Alamofire.xcscheme │ │ ├── GoogleToolboxForMac.xcscheme │ │ ├── Pods-CodingCafe.xcscheme │ │ ├── SwiftyJSON.xcscheme │ │ └── xcschememanagement.plist │ └── yujiaheng.xcuserdatad │ └── xcschemes │ ├── Alamofire.xcscheme │ ├── GoogleToolboxForMac.xcscheme │ ├── ObjectMapper.xcscheme │ ├── Pods-CodingCafe.xcscheme │ ├── SwiftyJSON.xcscheme │ └── xcschememanagement.plist ├── SwiftyJSON ├── LICENSE ├── README.md └── Source │ └── SwiftyJSON.swift └── Target Support Files ├── Alamofire ├── Alamofire-dummy.m ├── Alamofire-prefix.pch ├── Alamofire-umbrella.h ├── Alamofire.modulemap ├── Alamofire.xcconfig └── Info.plist ├── GoogleToolboxForMac ├── GoogleToolboxForMac-dummy.m ├── GoogleToolboxForMac-prefix.pch ├── GoogleToolboxForMac-umbrella.h ├── GoogleToolboxForMac.modulemap ├── GoogleToolboxForMac.xcconfig └── Info.plist ├── Pods-CodingCafe ├── Info.plist ├── Pods-CodingCafe-acknowledgements.markdown ├── Pods-CodingCafe-acknowledgements.plist ├── Pods-CodingCafe-dummy.m ├── Pods-CodingCafe-frameworks.sh ├── Pods-CodingCafe-resources.sh ├── Pods-CodingCafe-umbrella.h ├── Pods-CodingCafe.debug.xcconfig ├── Pods-CodingCafe.modulemap └── Pods-CodingCafe.release.xcconfig └── SwiftyJSON ├── Info.plist ├── SwiftyJSON-dummy.m ├── SwiftyJSON-prefix.pch ├── SwiftyJSON-umbrella.h ├── SwiftyJSON.modulemap └── SwiftyJSON.xcconfig /CodingCafe.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CodingCafe.xcodeproj/project.xcworkspace/xcuserdata/yujiaheng.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe.xcodeproj/project.xcworkspace/xcuserdata/yujiaheng.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /CodingCafe.xcodeproj/xcuserdata/yujiaheng.xcuserdatad/xcschemes/CodingCafe.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /CodingCafe.xcodeproj/xcuserdata/yujiaheng.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | CodingCafe.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | DB157CFE1E08C03800C02A1E 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /CodingCafe.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /CodingCafe.xcworkspace/xcuserdata/yujiaheng.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe.xcworkspace/xcuserdata/yujiaheng.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /CodingCafe.xcworkspace/xcuserdata/yujiaheng.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 8 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /CodingCafe/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // CodingCafe 4 | // 5 | // Created by 余佳恆 on 2016/12/20. 6 | // Copyright © 2016年 icdt. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | //import GoogleMaps 11 | import Firebase 12 | 13 | @UIApplicationMain 14 | class AppDelegate: UIResponder, UIApplicationDelegate { 15 | 16 | var window: UIWindow? 17 | 18 | 19 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 20 | 21 | // GMSServices.provideAPIKey("AIzaSyB4SKZNrjkzCaYemmr14GDn6Zlf3CQ6ufg") 22 | UITabBar.appearance().tintColor = UIColor.init(red: 79/255, green: 63/255, blue: 61/255, alpha: 1) 23 | FIRApp.configure() 24 | 25 | return true 26 | } 27 | 28 | func applicationWillResignActive(_ application: UIApplication) { 29 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 30 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. 31 | } 32 | 33 | func applicationDidEnterBackground(_ application: UIApplication) { 34 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 35 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 36 | } 37 | 38 | func applicationWillEnterForeground(_ application: UIApplication) { 39 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 40 | } 41 | 42 | func applicationDidBecomeActive(_ application: UIApplication) { 43 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 44 | } 45 | 46 | func applicationWillTerminate(_ application: UIApplication) { 47 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 48 | } 49 | 50 | 51 | } 52 | 53 | -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/AboutImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "copy.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "copy@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "copy@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/AboutImage.imageset/copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/AboutImage.imageset/copy.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/AboutImage.imageset/copy@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/AboutImage.imageset/copy@2x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/AboutImage.imageset/copy@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/AboutImage.imageset/copy@3x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "20x20", 5 | "idiom" : "iphone", 6 | "filename" : "Icon-App-20x20@2x.png", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "size" : "20x20", 11 | "idiom" : "iphone", 12 | "filename" : "Icon-App-20x20@3x.png", 13 | "scale" : "3x" 14 | }, 15 | { 16 | "size" : "29x29", 17 | "idiom" : "iphone", 18 | "filename" : "Icon-App-29x29@1x.png", 19 | "scale" : "1x" 20 | }, 21 | { 22 | "size" : "29x29", 23 | "idiom" : "iphone", 24 | "filename" : "Icon-App-29x29@2x.png", 25 | "scale" : "2x" 26 | }, 27 | { 28 | "size" : "29x29", 29 | "idiom" : "iphone", 30 | "filename" : "Icon-App-29x29@3x.png", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "size" : "40x40", 35 | "idiom" : "iphone", 36 | "filename" : "Icon-App-40x40@2x.png", 37 | "scale" : "2x" 38 | }, 39 | { 40 | "size" : "40x40", 41 | "idiom" : "iphone", 42 | "filename" : "Icon-App-40x40@3x.png", 43 | "scale" : "3x" 44 | }, 45 | { 46 | "size" : "57x57", 47 | "idiom" : "iphone", 48 | "filename" : "Icon-App-57x57@1x.png", 49 | "scale" : "1x" 50 | }, 51 | { 52 | "size" : "57x57", 53 | "idiom" : "iphone", 54 | "filename" : "Icon-App-57x57@2x.png", 55 | "scale" : "2x" 56 | }, 57 | { 58 | "size" : "60x60", 59 | "idiom" : "iphone", 60 | "filename" : "Icon-App-60x60@2x.png", 61 | "scale" : "2x" 62 | }, 63 | { 64 | "size" : "60x60", 65 | "idiom" : "iphone", 66 | "filename" : "Icon-App-60x60@3x.png", 67 | "scale" : "3x" 68 | }, 69 | { 70 | "size" : "20x20", 71 | "idiom" : "ipad", 72 | "filename" : "Icon-App-20x20@1x.png", 73 | "scale" : "1x" 74 | }, 75 | { 76 | "size" : "20x20", 77 | "idiom" : "ipad", 78 | "filename" : "Icon-App-20x20@2x.png", 79 | "scale" : "2x" 80 | }, 81 | { 82 | "size" : "29x29", 83 | "idiom" : "ipad", 84 | "filename" : "Icon-App-29x29@1x.png", 85 | "scale" : "1x" 86 | }, 87 | { 88 | "size" : "29x29", 89 | "idiom" : "ipad", 90 | "filename" : "Icon-App-29x29@2x.png", 91 | "scale" : "2x" 92 | }, 93 | { 94 | "size" : "40x40", 95 | "idiom" : "ipad", 96 | "filename" : "Icon-App-40x40@1x.png", 97 | "scale" : "1x" 98 | }, 99 | { 100 | "size" : "40x40", 101 | "idiom" : "ipad", 102 | "filename" : "Icon-App-40x40@2x.png", 103 | "scale" : "2x" 104 | }, 105 | { 106 | "size" : "50x50", 107 | "idiom" : "ipad", 108 | "filename" : "Icon-Small-50x50@1x.png", 109 | "scale" : "1x" 110 | }, 111 | { 112 | "size" : "50x50", 113 | "idiom" : "ipad", 114 | "filename" : "Icon-Small-50x50@2x.png", 115 | "scale" : "2x" 116 | }, 117 | { 118 | "size" : "72x72", 119 | "idiom" : "ipad", 120 | "filename" : "Icon-App-72x72@1x.png", 121 | "scale" : "1x" 122 | }, 123 | { 124 | "size" : "72x72", 125 | "idiom" : "ipad", 126 | "filename" : "Icon-App-72x72@2x.png", 127 | "scale" : "2x" 128 | }, 129 | { 130 | "size" : "76x76", 131 | "idiom" : "ipad", 132 | "filename" : "Icon-App-76x76@1x.png", 133 | "scale" : "1x" 134 | }, 135 | { 136 | "size" : "76x76", 137 | "idiom" : "ipad", 138 | "filename" : "Icon-App-76x76@2x.png", 139 | "scale" : "2x" 140 | }, 141 | { 142 | "size" : "83.5x83.5", 143 | "idiom" : "ipad", 144 | "filename" : "Icon-App-83.5x83.5@2x.png", 145 | "scale" : "2x" 146 | } 147 | ], 148 | "info" : { 149 | "version" : 1, 150 | "author" : "xcode" 151 | } 152 | } -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-Small-50x50@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-Small-50x50@1x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-Small-50x50@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/AppIcon.appiconset/Icon-Small-50x50@2x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/CafePin.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "fill30.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "fill30@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "fill30@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/CafePin.imageset/fill30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/CafePin.imageset/fill30.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/CafePin.imageset/fill30@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/CafePin.imageset/fill30@2x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/CafePin.imageset/fill30@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/CafePin.imageset/fill30@3x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/fbIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "fbIcon.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "fbIcon@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "fbIcon@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/fbIcon.imageset/fbIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/fbIcon.imageset/fbIcon.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/fbIcon.imageset/fbIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/fbIcon.imageset/fbIcon@2x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/fbIcon.imageset/fbIcon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/fbIcon.imageset/fbIcon@3x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/fill137.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "fill137.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "fill137@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "fill137@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/fill137.imageset/fill137.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/fill137.imageset/fill137.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/fill137.imageset/fill137@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/fill137.imageset/fill137@2x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/fill137.imageset/fill137@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/fill137.imageset/fill137@3x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/fill275.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "fill275.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "fill275@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "fill275@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/fill275.imageset/fill275.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/fill275.imageset/fill275.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/fill275.imageset/fill275@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/fill275.imageset/fill275@2x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/fill275.imageset/fill275@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/fill275.imageset/fill275@3x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/iconShapeFB.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "iconShape.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "iconShape@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "iconShape@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/iconShapeFB.imageset/iconShape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/iconShapeFB.imageset/iconShape.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/iconShapeFB.imageset/iconShape@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/iconShapeFB.imageset/iconShape@2x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/iconShapeFB.imageset/iconShape@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/iconShapeFB.imageset/iconShape@3x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/iconShapeMail.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "iconShapeCopy3.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "iconShapeCopy3@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "iconShapeCopy3@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/iconShapeMail.imageset/iconShapeCopy3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/iconShapeMail.imageset/iconShapeCopy3.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/iconShapeMail.imageset/iconShapeCopy3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/iconShapeMail.imageset/iconShapeCopy3@2x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/iconShapeMail.imageset/iconShapeCopy3@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/iconShapeMail.imageset/iconShapeCopy3@3x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/iconShapeStar.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "iconShapeCopy4.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "iconShapeCopy4@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "iconShapeCopy4@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/iconShapeStar.imageset/iconShapeCopy4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/iconShapeStar.imageset/iconShapeCopy4.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/iconShapeStar.imageset/iconShapeCopy4@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/iconShapeStar.imageset/iconShapeCopy4@2x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/iconShapeStar.imageset/iconShapeCopy4@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/iconShapeStar.imageset/iconShapeCopy4@3x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/iconShapeWorld.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "iconShapeCopy.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "iconShapeCopy@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "iconShapeCopy@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/iconShapeWorld.imageset/iconShapeCopy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/iconShapeWorld.imageset/iconShapeCopy.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/iconShapeWorld.imageset/iconShapeCopy@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/iconShapeWorld.imageset/iconShapeCopy@2x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/iconShapeWorld.imageset/iconShapeCopy@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/iconShapeWorld.imageset/iconShapeCopy@3x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/iconTabBar_About.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "iconTabBar_About_N.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/iconTabBar_About.imageset/iconTabBar_About_N.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/iconTabBar_About.imageset/iconTabBar_About_N.pdf -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/iconTabBar_Add.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "iconTabBar_Add_N.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/iconTabBar_Add.imageset/iconTabBar_Add_N.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/iconTabBar_Add.imageset/iconTabBar_Add_N.pdf -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/iconTabBar_Add_H.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "iconTabBar_Add_H.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/iconTabBar_Add_H.imageset/iconTabBar_Add_H.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/iconTabBar_Add_H.imageset/iconTabBar_Add_H.pdf -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/iconTabBar_Cafe.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "iconTabBar_Cafe.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/iconTabBar_Cafe.imageset/iconTabBar_Cafe.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/iconTabBar_Cafe.imageset/iconTabBar_Cafe.pdf -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/iconTabBar_Cafe_H.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "iconTabBar_Cafe_H.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/iconTabBar_Cafe_H.imageset/iconTabBar_Cafe_H.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/iconTabBar_Cafe_H.imageset/iconTabBar_Cafe_H.pdf -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/loading.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "loading.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "loading@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "loading@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/loading.imageset/loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/loading.imageset/loading.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/loading.imageset/loading@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/loading.imageset/loading@2x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/loading.imageset/loading@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/loading.imageset/loading@3x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/star.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "star.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "star@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "star@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/star.imageset/star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/star.imageset/star.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/star.imageset/star@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/star.imageset/star@2x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/star.imageset/star@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/star.imageset/star@3x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/starItem0.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "starItem.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "starItem@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "starItem@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/starItem0.imageset/starItem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/starItem0.imageset/starItem.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/starItem0.imageset/starItem@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/starItem0.imageset/starItem@2x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/starItem0.imageset/starItem@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/starItem0.imageset/starItem@3x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/starItem1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "starItemCopy2.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "starItemCopy2@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "starItemCopy2@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/starItem1.imageset/starItemCopy2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/starItem1.imageset/starItemCopy2.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/starItem1.imageset/starItemCopy2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/starItem1.imageset/starItemCopy2@2x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/starItem1.imageset/starItemCopy2@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/starItem1.imageset/starItemCopy2@3x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/starItem2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "starItemCopy2_2.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "starItemCopy2_2@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "starItemCopy2_2@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/starItem2.imageset/starItemCopy2_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/starItem2.imageset/starItemCopy2_2.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/starItem2.imageset/starItemCopy2_2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/starItem2.imageset/starItemCopy2_2@2x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/starItem2.imageset/starItemCopy2_2@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/starItem2.imageset/starItemCopy2_2@3x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/starItem3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "starItemCopy2_3.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "starItemCopy2_3@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "starItemCopy2_3@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/starItem3.imageset/starItemCopy2_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/starItem3.imageset/starItemCopy2_3.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/starItem3.imageset/starItemCopy2_3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/starItem3.imageset/starItemCopy2_3@2x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/starItem3.imageset/starItemCopy2_3@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/starItem3.imageset/starItemCopy2_3@3x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/starItem4.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "starItem_2.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "starItem_2@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "starItem_2@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/starItem4.imageset/starItem_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/starItem4.imageset/starItem_2.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/starItem4.imageset/starItem_2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/starItem4.imageset/starItem_2@2x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/starItem4.imageset/starItem_2@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/starItem4.imageset/starItem_2@3x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/starItem5.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "starItemCopy2_4.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "starItemCopy2_4@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "starItemCopy2_4@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/starItem5.imageset/starItemCopy2_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/starItem5.imageset/starItemCopy2_4.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/starItem5.imageset/starItemCopy2_4@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/starItem5.imageset/starItemCopy2_4@2x.png -------------------------------------------------------------------------------- /CodingCafe/Assets.xcassets/starItem5.imageset/starItemCopy2_4@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/CodingCafe/Assets.xcassets/starItem5.imageset/starItemCopy2_4@3x.png -------------------------------------------------------------------------------- /CodingCafe/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /CodingCafe/Controller/AboutViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AboutViewController.swift 3 | // CodingCafe 4 | // 5 | // Created by 余佳恆 on 2017/1/20. 6 | // Copyright © 2017年 icdt. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import MessageUI 11 | 12 | class AboutViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, MFMailComposeViewControllerDelegate { 13 | 14 | @IBOutlet var imageView: UIImageView! 15 | @IBOutlet var tableView: UITableView! 16 | 17 | @IBOutlet var label_Version: UILabel! 18 | 19 | 20 | var array_CafeNomad = ["開源資料是由台灣各地的 cafe nomad 社群,一起整理的咖啡廳清單與地圖。", 21 | "Cafe Nomad 粉絲專頁", 22 | "Cafe Nomad 官方網站",] 23 | var array_CafeNomadImage = ["", 24 | "iconShapeFB", 25 | "iconShapeWorld",] 26 | 27 | var array_Author = [" IOS UI 設計 :Una \n IOS APP 作者 :巧克力 \n 目前任職於Dakuo數創中心的資雲數位 歡迎來找我泡茶聊天", 28 | "回報問題", 29 | "Github", 30 | "給好評"] 31 | 32 | var array_AuthorImage = ["", 33 | "iconShapeMail", 34 | "iconShapeWorld", 35 | "iconShapeStar"] 36 | 37 | 38 | override func viewDidLoad() { 39 | super.viewDidLoad() 40 | 41 | imageView.backgroundColor = UIColor.brown 42 | tableView.estimatedRowHeight = 100 43 | tableView.rowHeight = UITableViewAutomaticDimension 44 | // tableView.footerView(forSection: .allZeros) 45 | tableView.separatorInset = .init(top: 10, left: 10, bottom: 10, right: 10) 46 | tableView.tableHeaderView?.backgroundColor = UIColor.darkGray 47 | 48 | } 49 | 50 | override func viewWillAppear(_ animated: Bool) { 51 | super.viewWillAppear(animated) 52 | 53 | let version = Bundle.main.infoDictionary!["CFBundleShortVersionString"] as? String 54 | label_Version.text = "v \(version!)" 55 | label_Version.sizeToFit() 56 | } 57 | 58 | override func didReceiveMemoryWarning() { 59 | super.didReceiveMemoryWarning() 60 | // Dispose of any resources that can be recreated. 61 | } 62 | 63 | func numberOfSections(in tableView: UITableView) -> Int { 64 | 65 | return 2 66 | } 67 | 68 | func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 69 | 70 | switch section { 71 | case 0: 72 | return array_CafeNomad.count 73 | case 1: 74 | return array_Author.count 75 | default: 76 | return 0 77 | } 78 | 79 | } 80 | 81 | 82 | func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 83 | let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) 84 | 85 | switch indexPath.section { 86 | case 0: 87 | cell.textLabel?.text = array_CafeNomad[indexPath.row] 88 | cell.imageView?.image = UIImage(named: array_CafeNomadImage[indexPath.row]) 89 | case 1: 90 | cell.textLabel?.text = array_Author[indexPath.row] 91 | cell.imageView?.image = UIImage(named: array_AuthorImage[indexPath.row]) 92 | 93 | default: 94 | break 95 | } 96 | 97 | cell.textLabel?.lineBreakMode = .byWordWrapping 98 | cell.textLabel?.numberOfLines = 5 99 | 100 | return cell 101 | } 102 | 103 | func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 104 | 105 | switch section { 106 | case 1: 107 | return 10 / 667 * self.view.bounds.height 108 | default: 109 | return 0 110 | } 111 | } 112 | 113 | 114 | func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 115 | 116 | tableView.deselectRow(at: indexPath, animated: true) 117 | 118 | let vc = WebViewController() 119 | 120 | switch indexPath.section { 121 | 122 | case 0: 123 | 124 | switch indexPath.row { 125 | case 1: 126 | vc.urlString = "https://www.facebook.com/cafenomad.tw/" 127 | case 2: 128 | vc.urlString = "https://cafenomad.tw/" 129 | default: 130 | break 131 | } 132 | 133 | case 1: 134 | 135 | switch indexPath.row { 136 | case 1: 137 | mail() 138 | break 139 | case 2: 140 | vc.urlString = "https://github.com/nurockplayer/CodingCafe" 141 | case 3: 142 | let urlString = "http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=1189896233&pageNumber=0&sortOrdering=2&type=Purple+Software&mt=8" 143 | UIApplication.shared.openURL(URL(string: urlString)!) 144 | break 145 | default: 146 | break 147 | } 148 | default: 149 | break 150 | } 151 | 152 | if vc.urlString != "" { 153 | show(vc, sender: nil) 154 | } 155 | } 156 | 157 | 158 | func mail() { 159 | let mailComposerVC = MFMailComposeViewController() 160 | 161 | mailComposerVC.mailComposeDelegate = self 162 | mailComposerVC.setToRecipients(["nurockplayer@gmail.com"]) 163 | mailComposerVC.setSubject("找咖啡意見反饋") 164 | mailComposerVC.setMessageBody("機型: \n 系統版本:", isHTML: false) 165 | 166 | show(mailComposerVC, sender: nil) 167 | } 168 | 169 | 170 | func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) { 171 | 172 | controller.dismiss(animated: true, completion: nil) 173 | } 174 | 175 | /* 176 | func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 177 | <#code#> 178 | }*/ 179 | 180 | /* 181 | // MARK: - Navigation 182 | 183 | // In a storyboard-based application, you will often want to do a little preparation before navigation 184 | override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 185 | // Get the new view controller using segue.destinationViewController. 186 | // Pass the selected object to the new view controller. 187 | } 188 | */ 189 | 190 | } 191 | -------------------------------------------------------------------------------- /CodingCafe/Controller/AddNewDataWebViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AddNewDataWebViewController.swift 3 | // CodingCafe 4 | // 5 | // Created by 余佳恆 on 2017/1/20. 6 | // Copyright © 2017年 icdt. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class AddNewDataWebViewController: UIViewController, UIWebViewDelegate { 12 | 13 | @IBOutlet var activityIndicator: UIActivityIndicatorView! 14 | @IBOutlet var webView: UIWebView! 15 | 16 | 17 | override func viewDidLoad() { 18 | super.viewDidLoad() 19 | 20 | webView.delegate = self 21 | 22 | activityIndicator.activityIndicatorViewStyle = .gray 23 | activityIndicator.center=self.view.center 24 | activityIndicator.hidesWhenStopped = true 25 | 26 | let urlString = "https://cafenomad.tw/contribute" 27 | let myRequest = URLRequest(url: URL(string: urlString)!); 28 | 29 | webView.loadRequest(myRequest); 30 | 31 | } 32 | 33 | 34 | 35 | func webViewDidStartLoad(_ webView: UIWebView) { 36 | activityIndicator.startAnimating() 37 | } 38 | 39 | func webViewDidFinishLoad(_ webView: UIWebView) { 40 | 41 | activityIndicator.stopAnimating() 42 | } 43 | 44 | 45 | override func didReceiveMemoryWarning() { 46 | super.didReceiveMemoryWarning() 47 | // Dispose of any resources that can be recreated. 48 | } 49 | 50 | 51 | /* 52 | // MARK: - Navigation 53 | 54 | // In a storyboard-based application, you will often want to do a little preparation before navigation 55 | override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 56 | // Get the new view controller using segue.destinationViewController. 57 | // Pass the selected object to the new view controller. 58 | } 59 | */ 60 | 61 | } 62 | -------------------------------------------------------------------------------- /CodingCafe/Controller/MapCollectionViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MapCollectionViewCell.swift 3 | // CodingCafe 4 | // 5 | // Created by 余佳恆 on 2017/2/1. 6 | // Copyright © 2017年 icdt. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class MapCollectionViewCell: UICollectionViewCell { 12 | 13 | @IBOutlet var label: UILabel! 14 | @IBOutlet var imageView: UIImageView! 15 | } 16 | -------------------------------------------------------------------------------- /CodingCafe/Controller/WebViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // WebViewController.swift 3 | // CodingCafe 4 | // 5 | // Created by 余佳恆 on 2017/1/22. 6 | // Copyright © 2017年 icdt. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class WebViewController: UIViewController, UIWebViewDelegate { 12 | 13 | var urlString = "" 14 | 15 | var activityIndicator: UIActivityIndicatorView! 16 | 17 | override func viewDidLoad() { 18 | super.viewDidLoad() 19 | 20 | 21 | let webView = UIWebView(frame: self.view.frame) 22 | webView.delegate = self 23 | self.view.addSubview(webView) 24 | 25 | 26 | activityIndicator = UIActivityIndicatorView(activityIndicatorStyle: .gray) 27 | activityIndicator.sizeToFit() 28 | activityIndicator.center = self.view.center 29 | activityIndicator.hidesWhenStopped = true 30 | self.view.addSubview(activityIndicator) 31 | 32 | let myRequest = URLRequest(url: URL(string: urlString)!); 33 | webView.loadRequest(myRequest); 34 | } 35 | 36 | func webViewDidStartLoad(_ webView: UIWebView) { 37 | 38 | activityIndicator.startAnimating() 39 | } 40 | 41 | func webViewDidFinishLoad(_ webView: UIWebView) { 42 | 43 | activityIndicator.stopAnimating() 44 | } 45 | 46 | 47 | override func didReceiveMemoryWarning() { 48 | super.didReceiveMemoryWarning() 49 | // Dispose of any resources that can be recreated. 50 | } 51 | 52 | 53 | /* 54 | // MARK: - Navigation 55 | 56 | // In a storyboard-based application, you will often want to do a little preparation before navigation 57 | override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 58 | // Get the new view controller using segue.destinationViewController. 59 | // Pass the selected object to the new view controller. 60 | } 61 | */ 62 | 63 | } 64 | -------------------------------------------------------------------------------- /CodingCafe/GoogleService-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AD_UNIT_ID_FOR_BANNER_TEST 6 | ca-app-pub-3940256099942544/2934735716 7 | AD_UNIT_ID_FOR_INTERSTITIAL_TEST 8 | ca-app-pub-3940256099942544/4411468910 9 | CLIENT_ID 10 | 16926131426-hud97iecoo1ucsp1ru574dbu7nlp2b8e.apps.googleusercontent.com 11 | REVERSED_CLIENT_ID 12 | com.googleusercontent.apps.16926131426-hud97iecoo1ucsp1ru574dbu7nlp2b8e 13 | API_KEY 14 | AIzaSyAEdJChC1DgExHbrhtJmPl0BdifYmt4ZJQ 15 | GCM_SENDER_ID 16 | 16926131426 17 | PLIST_VERSION 18 | 1 19 | BUNDLE_ID 20 | com.icdt.CodingCafe 21 | PROJECT_ID 22 | codingcafe-61b01 23 | STORAGE_BUCKET 24 | codingcafe-61b01.appspot.com 25 | IS_ADS_ENABLED 26 | 27 | IS_ANALYTICS_ENABLED 28 | 29 | IS_APPINVITE_ENABLED 30 | 31 | IS_GCM_ENABLED 32 | 33 | IS_SIGNIN_ENABLED 34 | 35 | GOOGLE_APP_ID 36 | 1:16926131426:ios:b098d52b57af1aac 37 | DATABASE_URL 38 | https://codingcafe-61b01.firebaseio.com 39 | 40 | -------------------------------------------------------------------------------- /CodingCafe/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | 找咖啡 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 2.0 19 | CFBundleURLTypes 20 | 21 | 22 | CFBundleTypeRole 23 | Editor 24 | CFBundleURLSchemes 25 | 26 | fb291334837921957 27 | 28 | 29 | 30 | CFBundleVersion 31 | 2.0 32 | FacebookAppID 33 | 291334837921957 34 | LSApplicationQueriesSchemes 35 | 36 | googlechromes 37 | comgooglemaps 38 | 39 | LSRequiresIPhoneOS 40 | 41 | NSLocationWhenInUseUsageDescription 42 | 開啟定位服務 43 | UILaunchStoryboardName 44 | LaunchScreen 45 | UIMainStoryboardFile 46 | Main 47 | UIRequiredDeviceCapabilities 48 | 49 | armv7 50 | 51 | UIStatusBarStyle 52 | UIStatusBarStyleLightContent 53 | UISupportedInterfaceOrientations 54 | 55 | UIInterfaceOrientationPortrait 56 | 57 | UISupportedInterfaceOrientations~ipad 58 | 59 | UIInterfaceOrientationPortrait 60 | UIInterfaceOrientationPortraitUpsideDown 61 | UIInterfaceOrientationLandscapeLeft 62 | UIInterfaceOrientationLandscapeRight 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /CodingCafe/Model/Communicator.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Communicator.swift 3 | // CodingCafe 4 | // 5 | // Created by 余佳恆 on 2017/1/15. 6 | // Copyright © 2017年 icdt. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import Alamofire 11 | import SwiftyJSON 12 | 13 | 14 | class Communicator: NSObject { 15 | 16 | private static var _SingletonCommunicator: Communicator? = nil 17 | 18 | static func shareInstance() -> Communicator { 19 | 20 | if _SingletonCommunicator == nil { 21 | _SingletonCommunicator = Communicator() 22 | } 23 | 24 | return _SingletonCommunicator! 25 | } 26 | 27 | 28 | let API = "https://cafenomad.tw/api/v1.1/cafes" 29 | 30 | 31 | func getCafeCoordinate(completionHandler: @escaping (Any?, Error?) -> ()) { 32 | 33 | Alamofire.request(API, encoding: JSONEncoding.default).responseJSON { (response) in 34 | switch response.result.isSuccess { 35 | case true: 36 | completionHandler(response.result.value , nil) 37 | case false: 38 | print("error: \(response.result.error)") 39 | } 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /CodingCafe/Model/CoreEntity.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CoreEntity.swift 3 | // CodingCafe 4 | // 5 | // Created by 余佳恆 on 2017/1/19. 6 | // Copyright © 2017年 icdt. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class cafeInformation: NSObject { 12 | static var arrayTitle = [String]() 13 | static var arrayDic = [Dictionary]() 14 | } 15 | -------------------------------------------------------------------------------- /CodingCafe/View/MapView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MapView.swift 3 | // CodingCafe 4 | // 5 | // Created by 余佳恆 on 2017/1/16. 6 | // Copyright © 2017年 icdt. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class MapView: UIView { 12 | 13 | /* 14 | // Only override draw() if you perform custom drawing. 15 | // An empty implementation adversely affects performance during animation. 16 | override func draw(_ rect: CGRect) { 17 | // Drawing code 18 | } 19 | */ 20 | 21 | } 22 | -------------------------------------------------------------------------------- /CodingCafe/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // CodingCafe 4 | // 5 | // Created by 余佳恆 on 2016/12/20. 6 | // Copyright © 2016年 icdt. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import MapKit 11 | import SwiftyJSON 12 | import Alamofire 13 | 14 | 15 | class ViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate { 16 | 17 | let API = "https://cafenomad.tw/api/v1.0/cafes" 18 | 19 | 20 | @IBOutlet var mapView: MKMapView! 21 | 22 | var locationManager : CLLocationManager! 23 | var selectAnnLocation : CLLocationCoordinate2D? 24 | var currentLocation : CLLocationCoordinate2D? 25 | var annationTitle : String? 26 | 27 | var arrayTitle = [String]() 28 | var arrayDic = [Dictionary]() 29 | var fbUrl = "" 30 | 31 | @IBOutlet var label_WIfi: UILabel! 32 | @IBOutlet var label_Seat: UILabel! 33 | @IBOutlet var label_Quiet: UILabel! 34 | @IBOutlet var label_Tasty: UILabel! 35 | @IBOutlet var label_Cheap: UILabel! 36 | @IBOutlet var label_Music: UILabel! 37 | @IBOutlet var label_Address: UILabel! 38 | @IBOutlet var label_Name: UILabel! 39 | 40 | @IBOutlet var btn_Navigation: UIButton! 41 | 42 | @IBOutlet var vc_Detail: UIView! 43 | 44 | 45 | 46 | 47 | override func viewDidLoad() { 48 | super.viewDidLoad() 49 | 50 | locationManager = CLLocationManager() 51 | locationManager.delegate = self 52 | locationManager.desiredAccuracy = kCLLocationAccuracyBest 53 | locationManager.distanceFilter = kCLLocationAccuracyHundredMeters 54 | 55 | mapView.showsUserLocation = true 56 | mapView.userTrackingMode = .follow 57 | 58 | locationManager.requestWhenInUseAuthorization() 59 | locationManager.startUpdatingLocation() 60 | } 61 | 62 | override func viewWillAppear(_ animated: Bool) { 63 | super.viewWillAppear(animated) 64 | 65 | vc_Detail.isHidden = true 66 | 67 | self.getCafeCoordinate() 68 | } 69 | 70 | override func viewDidAppear(_ animated: Bool) { 71 | super.viewDidAppear(animated) 72 | 73 | if CLLocationManager.authorizationStatus() == .denied { 74 | 75 | let alertController = UIAlertController( 76 | title: "請開啟定位權限", 77 | message:"如要變更權限,請至 設定 > 隱私權 > 定位服務 開啟", 78 | preferredStyle: .alert) 79 | let okAction = UIAlertAction(title: "確認", style: .default, handler: nil) 80 | alertController.addAction(okAction) 81 | show(alertController, sender: self) 82 | 83 | } 84 | } 85 | 86 | override func viewDidDisappear(_ animated: Bool) { 87 | 88 | locationManager.stopUpdatingLocation() 89 | } 90 | 91 | override func didReceiveMemoryWarning() { 92 | super.didReceiveMemoryWarning() 93 | 94 | } 95 | 96 | func getCafeCoordinate() { 97 | 98 | Alamofire.request(API, encoding: JSONEncoding.default).responseJSON { (response) in 99 | switch response.result.isSuccess { 100 | case true: 101 | 102 | if let value = response.result.value { 103 | 104 | DispatchQueue.global().async { 105 | 106 | let json = JSON(value) 107 | 108 | for (key,_):(String, JSON) in json { 109 | 110 | let dicValue = json[Int(key)!].dictionaryValue 111 | var dicString : Dictionary = [:] 112 | dicValue.forEach { dicString[$0.0] = String(describing: $0.1) } 113 | 114 | self.arrayDic += [dicString] 115 | self.arrayTitle += [json[Int(key)!]["name"].string ?? ""] 116 | 117 | 118 | self.setupData(dic: dicString) 119 | } 120 | } 121 | } 122 | case false: 123 | print("error: \(response.result.error)") 124 | } 125 | } 126 | } 127 | 128 | func setupData(dic: Dictionary) { 129 | 130 | if CLLocationManager.isMonitoringAvailable(for: CLCircularRegion.self){ 131 | 132 | let coordinate = CLLocationCoordinate2DMake(CLLocationDegrees(dic["latitude"]!)!, CLLocationDegrees(dic["longitude"]!)!) 133 | 134 | let cafeAnnotation = MKPointAnnotation() 135 | cafeAnnotation.coordinate = coordinate 136 | cafeAnnotation.title = dic["name"] 137 | 138 | 139 | DispatchQueue.main.async { 140 | self.mapView.addAnnotation(cafeAnnotation) 141 | } 142 | } 143 | else { 144 | print("System can't track regions") 145 | } 146 | } 147 | 148 | func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 149 | 150 | let LoactionCoordinate = locations.last!.coordinate 151 | currentLocation = CLLocationCoordinate2D(latitude: LoactionCoordinate.latitude, longitude: LoactionCoordinate.longitude) 152 | let _span:MKCoordinateSpan = MKCoordinateSpan(latitudeDelta: 0.005, longitudeDelta: 0.005); 153 | 154 | self.mapView.setRegion(MKCoordinateRegion(center: currentLocation!, span: _span), animated: true); 155 | // mapView.setCenter(currentLocation!, animated: true) 156 | if currentLocation != nil { 157 | manager.stopUpdatingLocation() 158 | } 159 | } 160 | 161 | func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? { 162 | 163 | if annotation is MKUserLocation { 164 | return nil 165 | } 166 | 167 | var cafeAnnotation = mapView.dequeueReusableAnnotationView(withIdentifier: "Pin") 168 | if cafeAnnotation == nil { 169 | cafeAnnotation = MKPinAnnotationView(annotation: annotation, reuseIdentifier: "Pin") 170 | } 171 | 172 | // let btn_Navigation = UIButton(type: .detailDisclosure) 173 | // btn_Navigation.addTarget(self, action: #selector(btn_NavigationPress), for: .touchUpInside) 174 | // cafeAnnotation?.rightCalloutAccessoryView = btn_Navigation 175 | // cafeAnnotation?.canShowCallout = true 176 | 177 | return cafeAnnotation 178 | } 179 | 180 | func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) { 181 | 182 | selectAnnLocation = view.annotation!.coordinate 183 | annationTitle = view.annotation!.title! 184 | 185 | vc_Detail.isHidden = false 186 | UIView.animate(withDuration: 0.1) { 187 | var frame = mapView.frame 188 | frame.size.height = self.vc_Detail.frame.origin.y 189 | mapView.frame = frame 190 | } 191 | 192 | 193 | // arrayDic.index(where: <#T##([String : String]) throws -> Bool#>) 194 | print(arrayTitle.count) 195 | let indexNumber = arrayTitle.index(of: annationTitle!) 196 | 197 | let dic = arrayDic[indexNumber!] 198 | 199 | label_Name.text = dic["name"] ?? "" 200 | label_Name.sizeToFit() 201 | label_WIfi.text = dic["wifi"] ?? "" 202 | label_Seat.text = dic["seat"] ?? "" 203 | label_Quiet.text = dic["quiet"] ?? "" 204 | label_Tasty.text = dic["tasty"] ?? "" 205 | label_Cheap.text = dic["cheap"] ?? "" 206 | label_Music.text = dic["music"] ?? "" 207 | label_Address.text = dic["address"] ?? "" 208 | label_Address.sizeToFit() 209 | // btn_Navigation.frame.origin.x = label_Address.frame.maxX + 5 210 | fbUrl = dic["url"] ?? "" 211 | } 212 | 213 | func mapView(_ mapView: MKMapView, didDeselect view: MKAnnotationView) { 214 | 215 | UIView.animate(withDuration: 0.1, animations: { 216 | mapView.frame = self.view.frame 217 | }) { (finished) in 218 | self.vc_Detail.isHidden = true 219 | } 220 | 221 | } 222 | 223 | 224 | @IBAction func btn_NavigationPress () { 225 | 226 | if currentLocation == nil { 227 | return 228 | } 229 | 230 | let pA = MKPlacemark(coordinate: currentLocation!, addressDictionary: nil) 231 | let pB = MKPlacemark(coordinate: selectAnnLocation!, addressDictionary: nil) 232 | 233 | let miA = MKMapItem(placemark: pA) 234 | let miB = MKMapItem(placemark: pB) 235 | miA.name = "我的位置" 236 | miB.name = annationTitle 237 | 238 | let routes = [miA, miB] 239 | 240 | let opions = [MKLaunchOptionsDirectionsModeKey: MKLaunchOptionsDirectionsModeWalking] 241 | MKMapItem.openMaps(with: routes, launchOptions: opions) 242 | 243 | 244 | } 245 | 246 | @IBAction func btn_FBPress(_ sender: Any) { 247 | 248 | if let url = URL(string: fbUrl) { 249 | UIApplication.shared.openURL(url) 250 | } else { 251 | let alertController = UIAlertController( 252 | title: "此店家無粉絲專頁", 253 | message:"", 254 | preferredStyle: .alert) 255 | let okAction = UIAlertAction(title: "確認", style: .default, handler: nil) 256 | alertController.addAction(okAction) 257 | show(alertController, sender: self) 258 | } 259 | 260 | } 261 | 262 | } 263 | 264 | -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | project 'CodingCafe.xcodeproj' 2 | 3 | # Uncomment this line to define a global platform for your project 4 | platform :ios, '8.0' 5 | 6 | target 'CodingCafe' do 7 | # Comment this line if you're not using Swift and don't want to use dynamic frameworks 8 | use_frameworks! 9 | 10 | # Pods for CodingCafe 11 | pod 'Alamofire' 12 | pod 'SwiftyJSON' 13 | pod 'Firebase/Core' 14 | pod 'Firebase/Messaging' 15 | pod 'Firebase/RemoteConfig' 16 | 17 | end 18 | 19 | post_install do |installer| 20 | installer.pods_project.targets.each do |target| 21 | target.build_configurations.each do |config| 22 | config.build_settings['SWIFT_VERSION'] = '3.0' 23 | end 24 | end 25 | end -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Alamofire (4.2.0) 3 | - Firebase/Core (3.11.0): 4 | - FirebaseAnalytics (= 3.6.0) 5 | - FirebaseCore (= 3.4.6) 6 | - Firebase/Messaging (3.11.0): 7 | - Firebase/Core 8 | - FirebaseMessaging (= 1.2.1) 9 | - Firebase/RemoteConfig (3.11.0): 10 | - Firebase/Core 11 | - FirebaseRemoteConfig (= 1.3.1) 12 | - FirebaseAnalytics (3.6.0): 13 | - FirebaseCore (~> 3.4) 14 | - FirebaseInstanceID (~> 1.0) 15 | - GoogleInterchangeUtilities (~> 1.2) 16 | - GoogleSymbolUtilities (~> 1.1) 17 | - GoogleToolboxForMac/NSData+zlib (~> 2.1) 18 | - FirebaseCore (3.4.6): 19 | - GoogleInterchangeUtilities (~> 1.2) 20 | - GoogleToolboxForMac/NSData+zlib (~> 2.1) 21 | - FirebaseInstanceID (1.0.8) 22 | - FirebaseMessaging (1.2.1): 23 | - FirebaseAnalytics (~> 3.4) 24 | - FirebaseInstanceID (~> 1.0) 25 | - GoogleInterchangeUtilities (~> 1.2) 26 | - GoogleSymbolUtilities (~> 1.1) 27 | - GoogleToolboxForMac/Logger (~> 2.1) 28 | - FirebaseRemoteConfig (1.3.1): 29 | - FirebaseAnalytics (~> 3.4) 30 | - FirebaseInstanceID (~> 1.0) 31 | - GoogleInterchangeUtilities (~> 1.2) 32 | - GoogleSymbolUtilities (~> 1.1) 33 | - GoogleToolboxForMac/NSData+zlib (~> 2.1) 34 | - GoogleInterchangeUtilities (1.2.2): 35 | - GoogleSymbolUtilities (~> 1.1) 36 | - GoogleSymbolUtilities (1.1.2) 37 | - GoogleToolboxForMac/Defines (2.1.0) 38 | - GoogleToolboxForMac/Logger (2.1.0): 39 | - GoogleToolboxForMac/Defines (= 2.1.0) 40 | - GoogleToolboxForMac/NSData+zlib (2.1.0): 41 | - GoogleToolboxForMac/Defines (= 2.1.0) 42 | - SwiftyJSON (3.1.3) 43 | 44 | DEPENDENCIES: 45 | - Alamofire 46 | - Firebase/Core 47 | - Firebase/Messaging 48 | - Firebase/RemoteConfig 49 | - SwiftyJSON 50 | 51 | SPEC CHECKSUMS: 52 | Alamofire: aa2e09d871c9160ac53c90e83c68064a94e3dfbe 53 | Firebase: b8134e285eb33201115bc688bc5d7f112923bc1f 54 | FirebaseAnalytics: 9c67af0ebeb8d2146c9b4ea2616439affa947b58 55 | FirebaseCore: 03da1cb32615569bbc2830a22f9ad753d9a02ef5 56 | FirebaseInstanceID: ba1e640935235e5fac39dfa816fe7660e72e1a8a 57 | FirebaseMessaging: acf66347e43c5637c697060c3001d25c809a4131 58 | FirebaseRemoteConfig: 383a9afe0a9291ada949e3f615257928a823b594 59 | GoogleInterchangeUtilities: d5bc4d88d5b661ab72f9d70c58d02ca8c27ad1f7 60 | GoogleSymbolUtilities: 631ee17048aa5e9ab133470d768ea997a5ef9b96 61 | GoogleToolboxForMac: 2b2596cbb7186865e98cadf2b1e262d851c2b168 62 | SwiftyJSON: 38a8ea2006779c0fc4c310cb2ee8195327740faf 63 | 64 | PODFILE CHECKSUM: 76426a025d48c03b6d3dc04fc2629af210fef88a 65 | 66 | COCOAPODS: 1.1.1 67 | -------------------------------------------------------------------------------- /Pods/Alamofire/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014-2016 Alamofire Software Foundation (http://alamofire.org/) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Pods/Alamofire/Source/DispatchQueue+Alamofire.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DispatchQueue+Alamofire.swift 3 | // 4 | // Copyright (c) 2014-2016 Alamofire Software Foundation (http://alamofire.org/) 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | // 24 | 25 | import Dispatch 26 | import Foundation 27 | 28 | extension DispatchQueue { 29 | static var userInteractive: DispatchQueue { return DispatchQueue.global(qos: .userInteractive) } 30 | static var userInitiated: DispatchQueue { return DispatchQueue.global(qos: .userInitiated) } 31 | static var utility: DispatchQueue { return DispatchQueue.global(qos: .utility) } 32 | static var background: DispatchQueue { return DispatchQueue.global(qos: .background) } 33 | 34 | func after(_ delay: TimeInterval, execute closure: @escaping () -> Void) { 35 | asyncAfter(deadline: .now() + delay, execute: closure) 36 | } 37 | 38 | func syncResult(_ closure: () -> T) -> T { 39 | var result: T! 40 | sync { result = closure() } 41 | return result 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /Pods/Alamofire/Source/Notifications.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Notifications.swift 3 | // 4 | // Copyright (c) 2014-2016 Alamofire Software Foundation (http://alamofire.org/) 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | // 24 | 25 | import Foundation 26 | 27 | extension Notification.Name { 28 | /// Used as a namespace for all `URLSessionTask` related notifications. 29 | public struct Task { 30 | /// Posted when a `URLSessionTask` is resumed. The notification `object` contains the resumed `URLSessionTask`. 31 | public static let DidResume = Notification.Name(rawValue: "org.alamofire.notification.name.task.didResume") 32 | 33 | /// Posted when a `URLSessionTask` is suspended. The notification `object` contains the suspended `URLSessionTask`. 34 | public static let DidSuspend = Notification.Name(rawValue: "org.alamofire.notification.name.task.didSuspend") 35 | 36 | /// Posted when a `URLSessionTask` is cancelled. The notification `object` contains the cancelled `URLSessionTask`. 37 | public static let DidCancel = Notification.Name(rawValue: "org.alamofire.notification.name.task.didCancel") 38 | 39 | /// Posted when a `URLSessionTask` is completed. The notification `object` contains the completed `URLSessionTask`. 40 | public static let DidComplete = Notification.Name(rawValue: "org.alamofire.notification.name.task.didComplete") 41 | } 42 | } 43 | 44 | // MARK: - 45 | 46 | extension Notification { 47 | /// Used as a namespace for all `Notification` user info dictionary keys. 48 | public struct Key { 49 | /// User info dictionary key representing the `URLSessionTask` associated with the notification. 50 | public static let Task = "org.alamofire.notification.key.task" 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /Pods/Alamofire/Source/Result.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Result.swift 3 | // 4 | // Copyright (c) 2014-2016 Alamofire Software Foundation (http://alamofire.org/) 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | // 24 | 25 | import Foundation 26 | 27 | /// Used to represent whether a request was successful or encountered an error. 28 | /// 29 | /// - success: The request and all post processing operations were successful resulting in the serialization of the 30 | /// provided associated value. 31 | /// 32 | /// - failure: The request encountered an error resulting in a failure. The associated values are the original data 33 | /// provided by the server as well as the error that caused the failure. 34 | public enum Result { 35 | case success(Value) 36 | case failure(Error) 37 | 38 | /// Returns `true` if the result is a success, `false` otherwise. 39 | public var isSuccess: Bool { 40 | switch self { 41 | case .success: 42 | return true 43 | case .failure: 44 | return false 45 | } 46 | } 47 | 48 | /// Returns `true` if the result is a failure, `false` otherwise. 49 | public var isFailure: Bool { 50 | return !isSuccess 51 | } 52 | 53 | /// Returns the associated value if the result is a success, `nil` otherwise. 54 | public var value: Value? { 55 | switch self { 56 | case .success(let value): 57 | return value 58 | case .failure: 59 | return nil 60 | } 61 | } 62 | 63 | /// Returns the associated error value if the result is a failure, `nil` otherwise. 64 | public var error: Error? { 65 | switch self { 66 | case .success: 67 | return nil 68 | case .failure(let error): 69 | return error 70 | } 71 | } 72 | } 73 | 74 | // MARK: - CustomStringConvertible 75 | 76 | extension Result: CustomStringConvertible { 77 | /// The textual representation used when written to an output stream, which includes whether the result was a 78 | /// success or failure. 79 | public var description: String { 80 | switch self { 81 | case .success: 82 | return "SUCCESS" 83 | case .failure: 84 | return "FAILURE" 85 | } 86 | } 87 | } 88 | 89 | // MARK: - CustomDebugStringConvertible 90 | 91 | extension Result: CustomDebugStringConvertible { 92 | /// The debug textual representation used when written to an output stream, which includes whether the result was a 93 | /// success or failure in addition to the value or error. 94 | public var debugDescription: String { 95 | switch self { 96 | case .success(let value): 97 | return "SUCCESS: \(value)" 98 | case .failure(let error): 99 | return "FAILURE: \(error)" 100 | } 101 | } 102 | } 103 | -------------------------------------------------------------------------------- /Pods/Alamofire/Source/Timeline.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Timeline.swift 3 | // 4 | // Copyright (c) 2014-2016 Alamofire Software Foundation (http://alamofire.org/) 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | // 24 | 25 | import Foundation 26 | 27 | /// Responsible for computing the timing metrics for the complete lifecycle of a `Request`. 28 | public struct Timeline { 29 | /// The time the request was initialized. 30 | public let requestStartTime: CFAbsoluteTime 31 | 32 | /// The time the first bytes were received from or sent to the server. 33 | public let initialResponseTime: CFAbsoluteTime 34 | 35 | /// The time when the request was completed. 36 | public let requestCompletedTime: CFAbsoluteTime 37 | 38 | /// The time when the response serialization was completed. 39 | public let serializationCompletedTime: CFAbsoluteTime 40 | 41 | /// The time interval in seconds from the time the request started to the initial response from the server. 42 | public let latency: TimeInterval 43 | 44 | /// The time interval in seconds from the time the request started to the time the request completed. 45 | public let requestDuration: TimeInterval 46 | 47 | /// The time interval in seconds from the time the request completed to the time response serialization completed. 48 | public let serializationDuration: TimeInterval 49 | 50 | /// The time interval in seconds from the time the request started to the time response serialization completed. 51 | public let totalDuration: TimeInterval 52 | 53 | /// Creates a new `Timeline` instance with the specified request times. 54 | /// 55 | /// - parameter requestStartTime: The time the request was initialized. Defaults to `0.0`. 56 | /// - parameter initialResponseTime: The time the first bytes were received from or sent to the server. 57 | /// Defaults to `0.0`. 58 | /// - parameter requestCompletedTime: The time when the request was completed. Defaults to `0.0`. 59 | /// - parameter serializationCompletedTime: The time when the response serialization was completed. Defaults 60 | /// to `0.0`. 61 | /// 62 | /// - returns: The new `Timeline` instance. 63 | public init( 64 | requestStartTime: CFAbsoluteTime = 0.0, 65 | initialResponseTime: CFAbsoluteTime = 0.0, 66 | requestCompletedTime: CFAbsoluteTime = 0.0, 67 | serializationCompletedTime: CFAbsoluteTime = 0.0) 68 | { 69 | self.requestStartTime = requestStartTime 70 | self.initialResponseTime = initialResponseTime 71 | self.requestCompletedTime = requestCompletedTime 72 | self.serializationCompletedTime = serializationCompletedTime 73 | 74 | self.latency = initialResponseTime - requestStartTime 75 | self.requestDuration = requestCompletedTime - requestStartTime 76 | self.serializationDuration = serializationCompletedTime - requestCompletedTime 77 | self.totalDuration = serializationCompletedTime - requestStartTime 78 | } 79 | } 80 | 81 | // MARK: - CustomStringConvertible 82 | 83 | extension Timeline: CustomStringConvertible { 84 | /// The textual representation used when written to an output stream, which includes the latency, the request 85 | /// duration and the total duration. 86 | public var description: String { 87 | let latency = String(format: "%.3f", self.latency) 88 | let requestDuration = String(format: "%.3f", self.requestDuration) 89 | let serializationDuration = String(format: "%.3f", self.serializationDuration) 90 | let totalDuration = String(format: "%.3f", self.totalDuration) 91 | 92 | // NOTE: Had to move to string concatenation due to memory leak filed as rdar://26761490. Once memory leak is 93 | // fixed, we should move back to string interpolation by reverting commit 7d4a43b1. 94 | let timings = [ 95 | "\"Latency\": " + latency + " secs", 96 | "\"Request Duration\": " + requestDuration + " secs", 97 | "\"Serialization Duration\": " + serializationDuration + " secs", 98 | "\"Total Duration\": " + totalDuration + " secs" 99 | ] 100 | 101 | return "Timeline: { " + timings.joined(separator: ", ") + " }" 102 | } 103 | } 104 | 105 | // MARK: - CustomDebugStringConvertible 106 | 107 | extension Timeline: CustomDebugStringConvertible { 108 | /// The textual representation used when written to an output stream, which includes the request start time, the 109 | /// initial response time, the request completed time, the serialization completed time, the latency, the request 110 | /// duration and the total duration. 111 | public var debugDescription: String { 112 | let requestStartTime = String(format: "%.3f", self.requestStartTime) 113 | let initialResponseTime = String(format: "%.3f", self.initialResponseTime) 114 | let requestCompletedTime = String(format: "%.3f", self.requestCompletedTime) 115 | let serializationCompletedTime = String(format: "%.3f", self.serializationCompletedTime) 116 | let latency = String(format: "%.3f", self.latency) 117 | let requestDuration = String(format: "%.3f", self.requestDuration) 118 | let serializationDuration = String(format: "%.3f", self.serializationDuration) 119 | let totalDuration = String(format: "%.3f", self.totalDuration) 120 | 121 | // NOTE: Had to move to string concatenation due to memory leak filed as rdar://26761490. Once memory leak is 122 | // fixed, we should move back to string interpolation by reverting commit 7d4a43b1. 123 | let timings = [ 124 | "\"Request Start Time\": " + requestStartTime, 125 | "\"Initial Response Time\": " + initialResponseTime, 126 | "\"Request Completed Time\": " + requestCompletedTime, 127 | "\"Serialization Completed Time\": " + serializationCompletedTime, 128 | "\"Latency\": " + latency + " secs", 129 | "\"Request Duration\": " + requestDuration + " secs", 130 | "\"Serialization Duration\": " + serializationDuration + " secs", 131 | "\"Total Duration\": " + totalDuration + " secs" 132 | ] 133 | 134 | return "Timeline: { " + timings.joined(separator: ", ") + " }" 135 | } 136 | } 137 | -------------------------------------------------------------------------------- /Pods/Firebase/Core/Sources/Firebase.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | #if !defined(__has_include) 5 | #error "Firebase.h won't import anything if your compiler doesn't support __has_include. Please \ 6 | import the headers individually." 7 | #else 8 | #if __has_include() 9 | #import 10 | #endif 11 | 12 | #if __has_include() 13 | #import 14 | #endif 15 | 16 | #if __has_include() 17 | #import 18 | #endif 19 | 20 | #if __has_include() 21 | #import 22 | #endif 23 | 24 | #if __has_include() 25 | #import 26 | #endif 27 | 28 | #if __has_include() 29 | #import 30 | #endif 31 | 32 | #if __has_include() 33 | #import 34 | #endif 35 | 36 | #if __has_include() 37 | #import 38 | #endif 39 | 40 | #if __has_include() 41 | #import 42 | #endif 43 | 44 | #if __has_include() 45 | #import 46 | #endif 47 | 48 | #if __has_include() 49 | #import 50 | #endif 51 | 52 | #endif // defined(__has_include) 53 | -------------------------------------------------------------------------------- /Pods/Firebase/Core/Sources/module.modulemap: -------------------------------------------------------------------------------- 1 | module Firebase { 2 | export * 3 | header "Firebase.h" 4 | } -------------------------------------------------------------------------------- /Pods/Firebase/README.md: -------------------------------------------------------------------------------- 1 | # Firebase APIs for iOS 2 | 3 | Simplify your iOS development, grow your user base, and monetize more 4 | effectively with Firebase services. 5 | 6 | Much more information can be found at [https://firebase.google.com](https://firebase.google.com). 7 | 8 | ## Install a Firebase SDK using CocoaPods 9 | 10 | Firebase distributes several iOS specific APIs and SDKs via CocoaPods. 11 | You can install the CocoaPods tool on OS X by running the following command from 12 | the terminal. Detailed information is available in the [Getting Started 13 | guide](https://guides.cocoapods.org/using/getting-started.html#getting-started). 14 | 15 | ``` 16 | $ sudo gem install cocoapods 17 | ``` 18 | 19 | ## Try out an SDK 20 | 21 | You can try any of the SDKs with `pod try`. Run the following command and select 22 | the SDK you are interested in when prompted: 23 | 24 | ``` 25 | $ pod try Firebase 26 | ``` 27 | 28 | Note that some SDKs may require credentials. More information is available in 29 | the SDK-specific documentation at [https://firebase.google.com/docs/](https://firebase.google.com/docs/). 30 | 31 | ## Add a Firebase SDK to your iOS app 32 | 33 | CocoaPods is used to install and manage dependencies in existing Xcode projects. 34 | 35 | 1. Create an Xcode project, and save it to your local machine. 36 | 2. Create a file named `Podfile` in your project directory. This file defines 37 | your project's dependencies, and is commonly referred to as a Podspec. 38 | 3. Open `Podfile`, and add your dependencies. A simple Podspec is shown here: 39 | 40 | ``` 41 | platform :ios, '7.0' 42 | pod 'Firebase' 43 | ``` 44 | 45 | 4. Save the file. 46 | 5. Open a terminal and `cd` to the directory containing the Podfile. 47 | 48 | ``` 49 | $ cd /project/ 50 | ``` 51 | 52 | 6. Run the `pod install` command. This will install the SDKs specified in the 53 | Podspec, along with any dependencies they may have. 54 | 55 | ``` 56 | $ pod install 57 | ``` 58 | 59 | 7. Open your app's `.xcworkspace` file to launch Xcode. 60 | Use this file for all development on your app. 61 | 8. You can also install other Firebase SDKs by adding the subspecs in the 62 | Podfile. 63 | 64 | ``` 65 | pod 'Firebase/AdMob' 66 | pod 'Firebase/Analytics' 67 | pod 'Firebase/AppIndexing' 68 | pod 'Firebase/Auth' 69 | pod 'Firebase/Crash' 70 | pod 'Firebase/Database' 71 | pod 'Firebase/DynamicLinks' 72 | pod 'Firebase/Invites' 73 | pod 'Firebase/Messaging' 74 | pod 'Firebase/RemoteConfig' 75 | pod 'Firebase/Storage' 76 | ``` 77 | -------------------------------------------------------------------------------- /Pods/FirebaseAnalytics/Frameworks/frameworks/FirebaseAnalytics.framework/FirebaseAnalytics: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/Pods/FirebaseAnalytics/Frameworks/frameworks/FirebaseAnalytics.framework/FirebaseAnalytics -------------------------------------------------------------------------------- /Pods/FirebaseAnalytics/Frameworks/frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "FIRAnalytics.h" 4 | 5 | /** 6 | * Provides App Delegate handlers to be used in your App Delegate. 7 | * 8 | * To save time integrating Firebase Analytics in an application, Firebase Analytics does not 9 | * require delegation implementation from the AppDelegate. Instead this is automatically done by 10 | * Firebase Analytics. Should you choose instead to delegate manually, you can turn off the App 11 | * Delegate Proxy by adding FirebaseAppDelegateProxyEnabled into your app's Info.plist and setting 12 | * it to NO, and adding the methods in this category to corresponding delegation handlers. 13 | * 14 | * To handle Universal Links, you must return YES in 15 | * [UIApplicationDelegate application:didFinishLaunchingWithOptions:]. 16 | */ 17 | @interface FIRAnalytics (AppDelegate) 18 | 19 | /** 20 | * Handles events related to a URL session that are waiting to be processed. 21 | * 22 | * For optimal use of Firebase Analytics, call this method from the 23 | * [UIApplicationDelegate application:handleEventsForBackgroundURLSession:completionHandler] 24 | * method of the app delegate in your app. 25 | * 26 | * @param identifier The identifier of the URL session requiring attention. 27 | * @param completionHandler The completion handler to call when you finish processing the events. 28 | * Calling this completion handler lets the system know that your app's user interface is 29 | * updated and a new snapshot can be taken. 30 | */ 31 | + (void)handleEventsForBackgroundURLSession:(NSString *)identifier 32 | completionHandler:(void (^)(void))completionHandler; 33 | 34 | /** 35 | * Handles the event when the app is launched by a URL. 36 | * 37 | * Call this method from [UIApplicationDelegate application:openURL:options:] (on iOS 9.0 and 38 | * above), or [UIApplicationDelegate application:openURL:sourceApplication:annotation:] (on iOS 8.x 39 | * and below) in your app. 40 | * 41 | * @param url The URL resource to open. This resource can be a network resource or a file. 42 | */ 43 | + (void)handleOpenURL:(NSURL *)url; 44 | 45 | /** 46 | * Handles the event when the app receives data associated with user activity that includes a 47 | * Universal Link (on iOS 9.0 and above). 48 | * 49 | * Call this method from [UIApplication continueUserActivity:restorationHandler:] in your app 50 | * delegate (on iOS 9.0 and above). 51 | * 52 | * @param userActivity The activity object containing the data associated with the task the user 53 | * was performing. 54 | */ 55 | + (void)handleUserActivity:(id)userActivity; 56 | 57 | @end 58 | -------------------------------------------------------------------------------- /Pods/FirebaseAnalytics/Frameworks/frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "FIREventNames.h" 4 | #import "FIRParameterNames.h" 5 | #import "FIRUserPropertyNames.h" 6 | 7 | /// The top level Firebase Analytics singleton that provides methods for logging events and setting 8 | /// user properties. See the developer guides for general 9 | /// information on using Firebase Analytics in your apps. 10 | @interface FIRAnalytics : NSObject 11 | 12 | /// Logs an app event. The event can have up to 25 parameters. Events with the same name must have 13 | /// the same parameters. Up to 500 event names are supported. Using predefined events and/or 14 | /// parameters is recommended for optimal reporting. 15 | /// 16 | /// The following event names are reserved and cannot be used: 17 | ///
    18 | ///
  • app_clear_data
  • 19 | ///
  • app_remove
  • 20 | ///
  • app_update
  • 21 | ///
  • error
  • 22 | ///
  • first_open
  • 23 | ///
  • in_app_purchase
  • 24 | ///
  • notification_dismiss
  • 25 | ///
  • notification_foreground
  • 26 | ///
  • notification_open
  • 27 | ///
  • notification_receive
  • 28 | ///
  • os_update
  • 29 | ///
  • session_start
  • 30 | ///
  • user_engagement
  • 31 | ///
32 | /// 33 | /// @param name The name of the event. Should contain 1 to 40 alphanumeric characters or 34 | /// underscores. The name must start with an alphabetic character. Some event names are 35 | /// reserved. See FIREventNames.h for the list of reserved event names. The "firebase_" prefix 36 | /// is reserved and should not be used. Note that event names are case-sensitive and that 37 | /// logging two events whose names differ only in case will result in two distinct events. 38 | /// @param parameters The dictionary of event parameters. Passing nil indicates that the event has 39 | /// no parameters. Parameter names can be up to 40 characters long and must start with an 40 | /// alphabetic character and contain only alphanumeric characters and underscores. Only NSString 41 | /// and NSNumber (signed 64-bit integer and 64-bit floating-point number) parameter types are 42 | /// supported. NSString parameter values can be up to 100 characters long. The "firebase_" 43 | /// prefix is reserved and should not be used for parameter names. 44 | + (void)logEventWithName:(nonnull NSString *)name 45 | parameters:(nullable NSDictionary *)parameters; 46 | 47 | /// Sets a user property to a given value. Up to 25 user property names are supported. Once set, 48 | /// user property values persist throughout the app lifecycle and across sessions. 49 | /// 50 | /// The following user property names are reserved and cannot be used: 51 | ///
    52 | ///
  • first_open_time
  • 53 | ///
  • last_deep_link_referrer
  • 54 | ///
  • user_id
  • 55 | ///
56 | /// 57 | /// @param value The value of the user property. Values can be up to 36 characters long. Setting the 58 | /// value to nil removes the user property. 59 | /// @param name The name of the user property to set. Should contain 1 to 24 alphanumeric characters 60 | /// or underscores and must start with an alphabetic character. The "firebase_" prefix is 61 | /// reserved and should not be used for user property names. 62 | + (void)setUserPropertyString:(nullable NSString *)value forName:(nonnull NSString *)name; 63 | 64 | /// Sets the user ID property. This feature must be used in accordance with 65 | /// Google's Privacy Policy 66 | /// 67 | /// @param userID The user ID to ascribe to the user of this app on this device, which must be 68 | /// non-empty and no more than 36 characters long. Setting userID to nil removes the user ID. 69 | + (void)setUserID:(nullable NSString *)userID; 70 | 71 | /// Sets the current screen name, which specifies the current visual context in your app. This helps 72 | /// identify the areas in your app where users spend their time and how they interact with your app. 73 | /// 74 | /// Note that screen reporting is enabled automatically and records the class name of the current 75 | /// UIViewController for you without requiring you to call this method. If you implement 76 | /// viewDidAppear in your UIViewController but do not call [super viewDidAppear:], that screen class 77 | /// will not be automatically tracked. The class name can optionally be overridden by calling this 78 | /// method in the viewDidAppear callback of your UIViewController and specifying the 79 | /// screenClassOverride parameter. 80 | /// 81 | /// If your app does not use a distinct UIViewController for each screen, you should call this 82 | /// method and specify a distinct screenName each time a new screen is presented to the user. 83 | /// 84 | /// The screen name and screen class remain in effect until the current UIViewController changes or 85 | /// a new call to setScreenName:screenClass: is made. 86 | /// 87 | /// @param screenName The name of the current screen. Should contain 1 to 100 characters. Set to nil 88 | /// to clear the current screen name. 89 | /// @param screenClassOverride The name of the screen class. Should contain 1 to 100 characters. By 90 | /// default this is the class name of the current UIViewController. Set to nil to revert to the 91 | /// default class name. 92 | + (void)setScreenName:(nullable NSString *)screenName 93 | screenClass:(nullable NSString *)screenClassOverride; 94 | 95 | @end 96 | -------------------------------------------------------------------------------- /Pods/FirebaseAnalytics/Frameworks/frameworks/FirebaseAnalytics.framework/Headers/FIRAnalyticsConfiguration.h: -------------------------------------------------------------------------------- 1 | #import 2 | -------------------------------------------------------------------------------- /Pods/FirebaseAnalytics/Frameworks/frameworks/FirebaseAnalytics.framework/Headers/FIRApp.h: -------------------------------------------------------------------------------- 1 | #import 2 | -------------------------------------------------------------------------------- /Pods/FirebaseAnalytics/Frameworks/frameworks/FirebaseAnalytics.framework/Headers/FIRConfiguration.h: -------------------------------------------------------------------------------- 1 | #import 2 | -------------------------------------------------------------------------------- /Pods/FirebaseAnalytics/Frameworks/frameworks/FirebaseAnalytics.framework/Headers/FIROptions.h: -------------------------------------------------------------------------------- 1 | #import 2 | -------------------------------------------------------------------------------- /Pods/FirebaseAnalytics/Frameworks/frameworks/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h: -------------------------------------------------------------------------------- 1 | /// @file FIRUserPropertyNames.h 2 | /// 3 | /// Predefined user property names. 4 | /// 5 | /// A UserProperty is an attribute that describes the app-user. By supplying UserProperties, you can 6 | /// later analyze different behaviors of various segments of your userbase. You may supply up to 25 7 | /// unique UserProperties per app, and you can use the name and value of your choosing for each one. 8 | /// UserProperty names can be up to 24 characters long, may only contain alphanumeric characters and 9 | /// underscores ("_"), and must start with an alphabetic character. UserProperty values can be up to 10 | /// 36 characters long. The "firebase_" prefix is reserved and should not be used. 11 | 12 | /// The method used to sign in. For example, "google", "facebook" or "twitter". 13 | static NSString *const kFIRUserPropertySignUpMethod = @"sign_up_method"; 14 | -------------------------------------------------------------------------------- /Pods/FirebaseAnalytics/Frameworks/frameworks/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h: -------------------------------------------------------------------------------- 1 | // Generated umbrella header for FirebaseAnalytics. 2 | 3 | #import "FIRAnalytics+AppDelegate.h" 4 | #import "FIRAnalytics.h" 5 | #import "FIRAnalyticsConfiguration.h" 6 | #import "FIRApp.h" 7 | #import "FIRConfiguration.h" 8 | #import "FIREventNames.h" 9 | #import "FIROptions.h" 10 | #import "FIRParameterNames.h" 11 | #import "FIRUserPropertyNames.h" 12 | -------------------------------------------------------------------------------- /Pods/FirebaseAnalytics/Frameworks/frameworks/FirebaseAnalytics.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module FirebaseAnalytics { 2 | 3 | export * 4 | 5 | umbrella header "FirebaseAnalytics.h" 6 | 7 | header "FIRAnalytics+AppDelegate.h" 8 | header "FIRAnalytics.h" 9 | header "FIRAnalyticsConfiguration.h" 10 | header "FIRApp.h" 11 | header "FIRConfiguration.h" 12 | header "FIREventNames.h" 13 | header "FIROptions.h" 14 | header "FIRParameterNames.h" 15 | header "FIRUserPropertyNames.h" 16 | 17 | link framework "StoreKit" 18 | 19 | link "c++" 20 | link "sqlite3" 21 | link "z" 22 | } 23 | -------------------------------------------------------------------------------- /Pods/FirebaseCore/Frameworks/frameworks/FirebaseCore.framework/FirebaseCore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/Pods/FirebaseCore/Frameworks/frameworks/FirebaseCore.framework/FirebaseCore -------------------------------------------------------------------------------- /Pods/FirebaseCore/Frameworks/frameworks/FirebaseCore.framework/Headers/FIRAnalyticsConfiguration.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | /** 4 | * This class provides configuration fields for Firebase Analytics. 5 | */ 6 | @interface FIRAnalyticsConfiguration : NSObject 7 | 8 | /** 9 | * Returns the shared instance of FIRAnalyticsConfiguration. 10 | */ 11 | + (FIRAnalyticsConfiguration *)sharedInstance; 12 | 13 | /** 14 | * Sets the minimum engagement time in seconds required to start a new session. The default value 15 | * is 10 seconds. 16 | */ 17 | - (void)setMinimumSessionInterval:(NSTimeInterval)minimumSessionInterval; 18 | 19 | /** 20 | * Sets the interval of inactivity in seconds that terminates the current session. The default 21 | * value is 1800 seconds (30 minutes). 22 | */ 23 | - (void)setSessionTimeoutInterval:(NSTimeInterval)sessionTimeoutInterval; 24 | 25 | /** 26 | * Sets whether analytics collection is enabled for this app on this device. This setting is 27 | * persisted across app sessions. By default it is enabled. 28 | */ 29 | - (void)setAnalyticsCollectionEnabled:(BOOL)analyticsCollectionEnabled; 30 | 31 | /** 32 | * Deprecated. Sets whether measurement and reporting are enabled for this app on this device. By 33 | * default they are enabled. 34 | */ 35 | - (void)setIsEnabled:(BOOL)isEnabled 36 | DEPRECATED_MSG_ATTRIBUTE("Use setAnalyticsCollectionEnabled: instead."); 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /Pods/FirebaseCore/Frameworks/frameworks/FirebaseCore.framework/Headers/FIRApp.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @class FIROptions; 5 | 6 | NS_ASSUME_NONNULL_BEGIN 7 | 8 | /** A block that takes a BOOL and has no return value. */ 9 | typedef void (^FIRAppVoidBoolCallback)(BOOL success); 10 | 11 | /** 12 | * The entry point of Firebase SDKs. 13 | * 14 | * Initialize and configure FIRApp using +[FIRApp configure] 15 | * or other customized ways as shown below. 16 | * 17 | * The logging system has two modes: default mode and debug mode. In default mode, only logs with 18 | * log level Notice, Warning and Error will be sent to device. In debug mode, all logs will be sent 19 | * to device. The log levels that Firebase uses are consistent with the ASL log levels. 20 | * 21 | * Enable debug mode by passing the -FIRDebugEnabled argument to the application. You can add this 22 | * argument in the application's Xcode scheme. When debug mode is enabled via -FIRDebugEnabled, 23 | * further executions of the application will also be in debug mode. In order to return to default 24 | * mode, you must explicitly disable the debug mode with the application argument -FIRDebugDisabled. 25 | */ 26 | @interface FIRApp : NSObject 27 | 28 | /** 29 | * Configures a default Firebase app. Raises an exception if any configuration step fails. The 30 | * default app is named "__FIRAPP_DEFAULT". This method should be called after the app is launched 31 | * and before using Firebase services. This method is thread safe. 32 | */ 33 | + (void)configure; 34 | 35 | /** 36 | * Configures the default Firebase app with the provided options. The default app is named 37 | * "__FIRAPP_DEFAULT". Raises an exception if any configuration step fails. This method is thread 38 | * safe. 39 | * 40 | * @param options The Firebase application options used to configure the service. 41 | */ 42 | + (void)configureWithOptions:(FIROptions *)options; 43 | 44 | /** 45 | * Configures a Firebase app with the given name and options. Raises an exception if any 46 | * configuration step fails. This method is thread safe. 47 | * 48 | * @param name The application's name given by the developer. The name should should only contain 49 | Letters, Numbers and Underscore. 50 | * @param options The Firebase application options used to configure the services. 51 | */ 52 | + (void)configureWithName:(NSString *)name options:(FIROptions *)options; 53 | 54 | /** 55 | * Returns the default app, or nil if the default app does not exist. 56 | */ 57 | + (nullable FIRApp *)defaultApp NS_SWIFT_NAME(defaultApp()); 58 | 59 | /** 60 | * Returns a previously created FIRApp instance with the given name, or nil if no such app exists. 61 | * This method is thread safe. 62 | */ 63 | + (nullable FIRApp *)appNamed:(NSString *)name; 64 | 65 | /** 66 | * Returns the set of all extant FIRApp instances, or nil if there are no FIRApp instances. This 67 | * method is thread safe. 68 | */ 69 | + (nullable NSDictionary *)allApps; 70 | 71 | /** 72 | * Cleans up the current FIRApp, freeing associated data and returning its name to the pool for 73 | * future use. This method is thread safe. 74 | */ 75 | - (void)deleteApp:(FIRAppVoidBoolCallback)completion; 76 | 77 | /** 78 | * FIRApp instances should not be initialized directly. Call +[FIRApp configure], 79 | * +[FIRApp configureWithOptions:], or +[FIRApp configureWithNames:options:] directly. 80 | */ 81 | - (instancetype)init NS_UNAVAILABLE; 82 | 83 | /** 84 | * Gets the name of this app. 85 | */ 86 | @property(nonatomic, copy, readonly) NSString *name; 87 | 88 | /** 89 | * Gets the options for this app. 90 | */ 91 | @property(nonatomic, readonly) FIROptions *options; 92 | 93 | @end 94 | 95 | NS_ASSUME_NONNULL_END 96 | -------------------------------------------------------------------------------- /Pods/FirebaseCore/Frameworks/frameworks/FirebaseCore.framework/Headers/FIRConfiguration.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "FIRAnalyticsConfiguration.h" 4 | 5 | /** 6 | * The log levels used by FIRConfiguration. 7 | */ 8 | typedef NS_ENUM(NSInteger, FIRLogLevel) { 9 | /** Error */ 10 | kFIRLogLevelError __deprecated = 0, 11 | /** Warning */ 12 | kFIRLogLevelWarning __deprecated, 13 | /** Info */ 14 | kFIRLogLevelInfo __deprecated, 15 | /** Debug */ 16 | kFIRLogLevelDebug __deprecated, 17 | /** Assert */ 18 | kFIRLogLevelAssert __deprecated, 19 | /** Max */ 20 | kFIRLogLevelMax __deprecated = kFIRLogLevelAssert 21 | } DEPRECATED_MSG_ATTRIBUTE( 22 | "Use -FIRDebugEnabled and -FIRDebugDisabled. See FIRApp.h for more details."); 23 | 24 | /** 25 | * This interface provides global level properties that the developer can tweak, and the singleton 26 | * of the Firebase Analytics configuration class. 27 | */ 28 | @interface FIRConfiguration : NSObject 29 | 30 | /** Returns the shared configuration object. */ 31 | + (FIRConfiguration *)sharedInstance; 32 | 33 | /** The configuration class for Firebase Analytics. */ 34 | @property(nonatomic, readwrite) FIRAnalyticsConfiguration *analyticsConfiguration; 35 | 36 | /** Global log level. Defaults to kFIRLogLevelError. */ 37 | @property(nonatomic, readwrite, assign) FIRLogLevel logLevel DEPRECATED_MSG_ATTRIBUTE( 38 | "Use -FIRDebugEnabled and -FIRDebugDisabled. See FIRApp.h for more details."); 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /Pods/FirebaseCore/Frameworks/frameworks/FirebaseCore.framework/Headers/FIROptions.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | /** 4 | * This class provides constant fields of Google APIs. 5 | */ 6 | @interface FIROptions : NSObject 7 | 8 | /** 9 | * Returns the default options. 10 | */ 11 | + (FIROptions *)defaultOptions; 12 | 13 | /** 14 | * An iOS API key used for authenticating requests from your app, e.g. 15 | * @"AIzaSyDdVgKwhZl0sTTTLZ7iTmt1r3N2cJLnaDk", used to identify your app to Google servers. 16 | */ 17 | @property(nonatomic, readonly, copy) NSString *APIKey; 18 | 19 | /** 20 | * The OAuth2 client ID for iOS application used to authenticate Google users, for example 21 | * @"12345.apps.googleusercontent.com", used for signing in with Google. 22 | */ 23 | @property(nonatomic, readonly, copy) NSString *clientID; 24 | 25 | /** 26 | * The tracking ID for Google Analytics, e.g. @"UA-12345678-1", used to configure Google Analytics. 27 | */ 28 | @property(nonatomic, readonly, copy) NSString *trackingID; 29 | 30 | /** 31 | * The Project Number from the Google Developer's console, for example @"012345678901", used to 32 | * configure Google Cloud Messaging. 33 | */ 34 | @property(nonatomic, readonly, copy) NSString *GCMSenderID; 35 | 36 | /** 37 | * The Android client ID used in Google AppInvite when an iOS app has its Android version, for 38 | * example @"12345.apps.googleusercontent.com". 39 | */ 40 | @property(nonatomic, readonly, copy) NSString *androidClientID; 41 | 42 | /** 43 | * The Google App ID that is used to uniquely identify an instance of an app. 44 | */ 45 | @property(nonatomic, readonly, copy) NSString *googleAppID; 46 | 47 | /** 48 | * The database root URL, e.g. @"http://abc-xyz-123.firebaseio.com". 49 | */ 50 | @property(nonatomic, readonly, copy) NSString *databaseURL; 51 | 52 | /** 53 | * The URL scheme used to set up Durable Deep Link service. 54 | */ 55 | @property(nonatomic, readwrite, copy) NSString *deepLinkURLScheme; 56 | 57 | /** 58 | * The Google Cloud Storage bucket name, e.g. @"abc-xyz-123.storage.firebase.com". 59 | */ 60 | @property(nonatomic, readonly, copy) NSString *storageBucket; 61 | 62 | /** 63 | * Initializes a customized instance of FIROptions with keys. googleAppID, bundleID and GCMSenderID 64 | * are required. Other keys may required for configuring specific services. 65 | */ 66 | - (instancetype)initWithGoogleAppID:(NSString *)googleAppID 67 | bundleID:(NSString *)bundleID 68 | GCMSenderID:(NSString *)GCMSenderID 69 | APIKey:(NSString *)APIKey 70 | clientID:(NSString *)clientID 71 | trackingID:(NSString *)trackingID 72 | androidClientID:(NSString *)androidClientID 73 | databaseURL:(NSString *)databaseURL 74 | storageBucket:(NSString *)storageBucket 75 | deepLinkURLScheme:(NSString *)deepLinkURLScheme; 76 | 77 | /** 78 | * Initializes a customized instance of FIROptions from the file at the given plist file path. 79 | * For example, 80 | * NSString *filePath = 81 | * [[NSBundle mainBundle] pathForResource:@"GoogleService-Info" ofType:@"plist"]; 82 | * FIROptions *options = [[FIROptions alloc] initWithContentsOfFile:filePath]; 83 | * Returns nil if the plist file does not exist or is invalid. 84 | */ 85 | - (instancetype)initWithContentsOfFile:(NSString *)plistPath; 86 | 87 | @end 88 | -------------------------------------------------------------------------------- /Pods/FirebaseCore/Frameworks/frameworks/FirebaseCore.framework/Headers/FirebaseCore.h: -------------------------------------------------------------------------------- 1 | // Generated umbrella header for FirebaseCore. 2 | 3 | #import "FIRAnalyticsConfiguration.h" 4 | #import "FIRApp.h" 5 | #import "FIRConfiguration.h" 6 | #import "FIROptions.h" 7 | -------------------------------------------------------------------------------- /Pods/FirebaseCore/Frameworks/frameworks/FirebaseCore.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module FirebaseCore { 2 | 3 | export * 4 | 5 | umbrella header "FirebaseCore.h" 6 | 7 | header "FIRAnalyticsConfiguration.h" 8 | header "FIRApp.h" 9 | header "FIRConfiguration.h" 10 | header "FIROptions.h" 11 | 12 | link framework "SystemConfiguration" 13 | 14 | link "c++" 15 | } 16 | -------------------------------------------------------------------------------- /Pods/FirebaseInstanceID/Frameworks/frameworks/FirebaseInstanceID.framework/FirebaseInstanceID: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/Pods/FirebaseInstanceID/Frameworks/frameworks/FirebaseInstanceID.framework/FirebaseInstanceID -------------------------------------------------------------------------------- /Pods/FirebaseInstanceID/Frameworks/frameworks/FirebaseInstanceID.framework/Headers/FirebaseInstanceID.h: -------------------------------------------------------------------------------- 1 | #import "FIRInstanceID.h" 2 | -------------------------------------------------------------------------------- /Pods/FirebaseInstanceID/Frameworks/frameworks/FirebaseInstanceID.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module FirebaseInstanceID { 2 | 3 | export * 4 | 5 | umbrella header "FirebaseInstanceID.h" 6 | 7 | header "FIRInstanceID.h" 8 | } 9 | -------------------------------------------------------------------------------- /Pods/FirebaseMessaging/Frameworks/frameworks/FirebaseMessaging.framework/FirebaseMessaging: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/Pods/FirebaseMessaging/Frameworks/frameworks/FirebaseMessaging.framework/FirebaseMessaging -------------------------------------------------------------------------------- /Pods/FirebaseMessaging/Frameworks/frameworks/FirebaseMessaging.framework/Headers/FIRMessaging.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | /** 4 | * The completion handler invoked once the data connection with FIRMessaging is 5 | * established. The data connection is used to send a continous stream of 6 | * data and all the FIRMessaging data notifications arrive through this connection. 7 | * Once the connection is established we invoke the callback with `nil` error. 8 | * Correspondingly if we get an error while trying to establish a connection 9 | * we invoke the handler with an appropriate error object and do an 10 | * exponential backoff to try and connect again unless successful. 11 | * 12 | * @param error The error object if any describing why the data connection 13 | * to FIRMessaging failed. 14 | */ 15 | typedef void(^FIRMessagingConnectCompletion)(NSError * __nullable error); 16 | 17 | /** 18 | * Notification sent when the upstream message has been delivered 19 | * successfully to the server. The notification object will be the messageID 20 | * of the successfully delivered message. 21 | */ 22 | FOUNDATION_EXPORT NSString * __nonnull const FIRMessagingSendSuccessNotification; 23 | 24 | /** 25 | * Notification sent when the upstream message was failed to be sent to the 26 | * server. The notification object will be the messageID of the failed 27 | * message. The userInfo dictionary will contain the relevant error 28 | * information for the failure. 29 | */ 30 | FOUNDATION_EXPORT NSString * __nonnull const FIRMessagingSendErrorNotification; 31 | 32 | /** 33 | * Notification sent when the Firebase messaging server deletes pending 34 | * messages due to exceeded storage limits. This may occur, for example, when 35 | * the device cannot be reached for an extended period of time. 36 | * 37 | * It is recommended to retrieve any missing messages directly from the 38 | * server. 39 | */ 40 | FOUNDATION_EXPORT NSString * __nonnull const FIRMessagingMessagesDeletedNotification; 41 | 42 | /** 43 | * @enum FIRMessagingError 44 | */ 45 | typedef NS_ENUM(NSUInteger, FIRMessagingError) { 46 | /// Unknown error. 47 | FIRMessagingErrorUnknown = 0, 48 | 49 | /// FIRMessaging couldn't validate request from this client. 50 | FIRMessagingErrorAuthentication = 1, 51 | 52 | /// InstanceID service cannot be accessed. 53 | FIRMessagingErrorNoAccess = 2, 54 | 55 | /// Request to InstanceID backend timed out. 56 | FIRMessagingErrorTimeout = 3, 57 | 58 | /// No network available to reach the servers. 59 | FIRMessagingErrorNetwork = 4, 60 | 61 | /// Another similar operation in progress, bailing this one. 62 | FIRMessagingErrorOperationInProgress = 5, 63 | 64 | /// Some parameters of the request were invalid. 65 | FIRMessagingErrorInvalidRequest = 7, 66 | }; 67 | 68 | /// Status for the downstream message received by the app. 69 | typedef NS_ENUM(NSInteger, FIRMessagingMessageStatus) { 70 | /// Unknown status. 71 | FIRMessagingMessageStatusUnknown, 72 | /// New downstream message received by the app. 73 | FIRMessagingMessageStatusNew, 74 | }; 75 | 76 | /// Information about a downstream message received by the app. 77 | @interface FIRMessagingMessageInfo : NSObject 78 | 79 | /// The status of the downstream message 80 | @property(nonatomic, readonly, assign) FIRMessagingMessageStatus status; 81 | 82 | @end 83 | 84 | /** 85 | * A remote data message received by the app via FCM (not just the APNs interface). 86 | * 87 | * This is only for devices running iOS 10 or above. To support devices running iOS 9 or below, use 88 | * the local and remote notifications handlers defined in UIApplicationDelegate protocol. 89 | */ 90 | @interface FIRMessagingRemoteMessage : NSObject 91 | 92 | /// The downstream message received by the application. 93 | @property(nonatomic, readonly, strong, nonnull) NSDictionary *appData; 94 | 95 | @end 96 | 97 | /** 98 | * A protocol to receive data message via FCM for devices running iOS 10 or above. 99 | * 100 | * To support devices running iOS 9 or below, use the local and remote notifications handlers 101 | * defined in UIApplicationDelegate protocol. 102 | */ 103 | @protocol FIRMessagingDelegate 104 | 105 | /// The callback to handle data message received via FCM for devices running iOS 10 or above. 106 | - (void)applicationReceivedRemoteMessage:(nonnull FIRMessagingRemoteMessage *)remoteMessage; 107 | 108 | @end 109 | 110 | /** 111 | * Firebase Messaging enables apps to communicate with their app servers 112 | * using simple messages. 113 | * 114 | * To send or receive messages, the app must get a 115 | * registration token from GGLInstanceID, which authorizes an 116 | * app server to send messages to an app instance. Pass your sender ID and 117 | * `kGGLInstanceIDScopeFIRMessaging` as parameters to the method. 118 | * 119 | * A sender ID is a project number created when you configure your API project. 120 | * It is labeled "Project Number" in the Google Developers Console. 121 | * 122 | * In order to receive FIRMessaging messages, declare application:didReceiveRemoteNotification: 123 | * 124 | * Client apps can send upstream messages back to the app server using the XMPP-based 125 | * Cloud Connection Server 126 | * 127 | */ 128 | @interface FIRMessaging : NSObject 129 | 130 | /** 131 | * Delegate to handle remote data messages received via FCM for devices running iOS 10 or above. 132 | */ 133 | @property(nonatomic, weak, nullable) id remoteMessageDelegate; 134 | 135 | /** 136 | * FIRMessaging 137 | * 138 | * @return An instance of FIRMessaging. 139 | */ 140 | + (nonnull instancetype)messaging NS_SWIFT_NAME(messaging()); 141 | 142 | /** 143 | * Unavailable. Use +messaging instead. 144 | */ 145 | - (nonnull instancetype)init __attribute__((unavailable("Use +messaging instead."))); 146 | 147 | #pragma mark - Connect 148 | 149 | /** 150 | * Create a FIRMessaging data connection which will be used to send the data notifications 151 | * send by your server. It will also be used to send ACKS and other messages based 152 | * on the FIRMessaging ACKS and other messages based on the FIRMessaging protocol. 153 | * 154 | * Use the `disconnect` method to disconnect the connection. 155 | * 156 | * @see FIRMessagingService disconnect 157 | * 158 | * @param handler The handler to be invoked once the connection is established. 159 | * If the connection fails we invoke the handler with an 160 | * appropriate error code letting you know why it failed. At 161 | * the same time, FIRMessaging performs exponential backoff to retry 162 | * establishing a connection and invoke the handler when successful. 163 | */ 164 | - (void)connectWithCompletion:(nonnull FIRMessagingConnectCompletion)handler; 165 | 166 | /** 167 | * Disconnect the current FIRMessaging data connection. This stops any attempts to 168 | * connect to FIRMessaging. Calling this on an already disconnected client is a no-op. 169 | * 170 | * Call this before `teardown` when your app is going to the background. 171 | * Since the FIRMessaging connection won't be allowed to live when in background it is 172 | * prudent to close the connection. 173 | */ 174 | - (void)disconnect; 175 | 176 | #pragma mark - Topics 177 | 178 | /** 179 | * Asynchronously subscribes to a topic. 180 | * 181 | * @param topic The name of the topic, for example @"sports". 182 | */ 183 | - (void)subscribeToTopic:(nonnull NSString *)topic; 184 | 185 | /** 186 | * Asynchronously unsubscribe to a topic. 187 | * 188 | * @param topic The name of the topic, for example @"sports". 189 | */ 190 | - (void)unsubscribeFromTopic:(nonnull NSString *)topic; 191 | 192 | #pragma mark - Upstream 193 | 194 | /** 195 | * Sends an upstream ("device to cloud") message. 196 | * 197 | * The message will be queued if we don't have an active connection. 198 | * You can only use the upstream feature if your GCM implementation 199 | * uses the XMPP-based Cloud Connection Server. 200 | * 201 | * @param message Key/Value pairs to be sent. Values must be String, any 202 | * other type will be ignored. 203 | * @param to A string identifying the receiver of the message. For GCM 204 | * project IDs the value is `SENDER_ID@gcm.googleapis.com`. 205 | * @param messageID The ID of the message. This is generated by the application. It 206 | * must be unique for each message generated by this application. 207 | * It allows error callbacks and debugging, to uniquely identify 208 | * each message. 209 | * @param ttl The time to live for the message. In case we aren't able to 210 | * send the message before the TTL expires we will send you a 211 | * callback. If 0, we'll attempt to send immediately and return 212 | * an error if we're not connected. Otherwise, the message will 213 | * be queued. As for server-side messages, we don't return an error 214 | * if the message has been dropped because of TTL; this can happen 215 | * on the server side, and it would require extra communication. 216 | */ 217 | - (void)sendMessage:(nonnull NSDictionary *)message 218 | to:(nonnull NSString *)receiver 219 | withMessageID:(nonnull NSString *)messageID 220 | timeToLive:(int64_t)ttl; 221 | 222 | #pragma mark - Analytics 223 | 224 | /** 225 | * Call this when the app received a downstream message. Used to track message 226 | * delivery and analytics for messages. You don't need to call this if you 227 | * don't set the `FIRMessagingAutoSetupEnabled` flag in your Info.plist. In the 228 | * latter case the library will call this implicitly to track relevant 229 | * messages. 230 | * 231 | * @param message The downstream message received by the application. 232 | * 233 | * @return Information about the downstream message. 234 | */ 235 | - (nonnull FIRMessagingMessageInfo *)appDidReceiveMessage:(nonnull NSDictionary *)message; 236 | 237 | @end 238 | -------------------------------------------------------------------------------- /Pods/FirebaseMessaging/Frameworks/frameworks/FirebaseMessaging.framework/Headers/FirebaseMessaging.h: -------------------------------------------------------------------------------- 1 | #import "FIRMessaging.h" 2 | -------------------------------------------------------------------------------- /Pods/FirebaseMessaging/Frameworks/frameworks/FirebaseMessaging.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module FirebaseMessaging { 2 | 3 | export * 4 | 5 | umbrella header "FirebaseMessaging.h" 6 | 7 | header "FIRMessaging.h" 8 | 9 | link framework "AddressBook" 10 | link framework "SystemConfiguration" 11 | 12 | link "sqlite3" 13 | } 14 | -------------------------------------------------------------------------------- /Pods/FirebaseMessaging/Sources/FIRMessaging.h: -------------------------------------------------------------------------------- 1 | /** 2 | * The completion handler invoked once the data connection with FIRMessaging is 3 | * established. The data connection is used to send a continous stream of 4 | * data and all the FIRMessaging data notifications arrive through this connection. 5 | * Once the connection is established we invoke the callback with `nil` error. 6 | * Correspondingly if we get an error while trying to establish a connection 7 | * we invoke the handler with an appropriate error object and do an 8 | * exponential backoff to try and connect again unless successful. 9 | * 10 | * @param error The error object if any describing why the data connection 11 | * to FIRMessaging failed. 12 | */ 13 | typedef void(^FIRMessagingConnectCompletion)(NSError * __nullable error); 14 | 15 | /** 16 | * Notification sent when the upstream message has been delivered 17 | * successfully to the server. The notification object will be the messageID 18 | * of the successfully delivered message. 19 | */ 20 | FOUNDATION_EXPORT NSString * __nonnull const FIRMessagingSendSuccessNotification; 21 | 22 | /** 23 | * Notification sent when the upstream message was failed to be sent to the 24 | * server. The notification object will be the messageID of the failed 25 | * message. The userInfo dictionary will contain the relevant error 26 | * information for the failure. 27 | */ 28 | FOUNDATION_EXPORT NSString * __nonnull const FIRMessagingSendErrorNotification; 29 | 30 | /** 31 | * Notification sent when the Firebase messaging server deletes pending 32 | * messages due to exceeded storage limits. This may occur, for example, when 33 | * the device cannot be reached for an extended period of time. It is recommended 34 | * to retrieve any missing messages directly from the server. 35 | */ 36 | FOUNDATION_EXPORT NSString * __nonnull const FIRMessagingMessagesDeletedNotification; 37 | 38 | /** 39 | * @enum FIRMessagingError 40 | */ 41 | typedef NS_ENUM(NSUInteger, FIRMessagingError) { 42 | /// Unknown error. 43 | FIRMessagingErrorUnknown = 0, 44 | 45 | /// Auth Error -- FIRMessaging couldn't validate request from this client. 46 | FIRMessagingErrorAuthentication = 1, 47 | 48 | /// NoAccess -- InstanceID service cannot be accessed. 49 | FIRMessagingErrorNoAccess = 2, 50 | 51 | /// Timeout -- Request to InstanceID backend timed out. 52 | FIRMessagingErrorTimeout = 3, 53 | 54 | /// Network -- No network available to reach the servers. 55 | FIRMessagingErrorNetwork = 4, 56 | 57 | /// OperationInProgress -- Another similar operation in progress, 58 | /// bailing this one. 59 | FIRMessagingErrorOperationInProgress = 5, 60 | 61 | /// InvalidRequest -- Some parameters of the request were invalid. 62 | FIRMessagingErrorInvalidRequest = 7, 63 | }; 64 | 65 | /** 66 | * Firebase Messaging enables apps to communicate with their app servers 67 | * using simple messages. 68 | * 69 | * To send or receive messages, the app must get a 70 | * registration token from FirebaseInstanceID, which authorizes an 71 | * app server to send messages to an app instance. Pass your sender ID and 72 | * `kFIRInstanceIDScopeFIRMessaging` as parameters to the method. 73 | * 74 | * A sender ID is a project number created when you configure your API project. 75 | * It is labeled "Project Number" in the Google Developers Console. 76 | * 77 | * In order to receive FIRMessaging messages, declare application:didReceiveRemoteNotification: 78 | * 79 | * Client apps can send upstream messages back to the app server using the XMPP-based 80 | * Cloud Connection Server, 81 | * 82 | */ 83 | @interface FIRMessaging : NSObject 84 | 85 | /** 86 | * FIRMessaging 87 | * 88 | * @return An instance of FIRMessaging. 89 | */ 90 | + (nonnull instancetype)messaging; 91 | 92 | #pragma mark - Connect 93 | 94 | /** 95 | * Create a FIRMessaging data connection which will be used to send the data notifications 96 | * send by your server. It will also be used to send ACKS and other messages based 97 | * on the FIRMessaging ACKS and other messages based on the FIRMessaging protocol. 98 | * 99 | * Use the `disconnect` method to disconnect the connection. 100 | * 101 | * @see FIRMessagingService disconnect 102 | * 103 | * @param handler The handler to be invoked once the connection is established. 104 | * If the connection fails we invoke the handler with an 105 | * appropriate error code letting you know why it failed. At 106 | * the same time, FIRMessaging performs exponential backoff to retry 107 | * establishing a connection and invoke the handler when successful. 108 | */ 109 | - (void)connectWithCompletion:(nonnull FIRMessagingConnectCompletion)handler; 110 | 111 | /** 112 | * Disconnect the current FIRMessaging data connection. This stops any attempts to 113 | * connect to FIRMessaging. Calling this on an already disconnected client is a no-op. 114 | * 115 | * Call this before `teardown` when your app is going to the background. 116 | * Since the FIRMessaging connection won't be allowed to live when in background it is 117 | * prudent to close the connection. 118 | */ 119 | - (void)disconnect; 120 | 121 | #pragma mark - Topics 122 | 123 | /** 124 | * Asynchronously subscribes to a topic. 125 | * 126 | * @param topic The name of the topic, for example @"sports". 127 | */ 128 | - (void)subscribeToTopic:(nonnull NSString *)topic; 129 | 130 | /** 131 | * Asynchronously unsubscribe to a topic. 132 | * 133 | * @param topic The name of the topic, for example @"sports". 134 | */ 135 | - (void)unsubscribeFromTopic:(nonnull NSString *)topic; 136 | 137 | #pragma mark - Upstream 138 | 139 | /** 140 | * Sends an upstream ("device to cloud") message. 141 | * 142 | * The message will be queued if we don't have an active connection. 143 | * You can only use the upstream feature if your Firebase Messaging implementation 144 | * uses the XMPP-based Cloud Connection Server. 145 | * 146 | * @param message Key/Value pairs to be sent. Values must be String, any 147 | * other type will be ignored. 148 | * @param to A string identifying the receiver of the message. For GCM 149 | * project IDs the value is `SENDER_ID@gcm.googleapis.com`. 150 | * @param messageID The ID of the message. This is generated by the application. It 151 | * must be unique for each message generated by this application. 152 | * It allows error callbacks and debugging, to uniquely identify 153 | * each message. 154 | * @param ttl The time to live for the message. In case we aren't able to 155 | * send the message before the TTL expires we will send you a 156 | * callback. If 0, we'll attempt to send immediately and return 157 | * an error if we're not connected. Otherwise, the message will 158 | * be queued. As for server-side messages, we don't return an error 159 | * if the message has been dropped because of TTL; this can happen 160 | * on the server side, and it would require extra communication. 161 | */ 162 | - (void)sendMessage:(nonnull NSDictionary *)message 163 | to:(nonnull NSString *)receiver 164 | withMessageID:(nonnull NSString *)messageID 165 | timeToLive:(int64_t)ttl; 166 | 167 | #pragma mark - Analytics 168 | 169 | /** 170 | * Call this when the app received a downstream message. Used to track message 171 | * delivery and analytics for messages. You don't need to call this if you 172 | * don't set the `FIRMessagingAutoSetupEnabled` flag in your Info.plist. In the 173 | * latter case the library will call this implicitly to track relevant messages. 174 | * 175 | * @param message The downstream message received by the application. 176 | */ 177 | - (void)appDidReceiveMessage:(nonnull NSDictionary *)message; 178 | 179 | @end 180 | -------------------------------------------------------------------------------- /Pods/FirebaseRemoteConfig/CHANGELOG: -------------------------------------------------------------------------------- 1 | Version 1.3.1 2 | ================================== 3 | Resolved Issues: 4 | - Better documentation on the public headers. 5 | 6 | Version 1.3.0 7 | ================================== 8 | Features: 9 | - Support user property targeting for analytics abilities. 10 | 11 | Resolved Issues: 12 | - Fix critical crashes due to concurrent fetches, make it more thread safe. 13 | 14 | Version 1.2.0 15 | ================================== 16 | Features: 17 | - Add two new API methods to allow developers to get all the keys based on a key prefix. 18 | 19 | Resolved Issues: 20 | - Fix a crash issue during fetching config. 21 | - Clarify the confusion on the documents of activateFetched method. 22 | - Correct the cast error in the comment of remoteConfig method. 23 | 24 | Version 1.1.1 25 | ================================== 26 | Initial release in Google I/O 2016. 27 | -------------------------------------------------------------------------------- /Pods/FirebaseRemoteConfig/Frameworks/frameworks/FirebaseRemoteConfig.framework/FirebaseRemoteConfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/Pods/FirebaseRemoteConfig/Frameworks/frameworks/FirebaseRemoteConfig.framework/FirebaseRemoteConfig -------------------------------------------------------------------------------- /Pods/FirebaseRemoteConfig/Frameworks/frameworks/FirebaseRemoteConfig.framework/Headers/FirebaseRemoteConfig.h: -------------------------------------------------------------------------------- 1 | // Generated umbrella header for FirebaseRemoteConfig. 2 | 3 | #import "FIRRemoteConfig.h" 4 | -------------------------------------------------------------------------------- /Pods/FirebaseRemoteConfig/Frameworks/frameworks/FirebaseRemoteConfig.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module FirebaseRemoteConfig { 2 | 3 | export * 4 | 5 | umbrella header "FirebaseRemoteConfig.h" 6 | 7 | header "FIRRemoteConfig.h" 8 | 9 | link "sqlite3" 10 | link "z" 11 | } 12 | -------------------------------------------------------------------------------- /Pods/FirebaseRemoteConfig/README.md: -------------------------------------------------------------------------------- 1 | # Firebase Remote Config SDK for iOS 2 | 3 | This pod contains the Firebase Remote Config SDK for iOS, supporting both 4 | Objective-C and Swift. 5 | 6 | Firebase Remote Config is a cloud service that lets you change the appearance 7 | and behavior of your app without requiring users to download an app update. 8 | 9 | Please visit [our developer site] 10 | (https://firebase.google.com/docs/remote-config/) for integration instructions, 11 | documentation, support information, and terms of service. 12 | -------------------------------------------------------------------------------- /Pods/GoogleInterchangeUtilities/Frameworks/frameworks/GoogleInterchangeUtilities.framework/GoogleInterchangeUtilities: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/Pods/GoogleInterchangeUtilities/Frameworks/frameworks/GoogleInterchangeUtilities.framework/GoogleInterchangeUtilities -------------------------------------------------------------------------------- /Pods/GoogleSymbolUtilities/Frameworks/frameworks/GoogleSymbolUtilities.framework/GoogleSymbolUtilities: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nurockplayer/CodingCafe/e495f020c4a1cc56ba3ca53bed15af6aa77644ff/Pods/GoogleSymbolUtilities/Frameworks/frameworks/GoogleSymbolUtilities.framework/GoogleSymbolUtilities -------------------------------------------------------------------------------- /Pods/GoogleToolboxForMac/README.md: -------------------------------------------------------------------------------- 1 | # GTM: Google Toolbox for Mac # 2 | 3 | **Project site**
4 | **Discussion group** 5 | 6 | # Google Toolbox for Mac # 7 | 8 | A collection of source from different Google projects that may be of use to 9 | developers working other iOS or OS X projects. 10 | 11 | If you find a problem/bug or want a new feature to be included in the Google 12 | Toolbox for Mac, please join the 13 | [discussion group](http://groups.google.com/group/google-toolbox-for-mac) 14 | or submit an 15 | [issue](https://github.com/google/google-toolbox-for-mac/issues). 16 | -------------------------------------------------------------------------------- /Pods/Headers/Private/Firebase/Firebase.h: -------------------------------------------------------------------------------- 1 | ../../../Firebase/Core/Sources/Firebase.h -------------------------------------------------------------------------------- /Pods/Headers/Private/FirebaseInstanceID/FIRInstanceID.h: -------------------------------------------------------------------------------- 1 | ../../../FirebaseInstanceID/Sources/FIRInstanceID.h -------------------------------------------------------------------------------- /Pods/Headers/Private/FirebaseMessaging/FIRMessaging.h: -------------------------------------------------------------------------------- 1 | ../../../FirebaseMessaging/Sources/FIRMessaging.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Firebase/Firebase.h: -------------------------------------------------------------------------------- 1 | ../../../Firebase/Core/Sources/Firebase.h -------------------------------------------------------------------------------- /Pods/Headers/Public/FirebaseInstanceID/FIRInstanceID.h: -------------------------------------------------------------------------------- 1 | ../../../FirebaseInstanceID/Sources/FIRInstanceID.h -------------------------------------------------------------------------------- /Pods/Headers/Public/FirebaseMessaging/FIRMessaging.h: -------------------------------------------------------------------------------- 1 | ../../../FirebaseMessaging/Sources/FIRMessaging.h -------------------------------------------------------------------------------- /Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Alamofire (4.2.0) 3 | - Firebase/Core (3.11.0): 4 | - FirebaseAnalytics (= 3.6.0) 5 | - FirebaseCore (= 3.4.6) 6 | - Firebase/Messaging (3.11.0): 7 | - Firebase/Core 8 | - FirebaseMessaging (= 1.2.1) 9 | - Firebase/RemoteConfig (3.11.0): 10 | - Firebase/Core 11 | - FirebaseRemoteConfig (= 1.3.1) 12 | - FirebaseAnalytics (3.6.0): 13 | - FirebaseCore (~> 3.4) 14 | - FirebaseInstanceID (~> 1.0) 15 | - GoogleInterchangeUtilities (~> 1.2) 16 | - GoogleSymbolUtilities (~> 1.1) 17 | - GoogleToolboxForMac/NSData+zlib (~> 2.1) 18 | - FirebaseCore (3.4.6): 19 | - GoogleInterchangeUtilities (~> 1.2) 20 | - GoogleToolboxForMac/NSData+zlib (~> 2.1) 21 | - FirebaseInstanceID (1.0.8) 22 | - FirebaseMessaging (1.2.1): 23 | - FirebaseAnalytics (~> 3.4) 24 | - FirebaseInstanceID (~> 1.0) 25 | - GoogleInterchangeUtilities (~> 1.2) 26 | - GoogleSymbolUtilities (~> 1.1) 27 | - GoogleToolboxForMac/Logger (~> 2.1) 28 | - FirebaseRemoteConfig (1.3.1): 29 | - FirebaseAnalytics (~> 3.4) 30 | - FirebaseInstanceID (~> 1.0) 31 | - GoogleInterchangeUtilities (~> 1.2) 32 | - GoogleSymbolUtilities (~> 1.1) 33 | - GoogleToolboxForMac/NSData+zlib (~> 2.1) 34 | - GoogleInterchangeUtilities (1.2.2): 35 | - GoogleSymbolUtilities (~> 1.1) 36 | - GoogleSymbolUtilities (1.1.2) 37 | - GoogleToolboxForMac/Defines (2.1.0) 38 | - GoogleToolboxForMac/Logger (2.1.0): 39 | - GoogleToolboxForMac/Defines (= 2.1.0) 40 | - GoogleToolboxForMac/NSData+zlib (2.1.0): 41 | - GoogleToolboxForMac/Defines (= 2.1.0) 42 | - SwiftyJSON (3.1.3) 43 | 44 | DEPENDENCIES: 45 | - Alamofire 46 | - Firebase/Core 47 | - Firebase/Messaging 48 | - Firebase/RemoteConfig 49 | - SwiftyJSON 50 | 51 | SPEC CHECKSUMS: 52 | Alamofire: aa2e09d871c9160ac53c90e83c68064a94e3dfbe 53 | Firebase: b8134e285eb33201115bc688bc5d7f112923bc1f 54 | FirebaseAnalytics: 9c67af0ebeb8d2146c9b4ea2616439affa947b58 55 | FirebaseCore: 03da1cb32615569bbc2830a22f9ad753d9a02ef5 56 | FirebaseInstanceID: ba1e640935235e5fac39dfa816fe7660e72e1a8a 57 | FirebaseMessaging: acf66347e43c5637c697060c3001d25c809a4131 58 | FirebaseRemoteConfig: 383a9afe0a9291ada949e3f615257928a823b594 59 | GoogleInterchangeUtilities: d5bc4d88d5b661ab72f9d70c58d02ca8c27ad1f7 60 | GoogleSymbolUtilities: 631ee17048aa5e9ab133470d768ea997a5ef9b96 61 | GoogleToolboxForMac: 2b2596cbb7186865e98cadf2b1e262d851c2b168 62 | SwiftyJSON: 38a8ea2006779c0fc4c310cb2ee8195327740faf 63 | 64 | PODFILE CHECKSUM: 76426a025d48c03b6d3dc04fc2629af210fef88a 65 | 66 | COCOAPODS: 1.1.1 67 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/.xcuserdatad/xcschemes/Alamofire.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/.xcuserdatad/xcschemes/GoogleToolboxForMac.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/.xcuserdatad/xcschemes/Pods-CodingCafe.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/.xcuserdatad/xcschemes/SwiftyJSON.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | Alamofire.xcscheme 8 | 9 | isShown 10 | 11 | 12 | GoogleToolboxForMac.xcscheme 13 | 14 | isShown 15 | 16 | 17 | Pods-CodingCafe.xcscheme 18 | 19 | isShown 20 | 21 | 22 | SwiftyJSON.xcscheme 23 | 24 | isShown 25 | 26 | 27 | 28 | SuppressBuildableAutocreation 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/yujiaheng.xcuserdatad/xcschemes/Alamofire.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 34 | 35 | 45 | 46 | 52 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 70 | 71 | 72 | 73 | 75 | 76 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/yujiaheng.xcuserdatad/xcschemes/GoogleToolboxForMac.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 34 | 35 | 45 | 46 | 52 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 70 | 71 | 72 | 73 | 75 | 76 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/yujiaheng.xcuserdatad/xcschemes/ObjectMapper.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 34 | 35 | 45 | 46 | 52 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 70 | 71 | 72 | 73 | 75 | 76 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/yujiaheng.xcuserdatad/xcschemes/Pods-CodingCafe.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 34 | 35 | 45 | 46 | 52 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 70 | 71 | 72 | 73 | 75 | 76 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/yujiaheng.xcuserdatad/xcschemes/SwiftyJSON.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 34 | 35 | 45 | 46 | 52 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 70 | 71 | 72 | 73 | 75 | 76 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/yujiaheng.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | Alamofire.xcscheme 8 | 9 | orderHint 10 | 1 11 | 12 | GoogleToolboxForMac.xcscheme 13 | 14 | orderHint 15 | 5 16 | 17 | ObjectMapper.xcscheme 18 | 19 | orderHint 20 | 4 21 | 22 | Pods-CodingCafe.xcscheme 23 | 24 | orderHint 25 | 2 26 | 27 | SwiftyJSON.xcscheme 28 | 29 | orderHint 30 | 3 31 | 32 | 33 | SuppressBuildableAutocreation 34 | 35 | 00103D6C821BE85971C563025527BA5D 36 | 37 | primary 38 | 39 | 40 | 1C8029E77F488C939708399CBCD7BE15 41 | 42 | primary 43 | 44 | 45 | 2E475C09F8C5D03915E21E07D7D31036 46 | 47 | primary 48 | 49 | 50 | 4DA3630D9D7108DECE47615C38C71120 51 | 52 | primary 53 | 54 | 55 | 79C040AFDDCE1BCBF6D8B5EB0B85887F 56 | 57 | primary 58 | 59 | 60 | 88E9EC28B8B46C3631E6B242B50F4442 61 | 62 | primary 63 | 64 | 65 | 8A6EECBF35EEB0DCEF07069D084E5CE8 66 | 67 | primary 68 | 69 | 70 | A0198EDCAD8D444F7CEEFF46F05C84F0 71 | 72 | primary 73 | 74 | 75 | B9BA761002CA98DDCD637DDA92349D84 76 | 77 | primary 78 | 79 | 80 | C5B80060FE8C664DF08841000F41D515 81 | 82 | primary 83 | 84 | 85 | DFE2BB3F4162D75DBBDFD6B6D1930D6E 86 | 87 | primary 88 | 89 | 90 | E30CA1A9FD95C1FF06C2A8847196943B 91 | 92 | primary 93 | 94 | 95 | 96 | 97 | 98 | -------------------------------------------------------------------------------- /Pods/SwiftyJSON/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Ruoyu Fu 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Alamofire-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Alamofire : NSObject 3 | @end 4 | @implementation PodsDummy_Alamofire 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Alamofire-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Alamofire-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | 6 | FOUNDATION_EXPORT double AlamofireVersionNumber; 7 | FOUNDATION_EXPORT const unsigned char AlamofireVersionString[]; 8 | 9 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Alamofire.modulemap: -------------------------------------------------------------------------------- 1 | framework module Alamofire { 2 | umbrella header "Alamofire-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Alamofire.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Alamofire 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" "${PODS_ROOT}/Headers/Public/FirebaseMessaging" "${PODS_ROOT}/Headers/Public/FirebaseRemoteConfig" "${PODS_ROOT}/Headers/Public/GoogleInterchangeUtilities" "${PODS_ROOT}/Headers/Public/GoogleSymbolUtilities" 4 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 4.2.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/GoogleToolboxForMac/GoogleToolboxForMac-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_GoogleToolboxForMac : NSObject 3 | @end 4 | @implementation PodsDummy_GoogleToolboxForMac 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/GoogleToolboxForMac/GoogleToolboxForMac-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/GoogleToolboxForMac/GoogleToolboxForMac-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "GTMDefines.h" 6 | #import "GTMLogger.h" 7 | #import "GTMNSData+zlib.h" 8 | 9 | FOUNDATION_EXPORT double GoogleToolboxForMacVersionNumber; 10 | FOUNDATION_EXPORT const unsigned char GoogleToolboxForMacVersionString[]; 11 | 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/GoogleToolboxForMac/GoogleToolboxForMac.modulemap: -------------------------------------------------------------------------------- 1 | framework module GoogleToolboxForMac { 2 | umbrella header "GoogleToolboxForMac-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/GoogleToolboxForMac/GoogleToolboxForMac.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/GoogleToolboxForMac 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" "${PODS_ROOT}/Headers/Public/FirebaseMessaging" "${PODS_ROOT}/Headers/Public/FirebaseRemoteConfig" "${PODS_ROOT}/Headers/Public/GoogleInterchangeUtilities" "${PODS_ROOT}/Headers/Public/GoogleSymbolUtilities" 4 | OTHER_LDFLAGS = -l"z" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/GoogleToolboxForMac/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 2.1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-CodingCafe/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-CodingCafe/Pods-CodingCafe-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_CodingCafe : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_CodingCafe 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-CodingCafe/Pods-CodingCafe-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 5 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 6 | 7 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 8 | 9 | install_framework() 10 | { 11 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 12 | local source="${BUILT_PRODUCTS_DIR}/$1" 13 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 14 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 15 | elif [ -r "$1" ]; then 16 | local source="$1" 17 | fi 18 | 19 | local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 20 | 21 | if [ -L "${source}" ]; then 22 | echo "Symlinked..." 23 | source="$(readlink "${source}")" 24 | fi 25 | 26 | # use filter instead of exclude so missing patterns dont' throw errors 27 | echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 28 | rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 29 | 30 | local basename 31 | basename="$(basename -s .framework "$1")" 32 | binary="${destination}/${basename}.framework/${basename}" 33 | if ! [ -r "$binary" ]; then 34 | binary="${destination}/${basename}" 35 | fi 36 | 37 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 38 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 39 | strip_invalid_archs "$binary" 40 | fi 41 | 42 | # Resign the code if required by the build settings to avoid unstable apps 43 | code_sign_if_enabled "${destination}/$(basename "$1")" 44 | 45 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 46 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 47 | local swift_runtime_libs 48 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) 49 | for lib in $swift_runtime_libs; do 50 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 51 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 52 | code_sign_if_enabled "${destination}/${lib}" 53 | done 54 | fi 55 | } 56 | 57 | # Signs a framework with the provided identity 58 | code_sign_if_enabled() { 59 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 60 | # Use the current code_sign_identitiy 61 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 62 | echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\"" 63 | /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements "$1" 64 | fi 65 | } 66 | 67 | # Strip invalid architectures 68 | strip_invalid_archs() { 69 | binary="$1" 70 | # Get architectures for current file 71 | archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" 72 | stripped="" 73 | for arch in $archs; do 74 | if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then 75 | # Strip non-valid architectures in-place 76 | lipo -remove "$arch" -output "$binary" "$binary" || exit 1 77 | stripped="$stripped $arch" 78 | fi 79 | done 80 | if [[ "$stripped" ]]; then 81 | echo "Stripped $binary of architectures:$stripped" 82 | fi 83 | } 84 | 85 | 86 | if [[ "$CONFIGURATION" == "Debug" ]]; then 87 | install_framework "$BUILT_PRODUCTS_DIR/Alamofire/Alamofire.framework" 88 | install_framework "$BUILT_PRODUCTS_DIR/GoogleToolboxForMac/GoogleToolboxForMac.framework" 89 | install_framework "$BUILT_PRODUCTS_DIR/SwiftyJSON/SwiftyJSON.framework" 90 | fi 91 | if [[ "$CONFIGURATION" == "Release" ]]; then 92 | install_framework "$BUILT_PRODUCTS_DIR/Alamofire/Alamofire.framework" 93 | install_framework "$BUILT_PRODUCTS_DIR/GoogleToolboxForMac/GoogleToolboxForMac.framework" 94 | install_framework "$BUILT_PRODUCTS_DIR/SwiftyJSON/SwiftyJSON.framework" 95 | fi 96 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-CodingCafe/Pods-CodingCafe-resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 5 | 6 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt 7 | > "$RESOURCES_TO_COPY" 8 | 9 | XCASSET_FILES=() 10 | 11 | case "${TARGETED_DEVICE_FAMILY}" in 12 | 1,2) 13 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" 14 | ;; 15 | 1) 16 | TARGET_DEVICE_ARGS="--target-device iphone" 17 | ;; 18 | 2) 19 | TARGET_DEVICE_ARGS="--target-device ipad" 20 | ;; 21 | *) 22 | TARGET_DEVICE_ARGS="--target-device mac" 23 | ;; 24 | esac 25 | 26 | install_resource() 27 | { 28 | if [[ "$1" = /* ]] ; then 29 | RESOURCE_PATH="$1" 30 | else 31 | RESOURCE_PATH="${PODS_ROOT}/$1" 32 | fi 33 | if [[ ! -e "$RESOURCE_PATH" ]] ; then 34 | cat << EOM 35 | error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. 36 | EOM 37 | exit 1 38 | fi 39 | case $RESOURCE_PATH in 40 | *.storyboard) 41 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" 42 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 43 | ;; 44 | *.xib) 45 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" 46 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 47 | ;; 48 | *.framework) 49 | echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 50 | mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 51 | echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 52 | rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 53 | ;; 54 | *.xcdatamodel) 55 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" 56 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" 57 | ;; 58 | *.xcdatamodeld) 59 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" 60 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" 61 | ;; 62 | *.xcmappingmodel) 63 | echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" 64 | xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" 65 | ;; 66 | *.xcassets) 67 | ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" 68 | XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") 69 | ;; 70 | *) 71 | echo "$RESOURCE_PATH" 72 | echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" 73 | ;; 74 | esac 75 | } 76 | 77 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 78 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 79 | if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then 80 | mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 81 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 82 | fi 83 | rm -f "$RESOURCES_TO_COPY" 84 | 85 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] 86 | then 87 | # Find all other xcassets (this unfortunately includes those of path pods and other targets). 88 | OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) 89 | while read line; do 90 | if [[ $line != "${PODS_ROOT}*" ]]; then 91 | XCASSET_FILES+=("$line") 92 | fi 93 | done <<<"$OTHER_XCASSETS" 94 | 95 | printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 96 | fi 97 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-CodingCafe/Pods-CodingCafe-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | 6 | FOUNDATION_EXPORT double Pods_CodingCafeVersionNumber; 7 | FOUNDATION_EXPORT const unsigned char Pods_CodingCafeVersionString[]; 8 | 9 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-CodingCafe/Pods-CodingCafe.debug.xcconfig: -------------------------------------------------------------------------------- 1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES 2 | EMBEDDED_CONTENT_CONTAINS_SWIFT = YES 3 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Alamofire" "$PODS_CONFIGURATION_BUILD_DIR/GoogleToolboxForMac" "$PODS_CONFIGURATION_BUILD_DIR/SwiftyJSON" "${PODS_ROOT}/FirebaseAnalytics/Frameworks/frameworks" "${PODS_ROOT}/FirebaseCore/Frameworks/frameworks" "${PODS_ROOT}/FirebaseInstanceID/Frameworks/frameworks" "${PODS_ROOT}/FirebaseMessaging/Frameworks/frameworks" "${PODS_ROOT}/FirebaseRemoteConfig/Frameworks/frameworks" "${PODS_ROOT}/GoogleInterchangeUtilities/Frameworks/frameworks" "${PODS_ROOT}/GoogleSymbolUtilities/Frameworks/frameworks" 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | HEADER_SEARCH_PATHS = $(inherited) ${PODS_ROOT}/Firebase/Core/Sources $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" "${PODS_ROOT}/Headers/Public/FirebaseMessaging" "${PODS_ROOT}/Headers/Public/FirebaseRemoteConfig" "${PODS_ROOT}/Headers/Public/GoogleInterchangeUtilities" "${PODS_ROOT}/Headers/Public/GoogleSymbolUtilities" 6 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 7 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/Alamofire/Alamofire.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/GoogleToolboxForMac/GoogleToolboxForMac.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/SwiftyJSON/SwiftyJSON.framework/Headers" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Firebase" -isystem "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" -isystem "${PODS_ROOT}/Headers/Public/FirebaseCore" -isystem "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" -isystem "${PODS_ROOT}/Headers/Public/FirebaseMessaging" -isystem "${PODS_ROOT}/Headers/Public/FirebaseRemoteConfig" -isystem "${PODS_ROOT}/Headers/Public/GoogleInterchangeUtilities" -isystem "${PODS_ROOT}/Headers/Public/GoogleSymbolUtilities" 8 | OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"sqlite3" -l"z" -framework "AddressBook" -framework "Alamofire" -framework "FirebaseAnalytics" -framework "FirebaseCore" -framework "FirebaseInstanceID" -framework "FirebaseMessaging" -framework "FirebaseRemoteConfig" -framework "GoogleInterchangeUtilities" -framework "GoogleSymbolUtilities" -framework "GoogleToolboxForMac" -framework "StoreKit" -framework "SwiftyJSON" -framework "SystemConfiguration" 9 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 10 | PODS_BUILD_DIR = $BUILD_DIR 11 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 12 | PODS_ROOT = ${SRCROOT}/Pods 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-CodingCafe/Pods-CodingCafe.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_CodingCafe { 2 | umbrella header "Pods-CodingCafe-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-CodingCafe/Pods-CodingCafe.release.xcconfig: -------------------------------------------------------------------------------- 1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES 2 | EMBEDDED_CONTENT_CONTAINS_SWIFT = YES 3 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Alamofire" "$PODS_CONFIGURATION_BUILD_DIR/GoogleToolboxForMac" "$PODS_CONFIGURATION_BUILD_DIR/SwiftyJSON" "${PODS_ROOT}/FirebaseAnalytics/Frameworks/frameworks" "${PODS_ROOT}/FirebaseCore/Frameworks/frameworks" "${PODS_ROOT}/FirebaseInstanceID/Frameworks/frameworks" "${PODS_ROOT}/FirebaseMessaging/Frameworks/frameworks" "${PODS_ROOT}/FirebaseRemoteConfig/Frameworks/frameworks" "${PODS_ROOT}/GoogleInterchangeUtilities/Frameworks/frameworks" "${PODS_ROOT}/GoogleSymbolUtilities/Frameworks/frameworks" 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | HEADER_SEARCH_PATHS = $(inherited) ${PODS_ROOT}/Firebase/Core/Sources $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" "${PODS_ROOT}/Headers/Public/FirebaseMessaging" "${PODS_ROOT}/Headers/Public/FirebaseRemoteConfig" "${PODS_ROOT}/Headers/Public/GoogleInterchangeUtilities" "${PODS_ROOT}/Headers/Public/GoogleSymbolUtilities" 6 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 7 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/Alamofire/Alamofire.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/GoogleToolboxForMac/GoogleToolboxForMac.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/SwiftyJSON/SwiftyJSON.framework/Headers" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Firebase" -isystem "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" -isystem "${PODS_ROOT}/Headers/Public/FirebaseCore" -isystem "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" -isystem "${PODS_ROOT}/Headers/Public/FirebaseMessaging" -isystem "${PODS_ROOT}/Headers/Public/FirebaseRemoteConfig" -isystem "${PODS_ROOT}/Headers/Public/GoogleInterchangeUtilities" -isystem "${PODS_ROOT}/Headers/Public/GoogleSymbolUtilities" 8 | OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"sqlite3" -l"z" -framework "AddressBook" -framework "Alamofire" -framework "FirebaseAnalytics" -framework "FirebaseCore" -framework "FirebaseInstanceID" -framework "FirebaseMessaging" -framework "FirebaseRemoteConfig" -framework "GoogleInterchangeUtilities" -framework "GoogleSymbolUtilities" -framework "GoogleToolboxForMac" -framework "StoreKit" -framework "SwiftyJSON" -framework "SystemConfiguration" 9 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 10 | PODS_BUILD_DIR = $BUILD_DIR 11 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 12 | PODS_ROOT = ${SRCROOT}/Pods 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SwiftyJSON/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 3.1.3 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SwiftyJSON/SwiftyJSON-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SwiftyJSON : NSObject 3 | @end 4 | @implementation PodsDummy_SwiftyJSON 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SwiftyJSON/SwiftyJSON-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SwiftyJSON/SwiftyJSON-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | 6 | FOUNDATION_EXPORT double SwiftyJSONVersionNumber; 7 | FOUNDATION_EXPORT const unsigned char SwiftyJSONVersionString[]; 8 | 9 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SwiftyJSON/SwiftyJSON.modulemap: -------------------------------------------------------------------------------- 1 | framework module SwiftyJSON { 2 | umbrella header "SwiftyJSON-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SwiftyJSON/SwiftyJSON.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/SwiftyJSON 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" "${PODS_ROOT}/Headers/Public/FirebaseMessaging" "${PODS_ROOT}/Headers/Public/FirebaseRemoteConfig" "${PODS_ROOT}/Headers/Public/GoogleInterchangeUtilities" "${PODS_ROOT}/Headers/Public/GoogleSymbolUtilities" 4 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | SWIFT_VERSION = 3.0 11 | --------------------------------------------------------------------------------