diff --git a/.gitignore b/.gitignore index a4ced65..f725c1e 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,8 @@ ## Xcode Project subscribeto/subscribeto.xcodeproj +subscribeto/Podfile.lock +subscribeto/Pods/ .DS_Store subscribeto/subscribeto/.DS_Store subscribeto/subscribeto/Assets.xcassets/.DS_Store diff --git a/subscribeto/Podfile b/subscribeto/Podfile new file mode 100644 index 0000000..5ddda13 --- /dev/null +++ b/subscribeto/Podfile @@ -0,0 +1,3 @@ +target 'subscribeto' do + pod 'AwaitKit', '~> 5.2.0' +end diff --git a/subscribeto/subscribeto.xcworkspace/contents.xcworkspacedata b/subscribeto/subscribeto.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..271183c --- /dev/null +++ b/subscribeto/subscribeto.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/subscribeto/subscribeto.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/subscribeto/subscribeto.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/subscribeto/subscribeto.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/subscribeto/subscribeto/API/API.swift b/subscribeto/subscribeto/API/API.swift index 9df34f9..cf9e01b 100644 --- a/subscribeto/subscribeto/API/API.swift +++ b/subscribeto/subscribeto/API/API.swift @@ -1,62 +1,29 @@ // -// API.swift +// APIRequests.swift // subscribeto // -// Created by Elijah Cobb on 9/07/19. +// Created by Elijah Cobb on 10/07/19. // Copyright © 2019 subscribeto. All rights reserved. // import Foundation +import AwaitKit +import PromiseKit -struct S2NetworkError { - let code: Int - let msg: String -} - -struct S2Request { +struct API { - enum Method: String { - case get = "GET" - case post = "POST" - case delete = "DELETE" - case put = "PUT" + struct NetworkError { + let code: Int + let message: String } - - enum Token { - case session - case totp(String) - case email(String) - case sms(String) - } - - static let baseUrl = "http://api.scribe.to" - static var sessionToken: String? - - var method: Method - var endpoint: String - var token: Token - - func makeRequest(_ handler: @escaping (Data?, S2NetworkError?) -> Void) { - - let session = URLSession.init() - guard let url = URL.init(string: S2Request.baseUrl + "/" + endpoint) else { return handler(nil, S2NetworkError(code: -1, msg: "The url created was invalid.")) } - let urlRequest = URLRequest.init(url: url) - - session.dataTask(with: urlRequest) { (data: Data?, response: URLResponse?, error: Error?) in - - if data != nil { handler(data, nil) } - else { - - guard let err = error else { - return handler(nil, S2NetworkError(code: -1, msg: "Both ")) - } - - handler(nil, S2NetworkError(code: -1, msg: err.localizedDescription)) - - } + + static func signUp(email: String, password: String) -> Promise { + return async { + var req = ECHTTPRequest(method: .post, endpoint: "/user/auth/sign-up") + req.set(body: ["email": email, "password": password]) + let res = try await(req.fetch()) + print(res.status) } - } - } diff --git a/subscribeto/subscribeto/API/Requests.swift b/subscribeto/subscribeto/API/Requests.swift new file mode 100644 index 0000000..29e39ce --- /dev/null +++ b/subscribeto/subscribeto/API/Requests.swift @@ -0,0 +1,192 @@ +// +// API.swift +// subscribeto +// +// Created by Elijah Cobb on 9/07/19. +// Copyright © 2019 subscribeto. All rights reserved. +// + +import Foundation +import AwaitKit +import PromiseKit + +struct ECHTTPRequest { + + enum HTTPMethod: String { + case get = "GET" + case post = "POST" + case put = "PUT" + case delete = "DELETE" + } + + enum RequestError: Error { + case invalidUrl + case unknown + } + + var method: HTTPMethod? + var endpoint: String? + var body: Data? + var headers: [String : String] = [String : String]() + static var baseUrl: String = "http://api.scribe.to" + + init(method: HTTPMethod, endpoint: String) { + self.method = method + self.endpoint = endpoint + } + + mutating func set(body value: [String: Any]?) { + + guard let value = value else { return } + guard let data: Data = try? JSONSerialization.data(withJSONObject: value, options: .prettyPrinted) else { return } + + self.body = data + self.set(header: "Content-Type", value: "application/json") + + } + + mutating func set(header: String, value: String) { + + self.headers[header] = value + + } + + mutating func set(token: String) { + + self.headers["Authorization"] = "Bearer \(token)" + + } + + func fetch() throws -> ECHTTPResponse { + + let sephamore = DispatchSemaphore(value: 0) + + var res: ECHTTPResponse? + var err: Error? + + self.fetch { (r: ECHTTPResponse?, e: Error?) in + + res = r + err = e + + sephamore.signal() + + } + + sephamore.wait() + + if let response = res { + + return response + + } else { + + if let error = err { + + throw error + + } else { + + throw RequestError.unknown + + } + + } + + } + + func fetch(_ completion: @escaping (ECHTTPResponse?, Error?) -> Void) { + + guard let endpoint = self.endpoint else { return completion(nil, RequestError.invalidUrl) } + let urlString = ECHTTPRequest.baseUrl + endpoint + guard let url = URL(string: urlString) else { return completion(nil, RequestError.invalidUrl) } + var request = URLRequest(url: url) + request.allHTTPHeaderFields = headers + request.httpMethod = self.method?.rawValue + if let body = self.body { request.httpBody = body } + + URLSession.shared.dataTask(with: request) { (d, u, e) in + + if let err = e { + + completion(nil, err) + + } else { + + completion(ECHTTPResponse(d, u), nil) + + } + + }.resume() + + } + + func fetch() -> Promise { + return Promise.init(resolver: { (resolver) in + fetch({ (r, e) in + if let response = r { + resolver.fulfill(response) + } else if let error = e { + resolver.reject(error) + } + }) + }) + } + +} + + +struct ECHTTPResponse { + + let status: Int + let headers: [AnyHashable : Any] + let body: Data? + + init(_ d: Data?, _ r: URLResponse?) { + + if let res = r as? HTTPURLResponse { + + self.status = res.statusCode + self.headers = res.allHeaderFields + + + } else { + + self.status = 0 + self.headers = [AnyHashable: Any]() + + } + + self.body = d + + } + + func getDictionary() -> T? { + + if let data = self.body { + + return try? JSONDecoder().decode(T.self, from: data) + + } else { + + return nil + + } + + } + + func getString() -> String? { + + if let data = self.body { + + return String.init(data: data, encoding: String.Encoding.utf8) + + } else { + + return nil + + } + + } + +} diff --git a/subscribeto/subscribeto/API/S2Structures.swift b/subscribeto/subscribeto/API/S2Structures.swift new file mode 100644 index 0000000..7b8d310 --- /dev/null +++ b/subscribeto/subscribeto/API/S2Structures.swift @@ -0,0 +1,123 @@ +// +// S2Structures.swift +// subscribeto +// +// Created by Elijah Cobb on 10/07/19. +// Copyright © 2019 subscribeto. All rights reserved. +// + +import Foundation + +struct User : Decodable { + + enum Gender: Int, Decodable { + case male = 0 + case female = 1 + case other = 2 + } + + let email: String + + let id: String + let updatedAt: Int + let createdAt: Int + + let firstName: String? + let lastName: String? + let phone: String? + let gender: Gender? + let birthday: String? + +} + +struct Business : Decodable { + + let name: String + let lat: Double + let lng: Double + + let id: String + let updatedAt: Int + let createdAt: Int + +} + +struct Product : Decodable { + + let name: String + let description: String + let businessId: String + + let id: String + let updatedAt: Int + let createdAt: Int + +} + +struct Program : Decodable { + + let productId: String + let businessId: String + let price: Int + let allowance: Int + let closed: Bool + + let successorId: String? + + let id: String + let updatedAt: Int + let createdAt: Int + +} + +struct Subscription: Decodable { + + let userId: String + let businessId: String + let programId: String + let autoRenew: Bool + + let id: String + let updatedAt: Int + let createdAt: Int + +} + +struct SignInResponse: Decodable { + let token: String + let type: String +} + +struct GeneralErrorResponse: Decodable { + let error: String +} + + +struct TypeErrorResponse: Decodable { + + struct TypeErrors: Decodable { + + struct TypeError: Decodable { + let expected: String + let actual: String + } + + let path: String + let type: TypeError + } + + struct TypeErrorRoot: Decodable { + let type: [TypeErrors] + } + + let errors: TypeErrorRoot + +} + + +struct UserSignUp : Decodable { + + let token: String + let type: String + +} diff --git a/subscribeto/subscribeto/AppDelegate.swift b/subscribeto/subscribeto/AppDelegate.swift index 6ab43c4..43e3a61 100644 --- a/subscribeto/subscribeto/AppDelegate.swift +++ b/subscribeto/subscribeto/AppDelegate.swift @@ -16,7 +16,10 @@ class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { - + UITabBar.appearance().backgroundColor = UIColor(red: 0.086, green: 0.098, blue: 0.145, alpha: 1.00) + UITabBar.appearance().tintColor = UIColor(red: 0.373, green: 0.714, blue: 0.953, alpha: 1.00) + UITabBar.appearance().unselectedItemTintColor = UIColor(red: 0.000, green: 0.141, blue: 0.282, alpha: 1.00) + UINavigationBar.appearance().backgroundColor = UIColor(red: 0.086, green: 0.098, blue: 0.145, alpha: 1.00) return true diff --git a/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/1024.png b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/1024.png new file mode 100644 index 0000000..1a77960 Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/1024.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/120.png b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/120.png new file mode 100644 index 0000000..e15ad79 Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/120.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/152.png b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/152.png new file mode 100644 index 0000000..6aa1bf6 Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/152.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/167.png b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/167.png new file mode 100644 index 0000000..f3b5fce Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/167.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/180.png b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/180.png new file mode 100644 index 0000000..68b7c4e Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/180.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/20.png b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/20.png new file mode 100644 index 0000000..d4a7e26 Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/20.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/29.png b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/29.png new file mode 100644 index 0000000..fae1a73 Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/29.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/40.png b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/40.png new file mode 100644 index 0000000..45cdecf Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/40.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/58.png b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/58.png new file mode 100644 index 0000000..01097b4 Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/58.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/60.png b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/60.png new file mode 100644 index 0000000..7dd18e3 Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/60.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/76.png b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/76.png new file mode 100644 index 0000000..b87d565 Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/76.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/80.png b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/80.png new file mode 100644 index 0000000..0b92ce3 Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/80.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/87.png b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/87.png new file mode 100644 index 0000000..72fa99d Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/87.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/Contents.json b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/Contents.json index d8db8d6..79e4e3f 100644 --- a/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/subscribeto/subscribeto/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,93 +1,111 @@ { "images" : [ { - "idiom" : "iphone", "size" : "20x20", + "idiom" : "iphone", + "filename" : "40.png", "scale" : "2x" }, { - "idiom" : "iphone", "size" : "20x20", + "idiom" : "iphone", + "filename" : "60.png", "scale" : "3x" }, { - "idiom" : "iphone", "size" : "29x29", + "idiom" : "iphone", + "filename" : "58.png", "scale" : "2x" }, { - "idiom" : "iphone", "size" : "29x29", + "idiom" : "iphone", + "filename" : "87.png", "scale" : "3x" }, { - "idiom" : "iphone", "size" : "40x40", + "idiom" : "iphone", + "filename" : "80.png", "scale" : "2x" }, { - "idiom" : "iphone", "size" : "40x40", + "idiom" : "iphone", + "filename" : "120.png", "scale" : "3x" }, { - "idiom" : "iphone", "size" : "60x60", + "idiom" : "iphone", + "filename" : "120.png", "scale" : "2x" }, { - "idiom" : "iphone", "size" : "60x60", + "idiom" : "iphone", + "filename" : "180.png", "scale" : "3x" }, { - "idiom" : "ipad", "size" : "20x20", + "idiom" : "ipad", + "filename" : "20.png", "scale" : "1x" }, { - "idiom" : "ipad", "size" : "20x20", + "idiom" : "ipad", + "filename" : "40.png", "scale" : "2x" }, { - "idiom" : "ipad", "size" : "29x29", + "idiom" : "ipad", + "filename" : "29.png", "scale" : "1x" }, { - "idiom" : "ipad", "size" : "29x29", + "idiom" : "ipad", + "filename" : "58.png", "scale" : "2x" }, { - "idiom" : "ipad", "size" : "40x40", + "idiom" : "ipad", + "filename" : "40.png", "scale" : "1x" }, { - "idiom" : "ipad", "size" : "40x40", + "idiom" : "ipad", + "filename" : "80.png", "scale" : "2x" }, { - "idiom" : "ipad", "size" : "76x76", + "idiom" : "ipad", + "filename" : "76.png", "scale" : "1x" }, { - "idiom" : "ipad", "size" : "76x76", + "idiom" : "ipad", + "filename" : "152.png", "scale" : "2x" }, { - "idiom" : "ipad", "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "167.png", "scale" : "2x" }, { - "idiom" : "ios-marketing", "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "1024.png", "scale" : "1x" } ], diff --git a/subscribeto/subscribeto/Assets.xcassets/tabAccount.imageset/Account.1.png b/subscribeto/subscribeto/Assets.xcassets/tabAccount.imageset/Account.1.png new file mode 100644 index 0000000..db7d7c0 Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/tabAccount.imageset/Account.1.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/tabAccount.imageset/Account.2.png b/subscribeto/subscribeto/Assets.xcassets/tabAccount.imageset/Account.2.png new file mode 100644 index 0000000..2afd99e Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/tabAccount.imageset/Account.2.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/tabAccount.imageset/Account.png b/subscribeto/subscribeto/Assets.xcassets/tabAccount.imageset/Account.png new file mode 100644 index 0000000..80bcc36 Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/tabAccount.imageset/Account.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/tabAccount.imageset/Contents.json b/subscribeto/subscribeto/Assets.xcassets/tabAccount.imageset/Contents.json new file mode 100644 index 0000000..b98e1b3 --- /dev/null +++ b/subscribeto/subscribeto/Assets.xcassets/tabAccount.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "Account.2.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "Account.1.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "Account.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/subscribeto/subscribeto/Assets.xcassets/tabDiscover.imageset/Contents.json b/subscribeto/subscribeto/Assets.xcassets/tabDiscover.imageset/Contents.json new file mode 100644 index 0000000..3431f69 --- /dev/null +++ b/subscribeto/subscribeto/Assets.xcassets/tabDiscover.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "ic_local_grocery_store_24px.2.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "ic_local_grocery_store_24px.1.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_local_grocery_store_24px.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/subscribeto/subscribeto/Assets.xcassets/tabDiscover.imageset/ic_local_grocery_store_24px.1.png b/subscribeto/subscribeto/Assets.xcassets/tabDiscover.imageset/ic_local_grocery_store_24px.1.png new file mode 100644 index 0000000..93aa16e Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/tabDiscover.imageset/ic_local_grocery_store_24px.1.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/tabDiscover.imageset/ic_local_grocery_store_24px.2.png b/subscribeto/subscribeto/Assets.xcassets/tabDiscover.imageset/ic_local_grocery_store_24px.2.png new file mode 100644 index 0000000..6ac73c2 Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/tabDiscover.imageset/ic_local_grocery_store_24px.2.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/tabDiscover.imageset/ic_local_grocery_store_24px.png b/subscribeto/subscribeto/Assets.xcassets/tabDiscover.imageset/ic_local_grocery_store_24px.png new file mode 100644 index 0000000..58c8db0 Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/tabDiscover.imageset/ic_local_grocery_store_24px.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/tabNearMe.imageset/Contents.json b/subscribeto/subscribeto/Assets.xcassets/tabNearMe.imageset/Contents.json new file mode 100644 index 0000000..a11cc92 --- /dev/null +++ b/subscribeto/subscribeto/Assets.xcassets/tabNearMe.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "near1.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "near2.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "near3.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/subscribeto/subscribeto/Assets.xcassets/tabNearMe.imageset/near1.png b/subscribeto/subscribeto/Assets.xcassets/tabNearMe.imageset/near1.png new file mode 100644 index 0000000..553da39 Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/tabNearMe.imageset/near1.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/tabNearMe.imageset/near2.png b/subscribeto/subscribeto/Assets.xcassets/tabNearMe.imageset/near2.png new file mode 100644 index 0000000..0fb59ef Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/tabNearMe.imageset/near2.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/tabNearMe.imageset/near3.png b/subscribeto/subscribeto/Assets.xcassets/tabNearMe.imageset/near3.png new file mode 100644 index 0000000..0a7193a Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/tabNearMe.imageset/near3.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/tabOrder.imageset/Contents.json b/subscribeto/subscribeto/Assets.xcassets/tabOrder.imageset/Contents.json new file mode 100644 index 0000000..8b7d877 --- /dev/null +++ b/subscribeto/subscribeto/Assets.xcassets/tabOrder.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "Money.2.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "Money.1.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "Money.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/subscribeto/subscribeto/Assets.xcassets/tabOrder.imageset/Money.1.png b/subscribeto/subscribeto/Assets.xcassets/tabOrder.imageset/Money.1.png new file mode 100644 index 0000000..e38e6ab Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/tabOrder.imageset/Money.1.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/tabOrder.imageset/Money.2.png b/subscribeto/subscribeto/Assets.xcassets/tabOrder.imageset/Money.2.png new file mode 100644 index 0000000..6722948 Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/tabOrder.imageset/Money.2.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/tabOrder.imageset/Money.png b/subscribeto/subscribeto/Assets.xcassets/tabOrder.imageset/Money.png new file mode 100644 index 0000000..8a5d84b Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/tabOrder.imageset/Money.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/tabSubscription.imageset/Contents.json b/subscribeto/subscribeto/Assets.xcassets/tabSubscription.imageset/Contents.json new file mode 100644 index 0000000..5481deb --- /dev/null +++ b/subscribeto/subscribeto/Assets.xcassets/tabSubscription.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "List 2.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "List.1.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "List.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/subscribeto/subscribeto/Assets.xcassets/tabSubscription.imageset/List 2.png b/subscribeto/subscribeto/Assets.xcassets/tabSubscription.imageset/List 2.png new file mode 100644 index 0000000..7d77f78 Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/tabSubscription.imageset/List 2.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/tabSubscription.imageset/List.1.png b/subscribeto/subscribeto/Assets.xcassets/tabSubscription.imageset/List.1.png new file mode 100644 index 0000000..c23c578 Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/tabSubscription.imageset/List.1.png differ diff --git a/subscribeto/subscribeto/Assets.xcassets/tabSubscription.imageset/List.png b/subscribeto/subscribeto/Assets.xcassets/tabSubscription.imageset/List.png new file mode 100644 index 0000000..c3e81ec Binary files /dev/null and b/subscribeto/subscribeto/Assets.xcassets/tabSubscription.imageset/List.png differ diff --git a/subscribeto/subscribeto/Info.plist b/subscribeto/subscribeto/Info.plist index 16be3b6..8ff28fa 100644 --- a/subscribeto/subscribeto/Info.plist +++ b/subscribeto/subscribeto/Info.plist @@ -4,8 +4,14 @@ CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + subscribeto CFBundleExecutable $(EXECUTABLE_NAME) + CFBundleIcons + + CFBundleIcons~ipad + CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion @@ -20,6 +26,11 @@ 1 LSRequiresIPhoneOS + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + UILaunchStoryboardName LaunchScreen UIMainStoryboardFile diff --git a/subscribeto/subscribeto/Main.storyboard b/subscribeto/subscribeto/Main.storyboard index f86fd92..8437b03 100644 --- a/subscribeto/subscribeto/Main.storyboard +++ b/subscribeto/subscribeto/Main.storyboard @@ -1,11 +1,9 @@ - - - - + + - + @@ -15,45 +13,51 @@ - + - + - + - + - + @@ -101,6 +105,218 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -118,8 +334,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/subscribeto/subscribeto/MainVC.swift b/subscribeto/subscribeto/MainVC.swift new file mode 100644 index 0000000..65c2d7f --- /dev/null +++ b/subscribeto/subscribeto/MainVC.swift @@ -0,0 +1,49 @@ +// +// MainVC.swift +// subscribeto +// +// Created by Elijah Cobb on 9/07/19. +// Copyright © 2019 subscribeto. All rights reserved. +// + +import UIKit +import MapKit +import PromiseKit +import AwaitKit + +class MainVC: UIViewController { + + @IBOutlet var topMap: MKMapView! + @IBOutlet var topLeftContainer: UIView! + @IBOutlet var topRightContainer: UIView! + @IBOutlet var bottomLeftContainer: UIView! + @IBOutlet var bottomRightContainer: UIView! + + override func viewDidLoad() { + + super.viewDidLoad() + + topLeftContainer.layer.cornerRadius = 10 + topRightContainer.layer.cornerRadius = 10 + bottomLeftContainer.layer.cornerRadius = 10 + bottomRightContainer.layer.cornerRadius = 10 + + topLeftContainer.backgroundColor = UIColor.subscribeto.blue2 + topRightContainer.backgroundColor = UIColor.subscribeto.blue2 + bottomLeftContainer.backgroundColor = UIColor.subscribeto.blue2 + bottomRightContainer.backgroundColor = UIColor.subscribeto.blue2 + + } + + override func viewDidAppear(_ animated: Bool) { + + super.viewDidAppear(animated) + + async { + try await(API.signUp(email: "elijah", password: "alpine")) + } + + } + +} + diff --git a/subscribeto/subscribeto/subscribeto.entitlements b/subscribeto/subscribeto/subscribeto.entitlements new file mode 100644 index 0000000..0c67376 --- /dev/null +++ b/subscribeto/subscribeto/subscribeto.entitlements @@ -0,0 +1,5 @@ + + + + +