├── 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 |
--------------------------------------------------------------------------------