├── .DS_Store ├── README.md ├── Snack Over FlowTests └── Snack_Over_FlowTests.swift ├── SnackOverFlow ├── ContentView.swift ├── Core │ └── Network │ │ └── NetworkManager.swift ├── Feature │ ├── Authentication │ │ ├── Login │ │ │ ├── LoginModel.swift │ │ │ ├── LoginView.swift │ │ │ └── LoginViewModel.swift │ │ ├── OnBoard │ │ │ ├── OnBoardModel.swift │ │ │ └── OnBoardView.swift │ │ └── Welcome │ │ │ └── WelcomeView.swift │ ├── MainHome │ │ ├── Home │ │ │ └── HomeView.swift │ │ └── Main │ │ │ ├── MainTabView.swift │ │ │ └── Model │ │ │ └── MainTabModel.swift │ └── Model │ │ └── UserResponse.swift ├── Preview Content │ └── Preview Assets.xcassets │ │ └── Contents.json ├── Product │ └── Widget │ │ └── Button │ │ ├── AppleButton.swift │ │ ├── EmailButton.swift │ │ ├── FacebookButton.swift │ │ ├── GoogleButton.swift │ │ └── NormalButton.swift ├── Resources │ └── Assets │ │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ │ ├── Colors.xcassets │ │ ├── Contents.json │ │ ├── black.colorset │ │ │ └── Contents.json │ │ ├── carl.colorset │ │ │ └── Contents.json │ │ ├── clooney.colorset │ │ │ └── Contents.json │ │ ├── cornFlowerBlue.colorset │ │ │ └── Contents.json │ │ ├── deepSkyBlue.colorset │ │ │ └── Contents.json │ │ ├── gandalf.colorset │ │ │ └── Contents.json │ │ ├── peach.colorset │ │ │ └── Contents.json │ │ └── teflon.colorset │ │ │ └── Contents.json │ │ └── Images.xcassets │ │ ├── Contents.json │ │ ├── app │ │ ├── Contents.json │ │ └── ic_app_logo.imageset │ │ │ ├── Contents.json │ │ │ └── app_logo (1).pdf │ │ ├── authentication │ │ ├── Contents.json │ │ └── wolcano.imageset │ │ │ ├── Contents.json │ │ │ └── wolcano.pdf │ │ ├── icons │ │ ├── Contents.json │ │ ├── ic_lock.imageset │ │ │ ├── Contents.json │ │ │ └── lock.pdf │ │ ├── ic_mail.imageset │ │ │ ├── Contents.json │ │ │ └── mail.pdf │ │ └── tab │ │ │ ├── Contents.json │ │ │ ├── ic_edit.imageset │ │ │ ├── Contents.json │ │ │ └── ic_edit.pdf │ │ │ ├── ic_favorite.imageset │ │ │ ├── Contents.json │ │ │ └── ic_favorite.pdf │ │ │ ├── ic_home.imageset │ │ │ ├── Contents.json │ │ │ └── ic_home.pdf │ │ │ ├── ic_market.imageset │ │ │ ├── Contents.json │ │ │ └── ic_market.pdf │ │ │ └── ic_person.imageset │ │ │ ├── Contents.json │ │ │ └── ic_person.pdf │ │ ├── media │ │ ├── Contents.json │ │ └── img_juice.imageset │ │ │ ├── Contents.json │ │ │ └── image_juice.jpeg │ │ ├── onboard │ │ ├── Contents.json │ │ ├── img_deliver.imageset │ │ │ ├── Contents.json │ │ │ └── img_deliver.png │ │ ├── img_hand_pick.imageset │ │ │ ├── Contents.json │ │ │ └── img_deliver.png │ │ └── img_shop.imageset │ │ │ ├── Contents.json │ │ │ └── img_shop.png │ │ └── social │ │ ├── Contents.json │ │ ├── ic_apple.imageset │ │ ├── Contents.json │ │ └── ic_apple.pdf │ │ ├── ic_facebook.imageset │ │ ├── Contents.json │ │ └── facebook_logo.pdf │ │ └── ic_google.imageset │ │ ├── Contents.json │ │ └── ic_google.pdf ├── SnackOverFlowApp.swift └── Utils │ ├── Enums │ ├── Icons.swift │ ├── Images.swift │ ├── PagePaddings.swift │ ├── Radius.swift │ └── Size │ │ ├── ViewHeight.swift │ │ └── ViewSize.swift │ ├── Extension │ ├── Colors.swift │ ├── Custom+EdgeInsets.swift │ ├── DynamicSize+GeometryProxy.swift │ └── EdgeInsets.swift │ ├── Fonts │ └── FontSizes.swift │ ├── Locale │ ├── LocaleKeys.swift │ └── en.lproj │ │ └── Localizable.strings │ └── ViewModifers │ ├── TextFieldModifier.swift │ └── ViewStatusHiddenModifier.swift ├── github └── Screen Shot 2022-09-28 at 03.42.37.png └── snackoverflow.xcodeproj ├── project.pbxproj ├── project.xcworkspace ├── contents.xcworkspacedata ├── xcshareddata │ ├── IDEWorkspaceChecks.plist │ └── swiftpm │ │ └── Package.resolved └── xcuserdata │ ├── vb.xcuserdatad │ └── UserInterfaceState.xcuserstate │ └── vb10.xcuserdatad │ └── UserInterfaceState.xcuserstate └── xcuserdata ├── vb.xcuserdatad └── xcschemes │ └── xcschememanagement.plist └── vb10.xcuserdatad ├── xcdebugger └── Breakpoints_v2.xcbkptlist └── xcschemes └── xcschememanagement.plist /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VB10/snackoverflow/b502c7fead3b8d3d2e2bec9555e06d2cfa3da636/.DS_Store -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Snackoverflow 2 | 3 | ![Snackoverflow](./github/Screen%20Shot%202022-09-28%20at%2003.42.37.png) 4 | 5 | This repo created for swiftui tutorial zero to end. I inspired from zeplin snackoverflow app. 6 | 7 | ## Features 8 | 9 | [x] Welcome View 10 | 11 | [] Onboard View 12 | -------------------------------------------------------------------------------- /Snack Over FlowTests/Snack_Over_FlowTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Snack_Over_FlowTests.swift 3 | // Snack Over FlowTests 4 | // 5 | // Created by vb10 on 24.01.2023. 6 | // 7 | 8 | import XCTest 9 | 10 | @testable import Snack_Over_Flow 11 | 12 | final class Snack_Over_FlowTests: XCTestCase { 13 | override func setUpWithError() throws { 14 | // Put setup code here. This method is called before the invocation of each test method in the class. 15 | } 16 | 17 | override func tearDownWithError() throws { 18 | // Put teardown code here. This method is called after the invocation of each test method in the class. 19 | } 20 | 21 | func testExample() throws { 22 | // This is an example of a functional test case. 23 | // Use XCTAssert and related functions to verify your tests produce the correct results. 24 | // Any test you write for XCTest can be annotated as throws and async. 25 | // Mark your test throws to produce an unexpected failure when your test encounters an uncaught error. 26 | // Mark your test async to allow awaiting for asynchronous code to complete. Check the results with assertions afterwards. 27 | } 28 | 29 | func testPerformanceExample() throws { 30 | // This is an example of a performance test case. 31 | measure { 32 | // Put the code you want to measure the time of here. 33 | } 34 | } 35 | 36 | func testFetchUserAndCheck() async throws { 37 | let manager = NetworkManager.networkManager 38 | 39 | do { 40 | let userResponse = try await manager.fetch(path: .users, method: .get, type: UsersResponse.self) 41 | XCTAssertEqual(userResponse?.data?.isEmpty, false) 42 | } catch { 43 | XCTFail("Your service has error \(error)") 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /SnackOverFlow/ContentView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ContentView.swift 3 | // snackoverflow 4 | // 5 | // Created by Veli Bacik on 15.09.2022. 6 | // 7 | 8 | import SwiftUI 9 | 10 | struct ContentView: View { 11 | var body: some View { 12 | Text("Hello, world!") 13 | .padding() 14 | } 15 | } 16 | 17 | struct ContentView_Previews: PreviewProvider { 18 | static var previews: some View { 19 | ContentView() 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SnackOverFlow/Core/Network/NetworkManager.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NetworkManager.swift 3 | // snackoverflow 4 | // 5 | // Created by vb10 on 24.01.2023. 6 | // 7 | 8 | import Alamofire 9 | import Foundation 10 | 11 | struct NetworkConfig { 12 | let baseUrl: String 13 | } 14 | 15 | enum NetworkPath: String { 16 | case users = "api/users" 17 | case login = "api/login" 18 | static let baseUrlReqres: String = "https://reqres.in/" 19 | } 20 | 21 | protocol INetworkManager { 22 | func fetch(path: NetworkPath, method: HTTPMethod, type: T.Type) async -> T? 23 | func post(path: NetworkPath, model: R, type: T.Type) async -> T? 24 | var config: NetworkConfig { get set } 25 | } 26 | 27 | extension NetworkManager { 28 | static let networkManager: INetworkManager = NetworkManager(config: NetworkConfig(baseUrl: NetworkPath.baseUrlReqres)) 29 | } 30 | 31 | class NetworkManager: INetworkManager { 32 | internal var config: NetworkConfig 33 | 34 | init(config: NetworkConfig) { 35 | self.config = config 36 | } 37 | 38 | func fetch(path: NetworkPath, method: HTTPMethod, type: T.Type) async -> T? { 39 | let dataRequest = AF.request("\(config.baseUrl)\(path.rawValue)", method: method) 40 | .validate() 41 | .serializingDecodable(T.self) 42 | 43 | let result = await dataRequest.response 44 | 45 | guard let value = result.value else { 46 | print("ERROR: \(String(describing: result.error))") 47 | return nil 48 | } 49 | 50 | return value 51 | } 52 | 53 | func post(path: NetworkPath, model: R, type: T.Type) async -> T? { 54 | let jsonEncoder = JSONEncoder() 55 | // thread 56 | guard let data = try? jsonEncoder.encode(model) else { return nil } 57 | guard let dataString = String(data: data, encoding: .utf8) else { return nil } 58 | let dataRequest = AF.request("\(config.baseUrl)\(path.rawValue)", method: .post, parameters: convertToDictionary(text: dataString)) 59 | .validate() 60 | .serializingDecodable(T.self) 61 | let result = await dataRequest.response 62 | 63 | guard let value = result.value else { 64 | print("ERROR: \(String(describing: result.error))") 65 | return nil 66 | } 67 | 68 | return value 69 | } 70 | 71 | private func convertToDictionary(text: String) -> [String: Any]? { 72 | if let data = text.data(using: .utf8) { 73 | do { 74 | return try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] 75 | } catch { 76 | print(error.localizedDescription) 77 | } 78 | } 79 | return nil 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /SnackOverFlow/Feature/Authentication/Login/LoginModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LoginModel.swift 3 | // snackoverflow 4 | // 5 | // Created by vb10 on 28.03.2023. 6 | // 7 | 8 | import Foundation 9 | 10 | 11 | // MARK: - LoginRequest 12 | struct LoginRequest: Encodable { 13 | let email, password: String 14 | } 15 | 16 | 17 | // MARK: - LoginResponse 18 | struct LoginResponse: Codable { 19 | let token: String 20 | } 21 | -------------------------------------------------------------------------------- /SnackOverFlow/Feature/Authentication/Login/LoginView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LoginView.swift 3 | // snackoverflow 4 | // 5 | // Created by Veli Bacik on 9.11.2022. 6 | // 7 | 8 | import SwiftUI 9 | 10 | struct LoginView: View { 11 | @ObservedObject private var viewModel = LoginViewModel() 12 | 13 | var body: some View { 14 | NavigationView { 15 | VStack { 16 | Spacer() 17 | Text(viewModel.token) 18 | ImageItems.Authentication.login.rawValue.image() 19 | Text(LocaleKeys.Login.welcomeBack.rawValue.locale()) 20 | .font(.system(size: FontSizes.title1, weight: .semibold)) 21 | .foregroundColor(.teflon) 22 | HTextIconField(hint: LocaleKeys.General.emailHint.rawValue.locale(), iconName: IconItems.mail, 23 | text: $viewModel.emailValue) 24 | HTextSecureIconField(hint: LocaleKeys.General.passwordHint.rawValue.locale(), iconName: IconItems.lock, 25 | text: $viewModel.passwordValue) 26 | .padding(.top, PagePadding.All.normal.rawValue) 27 | 28 | Divider() 29 | NavigationLink("", isActive: $viewModel.isLogged) { 30 | Text("HOME_VIEW").navigationBarBackButtonHidden(true) 31 | } 32 | Group { 33 | NormalButton(onTap: { 34 | Task { 35 | await viewModel.onLoginUser() 36 | } 37 | }, title: LocaleKeys.Login.createAccount.rawValue).padding(.top, PagePadding.All.normal.rawValue) 38 | 39 | Text(LocaleKeys.Login.terms.rawValue.locale()) 40 | .environment(\.openURL, OpenURLAction(handler: { url in 41 | print(url) 42 | return .discarded 43 | })).padding(.top, PagePadding.All.normal.rawValue) 44 | .font(.system(size: FontSizes.caption1, weight: .regular)) 45 | .foregroundColor(.gandalf) 46 | .tint(.flowerBlue) 47 | Spacer() 48 | } 49 | }.padding(.all, PagePadding.All.normal.rawValue) 50 | }.modifier(ViewStatusHiddenModifier()) 51 | } 52 | } 53 | 54 | struct LoginView_Previews: PreviewProvider { 55 | static var previews: some View { 56 | LoginView() 57 | } 58 | } 59 | 60 | private struct HTextIconField: View { 61 | let hint: LocalizedStringKey 62 | let iconName: String 63 | var text: Binding 64 | var body: some View { 65 | HStack { 66 | iconName.image() 67 | TextField(hint, text: text) 68 | }.modifier(TextFieldModifier()) 69 | } 70 | } 71 | 72 | private struct HTextSecureIconField: View { 73 | let hint: LocalizedStringKey 74 | let iconName: String 75 | var text: Binding 76 | 77 | var body: some View { 78 | HStack { 79 | iconName.image() 80 | SecureField(hint, text: text) 81 | }.modifier(TextFieldModifier()) 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /SnackOverFlow/Feature/Authentication/Login/LoginViewModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LoginViewModel.swift 3 | // snackoverflow 4 | // 5 | // Created by vb10 on 28.03.2023. 6 | // 7 | 8 | import Foundation 9 | 10 | final class LoginViewModel: ObservableObject { 11 | @Published var emailValue: String = "eve.holt@reqres.in" 12 | @Published var passwordValue: String = "cityslicka" 13 | @Published var token: String = "" 14 | @Published var isLogged: Bool = false 15 | 16 | private let networkManager = NetworkManager(config: NetworkConfig(baseUrl: NetworkPath.baseUrlReqres)) 17 | 18 | func onLoginUser() async { 19 | token = await onLoginUser(email: emailValue, password: passwordValue) 20 | isLogged = !token.isEmpty 21 | } 22 | } 23 | 24 | extension LoginViewModel: LoginUseCase { 25 | func onLoginUser(email:String, password: String) async -> String { 26 | guard !email.isEmpty else { return "" } 27 | guard !email.isEmpty else { return "" } 28 | 29 | let response = await networkManager.post(path: .login, model: LoginRequest(email: email, password: password), type: LoginResponse.self) 30 | 31 | return response?.token ?? "ERROR" 32 | } 33 | 34 | func onSaveUserToken(token: String) -> Bool { 35 | // Database generic 36 | return false 37 | } 38 | } 39 | 40 | protocol LoginUseCase { 41 | func onLoginUser(email:String, password: String) async -> String 42 | func onSaveUserToken(token: String) -> Bool 43 | } 44 | -------------------------------------------------------------------------------- /SnackOverFlow/Feature/Authentication/OnBoard/OnBoardModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // OnBoardModel.swift 3 | // snackoverflow 4 | // 5 | // Created by Veli Bacik on 18.10.2022. 6 | // 7 | 8 | import Foundation 9 | 10 | struct OnBoardModel: Identifiable { 11 | var id: UUID = UUID() 12 | 13 | let imageName: String 14 | let description: String 15 | 16 | static let items: [OnBoardModel] = [ 17 | OnBoardModel(imageName: "img_hand_pick", description: "Hand-pickle high quality snacks."), 18 | OnBoardModel(imageName: "img_shop", description: "Shop global. Mind-blownly affordable."), 19 | OnBoardModel(imageName: "img_deliver", description: "Deliver on the promise of time."), 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /SnackOverFlow/Feature/Authentication/OnBoard/OnBoardView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // OnBoardView.swift 3 | // snackoverflow 4 | // 5 | // Created by Veli Bacik on 18.10.2022. 6 | // 7 | 8 | import SwiftUI 9 | 10 | struct OnBoardView: View { 11 | 12 | @State private var currentIndex: Int = 0 13 | 14 | 15 | /// Dummy list count 16 | /// - Returns: Total item count without last item 17 | private func count() -> Int { 18 | OnBoardModel.items.count - 1 19 | } 20 | 21 | var body: some View { 22 | GeometryReader { geometry in 23 | VStack { 24 | Spacer() 25 | TabView( 26 | selection: $currentIndex, 27 | content: { 28 | ForEach((0...count()), id: \.self) { value in 29 | SliderCard(imageHeight: geometry.dh(height: 0.45), 30 | model: OnBoardModel.items[value] 31 | ) 32 | } 33 | }) 34 | .tabViewStyle(.page(indexDisplayMode: .never)) 35 | Spacer() 36 | HStack { 37 | ForEach((0...count()), id: \.self) { index in 38 | if(index == currentIndex) { 39 | IndicatorRectangle(width: geometry.dw(width: 0.09)) 40 | } else { 41 | IndicatorRectangle(width: geometry.dw(width: 0.03)) 42 | } 43 | } 44 | }.frame(height: ViewHeight.indicator) 45 | 46 | NormalButton(onTap: { 47 | 48 | }, title: LocaleKeys.Buttons.getStarted.rawValue) 49 | .padding(.all, PagePadding.All.normal.rawValue) 50 | } 51 | } 52 | } 53 | } 54 | 55 | private struct SliderCard: View { 56 | var imageHeight: Double 57 | let model: OnBoardModel 58 | var body: some View { 59 | VStack { 60 | Image(model.imageName).frame(height: imageHeight) 61 | Text(model.description) 62 | .font(.system(size: FontSizes.largeTitle, weight: .semibold)) 63 | .multilineTextAlignment(.center) 64 | .frame(alignment: .center) 65 | .foregroundColor(Color.peach) 66 | } 67 | } 68 | } 69 | 70 | private struct IndicatorRectangle: View { 71 | var width: Double 72 | var body: some View { 73 | Rectangle() 74 | .fill(Color.clooney) 75 | .cornerRadius(RadiusItems.radius).frame(width: width) 76 | } 77 | } 78 | 79 | struct OnBoardView_Previews: PreviewProvider { 80 | static var previews: some View { 81 | OnBoardView() 82 | 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /SnackOverFlow/Feature/Authentication/Welcome/WelcomeView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // WelcomeView.swift 3 | // snackoverflow 4 | // 5 | // Created by Veli Bacik on 15.09.2022. 6 | // 7 | 8 | import SwiftUI 9 | 10 | struct WelcomeView: View { 11 | var body: some View { 12 | ZStack { 13 | Image(Images.juice.rawValue).resizable() 14 | Color.black.opacity(0.3) 15 | BodyView() 16 | 17 | } 18 | } 19 | } 20 | 21 | struct WelcomeView_Previews: PreviewProvider { 22 | static var previews: some View { 23 | WelcomeView().ignoresSafeArea(.all) 24 | } 25 | } 26 | 27 | 28 | private struct BodyView: View { 29 | var body: some View { 30 | GeometryReader { geometry in 31 | VStack { 32 | Spacer() 33 | Image(Icons.appLogo.rawValue) 34 | Spacer() 35 | FacebokButton(onTap: { }).padding(Edge.Set.top, PagePadding.All.normal.rawValue) 36 | GoogleButton { } 37 | AppleButton(onTap: { }) 38 | Divider() 39 | .background(Color.peach) 40 | .frame( 41 | width: geometry.dw(width: 0.6), 42 | height: DividerViewSize.normal).padding(.all, PagePadding.All.normal.rawValue) 43 | EmailButton { } 44 | Spacer().frame(height: geometry.dh(height: 0.1)) 45 | }.padding(.paddingAll) 46 | } 47 | 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /SnackOverFlow/Feature/MainHome/Home/HomeView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // HomeView.swift 3 | // snackoverflow 4 | // 5 | // Created by vb10 on 23.05.2023. 6 | // 7 | 8 | import SwiftUI 9 | 10 | struct HomeView: View { 11 | var body: some View { 12 | Text("Hello, World! Home View") 13 | } 14 | } 15 | 16 | struct HomeView_Previews: PreviewProvider { 17 | static var previews: some View { 18 | HomeView() 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /SnackOverFlow/Feature/MainHome/Main/MainTabView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MainTabView.swift 3 | // snackoverflow 4 | // 5 | // Created by vb10 on 23.05.2023. 6 | // 7 | 8 | import SwiftUI 9 | 10 | struct MainTabView: View { 11 | var body: some View { 12 | TabView { 13 | ForEach(HomeTabItem.tabItems) { 14 | item in 15 | item.page.tabItem { 16 | TabIconLabel(model: item.model) 17 | } 18 | } 19 | }.accentColor(.peach) 20 | } 21 | } 22 | 23 | struct MainTabView_Previews: PreviewProvider { 24 | static var previews: some View { 25 | MainTabView() 26 | } 27 | } 28 | 29 | private struct TabIconLabel: View { 30 | let model: TabModel 31 | var body: some View { 32 | VStack { 33 | Image(model.icon.rawValue) 34 | Text(model.title.rawValue.locale()) 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /SnackOverFlow/Feature/MainHome/Main/Model/MainTabModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MainTabModel.swift 3 | // snackoverflow 4 | // 5 | // Created by vb10 on 23.05.2023. 6 | // 7 | 8 | import Foundation 9 | import SwiftUI 10 | 11 | struct HomeTabItem: Identifiable { 12 | let id = UUID() 13 | let page: AnyView 14 | let model: TabModel 15 | 16 | static let tabItems: [HomeTabItem] = [ 17 | HomeTabItem(page: AnyView(HomeView()), model: TabModel(title: .home, icon: .home)), 18 | HomeTabItem(page: AnyView(HomeView()), model: TabModel(title: .market, icon: .market)), 19 | HomeTabItem(page: AnyView(HomeView()), model: TabModel(title: .create, icon: .edit)), 20 | HomeTabItem(page: AnyView(HomeView()), model: TabModel(title: .wishlist, icon: .favorite)), 21 | HomeTabItem(page: AnyView(HomeView()), model: TabModel(title: .account, icon: .person)) 22 | ] 23 | } 24 | 25 | struct TabModel { 26 | let title: LocaleKeys.TabView 27 | let icon: IconItems.TabView 28 | } 29 | -------------------------------------------------------------------------------- /SnackOverFlow/Feature/Model/UserResponse.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UserResponse.swift 3 | // snackoverflow 4 | // 5 | // Created by vb10 on 24.01.2023. 6 | // 7 | 8 | import Foundation 9 | 10 | // MARK: - UsersResponse 11 | 12 | struct UsersResponse: Codable { 13 | let page, perPage, total, totalPages: Int? 14 | let data: [Datum]? 15 | let support: Support? 16 | 17 | enum CodingKeys: String, CodingKey { 18 | case page 19 | case perPage = "per_page" 20 | case total 21 | case totalPages = "total_pages" 22 | case data, support 23 | } 24 | } 25 | 26 | // MARK: - Datum 27 | 28 | struct Datum: Codable { 29 | let id: Int? 30 | let email, firstName, lastName: String? 31 | let avatar: String? 32 | 33 | enum CodingKeys: String, CodingKey { 34 | case id, email 35 | case firstName = "first_name" 36 | case lastName = "last_name" 37 | case avatar 38 | } 39 | } 40 | 41 | // MARK: - Support 42 | 43 | struct Support: Codable { 44 | let url: String? 45 | let text: String? 46 | } 47 | -------------------------------------------------------------------------------- /SnackOverFlow/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SnackOverFlow/Product/Widget/Button/AppleButton.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppleButton.swift 3 | // snackoverflow 4 | // 5 | // Created by Veli Bacik on 28.09.2022. 6 | // 7 | 8 | import SwiftUI 9 | 10 | struct AppleButton: View { 11 | var onTap: () -> Void 12 | var body: some View { 13 | Button { 14 | onTap() 15 | } label: { 16 | HStack { 17 | Image(IconItems.Social.apple.rawValue) 18 | Text(LocaleKeys.Auth.apple.rawValue.locale()) 19 | Spacer() 20 | } 21 | .tint(.white) 22 | .font(.title2) 23 | .padding(.all,PagePadding.All.normal.rawValue) 24 | 25 | } 26 | .buttonBorderShape(.roundedRectangle) 27 | .controlSize(.large) 28 | .background(Color.black) 29 | .cornerRadius(RadiusItems.radius) 30 | 31 | } 32 | 33 | } 34 | 35 | struct AppleButton_Previews: PreviewProvider { 36 | static var previews: some View { 37 | AppleButton(onTap: {}) 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /SnackOverFlow/Product/Widget/Button/EmailButton.swift: -------------------------------------------------------------------------------- 1 | // 2 | // EmailButton.swift 3 | // snackoverflow 4 | // 5 | // Created by Veli Bacik on 28.09.2022. 6 | // 7 | 8 | import SwiftUI 9 | 10 | struct EmailButton: View { 11 | var onTap: () -> Void 12 | var body: some View { 13 | Button { 14 | onTap() 15 | } label: { 16 | HStack { 17 | Spacer() 18 | Text(LocaleKeys.Auth.custom.rawValue.locale()) 19 | Spacer() 20 | } 21 | .tint(.white) 22 | .font(.system(size: FontSizes.headline,weight: .semibold)) 23 | .padding(.all, PagePadding.All.normal.rawValue) 24 | 25 | } 26 | .buttonBorderShape(.roundedRectangle) 27 | .controlSize(.large) 28 | .background(Color.peach) 29 | .cornerRadius(RadiusItems.radius) 30 | 31 | } 32 | } 33 | 34 | struct EmailButton_Previews: PreviewProvider { 35 | static var previews: some View { 36 | EmailButton { } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /SnackOverFlow/Product/Widget/Button/FacebookButton.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FacebookButton.swift 3 | // snackoverflow 4 | // 5 | // Created by Veli Bacik on 15.09.2022. 6 | // 7 | 8 | import SwiftUI 9 | 10 | struct FacebokButton: View { 11 | var onTap: () -> Void 12 | var body: some View { 13 | Button { 14 | onTap() 15 | } label: { 16 | HStack { 17 | Image(IconItems.Social.facebook.rawValue) 18 | Text(LocaleKeys.Auth.facebook.rawValue.locale()) 19 | Spacer() 20 | } 21 | .tint(.white) 22 | .font(.title2) 23 | .padding(.all,PagePadding.All.normal.rawValue) 24 | 25 | } 26 | .buttonBorderShape(.roundedRectangle) 27 | .controlSize(.large) 28 | .background(Color.deepSkyBlue) 29 | .cornerRadius(RadiusItems.radius) 30 | } 31 | } 32 | 33 | struct FacebokButton_Previews: PreviewProvider { 34 | static var previews: some View { 35 | FacebokButton(onTap: {}) 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /SnackOverFlow/Product/Widget/Button/GoogleButton.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GoogleButton.swift 3 | // snackoverflow 4 | // 5 | // Created by Veli Bacik on 28.09.2022. 6 | // 7 | 8 | import SwiftUI 9 | 10 | struct GoogleButton: View { 11 | var onTap: () -> Void 12 | var body: some View { 13 | Button { 14 | onTap() 15 | } label: { 16 | HStack { 17 | Image(IconItems.Social.google.rawValue) 18 | Text(LocaleKeys.Auth.google.rawValue.locale()) 19 | Spacer() 20 | } 21 | .tint(.black) 22 | .font(.title2) 23 | .padding(.all,PagePadding.All.normal.rawValue) 24 | 25 | } 26 | .buttonBorderShape(.roundedRectangle) 27 | .controlSize(.large) 28 | .background(Color.white) 29 | .cornerRadius(RadiusItems.radius) 30 | 31 | } 32 | } 33 | 34 | struct GoogleButton_Previews: PreviewProvider { 35 | static var previews: some View { 36 | GoogleButton(onTap: {}) 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /SnackOverFlow/Product/Widget/Button/NormalButton.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NormalButton.swift 3 | // snackoverflow 4 | // 5 | // Created by Veli Bacik on 18.10.2022. 6 | // 7 | 8 | import SwiftUI 9 | 10 | /// It's a normal button for project 11 | /// 12 | /// [onTap] will return user interaction 13 | /// [title] it showes button name 14 | struct NormalButton: View { 15 | var onTap: () -> Void 16 | var title: String 17 | var body: some View { 18 | Button { 19 | onTap() 20 | } label: { 21 | HStack { 22 | Spacer() 23 | Text(title.locale()) 24 | Spacer() 25 | } 26 | .tint(.white) 27 | .font(.system(size: FontSizes.headline,weight: .semibold)) 28 | .padding(.all, PagePadding.All.normal.rawValue) 29 | 30 | } 31 | .buttonBorderShape(.roundedRectangle) 32 | .controlSize(.large) 33 | .background(Color.peach) 34 | .cornerRadius(RadiusItems.radius) 35 | 36 | } 37 | } 38 | 39 | struct NormalButton_Previews: PreviewProvider { 40 | static var previews: some View { 41 | NormalButton(onTap: { 42 | 43 | }, title: "Sample") 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "scale" : "2x", 6 | "size" : "20x20" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "scale" : "3x", 11 | "size" : "20x20" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "scale" : "2x", 16 | "size" : "29x29" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "scale" : "3x", 21 | "size" : "29x29" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "scale" : "2x", 26 | "size" : "40x40" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "scale" : "3x", 31 | "size" : "40x40" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "scale" : "2x", 36 | "size" : "60x60" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "scale" : "3x", 41 | "size" : "60x60" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "scale" : "1x", 46 | "size" : "20x20" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "scale" : "2x", 51 | "size" : "20x20" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "scale" : "1x", 56 | "size" : "29x29" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "scale" : "2x", 61 | "size" : "29x29" 62 | }, 63 | { 64 | "idiom" : "ipad", 65 | "scale" : "1x", 66 | "size" : "40x40" 67 | }, 68 | { 69 | "idiom" : "ipad", 70 | "scale" : "2x", 71 | "size" : "40x40" 72 | }, 73 | { 74 | "idiom" : "ipad", 75 | "scale" : "2x", 76 | "size" : "76x76" 77 | }, 78 | { 79 | "idiom" : "ipad", 80 | "scale" : "2x", 81 | "size" : "83.5x83.5" 82 | }, 83 | { 84 | "idiom" : "ios-marketing", 85 | "scale" : "1x", 86 | "size" : "1024x1024" 87 | } 88 | ], 89 | "info" : { 90 | "author" : "xcode", 91 | "version" : 1 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Colors.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Colors.xcassets/black.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "color" : { 5 | "color-space" : "srgb", 6 | "components" : { 7 | "alpha" : "1.000", 8 | "blue" : "0.000", 9 | "green" : "0.000", 10 | "red" : "0.000" 11 | } 12 | }, 13 | "idiom" : "universal" 14 | } 15 | ], 16 | "info" : { 17 | "author" : "xcode", 18 | "version" : 1 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Colors.xcassets/carl.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "color" : { 5 | "color-space" : "srgb", 6 | "components" : { 7 | "alpha" : "1.000", 8 | "blue" : "0.928", 9 | "green" : "0.925", 10 | "red" : "0.928" 11 | } 12 | }, 13 | "idiom" : "universal" 14 | } 15 | ], 16 | "info" : { 17 | "author" : "xcode", 18 | "version" : 1 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Colors.xcassets/clooney.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "color" : { 5 | "color-space" : "srgb", 6 | "components" : { 7 | "alpha" : "1.000", 8 | "blue" : "0.757", 9 | "green" : "0.746", 10 | "red" : "0.753" 11 | } 12 | }, 13 | "idiom" : "universal" 14 | } 15 | ], 16 | "info" : { 17 | "author" : "xcode", 18 | "version" : 1 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Colors.xcassets/cornFlowerBlue.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "color" : { 5 | "color-space" : "srgb", 6 | "components" : { 7 | "alpha" : "1.000", 8 | "blue" : "0.976", 9 | "green" : "0.606", 10 | "red" : "0.255" 11 | } 12 | }, 13 | "idiom" : "universal" 14 | } 15 | ], 16 | "info" : { 17 | "author" : "xcode", 18 | "version" : 1 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Colors.xcassets/deepSkyBlue.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "color" : { 5 | "color-space" : "srgb", 6 | "components" : { 7 | "alpha" : "1.000", 8 | "blue" : "0.949", 9 | "green" : "0.468", 10 | "red" : "0.093" 11 | } 12 | }, 13 | "idiom" : "universal" 14 | } 15 | ], 16 | "info" : { 17 | "author" : "xcode", 18 | "version" : 1 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Colors.xcassets/gandalf.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "color" : { 5 | "color-space" : "srgb", 6 | "components" : { 7 | "alpha" : "1.000", 8 | "blue" : "0.591", 9 | "green" : "0.569", 10 | "red" : "0.591" 11 | } 12 | }, 13 | "idiom" : "universal" 14 | } 15 | ], 16 | "info" : { 17 | "author" : "xcode", 18 | "version" : 1 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Colors.xcassets/peach.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "color" : { 5 | "color-space" : "srgb", 6 | "components" : { 7 | "alpha" : "1.000", 8 | "blue" : "0.139", 9 | "green" : "0.404", 10 | "red" : "0.932" 11 | } 12 | }, 13 | "idiom" : "universal" 14 | } 15 | ], 16 | "info" : { 17 | "author" : "xcode", 18 | "version" : 1 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Colors.xcassets/teflon.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "color" : { 5 | "color-space" : "srgb", 6 | "components" : { 7 | "alpha" : "1.000", 8 | "blue" : "0.337", 9 | "green" : "0.303", 10 | "red" : "0.333" 11 | } 12 | }, 13 | "idiom" : "universal" 14 | } 15 | ], 16 | "info" : { 17 | "author" : "xcode", 18 | "version" : 1 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/app/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/app/ic_app_logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "app_logo (1).pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/app/ic_app_logo.imageset/app_logo (1).pdf: -------------------------------------------------------------------------------- 1 | %PDF-1.7 2 | 3 | 1 0 obj 4 | << >> 5 | endobj 6 | 7 | 2 0 obj 8 | << /Length 3 0 R >> 9 | stream 10 | /DeviceRGB CS 11 | /DeviceRGB cs 12 | q 13 | 1.000000 0.000000 -0.000000 1.000000 38.822266 52.000000 cm 14 | 1.000000 1.000000 1.000000 scn 15 | 53.771076 56.639542 m 16 | 53.771076 59.796547 51.587250 62.440350 48.529900 63.249043 c 17 | 47.834309 66.608223 44.712254 69.158714 41.056374 69.158714 c 18 | 41.040199 69.158714 l 19 | 39.665199 71.491478 37.044609 73.000000 34.213726 73.000000 c 20 | 31.730928 73.000000 29.475704 71.895119 28.020664 70.098228 c 21 | 27.511686 69.469673 26.744402 69.078407 25.936346 69.043938 c 22 | 23.078436 68.922043 20.636671 67.244431 19.481771 64.854797 c 23 | 19.110523 64.086639 18.407036 63.501026 17.581724 63.284790 c 24 | 14.502802 62.478100 12.229909 59.773888 12.229909 56.561779 c 25 | 12.229909 52.720493 15.481379 49.594589 19.493143 49.594589 c 26 | 19.600353 49.594589 19.729767 49.605263 19.881384 49.617767 c 27 | 19.978437 49.625694 l 28 | 21.935791 49.796761 23.828436 49.128033 25.154905 47.775032 c 29 | 25.686232 47.231266 26.085899 46.608940 26.349094 45.938110 c 30 | 26.740396 44.940765 27.579483 44.058159 28.650841 44.058159 c 31 | 37.250519 44.058159 l 32 | 38.348278 44.058159 39.202290 44.982788 39.585228 46.011589 c 33 | 39.862309 46.755989 40.304005 47.446190 40.894611 48.039413 c 34 | 42.188728 49.361313 44.016670 49.998936 45.893139 49.796761 c 35 | 46.184315 49.765659 46.426960 49.750107 46.604900 49.750107 c 36 | 50.551960 49.750107 53.771076 52.844910 53.771076 56.639542 c 37 | h 38 | 39.859512 41.056671 m 39 | 26.125149 41.056671 l 40 | 25.547535 41.056671 25.021265 40.570175 24.880072 39.863968 c 41 | 24.162836 36.380688 22.773008 32.774529 21.016577 29.236217 c 42 | 20.576019 28.348721 21.556181 27.376156 22.424042 27.854237 c 43 | 27.331720 30.557758 l 44 | 27.652617 30.746078 28.037691 30.746078 28.371424 30.573448 c 45 | 28.705156 30.400822 28.961874 30.055569 29.077396 29.631844 c 46 | 29.774340 27.107105 l 47 | 30.015528 26.233376 31.208561 26.120411 31.609459 26.933338 c 48 | 33.095020 29.945709 l 49 | 33.338902 30.416512 33.788155 30.714695 34.211739 30.699001 c 50 | 34.673828 30.699001 35.084576 30.400826 35.315620 29.914326 c 51 | 39.536209 20.823757 l 52 | 39.906338 20.026554 41.055679 20.075226 41.357082 20.900867 c 53 | 44.595947 29.773087 l 54 | 44.621819 29.836346 44.630295 29.902431 44.600712 29.964043 c 55 | 43.018223 33.259983 41.765583 36.615845 41.104591 39.863968 c 56 | 40.963398 40.570175 40.437126 41.056671 39.859512 41.056671 c 57 | h 58 | 45.189594 22.872822 m 59 | 45.783531 24.428200 47.940449 24.605553 48.839752 23.204407 c 60 | 56.002506 12.044559 65.384300 2.875282 65.527702 2.735382 c 61 | 65.950142 2.318123 66.108551 1.638145 65.923737 1.019981 c 62 | 65.738922 0.401817 65.237274 0.000015 64.682831 0.000015 c 63 | 1.317171 0.000015 l 64 | 0.762721 0.000015 0.261076 0.401817 0.076260 1.019981 c 65 | -0.108557 1.638145 0.049858 2.318123 0.472296 2.735382 c 66 | 0.602553 2.857376 8.662913 10.743145 15.547777 20.780857 c 67 | 15.730326 21.047001 15.974488 21.266376 16.259844 21.417137 c 68 | 24.792927 25.925385 l 69 | 25.900118 26.510345 27.265068 25.928848 27.610258 24.725151 c 70 | 28.802025 20.569378 l 71 | 28.960440 19.997578 29.396078 19.595772 29.910923 19.533955 c 72 | 30.412569 19.456684 30.914215 19.750313 31.178238 20.260296 c 73 | 32.395546 22.618786 l 74 | 33.140354 24.061832 35.212406 24.036858 35.922222 22.576283 c 75 | 39.759003 14.681377 l 76 | 39.996624 14.186848 40.432266 13.893223 40.907509 13.893223 c 77 | 40.973515 13.893223 l 78 | 41.461956 13.924129 41.910797 14.279575 42.108814 14.805012 c 79 | 45.189594 22.872822 l 80 | h 81 | f* 82 | n 83 | Q 84 | q 85 | 1.000000 0.000000 -0.000000 1.000000 0.000000 24.760010 cm 86 | 1.000000 1.000000 1.000000 scn 87 | 29.991188 2.711994 m 88 | 29.575188 3.223994 29.367188 3.679995 29.367188 4.079994 c 89 | 29.367188 4.495995 29.711187 5.039994 30.399187 5.711994 c 90 | 30.799187 6.095994 31.223188 6.287994 31.671188 6.287994 c 91 | 32.119186 6.287994 32.743191 5.887994 33.543190 5.087994 c 92 | 33.767189 4.815993 34.087189 4.551993 34.503189 4.295994 c 93 | 34.919189 4.055994 35.303188 3.935993 35.655190 3.935993 c 94 | 37.143188 3.935993 37.887188 4.543995 37.887188 5.759995 c 95 | 37.887188 6.127995 37.679188 6.431993 37.263187 6.671993 c 96 | 36.863190 6.927994 36.359192 7.111994 35.751190 7.223993 c 97 | 35.143188 7.335993 34.487186 7.511995 33.783188 7.751995 c 98 | 33.079189 8.007996 32.423187 8.303993 31.815186 8.639994 c 99 | 31.207186 8.975994 30.695187 9.503994 30.279186 10.223993 c 100 | 29.879187 10.959993 29.679188 11.839994 29.679188 12.863995 c 101 | 29.679188 14.271994 30.199188 15.495995 31.239189 16.535994 c 102 | 32.295189 17.591995 33.727192 18.119995 35.535191 18.119995 c 103 | 36.495190 18.119995 37.367191 17.991995 38.151192 17.735994 c 104 | 38.951191 17.495995 39.503189 17.247993 39.807190 16.991993 c 105 | 40.407188 16.535994 l 106 | 40.903191 16.071995 41.151192 15.679995 41.151192 15.359995 c 107 | 41.151192 15.039994 40.959187 14.599995 40.575188 14.039995 c 108 | 40.031189 13.239994 39.471191 12.839994 38.895191 12.839994 c 109 | 38.559193 12.839994 38.143188 12.999994 37.647190 13.319994 c 110 | 37.599190 13.351995 37.503189 13.431994 37.359188 13.559994 c 111 | 37.231190 13.687994 37.111191 13.791994 36.999191 13.871994 c 112 | 36.663193 14.079994 36.231190 14.183994 35.703190 14.183994 c 113 | 35.191189 14.183994 34.759190 14.055994 34.407188 13.799994 c 114 | 34.071190 13.559994 33.903191 13.215994 33.903191 12.767994 c 115 | 33.903191 12.335995 34.103188 11.983994 34.503189 11.711994 c 116 | 34.919189 11.439994 35.431190 11.255994 36.039188 11.159994 c 117 | 36.647190 11.063993 37.311188 10.911995 38.031189 10.703995 c 118 | 38.751190 10.511994 39.415192 10.271994 40.023190 9.983994 c 119 | 40.631191 9.695993 41.135193 9.191994 41.535191 8.471994 c 120 | 41.951191 7.767994 42.159191 6.895993 42.159191 5.855993 c 121 | 42.159191 4.815993 41.951191 3.895995 41.535191 3.095995 c 122 | 41.119190 2.311995 40.575191 1.703993 39.903191 1.271994 c 123 | 38.607189 0.423994 37.223190 -0.000006 35.751190 -0.000006 c 124 | 34.999191 -0.000006 34.287189 0.087994 33.615189 0.263994 c 125 | 32.943188 0.455994 32.399185 0.687994 31.983185 0.959993 c 126 | 31.135185 1.471992 30.543188 1.967995 30.207188 2.447994 c 127 | 29.991188 2.711994 l 128 | h 129 | f 130 | n 131 | Q 132 | q 133 | 1.000000 0.000000 -0.000000 1.000000 0.000000 25.312012 cm 134 | 1.000000 1.000000 1.000000 scn 135 | 55.071377 16.535992 m 136 | 55.231377 16.823992 55.463379 17.015991 55.767380 17.111992 c 137 | 56.071381 17.207993 56.447380 17.255993 56.895378 17.255993 c 138 | 57.359379 17.255993 57.727379 17.215992 57.999378 17.135994 c 139 | 58.287376 17.055992 58.495377 16.959993 58.623375 16.847992 c 140 | 58.767376 16.735992 58.871380 16.567991 58.935379 16.343992 c 141 | 59.031380 16.087992 59.079376 15.679993 59.079376 15.119991 c 142 | 59.079376 1.799992 l 143 | 59.079376 1.415991 59.063377 1.135992 59.031376 0.959991 c 144 | 59.015377 0.783991 58.943375 0.575993 58.815376 0.335993 c 145 | 58.591377 -0.096006 57.967377 -0.312008 56.943378 -0.312008 c 146 | 56.319378 -0.312008 55.887379 -0.264009 55.647377 -0.168009 c 147 | 55.407379 -0.072008 55.207378 0.079992 55.047379 0.287992 c 148 | 51.447380 5.087993 49.079380 8.223991 47.943378 9.695992 c 149 | 47.943378 1.799992 l 150 | 47.943378 1.415991 47.927380 1.135992 47.895378 0.959991 c 151 | 47.879379 0.783991 47.807377 0.575993 47.679379 0.335993 c 152 | 47.455379 -0.096006 46.831375 -0.312008 45.807377 -0.312008 c 153 | 44.815376 -0.312008 44.207375 -0.096006 43.983376 0.335993 c 154 | 43.855377 0.575993 43.775379 0.791992 43.743378 0.983992 c 155 | 43.727379 1.175991 43.719376 1.455992 43.719376 1.823992 c 156 | 43.719376 15.215992 l 157 | 43.719376 15.823993 43.791374 16.263992 43.935375 16.535992 c 158 | 44.095375 16.823992 44.327377 17.015991 44.631378 17.111992 c 159 | 44.935379 17.207993 45.327377 17.255993 45.807377 17.255993 c 160 | 46.287376 17.255993 46.663376 17.207993 46.935375 17.111992 c 161 | 47.223373 17.031992 47.423378 16.935993 47.535378 16.823994 c 162 | 47.599377 16.775993 47.783375 16.567993 48.087376 16.199993 c 163 | 51.463375 11.607992 53.719376 8.575993 54.855377 7.103992 c 164 | 54.855377 15.215992 l 165 | 54.855377 15.823993 54.927376 16.263992 55.071377 16.535992 c 166 | h 167 | f 168 | n 169 | Q 170 | q 171 | 1.000000 0.000000 -0.000000 1.000000 0.000000 25.047974 cm 172 | 1.000000 1.000000 1.000000 scn 173 | 71.144814 16.296032 m 174 | 77.624817 2.904030 l 175 | 77.896820 2.360030 78.032814 1.952031 78.032814 1.680031 c 176 | 78.032814 1.104031 77.568817 0.584030 76.640816 0.120029 c 177 | 76.096817 -0.151970 75.664810 -0.287970 75.344810 -0.287970 c 178 | 75.040810 -0.287970 74.784813 -0.215969 74.576813 -0.071970 c 179 | 74.384811 0.072029 74.240814 0.224030 74.144814 0.384029 c 180 | 74.064812 0.544029 73.944809 0.784031 73.784813 1.104031 c 181 | 72.536812 3.696030 l 182 | 65.888817 3.696030 l 183 | 64.640816 1.104031 l 184 | 64.480820 0.784031 64.352814 0.552029 64.256813 0.408030 c 185 | 64.176811 0.264030 64.032814 0.112030 63.824814 -0.047970 c 186 | 63.632812 -0.191969 63.376808 -0.263969 63.056808 -0.263969 c 187 | 62.752808 -0.263969 62.328812 -0.127970 61.784813 0.144030 c 188 | 60.856812 0.592030 60.392815 1.104031 60.392815 1.680031 c 189 | 60.392815 1.952031 60.528816 2.360030 60.800816 2.904030 c 190 | 67.280815 16.320030 l 191 | 67.456818 16.688030 67.720818 16.984032 68.072815 17.208031 c 192 | 68.440811 17.432030 68.824814 17.544031 69.224815 17.544031 c 193 | 70.088814 17.544031 70.728813 17.128031 71.144814 16.296032 c 194 | h 195 | 69.200813 10.536030 m 196 | 67.616814 7.248030 l 197 | 70.808815 7.248030 l 198 | 69.200813 10.536030 l 199 | h 200 | f 201 | n 202 | Q 203 | q 204 | 1.000000 0.000000 -0.000000 1.000000 0.000000 24.880005 cm 205 | 1.000000 1.000000 1.000000 scn 206 | 89.141068 4.727999 m 207 | 89.573067 5.039999 l 208 | 90.117065 5.359999 90.501068 5.519999 90.725067 5.519999 c 209 | 91.221069 5.519999 91.757065 5.071999 92.333061 4.175999 c 210 | 92.685059 3.615998 92.861069 3.167999 92.861069 2.831999 c 211 | 92.861069 2.495998 92.749062 2.215999 92.525063 1.991999 c 212 | 92.317062 1.767998 92.069069 1.567999 91.781067 1.391998 c 213 | 91.493065 1.215998 91.213066 1.047998 90.941063 0.887999 c 214 | 90.685066 0.727999 90.149063 0.519999 89.333061 0.263998 c 215 | 88.517059 0.007998 87.725060 -0.120001 86.957062 -0.120001 c 216 | 86.205063 -0.120001 85.437057 -0.024000 84.653061 0.167999 c 217 | 83.885063 0.375999 83.085068 0.711998 82.253067 1.175999 c 218 | 81.437065 1.655998 80.701065 2.231999 80.045067 2.903999 c 219 | 79.389069 3.591999 78.845062 4.463999 78.413063 5.519999 c 220 | 77.997063 6.591999 77.789062 7.751999 77.789062 8.999998 c 221 | 77.789062 10.247998 77.997063 11.375999 78.413063 12.383999 c 222 | 78.829063 13.407999 79.357063 14.247999 79.997063 14.903999 c 223 | 80.653061 15.576000 81.397064 16.136000 82.229065 16.584000 c 224 | 83.797066 17.447998 85.373062 17.879999 86.957062 17.879999 c 225 | 87.709061 17.879999 88.469070 17.759998 89.237068 17.519999 c 226 | 90.021065 17.296000 90.613060 17.063999 91.013062 16.823999 c 227 | 91.589066 16.487999 l 228 | 91.877068 16.311998 92.101059 16.167999 92.261063 16.056000 c 229 | 92.677063 15.719999 92.885063 15.335999 92.885063 14.903999 c 230 | 92.885063 14.487999 92.717064 14.047999 92.381065 13.584000 c 231 | 91.757065 12.719999 91.197067 12.287999 90.701065 12.287999 c 232 | 90.413063 12.287999 90.005066 12.463999 89.477066 12.816000 c 233 | 88.805069 13.359999 87.909065 13.631999 86.789062 13.631999 c 234 | 85.749062 13.631999 84.725067 13.271999 83.717064 12.551998 c 235 | 83.237061 12.199999 82.837067 11.703999 82.517067 11.063999 c 236 | 82.197067 10.423998 82.037064 9.695999 82.037064 8.879999 c 237 | 82.037064 8.080000 82.197067 7.360000 82.517067 6.719999 c 238 | 82.837067 6.080000 83.245064 5.575998 83.741066 5.207998 c 239 | 84.717064 4.503998 85.733063 4.151999 86.789062 4.151999 c 240 | 87.285065 4.151999 87.749069 4.215998 88.181068 4.343998 c 241 | 88.629066 4.471998 88.949066 4.599998 89.141068 4.727999 c 242 | h 243 | f 244 | n 245 | Q 246 | q 247 | 1.000000 0.000000 -0.000000 1.000000 0.000000 24.760010 cm 248 | 1.000000 1.000000 1.000000 scn 249 | 101.974129 9.071995 m 250 | 104.422127 6.719995 106.158127 4.951994 107.182129 3.767994 c 251 | 107.710129 3.175994 107.974129 2.671995 107.974129 2.255995 c 252 | 107.974129 1.855995 107.654129 1.375994 107.014130 0.815994 c 253 | 106.374130 0.271994 105.846130 -0.000006 105.430130 -0.000006 c 254 | 105.030128 -0.000006 104.542130 0.335993 103.966125 1.007994 c 255 | 98.686127 7.031994 l 256 | 98.686127 2.351994 l 257 | 98.686127 1.967993 98.670128 1.687994 98.638130 1.511993 c 258 | 98.622131 1.335993 98.550125 1.127995 98.422127 0.887995 c 259 | 98.198128 0.455996 97.574127 0.239994 96.550125 0.239994 c 260 | 95.430122 0.239994 94.774132 0.543995 94.582130 1.151995 c 261 | 94.486130 1.407995 94.438126 1.815994 94.438126 2.375994 c 262 | 94.438126 15.719995 l 263 | 94.438126 16.087994 94.446129 16.359995 94.462128 16.535994 c 264 | 94.494125 16.727995 94.574127 16.943995 94.702126 17.183994 c 265 | 94.926125 17.615993 95.550125 17.831995 96.574127 17.831995 c 266 | 97.694130 17.831995 98.358124 17.535995 98.566124 16.943995 c 267 | 98.646126 16.671993 98.686127 16.255995 98.686127 15.695995 c 268 | 98.686127 11.111994 l 269 | 100.862129 13.559994 102.622124 15.567994 103.966125 17.135994 c 270 | 104.526123 17.791996 105.014130 18.119995 105.430130 18.119995 c 271 | 105.846130 18.119995 106.374130 17.839994 107.014130 17.279995 c 272 | 107.654129 16.735994 107.974129 16.255995 107.974129 15.839994 c 273 | 107.974129 15.439994 107.734131 14.959993 107.254128 14.399994 c 274 | 106.326126 13.327993 104.886131 11.855993 102.934128 9.983994 c 275 | 101.974129 9.071995 l 276 | h 277 | f 278 | n 279 | Q 280 | q 281 | 1.000000 0.000000 -0.000000 1.000000 0.000000 24.784058 cm 282 | 1.000000 1.000000 1.000000 scn 283 | 8.615999 -5.976053 m 284 | 10.983999 -5.976053 13.040000 -6.832052 14.784000 -8.544052 c 285 | 16.528000 -10.256054 17.400002 -12.384056 17.400002 -14.928055 c 286 | 17.400002 -17.456055 16.568001 -19.616055 14.904001 -21.408054 c 287 | 13.240002 -23.184055 11.192001 -24.072052 8.760000 -24.072052 c 288 | 6.328000 -24.072052 4.256000 -23.192051 2.544000 -21.432053 c 289 | 0.848000 -19.672054 0.000000 -17.576054 0.000000 -15.144054 c 290 | 0.000000 -13.816055 0.240000 -12.576054 0.720000 -11.424053 c 291 | 1.200000 -10.256054 1.840000 -9.280054 2.640000 -8.496054 c 292 | 3.440000 -7.712053 4.360000 -7.096052 5.400000 -6.648052 c 293 | 6.440001 -6.200052 7.512000 -5.976053 8.615999 -5.976053 c 294 | h 295 | 4.248000 -15.024052 m 296 | 4.248000 -16.448051 4.704000 -17.608055 5.616000 -18.504055 c 297 | 6.544000 -19.384056 7.576000 -19.824055 8.712000 -19.824055 c 298 | 9.848000 -19.824055 10.872000 -19.392052 11.784000 -18.528053 c 299 | 12.696000 -17.664055 13.152000 -16.504055 13.152000 -15.048054 c 300 | 13.152000 -13.592054 12.688000 -12.424053 11.760000 -11.544052 c 301 | 10.848000 -10.664053 9.823999 -10.224054 8.688000 -10.224054 c 302 | 7.552000 -10.224054 6.528000 -10.672054 5.616000 -11.568054 c 303 | 4.704000 -12.448053 4.248000 -13.600052 4.248000 -15.024052 c 304 | h 305 | f 306 | n 307 | Q 308 | q 309 | 1.000000 0.000000 -0.000000 1.000000 0.000000 25.168091 cm 310 | 1.000000 1.000000 1.000000 scn 311 | 35.064442 -6.840086 m 312 | 36.008442 -7.304087 36.480438 -7.816086 36.480438 -8.376085 c 313 | 36.480438 -8.632086 36.360435 -9.016087 36.120438 -9.528088 c 314 | 29.496437 -22.968086 l 315 | 29.320436 -23.320087 29.048437 -23.608089 28.680437 -23.832088 c 316 | 28.328438 -24.040089 27.960438 -24.144089 27.576437 -24.144089 c 317 | 27.336437 -24.144089 l 318 | 26.936438 -24.144089 26.552437 -24.040089 26.184437 -23.832088 c 319 | 25.832436 -23.608089 25.568436 -23.320087 25.392437 -22.968086 c 320 | 18.768436 -9.528088 l 321 | 18.528437 -9.016087 18.408438 -8.632086 18.408438 -8.376085 c 322 | 18.408438 -7.816086 18.880438 -7.304087 19.824438 -6.840086 c 323 | 20.352438 -6.568087 20.752438 -6.432087 21.024437 -6.432087 c 324 | 21.312437 -6.432087 21.528439 -6.464088 21.672438 -6.528088 c 325 | 21.816437 -6.592087 21.952436 -6.704086 22.080437 -6.864086 c 326 | 22.224436 -7.056086 22.352438 -7.272087 22.464437 -7.512087 c 327 | 22.592438 -7.736088 22.904436 -8.400087 23.400436 -9.504087 c 328 | 23.896437 -10.592087 24.424438 -11.752087 24.984438 -12.984087 c 329 | 25.560438 -14.216087 26.096437 -15.384087 26.592438 -16.488087 c 330 | 27.104439 -17.576088 27.392437 -18.184090 27.456438 -18.312088 c 331 | 32.256439 -7.800087 l 332 | 32.384438 -7.496086 32.496437 -7.256084 32.592438 -7.080086 c 333 | 32.880440 -6.648087 33.232441 -6.432087 33.648441 -6.432087 c 334 | 34.064442 -6.432087 34.536442 -6.568087 35.064442 -6.840086 c 335 | h 336 | f 337 | n 338 | Q 339 | q 340 | 1.000000 0.000000 -0.000000 1.000000 0.000000 25.287964 cm 341 | 1.000000 1.000000 1.000000 scn 342 | 43.053314 -20.039959 m 343 | 50.445316 -20.039959 l 344 | 50.813316 -20.039959 51.085316 -20.055958 51.261314 -20.087959 c 345 | 51.453316 -20.103958 51.669312 -20.175961 51.909313 -20.303959 c 346 | 52.341312 -20.527958 52.557316 -21.151962 52.557316 -22.175961 c 347 | 52.557316 -23.295959 52.261314 -23.951958 51.669315 -24.143959 c 348 | 51.397316 -24.239960 50.981316 -24.287960 50.421314 -24.287960 c 349 | 40.917313 -24.287960 l 350 | 39.797314 -24.287960 39.141315 -23.983963 38.949314 -23.375961 c 351 | 38.853313 -23.119961 38.805313 -22.711960 38.805313 -22.151958 c 352 | 38.805313 -8.807959 l 353 | 38.805313 -7.991959 38.957314 -7.439959 39.261314 -7.151958 c 354 | 39.565315 -6.847958 40.141315 -6.695959 40.989315 -6.695959 c 355 | 50.445316 -6.695959 l 356 | 50.813316 -6.695959 51.085316 -6.711960 51.261314 -6.743959 c 357 | 51.453316 -6.759960 51.669312 -6.831959 51.909313 -6.959959 c 358 | 52.341312 -7.183960 52.557316 -7.807961 52.557316 -8.831959 c 359 | 52.557316 -9.951960 52.261314 -10.607960 51.669315 -10.799959 c 360 | 51.397316 -10.895958 50.981316 -10.943958 50.421314 -10.943958 c 361 | 43.053314 -10.943958 l 362 | 43.053314 -13.367958 l 363 | 47.805313 -13.367958 l 364 | 48.173313 -13.367958 48.445316 -13.383959 48.621315 -13.415958 c 365 | 48.813316 -13.431957 49.029312 -13.503958 49.269314 -13.631958 c 366 | 49.701313 -13.855959 49.917313 -14.479961 49.917313 -15.503960 c 367 | 49.917313 -16.623959 49.613312 -17.279957 49.005314 -17.471958 c 368 | 48.733315 -17.567959 48.317314 -17.615959 47.757313 -17.615959 c 369 | 43.053314 -17.615959 l 370 | 43.053314 -20.039959 l 371 | h 372 | f 373 | n 374 | Q 375 | q 376 | 1.000000 0.000000 -0.000000 1.000000 0.000000 25.143921 cm 377 | 1.000000 1.000000 1.000000 scn 378 | 68.574005 -21.167915 m 379 | 68.814003 -21.743916 68.934006 -22.159916 68.934006 -22.415916 c 380 | 68.934006 -23.023918 68.438004 -23.535915 67.445999 -23.951916 c 381 | 66.933998 -24.175915 66.518005 -24.287918 66.198006 -24.287918 c 382 | 65.894005 -24.287918 65.638000 -24.215919 65.430000 -24.071918 c 383 | 65.237999 -23.911919 65.094002 -23.751915 64.998001 -23.591915 c 384 | 64.837997 -23.287914 64.214005 -21.839916 63.126007 -19.247917 c 385 | 62.382004 -19.295918 l 386 | 59.358002 -19.295918 l 387 | 59.358002 -22.007915 l 388 | 59.358002 -22.375916 59.342003 -22.655914 59.310001 -22.847916 c 389 | 59.294003 -23.023914 59.222000 -23.231915 59.094002 -23.471916 c 390 | 58.870003 -23.903915 58.245998 -24.119919 57.222000 -24.119919 c 391 | 56.102001 -24.119919 55.446003 -23.823917 55.254002 -23.231918 c 392 | 55.158001 -22.959919 55.110001 -22.543919 55.110001 -21.983917 c 393 | 55.110001 -8.663916 l 394 | 55.110001 -8.295916 55.118004 -8.023914 55.134003 -7.847916 c 395 | 55.166004 -7.655914 55.246002 -7.439917 55.374001 -7.199917 c 396 | 55.598000 -6.767918 56.222004 -6.551916 57.246002 -6.551916 c 397 | 62.430000 -6.551916 l 398 | 63.838001 -6.551916 65.206001 -7.063917 66.534004 -8.087917 c 399 | 67.174004 -8.583918 67.702003 -9.255917 68.118004 -10.103916 c 400 | 68.534004 -10.951916 68.742004 -11.895916 68.742004 -12.935917 c 401 | 68.742004 -14.743916 68.141998 -16.231918 66.942001 -17.399918 c 402 | 67.293999 -18.247917 67.838005 -19.503914 68.574005 -21.167915 c 403 | h 404 | 59.358002 -15.047916 m 405 | 62.430000 -15.047916 l 406 | 62.894001 -15.047916 63.358006 -14.871918 63.822006 -14.519917 c 407 | 64.286003 -14.167917 64.518005 -13.639917 64.518005 -12.935917 c 408 | 64.518005 -12.231916 64.286003 -11.703915 63.822006 -11.351915 c 409 | 63.358006 -10.983915 62.878002 -10.799915 62.382004 -10.799915 c 410 | 59.358002 -10.799915 l 411 | 59.358002 -15.047916 l 412 | h 413 | f 414 | n 415 | Q 416 | q 417 | 1.000000 0.000000 -0.000000 1.000000 0.000000 25.287964 cm 418 | 1.000000 1.000000 1.000000 scn 419 | 82.890625 -6.695959 m 420 | 83.258621 -6.695959 83.530624 -6.711960 83.706627 -6.743959 c 421 | 83.898628 -6.759960 84.106628 -6.831959 84.330627 -6.959959 c 422 | 84.570625 -7.087959 84.738625 -7.303959 84.834625 -7.607960 c 423 | 84.930626 -7.911961 84.978630 -8.319958 84.978630 -8.831959 c 424 | 84.978630 -9.343960 84.930626 -9.751957 84.834625 -10.055958 c 425 | 84.738625 -10.359959 84.570625 -10.575958 84.330627 -10.703959 c 426 | 84.090630 -10.815960 83.874626 -10.887960 83.682625 -10.919960 c 427 | 83.506622 -10.935959 83.226631 -10.943958 82.842628 -10.943958 c 428 | 75.498627 -10.943958 l 429 | 75.498627 -13.367958 l 430 | 80.226631 -13.367958 l 431 | 80.610634 -13.367958 80.890625 -13.383959 81.066628 -13.415958 c 432 | 81.258629 -13.431957 81.474632 -13.503958 81.714630 -13.631958 c 433 | 82.130630 -13.871958 82.338631 -14.503960 82.338631 -15.527958 c 434 | 82.338631 -16.647957 82.034630 -17.311958 81.426628 -17.519958 c 435 | 81.170631 -17.599960 80.762627 -17.639961 80.202629 -17.639961 c 436 | 75.498627 -17.639961 l 437 | 75.498627 -22.175961 l 438 | 75.498627 -22.559959 75.482628 -22.839962 75.450630 -23.015961 c 439 | 75.434631 -23.191959 75.362625 -23.399960 75.234627 -23.639961 c 440 | 75.010628 -24.071960 74.386627 -24.287960 73.362625 -24.287960 c 441 | 72.242622 -24.287960 71.586632 -23.983963 71.394630 -23.375961 c 442 | 71.298630 -23.119961 71.250626 -22.711960 71.250626 -22.151958 c 443 | 71.250626 -8.807959 l 444 | 71.250626 -7.991959 71.402626 -7.439959 71.706627 -7.151958 c 445 | 72.010628 -6.847958 72.586624 -6.695959 73.434624 -6.695959 c 446 | 82.890625 -6.695959 l 447 | h 448 | f 449 | n 450 | Q 451 | q 452 | 1.000000 0.000000 -0.000000 1.000000 0.000000 25.287964 cm 453 | 1.000000 1.000000 1.000000 scn 454 | 91.779877 -20.735958 m 455 | 98.307877 -20.735958 l 456 | 98.835876 -20.735958 99.219879 -20.799961 99.459877 -20.927959 c 457 | 99.699875 -21.039959 99.859879 -21.223961 99.939880 -21.479961 c 458 | 100.019882 -21.735962 100.059875 -22.079960 100.059875 -22.511959 c 459 | 100.059875 -22.927959 100.019882 -23.263958 99.939880 -23.519958 c 460 | 99.859879 -23.775959 99.723877 -23.951958 99.531876 -24.047958 c 461 | 99.227875 -24.207958 98.811874 -24.287960 98.283875 -24.287960 c 462 | 89.643875 -24.287960 l 463 | 88.523872 -24.287960 87.867882 -23.983963 87.675880 -23.375961 c 464 | 87.579880 -23.119961 87.531876 -22.711960 87.531876 -22.151958 c 465 | 87.531876 -8.807959 l 466 | 87.531876 -8.439959 87.539879 -8.167957 87.555878 -7.991959 c 467 | 87.587875 -7.799957 87.667877 -7.583960 87.795876 -7.343960 c 468 | 88.019875 -6.911961 88.643875 -6.695959 89.667877 -6.695959 c 469 | 90.787880 -6.695959 91.451874 -6.991959 91.659874 -7.583960 c 470 | 91.739876 -7.855961 91.779877 -8.271959 91.779877 -8.831959 c 471 | 91.779877 -20.735958 l 472 | h 473 | f 474 | n 475 | Q 476 | q 477 | 1.000000 0.000000 -0.000000 1.000000 0.000000 24.784058 cm 478 | 1.000000 1.000000 1.000000 scn 479 | 109.873817 -5.976053 m 480 | 112.241821 -5.976053 114.297813 -6.832052 116.041817 -8.544052 c 481 | 117.785820 -10.256054 118.657814 -12.384056 118.657814 -14.928055 c 482 | 118.657814 -17.456055 117.825813 -19.616055 116.161812 -21.408054 c 483 | 114.497810 -23.184055 112.449814 -24.072052 110.017815 -24.072052 c 484 | 107.585815 -24.072052 105.513809 -23.192051 103.801811 -21.432053 c 485 | 102.105812 -19.672054 101.257812 -17.576054 101.257812 -15.144054 c 486 | 101.257812 -13.816055 101.497810 -12.576054 101.977814 -11.424053 c 487 | 102.457817 -10.256054 103.097809 -9.280054 103.897812 -8.496054 c 488 | 104.697815 -7.712053 105.617813 -7.096052 106.657814 -6.648052 c 489 | 107.697815 -6.200052 108.769821 -5.976053 109.873817 -5.976053 c 490 | h 491 | 105.505814 -15.024052 m 492 | 105.505814 -16.448051 105.961815 -17.608055 106.873817 -18.504055 c 493 | 107.801819 -19.384056 108.833809 -19.824055 109.969810 -19.824055 c 494 | 111.105812 -19.824055 112.129814 -19.392052 113.041817 -18.528053 c 495 | 113.953819 -17.664055 114.409813 -16.504055 114.409813 -15.048054 c 496 | 114.409813 -13.592054 113.945816 -12.424053 113.017815 -11.544052 c 497 | 112.105812 -10.664053 111.081818 -10.224054 109.945816 -10.224054 c 498 | 108.809814 -10.224054 107.785820 -10.672054 106.873817 -11.568054 c 499 | 105.961815 -12.448053 105.505814 -13.600052 105.505814 -15.024052 c 500 | h 501 | f 502 | n 503 | Q 504 | q 505 | 1.000000 0.000000 -0.000000 1.000000 0.000000 25.168091 cm 506 | 1.000000 1.000000 1.000000 scn 507 | 141.275177 -6.672087 m 508 | 142.347183 -7.056087 142.883179 -7.568085 142.883179 -8.208086 c 509 | 142.883179 -8.416086 142.787186 -8.808086 142.595184 -9.384087 c 510 | 137.987183 -22.704086 l 511 | 137.955185 -22.816086 137.899185 -22.952087 137.819183 -23.112087 c 512 | 137.739182 -23.272087 137.523193 -23.488087 137.171188 -23.760086 c 513 | 136.835190 -24.016087 136.427185 -24.144089 135.947189 -24.144089 c 514 | 135.483185 -24.144089 135.075180 -24.016087 134.723175 -23.760086 c 515 | 134.387177 -23.488087 134.163177 -23.224087 134.051178 -22.968086 c 516 | 131.243195 -14.688087 l 517 | 129.467194 -19.936089 128.563187 -22.608086 128.531189 -22.704086 c 518 | 128.499191 -22.800087 128.427185 -22.936089 128.315186 -23.112087 c 519 | 128.203186 -23.288086 128.075180 -23.448086 127.931183 -23.592087 c 520 | 127.563187 -23.960087 127.123192 -24.144089 126.611191 -24.144089 c 521 | 126.099190 -24.144089 125.675186 -24.024090 125.339188 -23.784088 c 522 | 125.019188 -23.544086 124.803192 -23.304089 124.691193 -23.064087 c 523 | 124.523186 -22.704086 l 524 | 119.891190 -9.384087 l 525 | 119.715187 -8.856087 119.627190 -8.464085 119.627190 -8.208086 c 526 | 119.627190 -7.568085 120.163193 -7.064087 121.235191 -6.696087 c 527 | 121.699188 -6.536087 122.115196 -6.456085 122.483192 -6.456085 c 528 | 122.867195 -6.456085 123.155190 -6.584087 123.347191 -6.840086 c 529 | 123.555191 -7.096087 123.739197 -7.488087 123.899193 -8.016087 c 530 | 126.539192 -16.032085 l 531 | 129.155182 -8.136086 l 532 | 129.379181 -7.464085 129.787186 -7.000088 130.379181 -6.744087 c 533 | 130.635178 -6.632088 130.963196 -6.576086 131.363190 -6.576086 c 534 | 131.779190 -6.576086 132.163193 -6.712086 132.515198 -6.984087 c 535 | 132.867203 -7.240086 133.091187 -7.496086 133.187180 -7.752087 c 536 | 135.947189 -16.080086 l 537 | 138.587189 -8.016087 l 538 | 138.715195 -7.648087 138.819183 -7.376087 138.899185 -7.200087 c 539 | 138.979187 -7.024086 139.123169 -6.856087 139.331177 -6.696087 c 540 | 139.555176 -6.520088 139.827179 -6.432087 140.147186 -6.432087 c 541 | 140.467194 -6.432087 140.843170 -6.512087 141.275177 -6.672087 c 542 | h 543 | f 544 | n 545 | Q 546 | 547 | endstream 548 | endobj 549 | 550 | 3 0 obj 551 | 24476 552 | endobj 553 | 554 | 4 0 obj 555 | << /Annots [] 556 | /Type /Page 557 | /MediaBox [ 0.000000 0.000000 142.882812 125.000000 ] 558 | /Resources 1 0 R 559 | /Contents 2 0 R 560 | /Parent 5 0 R 561 | >> 562 | endobj 563 | 564 | 5 0 obj 565 | << /Kids [ 4 0 R ] 566 | /Count 1 567 | /Type /Pages 568 | >> 569 | endobj 570 | 571 | 6 0 obj 572 | << /Pages 5 0 R 573 | /Type /Catalog 574 | >> 575 | endobj 576 | 577 | xref 578 | 0 7 579 | 0000000000 65535 f 580 | 0000000010 00000 n 581 | 0000000034 00000 n 582 | 0000024566 00000 n 583 | 0000024590 00000 n 584 | 0000024765 00000 n 585 | 0000024839 00000 n 586 | trailer 587 | << /ID [ (some) (id) ] 588 | /Root 6 0 R 589 | /Size 7 590 | >> 591 | startxref 592 | 24898 593 | %%EOF -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/authentication/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/authentication/wolcano.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "wolcano.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/authentication/wolcano.imageset/wolcano.pdf: -------------------------------------------------------------------------------- 1 | %PDF-1.7 2 | 3 | 1 0 obj 4 | << >> 5 | endobj 6 | 7 | 2 0 obj 8 | << /Length 3 0 R >> 9 | stream 10 | /DeviceRGB CS 11 | /DeviceRGB cs 12 | q 13 | 1.000000 0.000000 -0.000000 1.000000 160.011719 12.000000 cm 14 | 0.992157 0.741176 0.223529 scn 15 | 53.771076 56.639542 m 16 | 53.771076 59.796547 51.587250 62.440350 48.529900 63.249043 c 17 | 47.834309 66.608223 44.712254 69.158714 41.056374 69.158714 c 18 | 41.040199 69.158714 l 19 | 39.665199 71.491478 37.044609 73.000000 34.213726 73.000000 c 20 | 31.730928 73.000000 29.475704 71.895119 28.020664 70.098228 c 21 | 27.511686 69.469673 26.744402 69.078407 25.936346 69.043938 c 22 | 23.078436 68.922043 20.636671 67.244431 19.481771 64.854797 c 23 | 19.110523 64.086639 18.407036 63.501026 17.581724 63.284790 c 24 | 14.502802 62.478100 12.229909 59.773888 12.229909 56.561779 c 25 | 12.229909 52.720493 15.481379 49.594589 19.493143 49.594589 c 26 | 19.600353 49.594589 19.729767 49.605263 19.881384 49.617767 c 27 | 19.978437 49.625694 l 28 | 21.935791 49.796761 23.828436 49.128033 25.154905 47.775032 c 29 | 25.686232 47.231266 26.085899 46.608940 26.349094 45.938110 c 30 | 26.740396 44.940765 27.579483 44.058159 28.650841 44.058159 c 31 | 37.250519 44.058159 l 32 | 38.348278 44.058159 39.202290 44.982788 39.585228 46.011589 c 33 | 39.862309 46.755989 40.304005 47.446190 40.894611 48.039413 c 34 | 42.188728 49.361313 44.016670 49.998936 45.893139 49.796761 c 35 | 46.184315 49.765659 46.426960 49.750107 46.604900 49.750107 c 36 | 50.551960 49.750107 53.771076 52.844910 53.771076 56.639542 c 37 | h 38 | 39.859512 41.056671 m 39 | 26.125149 41.056671 l 40 | 25.547535 41.056671 25.021265 40.570175 24.880072 39.863968 c 41 | 24.162836 36.380688 22.773008 32.774529 21.016577 29.236217 c 42 | 20.576019 28.348721 21.556181 27.376156 22.424042 27.854237 c 43 | 27.331720 30.557758 l 44 | 27.652617 30.746078 28.037691 30.746078 28.371424 30.573448 c 45 | 28.705156 30.400822 28.961874 30.055569 29.077396 29.631844 c 46 | 29.774340 27.107105 l 47 | 30.015528 26.233376 31.208561 26.120411 31.609459 26.933338 c 48 | 33.095020 29.945709 l 49 | 33.338902 30.416512 33.788155 30.714695 34.211739 30.699001 c 50 | 34.673828 30.699001 35.084576 30.400826 35.315620 29.914326 c 51 | 39.536209 20.823757 l 52 | 39.906338 20.026554 41.055679 20.075226 41.357082 20.900867 c 53 | 44.595947 29.773087 l 54 | 44.621819 29.836346 44.630295 29.902431 44.600712 29.964043 c 55 | 43.018223 33.259983 41.765583 36.615845 41.104591 39.863968 c 56 | 40.963398 40.570175 40.437126 41.056671 39.859512 41.056671 c 57 | h 58 | 45.189594 22.872822 m 59 | 45.783531 24.428200 47.940449 24.605553 48.839752 23.204407 c 60 | 56.002506 12.044559 65.384300 2.875282 65.527702 2.735382 c 61 | 65.950142 2.318123 66.108551 1.638145 65.923737 1.019981 c 62 | 65.738922 0.401817 65.237274 0.000015 64.682831 0.000015 c 63 | 1.317171 0.000015 l 64 | 0.762721 0.000015 0.261076 0.401817 0.076260 1.019981 c 65 | -0.108557 1.638145 0.049858 2.318123 0.472296 2.735382 c 66 | 0.602553 2.857376 8.662913 10.743145 15.547777 20.780857 c 67 | 15.730326 21.047001 15.974488 21.266376 16.259844 21.417137 c 68 | 24.792927 25.925385 l 69 | 25.900118 26.510345 27.265068 25.928848 27.610258 24.725151 c 70 | 28.802025 20.569378 l 71 | 28.960440 19.997578 29.396078 19.595772 29.910923 19.533955 c 72 | 30.412569 19.456684 30.914215 19.750313 31.178238 20.260296 c 73 | 32.395546 22.618786 l 74 | 33.140354 24.061832 35.212406 24.036858 35.922222 22.576283 c 75 | 39.759003 14.681377 l 76 | 39.996624 14.186848 40.432266 13.893223 40.907509 13.893223 c 77 | 40.973515 13.893223 l 78 | 41.461956 13.924129 41.910797 14.279575 42.108814 14.805012 c 79 | 45.189594 22.872822 l 80 | h 81 | f* 82 | n 83 | Q 84 | q 85 | 1.000000 0.000000 -0.000000 1.000000 213.251953 78.176025 cm 86 | 0.964706 0.596078 0.200000 scn 87 | -1.769462 9.282301 m 88 | -2.284304 8.305054 -1.909451 7.095476 -0.932204 6.580633 c 89 | 0.045043 6.065792 1.254620 6.440645 1.769462 7.417891 c 90 | -1.769462 9.282301 l 91 | h 92 | 5.582252 17.126173 m 93 | 4.137383 18.509052 l 94 | 4.137383 18.509052 l 95 | 5.582252 17.126173 l 96 | h 97 | 16.594007 26.221634 m 98 | 17.374306 24.380129 l 99 | 16.594007 26.221634 l 100 | h 101 | 16.413486 22.958376 m 102 | 14.610055 23.823036 l 103 | 16.413486 22.958376 l 104 | h 105 | 9.859201 10.919043 m 106 | 8.105822 11.881154 l 107 | 9.859201 10.919043 l 108 | h 109 | 7.234709 6.017214 m 110 | 5.457468 6.934500 l 111 | 5.457468 6.934500 l 112 | 7.234709 6.017214 l 113 | h 114 | 6.470969 4.128691 m 115 | 7.340467 2.327587 l 116 | 6.470969 4.128691 l 117 | h 118 | 12.289286 8.461185 m 119 | 13.454057 6.835360 l 120 | 12.289286 8.461185 l 121 | h 122 | 36.562363 24.583061 m 123 | 37.639915 22.898163 l 124 | 37.639915 22.898163 l 125 | 36.562363 24.583061 l 126 | h 127 | 41.075375 26.624332 m 128 | 43.006100 26.102514 l 129 | 41.075375 26.624332 l 130 | h 131 | 36.367954 20.333885 m 132 | 34.790619 21.563526 l 133 | 34.790619 21.563526 l 134 | 36.367954 20.333885 l 135 | h 136 | 29.161016 10.099756 m 137 | 27.459827 11.151401 l 138 | 27.459827 11.151401 l 139 | 29.161016 10.099756 l 140 | h 141 | 28.633341 7.072565 m 142 | 28.667818 9.072268 l 143 | 28.633341 7.072565 l 144 | h 145 | 31.313377 7.669672 m 146 | 31.962027 5.777781 l 147 | 31.313377 7.669672 l 148 | h 149 | 43.991478 12.543728 m 150 | 43.269329 14.408802 l 151 | 43.991478 12.543728 l 152 | h 153 | 67.439316 19.474918 m 154 | 68.473557 19.862759 68.997566 21.015583 68.609726 22.049824 c 155 | 68.221886 23.084064 67.069061 23.608076 66.034821 23.220236 c 156 | 67.439316 19.474918 l 157 | h 158 | 1.769462 7.417891 m 159 | 3.471988 10.649539 4.802604 13.419057 7.027122 15.743295 c 160 | 4.137383 18.509052 l 161 | 1.431990 15.682383 -0.180802 12.297812 -1.769462 9.282301 c 162 | 1.769462 7.417891 l 163 | h 164 | 7.027122 15.743295 m 165 | 8.570889 17.356266 10.225080 19.122614 12.008188 20.715492 c 166 | 13.795885 22.312471 15.598330 23.627598 17.374306 24.380129 c 167 | 15.813709 28.063137 l 168 | 13.450938 27.061962 11.267074 25.417046 9.343363 23.698563 c 169 | 7.415064 21.975983 5.632751 20.071453 4.137383 18.509052 c 170 | 7.027122 15.743295 l 171 | h 172 | 17.374306 24.380129 m 173 | 17.456602 24.415001 17.085484 24.221510 16.531179 24.388929 c 174 | 15.783446 24.614773 15.478762 25.226206 15.397702 25.542398 c 175 | 15.336039 25.782934 15.372987 25.913099 15.358705 25.812431 c 176 | 15.349504 25.747585 15.324385 25.629591 15.272663 25.456461 c 177 | 15.053875 24.724100 14.628386 23.861267 14.610055 23.823036 c 178 | 18.216917 22.093718 l 179 | 18.204391 22.067591 18.779900 23.222292 19.105291 24.311485 c 180 | 19.189613 24.593744 19.271988 24.918890 19.319042 25.250540 c 181 | 19.361013 25.546364 19.402979 26.026379 19.272404 26.535721 c 182 | 19.122433 27.120720 18.674910 27.919916 17.687725 28.218082 c 183 | 16.893967 28.457827 16.186783 28.221218 15.813709 28.063137 c 184 | 17.374306 24.380129 l 185 | h 186 | 14.610055 23.823036 m 187 | 12.664707 19.765594 10.361274 15.991557 8.105822 11.881154 c 188 | 11.612581 9.956932 l 189 | 13.749539 13.851387 16.211584 17.911163 18.216917 22.093718 c 190 | 14.610055 23.823036 l 191 | h 192 | 8.105822 11.881154 m 193 | 7.210527 10.249544 6.319752 8.605175 5.457468 6.934500 c 194 | 9.011950 5.099928 l 195 | 9.851120 6.725819 10.722973 8.335682 11.612581 9.956932 c 196 | 8.105822 11.881154 l 197 | h 198 | 5.457468 6.934500 m 199 | 5.410895 6.844265 5.321461 6.691275 5.172880 6.437975 c 200 | 5.042951 6.216473 4.876369 5.932190 4.737287 5.668200 c 201 | 4.667390 5.535530 4.590240 5.381428 4.522705 5.223413 c 202 | 4.467962 5.095331 4.362825 4.837160 4.313737 4.530924 c 203 | 4.289997 4.382818 4.253399 4.075294 4.335587 3.706551 c 204 | 4.428256 3.290775 4.701073 2.712027 5.338452 2.355198 c 205 | 5.911090 2.034615 6.456706 2.078537 6.719577 2.124468 c 206 | 6.997909 2.173098 7.215749 2.267380 7.340467 2.327587 c 207 | 5.601470 5.929794 l 208 | 5.649750 5.953100 5.804240 6.025135 6.031125 6.064775 c 209 | 6.242549 6.101715 6.748621 6.149910 7.292433 5.845465 c 210 | 7.900985 5.504774 8.155694 4.954031 8.239787 4.576735 c 211 | 8.313397 4.246469 8.277757 3.987900 8.263318 3.897829 c 212 | 8.232836 3.707663 8.179691 3.601889 8.200846 3.651384 c 213 | 8.209208 3.670948 8.231859 3.719608 8.276184 3.803741 c 214 | 8.365545 3.973358 8.485092 4.178846 8.623110 4.414137 c 215 | 8.742476 4.617632 8.902805 4.888458 9.011950 5.099928 c 216 | 5.457468 6.934500 l 217 | h 218 | 7.340467 2.327587 m 219 | 8.558282 2.915499 9.736900 3.822878 10.733919 4.636444 c 220 | 11.813474 5.517359 12.653392 6.261749 13.454057 6.835360 c 221 | 11.124515 10.087011 l 222 | 10.189849 9.417400 9.107401 8.471926 8.205025 7.735588 c 223 | 7.220114 6.931904 6.357239 6.294647 5.601470 5.929794 c 224 | 7.340467 2.327587 l 225 | h 226 | 13.454057 6.835360 m 227 | 21.291710 12.450396 29.456154 17.664364 37.639915 22.898163 c 228 | 35.484810 26.267960 l 229 | 27.318417 21.045265 19.062912 15.774221 11.124515 10.087011 c 230 | 13.454057 6.835360 l 231 | h 232 | 37.639915 22.898163 m 233 | 37.605915 22.876421 37.806667 22.986509 38.304764 23.234968 c 234 | 38.735981 23.450064 39.283440 23.716749 39.817833 23.968714 c 235 | 40.358765 24.223763 40.859928 24.451233 41.208817 24.595463 c 236 | 41.293907 24.630638 41.362522 24.657774 41.415234 24.677563 c 237 | 41.471973 24.698862 41.491974 24.704731 41.484867 24.702618 c 238 | 41.480972 24.701458 41.453716 24.693338 41.409920 24.683878 c 239 | 41.377621 24.676903 41.270096 24.654278 41.122036 24.648182 c 240 | 41.070709 24.646069 40.563213 24.609901 40.032360 24.931866 c 241 | 39.698765 25.134192 39.353325 25.482861 39.180378 25.995737 c 242 | 39.018425 26.475996 39.077011 26.895889 39.144650 27.146151 c 243 | 43.006100 26.102514 l 244 | 43.075935 26.360899 43.134598 26.787766 42.970673 27.273878 c 245 | 42.795750 27.792608 42.446281 28.146013 42.106670 28.351990 c 246 | 41.563782 28.681252 41.036293 28.648041 40.957512 28.644796 c 247 | 40.661324 28.632605 40.412437 28.556824 40.344566 28.536638 c 248 | 40.129318 28.472620 39.887398 28.377512 39.680653 28.292044 c 249 | 39.239803 28.109798 38.668159 27.848970 38.111954 27.586721 c 250 | 37.549202 27.321384 36.975178 27.041767 36.519310 26.814375 c 251 | 36.130322 26.620342 35.678379 26.391752 35.484810 26.267960 c 252 | 37.639915 22.898163 l 253 | h 254 | 39.144650 27.146151 m 255 | 38.984470 26.553492 38.413643 25.692345 37.462097 24.585249 c 256 | 37.014862 24.064905 36.548199 23.561028 36.080662 23.049868 c 257 | 35.632339 22.559708 35.163403 22.041718 34.790619 21.563526 c 258 | 37.945290 19.104242 l 259 | 38.206318 19.439083 38.569992 19.844820 39.032238 20.350201 c 260 | 39.475277 20.834576 39.997147 21.398045 40.495590 21.977966 c 261 | 41.435390 23.071396 42.584461 24.542444 43.006100 26.102514 c 262 | 39.144650 27.146151 l 263 | h 264 | 34.790619 21.563526 m 265 | 32.180099 18.214859 29.716333 14.801632 27.459827 11.151401 c 266 | 30.862206 9.048113 l 267 | 33.020744 12.539863 35.393787 15.831282 37.945290 19.104242 c 268 | 34.790619 21.563526 l 269 | h 270 | 27.459827 11.151401 m 271 | 27.462317 11.155426 27.454193 11.142260 27.426523 11.102201 c 272 | 27.400543 11.064586 27.367655 11.018118 27.324530 10.957696 c 273 | 27.243164 10.843699 27.127560 10.683298 27.010098 10.514002 c 274 | 26.781942 10.185171 26.473078 9.719328 26.239532 9.227638 c 275 | 26.121923 8.980032 25.994989 8.667709 25.917263 8.319401 c 276 | 25.842588 7.984756 25.781481 7.477116 25.943106 6.918055 c 277 | 26.125072 6.288635 26.541925 5.764713 27.122320 5.440689 c 278 | 27.639381 5.152021 28.178228 5.080114 28.598864 5.072863 c 279 | 28.667818 9.072268 l 280 | 28.615379 9.073172 28.804123 9.082911 29.072170 8.933264 c 281 | 29.403553 8.748259 29.672485 8.420731 29.785746 8.028963 c 282 | 29.878666 7.707552 29.828070 7.478821 29.821243 7.448227 c 283 | 29.811367 7.403969 29.809622 7.420837 29.852659 7.511448 c 284 | 29.940413 7.696196 30.094694 7.942892 30.296516 8.233772 c 285 | 30.394043 8.374334 30.485136 8.500584 30.580299 8.633915 c 286 | 30.659479 8.744850 30.773651 8.904863 30.862206 9.048113 c 287 | 27.459827 11.151401 l 288 | h 289 | 28.598864 5.072863 m 290 | 29.972214 5.049183 31.142262 5.496717 31.962027 5.777781 c 291 | 30.664728 9.561563 l 292 | 29.666346 9.219261 29.202003 9.063057 28.667818 9.072268 c 293 | 28.598864 5.072863 l 294 | h 295 | 31.962027 5.777781 m 296 | 36.287460 7.260786 40.579079 9.077778 44.713627 10.678654 c 297 | 43.269329 14.408802 l 298 | 38.971218 12.744594 34.896381 11.012417 30.664728 9.561563 c 299 | 31.962027 5.777781 l 300 | h 301 | 44.713627 10.678654 m 302 | 52.320847 13.624132 59.842861 16.626249 67.439316 19.474918 c 303 | 66.034821 23.220236 l 304 | 58.414665 20.362677 50.822521 17.333363 43.269329 14.408802 c 305 | 44.713627 10.678654 l 306 | h 307 | f 308 | n 309 | Q 310 | q 311 | 1.000000 0.000000 -0.000000 1.000000 205.503906 87.274902 cm 312 | 0.964706 0.596078 0.200000 scn 313 | -1.894562 5.140949 m 314 | -2.248470 4.094610 -1.687145 2.959488 -0.640808 2.605579 c 315 | 0.405530 2.251671 1.540654 2.812996 1.894562 3.859333 c 316 | -1.894562 5.140949 l 317 | h 318 | 12.059704 22.247070 m 319 | 12.749722 23.109594 12.609879 24.368179 11.747355 25.058197 c 320 | 10.884832 25.748217 9.626247 25.608374 8.936228 24.745850 c 321 | 12.059704 22.247070 l 322 | h 323 | 1.894562 3.859333 m 324 | 4.163435 10.567307 7.614928 16.691101 12.059704 22.247070 c 325 | 8.936228 24.745850 l 326 | 4.223203 18.854568 0.534886 12.323665 -1.894562 5.140949 c 327 | 1.894562 3.859333 l 328 | h 329 | f 330 | n 331 | Q 332 | 333 | endstream 334 | endobj 335 | 336 | 3 0 obj 337 | 11655 338 | endobj 339 | 340 | 4 0 obj 341 | << /Annots [] 342 | /Type /Page 343 | /MediaBox [ 0.000000 0.000000 390.000000 122.771362 ] 344 | /Resources 1 0 R 345 | /Contents 2 0 R 346 | /Parent 5 0 R 347 | >> 348 | endobj 349 | 350 | 5 0 obj 351 | << /Kids [ 4 0 R ] 352 | /Count 1 353 | /Type /Pages 354 | >> 355 | endobj 356 | 357 | 6 0 obj 358 | << /Pages 5 0 R 359 | /Type /Catalog 360 | >> 361 | endobj 362 | 363 | xref 364 | 0 7 365 | 0000000000 65535 f 366 | 0000000010 00000 n 367 | 0000000034 00000 n 368 | 0000011745 00000 n 369 | 0000011769 00000 n 370 | 0000011944 00000 n 371 | 0000012018 00000 n 372 | trailer 373 | << /ID [ (some) (id) ] 374 | /Root 6 0 R 375 | /Size 7 376 | >> 377 | startxref 378 | 12077 379 | %%EOF -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/icons/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/icons/ic_lock.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "lock.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/icons/ic_lock.imageset/lock.pdf: -------------------------------------------------------------------------------- 1 | %PDF-1.7 2 | 3 | 1 0 obj 4 | << >> 5 | endobj 6 | 7 | 2 0 obj 8 | << /Length 3 0 R >> 9 | stream 10 | /DeviceRGB CS 11 | /DeviceRGB cs 12 | q 13 | 1.000000 0.000000 -0.000000 1.000000 7.000000 14.000000 cm 14 | 0.333333 0.301961 0.337255 scn 15 | 0.000000 2.000000 m 16 | 0.000000 4.761424 2.238576 7.000000 5.000000 7.000000 c 17 | 7.761424 7.000000 10.000000 4.761424 10.000000 2.000000 c 18 | 10.000000 1.000000 l 19 | 10.000000 0.447715 9.552285 0.000000 9.000000 0.000000 c 20 | 8.447716 0.000000 8.000000 0.447715 8.000000 1.000000 c 21 | 8.000000 2.000000 l 22 | 8.000000 3.656854 6.656854 5.000000 5.000000 5.000000 c 23 | 3.343146 5.000000 2.000000 3.656854 2.000000 2.000000 c 24 | 2.000000 1.000000 l 25 | 2.000000 0.447715 1.552285 0.000000 1.000000 0.000000 c 26 | 0.447715 0.000000 0.000000 0.447715 0.000000 1.000000 c 27 | 0.000000 2.000000 l 28 | h 29 | f* 30 | n 31 | Q 32 | q 33 | 1.000000 0.000000 -0.000000 1.000000 4.000000 4.000000 cm 34 | 0.333333 0.301961 0.337255 scn 35 | 0.654505 11.870469 m 36 | 0.000000 11.049746 0.000000 9.842688 0.000000 7.428571 c 37 | 0.000000 4.209750 0.000000 2.600340 0.872674 1.506041 c 38 | 1.059418 1.271872 1.271872 1.059418 1.506041 0.872674 c 39 | 2.600340 0.000000 4.209750 0.000000 7.428572 0.000000 c 40 | 8.571429 0.000000 l 41 | 11.790250 0.000000 13.399660 0.000000 14.493959 0.872674 c 42 | 14.728128 1.059418 14.940582 1.271872 15.127326 1.506041 c 43 | 16.000000 2.600340 16.000000 4.209750 16.000000 7.428572 c 44 | 16.000000 9.842688 16.000000 11.049746 15.345494 11.870469 c 45 | 15.205437 12.046096 15.046097 12.205437 14.870469 12.345494 c 46 | 14.049746 13.000000 12.842688 13.000000 10.428572 13.000000 c 47 | 5.571428 13.000000 l 48 | 3.157313 13.000000 1.950255 13.000000 1.129531 12.345494 c 49 | 0.953904 12.205437 0.794563 12.046096 0.654505 11.870469 c 50 | h 51 | 8.000000 6.000000 m 52 | 8.552284 6.000000 9.000000 6.447715 9.000000 7.000000 c 53 | 9.000000 7.552285 8.552284 8.000000 8.000000 8.000000 c 54 | 7.447715 8.000000 7.000000 7.552285 7.000000 7.000000 c 55 | 7.000000 6.447715 7.447715 6.000000 8.000000 6.000000 c 56 | h 57 | 11.000000 7.000000 m 58 | 11.000000 5.693781 10.165192 4.582542 9.000000 4.170706 c 59 | 9.000000 2.000000 l 60 | 7.000000 2.000000 l 61 | 7.000000 4.170706 l 62 | 5.834807 4.582542 5.000000 5.693781 5.000000 7.000000 c 63 | 5.000000 8.656855 6.343146 10.000000 8.000000 10.000000 c 64 | 9.656855 10.000000 11.000000 8.656855 11.000000 7.000000 c 65 | h 66 | f* 67 | n 68 | Q 69 | 70 | endstream 71 | endobj 72 | 73 | 3 0 obj 74 | 2108 75 | endobj 76 | 77 | 4 0 obj 78 | << /Annots [] 79 | /Type /Page 80 | /MediaBox [ 0.000000 0.000000 24.000000 24.000000 ] 81 | /Resources 1 0 R 82 | /Contents 2 0 R 83 | /Parent 5 0 R 84 | >> 85 | endobj 86 | 87 | 5 0 obj 88 | << /Kids [ 4 0 R ] 89 | /Count 1 90 | /Type /Pages 91 | >> 92 | endobj 93 | 94 | 6 0 obj 95 | << /Pages 5 0 R 96 | /Type /Catalog 97 | >> 98 | endobj 99 | 100 | xref 101 | 0 7 102 | 0000000000 65535 f 103 | 0000000010 00000 n 104 | 0000000034 00000 n 105 | 0000002198 00000 n 106 | 0000002221 00000 n 107 | 0000002394 00000 n 108 | 0000002468 00000 n 109 | trailer 110 | << /ID [ (some) (id) ] 111 | /Root 6 0 R 112 | /Size 7 113 | >> 114 | startxref 115 | 2527 116 | %%EOF -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/icons/ic_mail.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "mail.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/icons/ic_mail.imageset/mail.pdf: -------------------------------------------------------------------------------- 1 | %PDF-1.7 2 | 3 | 1 0 obj 4 | << >> 5 | endobj 6 | 7 | 2 0 obj 8 | << /Length 3 0 R >> 9 | stream 10 | /DeviceRGB CS 11 | /DeviceRGB cs 12 | q 13 | 1.000000 0.000000 -0.000000 1.000000 3.000000 5.000000 cm 14 | 0.333333 0.301961 0.337255 scn 15 | 0.013203 9.848706 m 16 | -0.000000 9.309782 0.000000 8.697948 0.000000 8.000000 c 17 | 0.000000 6.000000 l 18 | 0.000000 3.171573 0.000000 1.757360 0.878680 0.878679 c 19 | 1.757359 0.000000 3.171573 0.000000 6.000000 0.000000 c 20 | 12.000000 0.000000 l 21 | 14.828427 0.000000 16.242641 0.000000 17.121321 0.878679 c 22 | 18.000000 1.757360 18.000000 3.171573 18.000000 6.000000 c 23 | 18.000000 8.000000 l 24 | 18.000000 8.697948 18.000000 9.309782 17.986797 9.848706 c 25 | 9.971287 5.395644 l 26 | 9.367241 5.060064 8.632759 5.060064 8.028713 5.395644 c 27 | 0.013203 9.848706 l 28 | h 29 | 0.242967 11.970290 m 30 | 0.325845 11.949481 0.407399 11.917626 0.485643 11.874157 c 31 | 9.000000 7.143959 l 32 | 17.514357 11.874157 l 33 | 17.592600 11.917625 17.674156 11.949476 17.757034 11.970285 c 34 | 17.627060 12.443809 17.427553 12.815088 17.121321 13.121321 c 35 | 16.242641 14.000000 14.828427 14.000000 12.000000 14.000000 c 36 | 6.000000 14.000000 l 37 | 3.171573 14.000000 1.757359 14.000000 0.878680 13.121321 c 38 | 0.572448 12.815089 0.372942 12.443810 0.242967 11.970290 c 39 | h 40 | f* 41 | n 42 | Q 43 | 44 | endstream 45 | endobj 46 | 47 | 3 0 obj 48 | 1101 49 | endobj 50 | 51 | 4 0 obj 52 | << /Annots [] 53 | /Type /Page 54 | /MediaBox [ 0.000000 0.000000 24.000000 24.000000 ] 55 | /Resources 1 0 R 56 | /Contents 2 0 R 57 | /Parent 5 0 R 58 | >> 59 | endobj 60 | 61 | 5 0 obj 62 | << /Kids [ 4 0 R ] 63 | /Count 1 64 | /Type /Pages 65 | >> 66 | endobj 67 | 68 | 6 0 obj 69 | << /Pages 5 0 R 70 | /Type /Catalog 71 | >> 72 | endobj 73 | 74 | xref 75 | 0 7 76 | 0000000000 65535 f 77 | 0000000010 00000 n 78 | 0000000034 00000 n 79 | 0000001191 00000 n 80 | 0000001214 00000 n 81 | 0000001387 00000 n 82 | 0000001461 00000 n 83 | trailer 84 | << /ID [ (some) (id) ] 85 | /Root 6 0 R 86 | /Size 7 87 | >> 88 | startxref 89 | 1520 90 | %%EOF -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/icons/tab/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/icons/tab/ic_edit.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ic_edit.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/icons/tab/ic_edit.imageset/ic_edit.pdf: -------------------------------------------------------------------------------- 1 | %PDF-1.7 2 | 3 | 1 0 obj 4 | << >> 5 | endobj 6 | 7 | 2 0 obj 8 | << /Length 3 0 R >> 9 | stream 10 | /DeviceRGB CS 11 | /DeviceRGB cs 12 | q 13 | 1.000000 0.000000 -0.000000 1.000000 2.583008 2.413300 cm 14 | 0.592157 0.568627 0.592157 scn 15 | 11.875743 8.712343 m 16 | 13.250097 10.086698 l 17 | 13.250120 10.086721 l 18 | 13.484608 10.321208 13.601855 10.438456 13.686302 10.550654 c 19 | 14.222349 11.262867 14.222349 12.243861 13.686302 12.956074 c 20 | 13.601855 13.068274 13.484608 13.185520 13.250120 13.420007 c 21 | 13.250097 13.420031 l 22 | 13.250074 13.420055 l 23 | 13.015587 13.654541 12.898340 13.771788 12.786140 13.856235 c 24 | 12.073929 14.392282 11.092934 14.392282 10.380722 13.856235 c 25 | 10.268522 13.771788 10.151276 13.654542 9.916790 13.420056 c 26 | 9.916765 13.420031 l 27 | 8.523149 12.026415 l 28 | 9.320054 10.646173 10.476770 9.498388 11.875743 8.712343 c 29 | h 30 | 7.068552 10.571817 m 31 | 1.606477 5.109743 l 32 | 1.181417 4.684683 0.968887 4.472153 0.829152 4.211056 c 33 | 0.689417 3.949960 0.630472 3.655233 0.512581 3.065781 c 34 | 0.063852 0.822134 l 35 | -0.002670 0.489523 -0.035931 0.323218 0.058677 0.228610 c 36 | 0.153284 0.134002 0.319588 0.167263 0.652196 0.233785 c 37 | 0.652200 0.233785 l 38 | 2.895848 0.682514 l 39 | 3.485300 0.800405 3.780026 0.859350 4.041123 0.999085 c 40 | 4.302220 1.138820 4.514750 1.351350 4.939810 1.776410 c 41 | 10.417373 7.253973 l 42 | 9.069539 8.104731 7.927371 9.239157 7.068552 10.571817 c 43 | h 44 | f* 45 | n 46 | Q 47 | 48 | endstream 49 | endobj 50 | 51 | 3 0 obj 52 | 1228 53 | endobj 54 | 55 | 4 0 obj 56 | << /Annots [] 57 | /Type /Page 58 | /MediaBox [ 0.000000 0.000000 20.000000 20.000000 ] 59 | /Resources 1 0 R 60 | /Contents 2 0 R 61 | /Parent 5 0 R 62 | >> 63 | endobj 64 | 65 | 5 0 obj 66 | << /Kids [ 4 0 R ] 67 | /Count 1 68 | /Type /Pages 69 | >> 70 | endobj 71 | 72 | 6 0 obj 73 | << /Pages 5 0 R 74 | /Type /Catalog 75 | >> 76 | endobj 77 | 78 | xref 79 | 0 7 80 | 0000000000 65535 f 81 | 0000000010 00000 n 82 | 0000000034 00000 n 83 | 0000001318 00000 n 84 | 0000001341 00000 n 85 | 0000001514 00000 n 86 | 0000001588 00000 n 87 | trailer 88 | << /ID [ (some) (id) ] 89 | /Root 6 0 R 90 | /Size 7 91 | >> 92 | startxref 93 | 1647 94 | %%EOF -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/icons/tab/ic_favorite.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ic_favorite.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/icons/tab/ic_favorite.imageset/ic_favorite.pdf: -------------------------------------------------------------------------------- 1 | %PDF-1.7 2 | 3 | 1 0 obj 4 | << >> 5 | endobj 6 | 7 | 2 0 obj 8 | << /Length 3 0 R >> 9 | stream 10 | /DeviceRGB CS 11 | /DeviceRGB cs 12 | q 13 | 1.000000 0.000000 -0.000000 1.000000 2.341797 1.930084 cm 14 | 0.592157 0.568627 0.592157 scn 15 | 1.367360 6.479743 m 16 | 7.161204 1.037041 l 17 | 7.360782 0.849558 7.460571 0.755816 7.578227 0.732726 c 18 | 7.631213 0.722328 7.685716 0.722328 7.738702 0.732726 c 19 | 7.856358 0.755816 7.956147 0.849558 8.155725 1.037041 c 20 | 13.949568 6.479741 l 21 | 15.579716 8.011091 15.777673 10.531086 14.406639 12.298197 c 22 | 14.148843 12.630466 l 23 | 12.508697 14.744434 9.216490 14.389906 8.064020 11.975208 c 24 | 7.901227 11.634118 7.415702 11.634118 7.252909 11.975208 c 25 | 6.100440 14.389906 2.808231 14.744431 1.168083 12.630463 c 26 | 0.910288 12.298193 l 27 | -0.460746 10.531083 -0.262787 8.011093 1.367360 6.479743 c 28 | h 29 | f 30 | n 31 | Q 32 | 33 | endstream 34 | endobj 35 | 36 | 3 0 obj 37 | 697 38 | endobj 39 | 40 | 4 0 obj 41 | << /Annots [] 42 | /Type /Page 43 | /MediaBox [ 0.000000 0.000000 20.000000 20.000000 ] 44 | /Resources 1 0 R 45 | /Contents 2 0 R 46 | /Parent 5 0 R 47 | >> 48 | endobj 49 | 50 | 5 0 obj 51 | << /Kids [ 4 0 R ] 52 | /Count 1 53 | /Type /Pages 54 | >> 55 | endobj 56 | 57 | 6 0 obj 58 | << /Pages 5 0 R 59 | /Type /Catalog 60 | >> 61 | endobj 62 | 63 | xref 64 | 0 7 65 | 0000000000 65535 f 66 | 0000000010 00000 n 67 | 0000000034 00000 n 68 | 0000000787 00000 n 69 | 0000000809 00000 n 70 | 0000000982 00000 n 71 | 0000001056 00000 n 72 | trailer 73 | << /ID [ (some) (id) ] 74 | /Root 6 0 R 75 | /Size 7 76 | >> 77 | startxref 78 | 1115 79 | %%EOF -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/icons/tab/ic_home.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ic_home.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/icons/tab/ic_home.imageset/ic_home.pdf: -------------------------------------------------------------------------------- 1 | %PDF-1.7 2 | 3 | 1 0 obj 4 | << >> 5 | endobj 6 | 7 | 2 0 obj 8 | << /Length 3 0 R >> 9 | stream 10 | /DeviceRGB CS 11 | /DeviceRGB cs 12 | q 13 | 1.000000 0.000000 -0.000000 1.000000 3.333008 2.500000 cm 14 | 0.592157 0.568627 0.592157 scn 15 | 0.261392 9.598549 m 16 | 0.000000 9.071791 0.000000 8.472528 0.000000 7.274000 c 17 | 0.000000 3.530897 l 18 | 0.000000 1.866413 0.000000 1.034170 0.557892 0.517081 c 19 | 1.058681 0.052918 1.833448 0.005409 3.285712 0.000546 c 20 | 3.285712 4.413571 l 21 | 3.285712 5.523536 4.232700 6.296297 5.238093 6.296297 c 22 | 8.095236 6.296297 l 23 | 9.100630 6.296297 10.047617 5.523536 10.047617 4.413571 c 24 | 10.047617 0.000546 l 25 | 11.499884 0.005409 12.274650 0.052918 12.775439 0.517081 c 26 | 13.333331 1.034170 13.333332 1.866413 13.333332 3.530897 c 27 | 13.333332 7.274000 l 28 | 13.333332 8.472527 13.333331 9.071791 13.071939 9.598549 c 29 | 12.810548 10.125305 12.319651 10.515302 11.337854 11.295293 c 30 | 10.385473 12.051915 l 31 | 8.610886 13.461742 7.723592 14.166656 6.666666 14.166656 c 32 | 5.609740 14.166656 4.722446 13.461742 2.947859 12.051915 c 33 | 1.995478 11.295293 l 34 | 1.013682 10.515302 0.522783 10.125305 0.261392 9.598549 c 35 | h 36 | 8.047617 -0.000008 m 37 | 8.047617 4.296297 l 38 | 5.285712 4.296297 l 39 | 5.285712 -0.000008 l 40 | 8.047617 -0.000008 l 41 | h 42 | f* 43 | n 44 | Q 45 | 46 | endstream 47 | endobj 48 | 49 | 3 0 obj 50 | 1095 51 | endobj 52 | 53 | 4 0 obj 54 | << /Annots [] 55 | /Type /Page 56 | /MediaBox [ 0.000000 0.000000 20.000000 20.000000 ] 57 | /Resources 1 0 R 58 | /Contents 2 0 R 59 | /Parent 5 0 R 60 | >> 61 | endobj 62 | 63 | 5 0 obj 64 | << /Kids [ 4 0 R ] 65 | /Count 1 66 | /Type /Pages 67 | >> 68 | endobj 69 | 70 | 6 0 obj 71 | << /Pages 5 0 R 72 | /Type /Catalog 73 | >> 74 | endobj 75 | 76 | xref 77 | 0 7 78 | 0000000000 65535 f 79 | 0000000010 00000 n 80 | 0000000034 00000 n 81 | 0000001185 00000 n 82 | 0000001208 00000 n 83 | 0000001381 00000 n 84 | 0000001455 00000 n 85 | trailer 86 | << /ID [ (some) (id) ] 87 | /Root 6 0 R 88 | /Size 7 89 | >> 90 | startxref 91 | 1514 92 | %%EOF -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/icons/tab/ic_market.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ic_market.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/icons/tab/ic_market.imageset/ic_market.pdf: -------------------------------------------------------------------------------- 1 | %PDF-1.7 2 | 3 | 1 0 obj 4 | << >> 5 | endobj 6 | 7 | 2 0 obj 8 | << /Length 3 0 R >> 9 | stream 10 | /DeviceRGB CS 11 | /DeviceRGB cs 12 | q 13 | 1.000000 0.000000 -0.000000 1.000000 1.666992 2.500000 cm 14 | 0.933333 0.403922 0.137255 scn 15 | 8.333333 11.666667 m 16 | 9.253807 11.666667 9.999999 12.412859 9.999999 13.333334 c 17 | 9.999999 14.253808 9.253807 15.000000 8.333333 15.000000 c 18 | 7.412858 15.000000 6.666666 14.253808 6.666666 13.333334 c 19 | 6.666666 12.412859 7.412858 11.666667 8.333333 11.666667 c 20 | h 21 | 0.000000 10.000000 m 22 | 16.666668 10.000000 l 23 | 16.666668 7.500000 l 24 | 16.607609 7.500000 16.578079 7.500000 16.551825 7.499310 c 25 | 15.653902 7.475723 14.881848 6.856403 14.664036 5.984981 c 26 | 14.657668 5.959504 14.651263 5.930683 14.638455 5.873047 c 27 | 14.638450 5.873021 l 28 | 14.029396 3.132278 l 29 | 14.029393 3.132269 l 30 | 13.695700 1.630644 13.528852 0.879831 12.980445 0.439917 c 31 | 12.432038 0.000000 11.662908 0.000000 10.124647 0.000000 c 32 | 6.542020 0.000000 l 33 | 5.003759 0.000000 4.234629 0.000000 3.686222 0.439917 c 34 | 3.137815 0.879833 2.970967 1.630648 2.637272 3.132278 c 35 | 2.028218 5.873021 l 36 | 2.028212 5.873047 l 37 | 2.015404 5.930683 2.008999 5.959504 2.002631 5.984981 c 38 | 1.784819 6.856403 1.012765 7.475723 0.114844 7.499310 c 39 | 0.088588 7.500000 0.059059 7.500000 0.000000 7.500000 c 40 | 0.000000 10.000000 l 41 | h 42 | 5.252267 6.819728 m 43 | 5.797037 6.910522 6.312265 6.542503 6.403060 5.997733 c 44 | 6.819727 3.497733 l 45 | 6.910522 2.952963 6.542502 2.437735 5.997732 2.346940 c 46 | 5.452962 2.256145 4.937734 2.624165 4.846939 3.168935 c 47 | 4.430272 5.668935 l 48 | 4.339478 6.213705 4.707497 6.728933 5.252267 6.819728 c 49 | h 50 | 11.414315 6.819728 m 51 | 11.959086 6.728933 12.327106 6.213705 12.236311 5.668935 c 52 | 11.819644 3.168935 l 53 | 11.728849 2.624165 11.213622 2.256145 10.668851 2.346940 c 54 | 10.124082 2.437735 9.756062 2.952963 9.846856 3.497733 c 55 | 10.263523 5.997733 l 56 | 10.354318 6.542503 10.869546 6.910522 11.414315 6.819728 c 57 | h 58 | f* 59 | n 60 | Q 61 | 62 | endstream 63 | endobj 64 | 65 | 3 0 obj 66 | 1755 67 | endobj 68 | 69 | 4 0 obj 70 | << /Annots [] 71 | /Type /Page 72 | /MediaBox [ 0.000000 0.000000 20.000000 20.000000 ] 73 | /Resources 1 0 R 74 | /Contents 2 0 R 75 | /Parent 5 0 R 76 | >> 77 | endobj 78 | 79 | 5 0 obj 80 | << /Kids [ 4 0 R ] 81 | /Count 1 82 | /Type /Pages 83 | >> 84 | endobj 85 | 86 | 6 0 obj 87 | << /Pages 5 0 R 88 | /Type /Catalog 89 | >> 90 | endobj 91 | 92 | xref 93 | 0 7 94 | 0000000000 65535 f 95 | 0000000010 00000 n 96 | 0000000034 00000 n 97 | 0000001845 00000 n 98 | 0000001868 00000 n 99 | 0000002041 00000 n 100 | 0000002115 00000 n 101 | trailer 102 | << /ID [ (some) (id) ] 103 | /Root 6 0 R 104 | /Size 7 105 | >> 106 | startxref 107 | 2174 108 | %%EOF -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/icons/tab/ic_person.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ic_person.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/icons/tab/ic_person.imageset/ic_person.pdf: -------------------------------------------------------------------------------- 1 | %PDF-1.7 2 | 3 | 1 0 obj 4 | << >> 5 | endobj 6 | 7 | 2 0 obj 8 | << /Length 3 0 R >> 9 | stream 10 | /DeviceRGB CS 11 | /DeviceRGB cs 12 | q 13 | 1.000000 0.000000 -0.000000 1.000000 3.035156 2.119019 cm 14 | 0.592157 0.568627 0.592157 scn 15 | 6.964697 7.047647 m 16 | 9.265883 7.047647 11.131363 8.913128 11.131363 11.214314 c 17 | 11.131363 13.515501 9.265883 15.380981 6.964697 15.380981 c 18 | 4.663510 15.380981 2.798030 13.515501 2.798030 11.214314 c 19 | 2.798030 8.913128 4.663510 7.047647 6.964697 7.047647 c 20 | h 21 | 13.847108 1.865709 m 22 | 14.076022 1.454563 13.801659 0.972504 13.340980 0.876495 c 23 | 9.135303 0.000011 4.794092 0.000013 0.588416 0.876499 c 24 | 0.127737 0.972507 -0.146625 1.454567 0.082289 1.865714 c 25 | 0.586940 2.772103 1.381961 3.568572 2.398989 4.175544 c 26 | 3.708821 4.957264 5.313693 5.380981 6.964700 5.380981 c 27 | 8.615706 5.380981 10.220578 4.957262 11.530410 4.175541 c 28 | 12.547438 3.568568 13.342458 2.772099 13.847108 1.865709 c 29 | h 30 | f* 31 | n 32 | Q 33 | 34 | endstream 35 | endobj 36 | 37 | 3 0 obj 38 | 806 39 | endobj 40 | 41 | 4 0 obj 42 | << /Annots [] 43 | /Type /Page 44 | /MediaBox [ 0.000000 0.000000 20.000000 20.000000 ] 45 | /Resources 1 0 R 46 | /Contents 2 0 R 47 | /Parent 5 0 R 48 | >> 49 | endobj 50 | 51 | 5 0 obj 52 | << /Kids [ 4 0 R ] 53 | /Count 1 54 | /Type /Pages 55 | >> 56 | endobj 57 | 58 | 6 0 obj 59 | << /Pages 5 0 R 60 | /Type /Catalog 61 | >> 62 | endobj 63 | 64 | xref 65 | 0 7 66 | 0000000000 65535 f 67 | 0000000010 00000 n 68 | 0000000034 00000 n 69 | 0000000896 00000 n 70 | 0000000918 00000 n 71 | 0000001091 00000 n 72 | 0000001165 00000 n 73 | trailer 74 | << /ID [ (some) (id) ] 75 | /Root 6 0 R 76 | /Size 7 77 | >> 78 | startxref 79 | 1224 80 | %%EOF -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/media/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/media/img_juice.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "image_juice.jpeg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/media/img_juice.imageset/image_juice.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VB10/snackoverflow/b502c7fead3b8d3d2e2bec9555e06d2cfa3da636/SnackOverFlow/Resources/Assets/Images.xcassets/media/img_juice.imageset/image_juice.jpeg -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/onboard/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/onboard/img_deliver.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img_deliver.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/onboard/img_deliver.imageset/img_deliver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VB10/snackoverflow/b502c7fead3b8d3d2e2bec9555e06d2cfa3da636/SnackOverFlow/Resources/Assets/Images.xcassets/onboard/img_deliver.imageset/img_deliver.png -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/onboard/img_hand_pick.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img_deliver.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/onboard/img_hand_pick.imageset/img_deliver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VB10/snackoverflow/b502c7fead3b8d3d2e2bec9555e06d2cfa3da636/SnackOverFlow/Resources/Assets/Images.xcassets/onboard/img_hand_pick.imageset/img_deliver.png -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/onboard/img_shop.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img_shop.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/onboard/img_shop.imageset/img_shop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VB10/snackoverflow/b502c7fead3b8d3d2e2bec9555e06d2cfa3da636/SnackOverFlow/Resources/Assets/Images.xcassets/onboard/img_shop.imageset/img_shop.png -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/social/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/social/ic_apple.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ic_apple.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/social/ic_apple.imageset/ic_apple.pdf: -------------------------------------------------------------------------------- 1 | %PDF-1.7 2 | 3 | 1 0 obj 4 | << >> 5 | endobj 6 | 7 | 2 0 obj 8 | << /Length 3 0 R >> 9 | stream 10 | /DeviceRGB CS 11 | /DeviceRGB cs 12 | q 13 | 1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm 14 | 0.000000 0.000000 0.000000 scn 15 | 0.000000 24.000000 m 16 | 24.000000 24.000000 l 17 | 24.000000 0.000000 l 18 | 0.000000 0.000000 l 19 | 0.000000 24.000000 l 20 | h 21 | f 22 | n 23 | Q 24 | q 25 | 1.000000 0.000000 -0.000000 1.000000 2.312500 0.472168 cm 26 | 1.000000 1.000000 1.000000 scn 27 | 18.967325 5.103861 m 28 | 18.619495 4.300306 18.207779 3.560638 17.730757 2.880596 c 29 | 17.080530 1.953527 16.548138 1.311817 16.137842 0.955469 c 30 | 15.501812 0.370550 14.820352 0.070993 14.090621 0.053957 c 31 | 13.566748 0.053957 12.934977 0.203026 12.199567 0.505423 c 32 | 11.461743 0.806404 10.783690 0.955469 10.163703 0.955469 c 33 | 9.513476 0.955469 8.816114 0.806404 8.070199 0.505423 c 34 | 7.323147 0.203026 6.721332 0.045437 6.261204 0.029821 c 35 | 5.561429 0.000008 4.863926 0.308083 4.167700 0.955469 c 36 | 3.723331 1.343052 3.167515 2.007477 2.501671 2.948744 c 37 | 1.787273 3.953896 1.199939 5.119478 0.739811 6.448326 c 38 | 0.247030 7.883652 0.000000 9.273547 0.000000 10.619147 c 39 | 0.000000 12.160525 0.333064 13.489940 1.000186 14.603986 c 40 | 1.524484 15.498827 2.221988 16.204708 3.094967 16.722902 c 41 | 3.967947 17.241095 4.911202 17.505161 5.927005 17.522057 c 42 | 6.482821 17.522057 7.211701 17.350128 8.117476 17.012238 c 43 | 9.020695 16.673210 9.600646 16.501286 9.854916 16.501286 c 44 | 10.045015 16.501286 10.689280 16.702316 11.781462 17.103100 c 45 | 12.814301 17.474779 13.686003 17.628675 14.400117 17.568054 c 46 | 16.335182 17.411886 17.788965 16.649076 18.755787 15.274797 c 47 | 17.025162 14.226201 16.169075 12.757513 16.186111 10.873418 c 48 | 16.201729 9.405865 16.734119 8.184631 17.780447 7.214970 c 49 | 18.254629 6.764923 18.784182 6.417093 19.373360 6.170063 c 50 | 19.245588 5.799519 19.110716 5.444592 18.967325 5.103861 c 51 | 18.967325 5.103861 l 52 | h 53 | 14.529311 22.567701 m 54 | 14.529311 21.417440 14.109076 20.343443 13.271448 19.349363 c 55 | 12.260614 18.167597 11.037960 17.484718 9.712093 17.592472 c 56 | 9.695199 17.730469 9.685403 17.875706 9.685403 18.028324 c 57 | 9.685403 19.132574 10.166116 20.314339 11.019788 21.280594 c 58 | 11.445984 21.769825 11.988030 22.176615 12.645356 22.501118 c 59 | 13.301262 22.820780 13.921675 22.997559 14.505176 23.027832 c 60 | 14.522213 22.874060 14.529311 22.720278 14.529311 22.567717 c 61 | 14.529311 22.567701 l 62 | h 63 | f 64 | n 65 | Q 66 | 67 | endstream 68 | endobj 69 | 70 | 3 0 obj 71 | 2200 72 | endobj 73 | 74 | 4 0 obj 75 | << /Annots [] 76 | /Type /Page 77 | /MediaBox [ 0.000000 0.000000 24.000000 24.000000 ] 78 | /Resources 1 0 R 79 | /Contents 2 0 R 80 | /Parent 5 0 R 81 | >> 82 | endobj 83 | 84 | 5 0 obj 85 | << /Kids [ 4 0 R ] 86 | /Count 1 87 | /Type /Pages 88 | >> 89 | endobj 90 | 91 | 6 0 obj 92 | << /Pages 5 0 R 93 | /Type /Catalog 94 | >> 95 | endobj 96 | 97 | xref 98 | 0 7 99 | 0000000000 65535 f 100 | 0000000010 00000 n 101 | 0000000034 00000 n 102 | 0000002290 00000 n 103 | 0000002313 00000 n 104 | 0000002486 00000 n 105 | 0000002560 00000 n 106 | trailer 107 | << /ID [ (some) (id) ] 108 | /Root 6 0 R 109 | /Size 7 110 | >> 111 | startxref 112 | 2619 113 | %%EOF -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/social/ic_facebook.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "facebook_logo.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/social/ic_facebook.imageset/facebook_logo.pdf: -------------------------------------------------------------------------------- 1 | %PDF-1.7 2 | 3 | 1 0 obj 4 | << >> 5 | endobj 6 | 7 | 2 0 obj 8 | << /Length 3 0 R >> 9 | stream 10 | /DeviceRGB CS 11 | /DeviceRGB cs 12 | q 13 | 1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm 14 | 0.094118 0.466667 0.949020 scn 15 | 0.000000 24.000000 m 16 | 24.000000 24.000000 l 17 | 24.000000 0.000000 l 18 | 0.000000 0.000000 l 19 | 0.000000 24.000000 l 20 | h 21 | f 22 | n 23 | Q 24 | q 25 | 1.000000 0.000000 -0.000000 -1.000000 0.500000 23.430176 cm 26 | 1.000000 1.000000 1.000000 scn 27 | 23.000000 11.500056 m 28 | 23.000000 5.148777 17.851278 0.000055 11.500000 0.000055 c 29 | 5.148721 0.000055 0.000000 5.148777 0.000000 11.500056 c 30 | 0.000000 17.240040 4.205384 21.997623 9.703125 22.860352 c 31 | 9.703125 14.824275 l 32 | 6.783203 14.824275 l 33 | 6.783203 11.500056 l 34 | 9.703125 11.500056 l 35 | 9.703125 8.966462 l 36 | 9.703125 6.084274 11.419993 4.492243 14.046845 4.492243 c 37 | 15.305039 4.492243 16.621094 4.716852 16.621094 4.716852 c 38 | 16.621094 7.546930 l 39 | 15.170970 7.546930 l 40 | 13.742387 7.546930 13.296875 8.433396 13.296875 9.342839 c 41 | 13.296875 11.500056 l 42 | 16.486328 11.500056 l 43 | 15.976464 14.824275 l 44 | 13.296875 14.824275 l 45 | 13.296875 22.860352 l 46 | 18.794615 21.997623 23.000000 17.240040 23.000000 11.500056 c 47 | h 48 | f 49 | n 50 | Q 51 | 52 | endstream 53 | endobj 54 | 55 | 3 0 obj 56 | 1024 57 | endobj 58 | 59 | 4 0 obj 60 | << /Annots [] 61 | /Type /Page 62 | /MediaBox [ 0.000000 0.000000 24.000000 24.000000 ] 63 | /Resources 1 0 R 64 | /Contents 2 0 R 65 | /Parent 5 0 R 66 | >> 67 | endobj 68 | 69 | 5 0 obj 70 | << /Kids [ 4 0 R ] 71 | /Count 1 72 | /Type /Pages 73 | >> 74 | endobj 75 | 76 | 6 0 obj 77 | << /Pages 5 0 R 78 | /Type /Catalog 79 | >> 80 | endobj 81 | 82 | xref 83 | 0 7 84 | 0000000000 65535 f 85 | 0000000010 00000 n 86 | 0000000034 00000 n 87 | 0000001114 00000 n 88 | 0000001137 00000 n 89 | 0000001310 00000 n 90 | 0000001384 00000 n 91 | trailer 92 | << /ID [ (some) (id) ] 93 | /Root 6 0 R 94 | /Size 7 95 | >> 96 | startxref 97 | 1443 98 | %%EOF -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/social/ic_google.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ic_google.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SnackOverFlow/Resources/Assets/Images.xcassets/social/ic_google.imageset/ic_google.pdf: -------------------------------------------------------------------------------- 1 | %PDF-1.7 2 | 3 | 1 0 obj 4 | << >> 5 | endobj 6 | 7 | 2 0 obj 8 | << /Length 3 0 R >> 9 | stream 10 | /DeviceRGB CS 11 | /DeviceRGB cs 12 | q 13 | 1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm 14 | 1.000000 1.000000 1.000000 scn 15 | 0.000000 24.000000 m 16 | 24.000000 24.000000 l 17 | 24.000000 0.000000 l 18 | 0.000000 0.000000 l 19 | 0.000000 24.000000 l 20 | h 21 | f 22 | n 23 | Q 24 | q 25 | 1.000000 0.000000 -0.000000 1.000000 12.000000 3.286133 cm 26 | 0.258824 0.521569 0.956863 scn 27 | 11.039998 8.452538 m 28 | 11.039998 9.267992 10.966818 10.052082 10.830909 10.804810 c 29 | 0.000000 10.804810 l 30 | 0.000000 6.356400 l 31 | 6.189091 6.356400 l 32 | 5.922500 4.918901 5.112273 3.700947 3.894318 2.885493 c 33 | 3.894318 0.000037 l 34 | 7.610909 0.000037 l 35 | 9.785454 2.002082 11.039998 4.950265 11.039998 8.452538 c 36 | h 37 | f* 38 | n 39 | Q 40 | q 41 | 1.000000 0.000000 -0.000000 1.000000 1.722656 0.500244 cm 42 | 0.203922 0.658824 0.325490 scn 43 | 10.276818 -0.000058 m 44 | 13.381819 -0.000058 15.985001 1.029715 17.887728 2.786078 c 45 | 14.171137 5.671533 l 46 | 13.141364 4.981533 11.824091 4.573806 10.276818 4.573806 c 47 | 7.281591 4.573806 4.746364 6.596760 3.842045 9.314941 c 48 | 0.000000 9.314941 l 49 | 0.000000 6.335396 l 50 | 1.892273 2.576987 5.781364 -0.000058 10.276818 -0.000058 c 51 | h 52 | f* 53 | n 54 | Q 55 | q 56 | 1.000000 0.000000 -0.000000 1.000000 0.500000 6.835327 cm 57 | 0.984314 0.737255 0.019608 scn 58 | 5.065227 2.979556 m 59 | 4.835227 3.669556 4.704545 4.406601 4.704545 5.164556 c 60 | 4.704545 5.922511 4.835227 6.659556 5.065227 7.349556 c 61 | 5.065227 10.329102 l 62 | 1.223182 10.329102 l 63 | 0.444318 8.776602 0.000000 7.020238 0.000000 5.164556 c 64 | 0.000000 3.308874 0.444318 1.552509 1.223182 0.000010 c 65 | 5.065227 2.979556 l 66 | h 67 | f* 68 | n 69 | Q 70 | q 71 | 1.000000 0.000000 -0.000000 1.000000 1.722656 14.185059 cm 72 | 0.917647 0.262745 0.207843 scn 73 | 10.276819 4.741078 m 74 | 11.965229 4.741078 13.481138 4.160851 14.672956 3.021306 c 75 | 17.971365 6.319715 l 76 | 15.979774 8.175396 13.376593 9.314941 10.276819 9.314941 c 77 | 5.781364 9.314941 1.892273 6.737896 0.000000 2.979487 c 78 | 3.842046 -0.000058 l 79 | 4.746364 2.718124 7.281592 4.741078 10.276819 4.741078 c 80 | h 81 | f* 82 | n 83 | Q 84 | 85 | endstream 86 | endobj 87 | 88 | 3 0 obj 89 | 1848 90 | endobj 91 | 92 | 4 0 obj 93 | << /Annots [] 94 | /Type /Page 95 | /MediaBox [ 0.000000 0.000000 24.000000 24.000000 ] 96 | /Resources 1 0 R 97 | /Contents 2 0 R 98 | /Parent 5 0 R 99 | >> 100 | endobj 101 | 102 | 5 0 obj 103 | << /Kids [ 4 0 R ] 104 | /Count 1 105 | /Type /Pages 106 | >> 107 | endobj 108 | 109 | 6 0 obj 110 | << /Pages 5 0 R 111 | /Type /Catalog 112 | >> 113 | endobj 114 | 115 | xref 116 | 0 7 117 | 0000000000 65535 f 118 | 0000000010 00000 n 119 | 0000000034 00000 n 120 | 0000001938 00000 n 121 | 0000001961 00000 n 122 | 0000002134 00000 n 123 | 0000002208 00000 n 124 | trailer 125 | << /ID [ (some) (id) ] 126 | /Root 6 0 R 127 | /Size 7 128 | >> 129 | startxref 130 | 2267 131 | %%EOF -------------------------------------------------------------------------------- /SnackOverFlow/SnackOverFlowApp.swift: -------------------------------------------------------------------------------- 1 | // 2 | // snackoverflowApp.swift 3 | // snackoverflow 4 | // 5 | // Created by Veli Bacik on 15.09.2022. 6 | // 7 | 8 | import SwiftUI 9 | 10 | @main 11 | struct SnackOverFlowApp: App { 12 | var body: some Scene { 13 | WindowGroup { 14 | ContentView() 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /SnackOverFlow/Utils/Enums/Icons.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Icons.swift 3 | // snackoverflow 4 | // 5 | // Created by Veli Bacik on 15.09.2022. 6 | // 7 | 8 | import Foundation 9 | 10 | enum Icons: String { 11 | case appLogo = "ic_app_logo" 12 | } 13 | 14 | enum IconItems { 15 | enum Social: String { 16 | case facebook = "ic_facebook" 17 | case google = "ic_google" 18 | case apple = "ic_apple" 19 | } 20 | 21 | enum TabView: String { 22 | case home = "ic_home" 23 | case edit = "ic_edit" 24 | case favorite = "ic_favorite" 25 | case market = "ic_market" 26 | case person = "ic_person" 27 | } 28 | 29 | static let mail: String = "ic_mail" 30 | static let lock: String = "ic_lock" 31 | } 32 | -------------------------------------------------------------------------------- /SnackOverFlow/Utils/Enums/Images.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Images.swift 3 | // snackoverflow 4 | // 5 | // Created by Veli Bacik on 15.09.2022. 6 | // 7 | 8 | import Foundation 9 | import SwiftUI 10 | 11 | enum Images: String { 12 | case juice = "img_juice" 13 | } 14 | 15 | 16 | struct ImageItems { 17 | 18 | enum Authentication: String { 19 | case login = "wolcano" 20 | } 21 | } 22 | 23 | enum IconAssets: String { 24 | case mail = "mail" 25 | case lock = "lock" 26 | } 27 | 28 | 29 | extension String { 30 | 31 | /// String path to image 32 | /// - Returns: realeted image from Image asset 33 | func image() -> Image { 34 | return Image(self) 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /SnackOverFlow/Utils/Enums/PagePaddings.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PagePaddings.swift 3 | // snackoverflow 4 | // 5 | // Created by Veli Bacik on 28.09.2022. 6 | // 7 | 8 | import Foundation 9 | 10 | struct PagePadding { 11 | enum All: Double { 12 | case normal = 16 13 | } 14 | 15 | enum Horizontal: Double { 16 | case normal = 20 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /SnackOverFlow/Utils/Enums/Radius.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Radius.swift 3 | // snackoverflow 4 | // 5 | // Created by Veli Bacik on 28.09.2022. 6 | // 7 | 8 | import Foundation 9 | 10 | 11 | struct RadiusItems { 12 | 13 | static let radius: Double = 8 14 | } 15 | -------------------------------------------------------------------------------- /SnackOverFlow/Utils/Enums/Size/ViewHeight.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewHeight.swift 3 | // snackoverflow 4 | // 5 | // Created by Veli Bacik on 18.10.2022. 6 | // 7 | 8 | import Foundation 9 | 10 | 11 | struct ViewHeight { 12 | static let indicator: Double = 6 13 | } 14 | -------------------------------------------------------------------------------- /SnackOverFlow/Utils/Enums/Size/ViewSize.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewSize.swift 3 | // snackoverflow 4 | // 5 | // Created by Veli Bacik on 28.09.2022. 6 | // 7 | 8 | import Foundation 9 | 10 | struct DividerViewSize { 11 | static let normal: Double = 2 12 | } 13 | 14 | -------------------------------------------------------------------------------- /SnackOverFlow/Utils/Extension/Colors.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Colors.swift 3 | // snackoverflow 4 | // 5 | // Created by Veli Bacik on 15.09.2022. 6 | // 7 | 8 | import SwiftUI 9 | 10 | extension Color { 11 | public static var deepSkyBlue: Color { Color("deepSkyBlue") } 12 | public static var peach: Color { Color("peach") } 13 | public static var clooney: Color { Color("clooney") } 14 | public static var carl: Color { Color("carl") } 15 | public static var teflon: Color { Color("teflon") } 16 | public static var gandalf: Color { Color("gandalf") } 17 | public static var flowerBlue: Color { Color("cornFlowerBlue") } 18 | } 19 | -------------------------------------------------------------------------------- /SnackOverFlow/Utils/Extension/Custom+EdgeInsets.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Custom+EdgeInsets.swift 3 | // snackoverflow 4 | // 5 | // Created by Veli Bacik on 28.09.2022. 6 | // 7 | 8 | import SwiftUI 9 | 10 | 11 | extension EdgeInsets { 12 | 13 | 14 | } 15 | -------------------------------------------------------------------------------- /SnackOverFlow/Utils/Extension/DynamicSize+GeometryProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DynamicSize+GeometryProxy.swift 3 | // snackoverflow 4 | // 5 | // Created by Veli Bacik on 28.09.2022. 6 | // 7 | 8 | import SwiftUI 9 | 10 | extension GeometryProxy { 11 | 12 | /// Dynamic Height by device 13 | /// - Parameter height: Percent value 14 | /// - Returns: Calculated value for device height 15 | func dh(height: Double) -> Double { 16 | return size.height * height 17 | } 18 | 19 | /// Dynamic Width by device 20 | /// - Parameter width: Percent value 21 | /// - Returns: Calculated value for device width 22 | func dw(width: Double) -> Double { 23 | return size.width * width 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /SnackOverFlow/Utils/Extension/EdgeInsets.swift: -------------------------------------------------------------------------------- 1 | // 2 | // EdgeInsets.swift 3 | // snackoverflow 4 | // 5 | // Created by Veli Bacik on 15.09.2022. 6 | // 7 | 8 | import SwiftUI 9 | 10 | extension EdgeInsets { 11 | public static let paddingAll = EdgeInsets.init(top: 10, leading: 10, bottom: 10, trailing: 10) 12 | } 13 | -------------------------------------------------------------------------------- /SnackOverFlow/Utils/Fonts/FontSizes.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FontSizes.swift 3 | // snackoverflow 4 | // 5 | // Created by Veli Bacik on 28.09.2022. 6 | // 7 | 8 | import Foundation 9 | 10 | 11 | struct FontSizes { 12 | static let headline: Double = 16 13 | static let largeTitle: Double = 34 14 | static let title1: Double = 28 15 | static let caption1: Double = 12 16 | } 17 | -------------------------------------------------------------------------------- /SnackOverFlow/Utils/Locale/LocaleKeys.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LocaleKeys.swift 3 | // snackoverflow 4 | // 5 | // Created by Veli Bacik on 28.09.2022. 6 | // 7 | 8 | import SwiftUI 9 | 10 | struct LocaleKeys { 11 | enum Auth: String { 12 | case facebook = "signInFacebook" 13 | case google = "signInGoogle" 14 | case apple = "signInApple" 15 | case custom = "signupWithEmail" 16 | } 17 | 18 | enum Buttons: String { 19 | case getStarted 20 | } 21 | 22 | enum General: String { 23 | case emailHint = "getStarted" 24 | case passwordHint 25 | } 26 | 27 | enum Login: String { 28 | case welcomeBack 29 | case createAccount 30 | case terms = "termsAndCondition" 31 | } 32 | 33 | enum TabView: String { 34 | case home = "tabHome" 35 | case market = "tabMarket" 36 | case create = "tabCreate" 37 | case wishlist = "tabWishlist" 38 | case account = "tabAccount" 39 | } 40 | } 41 | 42 | extension String { 43 | /// It lolcalize any string from Localizable.string 44 | /// - Returns: Localized value 45 | func locale() -> LocalizedStringKey { 46 | return LocalizedStringKey(self) 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /SnackOverFlow/Utils/Locale/en.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | /* 2 | Localizable.strings 3 | snackoverflow 4 | 5 | Created by Veli Bacik on 28.09.2022. 6 | 7 | */ 8 | "signInFacebook" = "Sign In with Facebook"; 9 | "signInGoogle" = "Sign In with Google"; 10 | "signInApple" = "Sign In with Apple"; 11 | "signupWithEmail" = "Sign Up with Email"; 12 | 13 | // Login 14 | "welcomeBack" = "Welcome Back"; 15 | "createAccount" = "Create account"; 16 | "termsAndCondition"="By clicking \"Create account\", I agree to SnackOverflow’s [TOS](www.com.vb) and [Privacy Policy](www.com.vb2)"; 17 | 18 | //Buttton 19 | "getStarted" = "Get started"; 20 | 21 | //General 22 | "emailHint" = "Write your email"; 23 | "passwordHint" = "Write your password"; 24 | 25 | 26 | //Tab 27 | "tabHome" = "Home"; 28 | "tabMarket" = "Market"; 29 | "tabCreate" = "Create"; 30 | "tabWishlist" = "Wishlist"; 31 | "tabAccount" = "Account"; 32 | -------------------------------------------------------------------------------- /SnackOverFlow/Utils/ViewModifers/TextFieldModifier.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TextFieldModifier.swift 3 | // snackoverflow 4 | // 5 | // Created by Veli Bacik on 9.11.2022. 6 | // 7 | 8 | import Foundation 9 | import SwiftUI 10 | 11 | struct TextFieldModifier: ViewModifier { 12 | func body(content: Content) -> some View { 13 | return content.padding() 14 | .overlay(RoundedRectangle(cornerRadius: 10) 15 | .stroke(lineWidth: 2) 16 | ) 17 | .foregroundColor(Color.carl) 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /SnackOverFlow/Utils/ViewModifers/ViewStatusHiddenModifier.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewStatusHiddenModifier.swift 3 | // snackoverflow 4 | // 5 | // Created by vb10 on 25.04.2023. 6 | // 7 | 8 | import Foundation 9 | import SwiftUI 10 | 11 | /// Toolbar Hidden for any view 12 | struct ViewStatusHiddenModifier: ViewModifier { 13 | @ViewBuilder 14 | func body(content: Content) -> some View { 15 | if #available(iOS 16.0, *) { 16 | content.toolbar(.hidden, for: .automatic) 17 | } else { 18 | content.navigationBarHidden(true) 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /github/Screen Shot 2022-09-28 at 03.42.37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VB10/snackoverflow/b502c7fead3b8d3d2e2bec9555e06d2cfa3da636/github/Screen Shot 2022-09-28 at 03.42.37.png -------------------------------------------------------------------------------- /snackoverflow.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 55; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 3503157C28D29C39002626A4 /* SnackOverFlowApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3503157B28D29C39002626A4 /* SnackOverFlowApp.swift */; }; 11 | 3503157E28D29C39002626A4 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3503157D28D29C39002626A4 /* ContentView.swift */; }; 12 | 3503158028D29C3A002626A4 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3503157F28D29C3A002626A4 /* Assets.xcassets */; }; 13 | 3503158328D29C3A002626A4 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3503158228D29C3A002626A4 /* Preview Assets.xcassets */; }; 14 | 3503159028D29D7C002626A4 /* WelcomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3503158F28D29D7C002626A4 /* WelcomeView.swift */; }; 15 | 3503159228D29DB1002626A4 /* Colors.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3503159128D29DB1002626A4 /* Colors.xcassets */; }; 16 | 3503159428D29DDC002626A4 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3503159328D29DDC002626A4 /* Images.xcassets */; }; 17 | 3503159828D29EEB002626A4 /* Images.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3503159728D29EEB002626A4 /* Images.swift */; }; 18 | 3503159C28D2A0D3002626A4 /* Colors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3503159B28D2A0D3002626A4 /* Colors.swift */; }; 19 | 3503159E28D2A133002626A4 /* Icons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3503159D28D2A133002626A4 /* Icons.swift */; }; 20 | 350315A228D2A50E002626A4 /* FacebookButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 350315A128D2A50E002626A4 /* FacebookButton.swift */; }; 21 | 350315A428D2A5D2002626A4 /* EdgeInsets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 350315A328D2A5D2002626A4 /* EdgeInsets.swift */; }; 22 | 3526FE12291B162400028386 /* LoginView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3526FE11291B162400028386 /* LoginView.swift */; }; 23 | 3526FE15291B1A8100028386 /* TextFieldModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3526FE14291B1A8100028386 /* TextFieldModifier.swift */; }; 24 | 35B9E52628FE3157004230B9 /* OnBoardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35B9E52528FE3157004230B9 /* OnBoardView.swift */; }; 25 | 35B9E52828FE3359004230B9 /* NormalButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35B9E52728FE3359004230B9 /* NormalButton.swift */; }; 26 | 35B9E52A28FE3788004230B9 /* OnBoardModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35B9E52928FE3788004230B9 /* OnBoardModel.swift */; }; 27 | 35B9E52C28FE3981004230B9 /* ViewHeight.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35B9E52B28FE3981004230B9 /* ViewHeight.swift */; }; 28 | 35D9DCC928E3C59700A4482D /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 35D9DCCB28E3C59700A4482D /* Localizable.strings */; }; 29 | 35D9DCCD28E3C61B00A4482D /* LocaleKeys.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35D9DCCC28E3C61B00A4482D /* LocaleKeys.swift */; }; 30 | 35D9DCCF28E3C71C00A4482D /* GoogleButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35D9DCCE28E3C71C00A4482D /* GoogleButton.swift */; }; 31 | 35D9DCD128E3C7B900A4482D /* Custom+EdgeInsets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35D9DCD028E3C7B900A4482D /* Custom+EdgeInsets.swift */; }; 32 | 35D9DCD328E3C7EF00A4482D /* PagePaddings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35D9DCD228E3C7EE00A4482D /* PagePaddings.swift */; }; 33 | 35D9DCD528E3C8BE00A4482D /* Radius.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35D9DCD428E3C8BE00A4482D /* Radius.swift */; }; 34 | 35D9DCD728E3C95900A4482D /* AppleButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35D9DCD628E3C95900A4482D /* AppleButton.swift */; }; 35 | 35D9DCDA28E3CA8C00A4482D /* ViewSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35D9DCD928E3CA8C00A4482D /* ViewSize.swift */; }; 36 | 35D9DCDC28E3CACB00A4482D /* EmailButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35D9DCDB28E3CACB00A4482D /* EmailButton.swift */; }; 37 | 35D9DCDF28E3CBB100A4482D /* FontSizes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35D9DCDE28E3CBB100A4482D /* FontSizes.swift */; }; 38 | 35D9DCE128E3CD7E00A4482D /* DynamicSize+GeometryProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35D9DCE028E3CD7E00A4482D /* DynamicSize+GeometryProxy.swift */; }; 39 | 542F00282A1C4191008FD915 /* MainTabView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 542F00272A1C4191008FD915 /* MainTabView.swift */; }; 40 | 542F002B2A1C4429008FD915 /* MainTabModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 542F002A2A1C4429008FD915 /* MainTabModel.swift */; }; 41 | 542F002E2A1C452D008FD915 /* HomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 542F002D2A1C452D008FD915 /* HomeView.swift */; }; 42 | 54A22CB129D26D41001BEAEC /* LoginViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54A22CB029D26D41001BEAEC /* LoginViewModel.swift */; }; 43 | 54A22CB329D26EB5001BEAEC /* LoginModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54A22CB229D26EB5001BEAEC /* LoginModel.swift */; }; 44 | 54A2A82E297F66EB007EF227 /* NetworkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54A2A82D297F66EB007EF227 /* NetworkManager.swift */; }; 45 | 54A2A831297F6AC5007EF227 /* UserResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54A2A830297F6AC5007EF227 /* UserResponse.swift */; }; 46 | 54A2A834297F6CD9007EF227 /* Alamofire in Frameworks */ = {isa = PBXBuildFile; productRef = 54A2A833297F6CD9007EF227 /* Alamofire */; }; 47 | 54A2A83C297F7010007EF227 /* Snack_Over_FlowTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54A2A83B297F7010007EF227 /* Snack_Over_FlowTests.swift */; }; 48 | 54E6AD1629F755CE009BFDE5 /* ViewStatusHiddenModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54E6AD1529F755CE009BFDE5 /* ViewStatusHiddenModifier.swift */; }; 49 | /* End PBXBuildFile section */ 50 | 51 | /* Begin PBXContainerItemProxy section */ 52 | 54A2A83D297F7010007EF227 /* PBXContainerItemProxy */ = { 53 | isa = PBXContainerItemProxy; 54 | containerPortal = 3503157028D29C38002626A4 /* Project object */; 55 | proxyType = 1; 56 | remoteGlobalIDString = 3503157728D29C39002626A4; 57 | remoteInfo = snackoverflow; 58 | }; 59 | /* End PBXContainerItemProxy section */ 60 | 61 | /* Begin PBXFileReference section */ 62 | 3503157828D29C39002626A4 /* Snack Over Flow.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Snack Over Flow.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 63 | 3503157B28D29C39002626A4 /* SnackOverFlowApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SnackOverFlowApp.swift; sourceTree = ""; }; 64 | 3503157D28D29C39002626A4 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; 65 | 3503157F28D29C3A002626A4 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 66 | 3503158228D29C3A002626A4 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; 67 | 3503158F28D29D7C002626A4 /* WelcomeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeView.swift; sourceTree = ""; }; 68 | 3503159128D29DB1002626A4 /* Colors.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Colors.xcassets; sourceTree = ""; }; 69 | 3503159328D29DDC002626A4 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 70 | 3503159728D29EEB002626A4 /* Images.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Images.swift; sourceTree = ""; }; 71 | 3503159B28D2A0D3002626A4 /* Colors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Colors.swift; sourceTree = ""; }; 72 | 3503159D28D2A133002626A4 /* Icons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Icons.swift; sourceTree = ""; }; 73 | 350315A128D2A50E002626A4 /* FacebookButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FacebookButton.swift; sourceTree = ""; }; 74 | 350315A328D2A5D2002626A4 /* EdgeInsets.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EdgeInsets.swift; sourceTree = ""; }; 75 | 3526FE11291B162400028386 /* LoginView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginView.swift; sourceTree = ""; }; 76 | 3526FE14291B1A8100028386 /* TextFieldModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldModifier.swift; sourceTree = ""; }; 77 | 35B9E52528FE3157004230B9 /* OnBoardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnBoardView.swift; sourceTree = ""; }; 78 | 35B9E52728FE3359004230B9 /* NormalButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NormalButton.swift; sourceTree = ""; }; 79 | 35B9E52928FE3788004230B9 /* OnBoardModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnBoardModel.swift; sourceTree = ""; }; 80 | 35B9E52B28FE3981004230B9 /* ViewHeight.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewHeight.swift; sourceTree = ""; }; 81 | 35D9DCCA28E3C59700A4482D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; 82 | 35D9DCCC28E3C61B00A4482D /* LocaleKeys.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocaleKeys.swift; sourceTree = ""; }; 83 | 35D9DCCE28E3C71C00A4482D /* GoogleButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GoogleButton.swift; sourceTree = ""; }; 84 | 35D9DCD028E3C7B900A4482D /* Custom+EdgeInsets.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Custom+EdgeInsets.swift"; sourceTree = ""; }; 85 | 35D9DCD228E3C7EE00A4482D /* PagePaddings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PagePaddings.swift; sourceTree = ""; }; 86 | 35D9DCD428E3C8BE00A4482D /* Radius.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Radius.swift; sourceTree = ""; }; 87 | 35D9DCD628E3C95900A4482D /* AppleButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppleButton.swift; sourceTree = ""; }; 88 | 35D9DCD928E3CA8C00A4482D /* ViewSize.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewSize.swift; sourceTree = ""; }; 89 | 35D9DCDB28E3CACB00A4482D /* EmailButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmailButton.swift; sourceTree = ""; }; 90 | 35D9DCDE28E3CBB100A4482D /* FontSizes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FontSizes.swift; sourceTree = ""; }; 91 | 35D9DCE028E3CD7E00A4482D /* DynamicSize+GeometryProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DynamicSize+GeometryProxy.swift"; sourceTree = ""; }; 92 | 542F00272A1C4191008FD915 /* MainTabView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainTabView.swift; sourceTree = ""; }; 93 | 542F002A2A1C4429008FD915 /* MainTabModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainTabModel.swift; sourceTree = ""; }; 94 | 542F002D2A1C452D008FD915 /* HomeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeView.swift; sourceTree = ""; }; 95 | 54A22CB029D26D41001BEAEC /* LoginViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginViewModel.swift; sourceTree = ""; }; 96 | 54A22CB229D26EB5001BEAEC /* LoginModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginModel.swift; sourceTree = ""; }; 97 | 54A2A82D297F66EB007EF227 /* NetworkManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkManager.swift; sourceTree = ""; }; 98 | 54A2A830297F6AC5007EF227 /* UserResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserResponse.swift; sourceTree = ""; }; 99 | 54A2A839297F7010007EF227 /* Snack Over FlowTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Snack Over FlowTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 100 | 54A2A83B297F7010007EF227 /* Snack_Over_FlowTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Snack_Over_FlowTests.swift; sourceTree = ""; }; 101 | 54E6AD1529F755CE009BFDE5 /* ViewStatusHiddenModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewStatusHiddenModifier.swift; sourceTree = ""; }; 102 | /* End PBXFileReference section */ 103 | 104 | /* Begin PBXFrameworksBuildPhase section */ 105 | 3503157528D29C39002626A4 /* Frameworks */ = { 106 | isa = PBXFrameworksBuildPhase; 107 | buildActionMask = 2147483647; 108 | files = ( 109 | 54A2A834297F6CD9007EF227 /* Alamofire in Frameworks */, 110 | ); 111 | runOnlyForDeploymentPostprocessing = 0; 112 | }; 113 | 54A2A836297F7010007EF227 /* Frameworks */ = { 114 | isa = PBXFrameworksBuildPhase; 115 | buildActionMask = 2147483647; 116 | files = ( 117 | ); 118 | runOnlyForDeploymentPostprocessing = 0; 119 | }; 120 | /* End PBXFrameworksBuildPhase section */ 121 | 122 | /* Begin PBXGroup section */ 123 | 3503156F28D29C38002626A4 = { 124 | isa = PBXGroup; 125 | children = ( 126 | 3503157A28D29C39002626A4 /* SnackOverFlow */, 127 | 54A2A83A297F7010007EF227 /* Snack Over FlowTests */, 128 | 3503157928D29C39002626A4 /* Products */, 129 | ); 130 | sourceTree = ""; 131 | }; 132 | 3503157928D29C39002626A4 /* Products */ = { 133 | isa = PBXGroup; 134 | children = ( 135 | 3503157828D29C39002626A4 /* Snack Over Flow.app */, 136 | 54A2A839297F7010007EF227 /* Snack Over FlowTests.xctest */, 137 | ); 138 | name = Products; 139 | sourceTree = ""; 140 | }; 141 | 3503157A28D29C39002626A4 /* SnackOverFlow */ = { 142 | isa = PBXGroup; 143 | children = ( 144 | 54A2A82B297F66D2007EF227 /* Core */, 145 | 3503158C28D29D22002626A4 /* Product */, 146 | 3503158B28D29D08002626A4 /* Feature */, 147 | 3503158A28D29CFE002626A4 /* Resources */, 148 | 3503158928D29CE9002626A4 /* Utils */, 149 | 3503157B28D29C39002626A4 /* SnackOverFlowApp.swift */, 150 | 3503157D28D29C39002626A4 /* ContentView.swift */, 151 | 3503158128D29C3A002626A4 /* Preview Content */, 152 | ); 153 | path = SnackOverFlow; 154 | sourceTree = ""; 155 | }; 156 | 3503158128D29C3A002626A4 /* Preview Content */ = { 157 | isa = PBXGroup; 158 | children = ( 159 | 3503158228D29C3A002626A4 /* Preview Assets.xcassets */, 160 | ); 161 | path = "Preview Content"; 162 | sourceTree = ""; 163 | }; 164 | 3503158928D29CE9002626A4 /* Utils */ = { 165 | isa = PBXGroup; 166 | children = ( 167 | 3526FE13291B1A5E00028386 /* ViewModifers */, 168 | 35D9DCDD28E3CBA300A4482D /* Fonts */, 169 | 35D9DCC628E3C58400A4482D /* Locale */, 170 | 3503159928D2A0B2002626A4 /* Extension */, 171 | 3503159628D29ED4002626A4 /* Enums */, 172 | ); 173 | path = Utils; 174 | sourceTree = ""; 175 | }; 176 | 3503158A28D29CFE002626A4 /* Resources */ = { 177 | isa = PBXGroup; 178 | children = ( 179 | 3503159528D29DE2002626A4 /* Assets */, 180 | ); 181 | path = Resources; 182 | sourceTree = ""; 183 | }; 184 | 3503158B28D29D08002626A4 /* Feature */ = { 185 | isa = PBXGroup; 186 | children = ( 187 | 542F00252A1C4159008FD915 /* MainHome */, 188 | 54A2A82F297F6ABB007EF227 /* Model */, 189 | 3503158D28D29D2C002626A4 /* Authentication */, 190 | ); 191 | path = Feature; 192 | sourceTree = ""; 193 | }; 194 | 3503158C28D29D22002626A4 /* Product */ = { 195 | isa = PBXGroup; 196 | children = ( 197 | 3503159F28D2A4FF002626A4 /* Widget */, 198 | ); 199 | path = Product; 200 | sourceTree = ""; 201 | }; 202 | 3503158D28D29D2C002626A4 /* Authentication */ = { 203 | isa = PBXGroup; 204 | children = ( 205 | 3526FE10291B161600028386 /* Login */, 206 | 35B9E52428FE314B004230B9 /* OnBoard */, 207 | 3503158E28D29D4E002626A4 /* Welcome */, 208 | ); 209 | path = Authentication; 210 | sourceTree = ""; 211 | }; 212 | 3503158E28D29D4E002626A4 /* Welcome */ = { 213 | isa = PBXGroup; 214 | children = ( 215 | 3503158F28D29D7C002626A4 /* WelcomeView.swift */, 216 | ); 217 | path = Welcome; 218 | sourceTree = ""; 219 | }; 220 | 3503159528D29DE2002626A4 /* Assets */ = { 221 | isa = PBXGroup; 222 | children = ( 223 | 3503157F28D29C3A002626A4 /* Assets.xcassets */, 224 | 3503159128D29DB1002626A4 /* Colors.xcassets */, 225 | 3503159328D29DDC002626A4 /* Images.xcassets */, 226 | ); 227 | path = Assets; 228 | sourceTree = ""; 229 | }; 230 | 3503159628D29ED4002626A4 /* Enums */ = { 231 | isa = PBXGroup; 232 | children = ( 233 | 35D9DCD828E3CA7E00A4482D /* Size */, 234 | 3503159728D29EEB002626A4 /* Images.swift */, 235 | 3503159D28D2A133002626A4 /* Icons.swift */, 236 | 35D9DCD228E3C7EE00A4482D /* PagePaddings.swift */, 237 | 35D9DCD428E3C8BE00A4482D /* Radius.swift */, 238 | ); 239 | path = Enums; 240 | sourceTree = ""; 241 | }; 242 | 3503159928D2A0B2002626A4 /* Extension */ = { 243 | isa = PBXGroup; 244 | children = ( 245 | 3503159B28D2A0D3002626A4 /* Colors.swift */, 246 | 350315A328D2A5D2002626A4 /* EdgeInsets.swift */, 247 | 35D9DCD028E3C7B900A4482D /* Custom+EdgeInsets.swift */, 248 | 35D9DCE028E3CD7E00A4482D /* DynamicSize+GeometryProxy.swift */, 249 | ); 250 | path = Extension; 251 | sourceTree = ""; 252 | }; 253 | 3503159F28D2A4FF002626A4 /* Widget */ = { 254 | isa = PBXGroup; 255 | children = ( 256 | 350315A028D2A505002626A4 /* Button */, 257 | ); 258 | path = Widget; 259 | sourceTree = ""; 260 | }; 261 | 350315A028D2A505002626A4 /* Button */ = { 262 | isa = PBXGroup; 263 | children = ( 264 | 350315A128D2A50E002626A4 /* FacebookButton.swift */, 265 | 35D9DCCE28E3C71C00A4482D /* GoogleButton.swift */, 266 | 35D9DCD628E3C95900A4482D /* AppleButton.swift */, 267 | 35D9DCDB28E3CACB00A4482D /* EmailButton.swift */, 268 | 35B9E52728FE3359004230B9 /* NormalButton.swift */, 269 | ); 270 | path = Button; 271 | sourceTree = ""; 272 | }; 273 | 3526FE10291B161600028386 /* Login */ = { 274 | isa = PBXGroup; 275 | children = ( 276 | 3526FE11291B162400028386 /* LoginView.swift */, 277 | 54A22CB029D26D41001BEAEC /* LoginViewModel.swift */, 278 | 54A22CB229D26EB5001BEAEC /* LoginModel.swift */, 279 | ); 280 | path = Login; 281 | sourceTree = ""; 282 | }; 283 | 3526FE13291B1A5E00028386 /* ViewModifers */ = { 284 | isa = PBXGroup; 285 | children = ( 286 | 3526FE14291B1A8100028386 /* TextFieldModifier.swift */, 287 | 54E6AD1529F755CE009BFDE5 /* ViewStatusHiddenModifier.swift */, 288 | ); 289 | path = ViewModifers; 290 | sourceTree = ""; 291 | }; 292 | 35B9E52428FE314B004230B9 /* OnBoard */ = { 293 | isa = PBXGroup; 294 | children = ( 295 | 35B9E52528FE3157004230B9 /* OnBoardView.swift */, 296 | 35B9E52928FE3788004230B9 /* OnBoardModel.swift */, 297 | ); 298 | path = OnBoard; 299 | sourceTree = ""; 300 | }; 301 | 35D9DCC628E3C58400A4482D /* Locale */ = { 302 | isa = PBXGroup; 303 | children = ( 304 | 35D9DCCB28E3C59700A4482D /* Localizable.strings */, 305 | 35D9DCCC28E3C61B00A4482D /* LocaleKeys.swift */, 306 | ); 307 | path = Locale; 308 | sourceTree = ""; 309 | }; 310 | 35D9DCD828E3CA7E00A4482D /* Size */ = { 311 | isa = PBXGroup; 312 | children = ( 313 | 35D9DCD928E3CA8C00A4482D /* ViewSize.swift */, 314 | 35B9E52B28FE3981004230B9 /* ViewHeight.swift */, 315 | ); 316 | path = Size; 317 | sourceTree = ""; 318 | }; 319 | 35D9DCDD28E3CBA300A4482D /* Fonts */ = { 320 | isa = PBXGroup; 321 | children = ( 322 | 35D9DCDE28E3CBB100A4482D /* FontSizes.swift */, 323 | ); 324 | path = Fonts; 325 | sourceTree = ""; 326 | }; 327 | 542F00252A1C4159008FD915 /* MainHome */ = { 328 | isa = PBXGroup; 329 | children = ( 330 | 542F002C2A1C4516008FD915 /* Home */, 331 | 542F00262A1C4160008FD915 /* Main */, 332 | ); 333 | path = MainHome; 334 | sourceTree = ""; 335 | }; 336 | 542F00262A1C4160008FD915 /* Main */ = { 337 | isa = PBXGroup; 338 | children = ( 339 | 542F00292A1C43FD008FD915 /* Model */, 340 | 542F00272A1C4191008FD915 /* MainTabView.swift */, 341 | ); 342 | path = Main; 343 | sourceTree = ""; 344 | }; 345 | 542F00292A1C43FD008FD915 /* Model */ = { 346 | isa = PBXGroup; 347 | children = ( 348 | 542F002A2A1C4429008FD915 /* MainTabModel.swift */, 349 | ); 350 | path = Model; 351 | sourceTree = ""; 352 | }; 353 | 542F002C2A1C4516008FD915 /* Home */ = { 354 | isa = PBXGroup; 355 | children = ( 356 | 542F002D2A1C452D008FD915 /* HomeView.swift */, 357 | ); 358 | path = Home; 359 | sourceTree = ""; 360 | }; 361 | 54A2A82B297F66D2007EF227 /* Core */ = { 362 | isa = PBXGroup; 363 | children = ( 364 | 54A2A82C297F66D9007EF227 /* Network */, 365 | ); 366 | path = Core; 367 | sourceTree = ""; 368 | }; 369 | 54A2A82C297F66D9007EF227 /* Network */ = { 370 | isa = PBXGroup; 371 | children = ( 372 | 54A2A82D297F66EB007EF227 /* NetworkManager.swift */, 373 | ); 374 | path = Network; 375 | sourceTree = ""; 376 | }; 377 | 54A2A82F297F6ABB007EF227 /* Model */ = { 378 | isa = PBXGroup; 379 | children = ( 380 | 54A2A830297F6AC5007EF227 /* UserResponse.swift */, 381 | ); 382 | path = Model; 383 | sourceTree = ""; 384 | }; 385 | 54A2A83A297F7010007EF227 /* Snack Over FlowTests */ = { 386 | isa = PBXGroup; 387 | children = ( 388 | 54A2A83B297F7010007EF227 /* Snack_Over_FlowTests.swift */, 389 | ); 390 | path = "Snack Over FlowTests"; 391 | sourceTree = ""; 392 | }; 393 | /* End PBXGroup section */ 394 | 395 | /* Begin PBXNativeTarget section */ 396 | 3503157728D29C39002626A4 /* snackoverflow */ = { 397 | isa = PBXNativeTarget; 398 | buildConfigurationList = 3503158628D29C3A002626A4 /* Build configuration list for PBXNativeTarget "snackoverflow" */; 399 | buildPhases = ( 400 | 3503157428D29C39002626A4 /* Sources */, 401 | 3503157528D29C39002626A4 /* Frameworks */, 402 | 3503157628D29C39002626A4 /* Resources */, 403 | ); 404 | buildRules = ( 405 | ); 406 | dependencies = ( 407 | ); 408 | name = snackoverflow; 409 | packageProductDependencies = ( 410 | 54A2A833297F6CD9007EF227 /* Alamofire */, 411 | ); 412 | productName = snackoverflow; 413 | productReference = 3503157828D29C39002626A4 /* Snack Over Flow.app */; 414 | productType = "com.apple.product-type.application"; 415 | }; 416 | 54A2A838297F7010007EF227 /* Snack Over FlowTests */ = { 417 | isa = PBXNativeTarget; 418 | buildConfigurationList = 54A2A83F297F7010007EF227 /* Build configuration list for PBXNativeTarget "Snack Over FlowTests" */; 419 | buildPhases = ( 420 | 54A2A835297F7010007EF227 /* Sources */, 421 | 54A2A836297F7010007EF227 /* Frameworks */, 422 | 54A2A837297F7010007EF227 /* Resources */, 423 | ); 424 | buildRules = ( 425 | ); 426 | dependencies = ( 427 | 54A2A83E297F7010007EF227 /* PBXTargetDependency */, 428 | ); 429 | name = "Snack Over FlowTests"; 430 | productName = "Snack Over FlowTests"; 431 | productReference = 54A2A839297F7010007EF227 /* Snack Over FlowTests.xctest */; 432 | productType = "com.apple.product-type.bundle.unit-test"; 433 | }; 434 | /* End PBXNativeTarget section */ 435 | 436 | /* Begin PBXProject section */ 437 | 3503157028D29C38002626A4 /* Project object */ = { 438 | isa = PBXProject; 439 | attributes = { 440 | BuildIndependentTargetsInParallel = 1; 441 | LastSwiftUpdateCheck = 1420; 442 | LastUpgradeCheck = 1340; 443 | TargetAttributes = { 444 | 3503157728D29C39002626A4 = { 445 | CreatedOnToolsVersion = 13.4; 446 | }; 447 | 54A2A838297F7010007EF227 = { 448 | CreatedOnToolsVersion = 14.2; 449 | TestTargetID = 3503157728D29C39002626A4; 450 | }; 451 | }; 452 | }; 453 | buildConfigurationList = 3503157328D29C38002626A4 /* Build configuration list for PBXProject "snackoverflow" */; 454 | compatibilityVersion = "Xcode 13.0"; 455 | developmentRegion = en; 456 | hasScannedForEncodings = 0; 457 | knownRegions = ( 458 | en, 459 | Base, 460 | ); 461 | mainGroup = 3503156F28D29C38002626A4; 462 | packageReferences = ( 463 | 54A2A832297F6CD9007EF227 /* XCRemoteSwiftPackageReference "Alamofire" */, 464 | ); 465 | productRefGroup = 3503157928D29C39002626A4 /* Products */; 466 | projectDirPath = ""; 467 | projectRoot = ""; 468 | targets = ( 469 | 3503157728D29C39002626A4 /* snackoverflow */, 470 | 54A2A838297F7010007EF227 /* Snack Over FlowTests */, 471 | ); 472 | }; 473 | /* End PBXProject section */ 474 | 475 | /* Begin PBXResourcesBuildPhase section */ 476 | 3503157628D29C39002626A4 /* Resources */ = { 477 | isa = PBXResourcesBuildPhase; 478 | buildActionMask = 2147483647; 479 | files = ( 480 | 35D9DCC928E3C59700A4482D /* Localizable.strings in Resources */, 481 | 3503159228D29DB1002626A4 /* Colors.xcassets in Resources */, 482 | 3503159428D29DDC002626A4 /* Images.xcassets in Resources */, 483 | 3503158328D29C3A002626A4 /* Preview Assets.xcassets in Resources */, 484 | 3503158028D29C3A002626A4 /* Assets.xcassets in Resources */, 485 | ); 486 | runOnlyForDeploymentPostprocessing = 0; 487 | }; 488 | 54A2A837297F7010007EF227 /* Resources */ = { 489 | isa = PBXResourcesBuildPhase; 490 | buildActionMask = 2147483647; 491 | files = ( 492 | ); 493 | runOnlyForDeploymentPostprocessing = 0; 494 | }; 495 | /* End PBXResourcesBuildPhase section */ 496 | 497 | /* Begin PBXSourcesBuildPhase section */ 498 | 3503157428D29C39002626A4 /* Sources */ = { 499 | isa = PBXSourcesBuildPhase; 500 | buildActionMask = 2147483647; 501 | files = ( 502 | 35D9DCDC28E3CACB00A4482D /* EmailButton.swift in Sources */, 503 | 54A22CB329D26EB5001BEAEC /* LoginModel.swift in Sources */, 504 | 54A2A831297F6AC5007EF227 /* UserResponse.swift in Sources */, 505 | 35D9DCCD28E3C61B00A4482D /* LocaleKeys.swift in Sources */, 506 | 54E6AD1629F755CE009BFDE5 /* ViewStatusHiddenModifier.swift in Sources */, 507 | 3503157E28D29C39002626A4 /* ContentView.swift in Sources */, 508 | 3503159C28D2A0D3002626A4 /* Colors.swift in Sources */, 509 | 3526FE12291B162400028386 /* LoginView.swift in Sources */, 510 | 35D9DCD128E3C7B900A4482D /* Custom+EdgeInsets.swift in Sources */, 511 | 3503159E28D2A133002626A4 /* Icons.swift in Sources */, 512 | 54A22CB129D26D41001BEAEC /* LoginViewModel.swift in Sources */, 513 | 35D9DCCF28E3C71C00A4482D /* GoogleButton.swift in Sources */, 514 | 542F002B2A1C4429008FD915 /* MainTabModel.swift in Sources */, 515 | 542F002E2A1C452D008FD915 /* HomeView.swift in Sources */, 516 | 35D9DCD728E3C95900A4482D /* AppleButton.swift in Sources */, 517 | 350315A228D2A50E002626A4 /* FacebookButton.swift in Sources */, 518 | 35D9DCD528E3C8BE00A4482D /* Radius.swift in Sources */, 519 | 3503159828D29EEB002626A4 /* Images.swift in Sources */, 520 | 35D9DCDA28E3CA8C00A4482D /* ViewSize.swift in Sources */, 521 | 35D9DCDF28E3CBB100A4482D /* FontSizes.swift in Sources */, 522 | 35D9DCD328E3C7EF00A4482D /* PagePaddings.swift in Sources */, 523 | 35B9E52828FE3359004230B9 /* NormalButton.swift in Sources */, 524 | 35B9E52628FE3157004230B9 /* OnBoardView.swift in Sources */, 525 | 3503159028D29D7C002626A4 /* WelcomeView.swift in Sources */, 526 | 3526FE15291B1A8100028386 /* TextFieldModifier.swift in Sources */, 527 | 350315A428D2A5D2002626A4 /* EdgeInsets.swift in Sources */, 528 | 35B9E52A28FE3788004230B9 /* OnBoardModel.swift in Sources */, 529 | 3503157C28D29C39002626A4 /* SnackOverFlowApp.swift in Sources */, 530 | 54A2A82E297F66EB007EF227 /* NetworkManager.swift in Sources */, 531 | 35D9DCE128E3CD7E00A4482D /* DynamicSize+GeometryProxy.swift in Sources */, 532 | 35B9E52C28FE3981004230B9 /* ViewHeight.swift in Sources */, 533 | 542F00282A1C4191008FD915 /* MainTabView.swift in Sources */, 534 | ); 535 | runOnlyForDeploymentPostprocessing = 0; 536 | }; 537 | 54A2A835297F7010007EF227 /* Sources */ = { 538 | isa = PBXSourcesBuildPhase; 539 | buildActionMask = 2147483647; 540 | files = ( 541 | 54A2A83C297F7010007EF227 /* Snack_Over_FlowTests.swift in Sources */, 542 | ); 543 | runOnlyForDeploymentPostprocessing = 0; 544 | }; 545 | /* End PBXSourcesBuildPhase section */ 546 | 547 | /* Begin PBXTargetDependency section */ 548 | 54A2A83E297F7010007EF227 /* PBXTargetDependency */ = { 549 | isa = PBXTargetDependency; 550 | target = 3503157728D29C39002626A4 /* snackoverflow */; 551 | targetProxy = 54A2A83D297F7010007EF227 /* PBXContainerItemProxy */; 552 | }; 553 | /* End PBXTargetDependency section */ 554 | 555 | /* Begin PBXVariantGroup section */ 556 | 35D9DCCB28E3C59700A4482D /* Localizable.strings */ = { 557 | isa = PBXVariantGroup; 558 | children = ( 559 | 35D9DCCA28E3C59700A4482D /* en */, 560 | ); 561 | name = Localizable.strings; 562 | sourceTree = ""; 563 | }; 564 | /* End PBXVariantGroup section */ 565 | 566 | /* Begin XCBuildConfiguration section */ 567 | 3503158428D29C3A002626A4 /* Debug */ = { 568 | isa = XCBuildConfiguration; 569 | buildSettings = { 570 | ALWAYS_SEARCH_USER_PATHS = NO; 571 | CLANG_ANALYZER_NONNULL = YES; 572 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 573 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; 574 | CLANG_ENABLE_MODULES = YES; 575 | CLANG_ENABLE_OBJC_ARC = YES; 576 | CLANG_ENABLE_OBJC_WEAK = YES; 577 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 578 | CLANG_WARN_BOOL_CONVERSION = YES; 579 | CLANG_WARN_COMMA = YES; 580 | CLANG_WARN_CONSTANT_CONVERSION = YES; 581 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 582 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 583 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 584 | CLANG_WARN_EMPTY_BODY = YES; 585 | CLANG_WARN_ENUM_CONVERSION = YES; 586 | CLANG_WARN_INFINITE_RECURSION = YES; 587 | CLANG_WARN_INT_CONVERSION = YES; 588 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 589 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 590 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 591 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 592 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 593 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 594 | CLANG_WARN_STRICT_PROTOTYPES = YES; 595 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 596 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 597 | CLANG_WARN_UNREACHABLE_CODE = YES; 598 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 599 | COPY_PHASE_STRIP = NO; 600 | DEBUG_INFORMATION_FORMAT = dwarf; 601 | ENABLE_STRICT_OBJC_MSGSEND = YES; 602 | ENABLE_TESTABILITY = YES; 603 | GCC_C_LANGUAGE_STANDARD = gnu11; 604 | GCC_DYNAMIC_NO_PIC = NO; 605 | GCC_NO_COMMON_BLOCKS = YES; 606 | GCC_OPTIMIZATION_LEVEL = 0; 607 | GCC_PREPROCESSOR_DEFINITIONS = ( 608 | "DEBUG=1", 609 | "$(inherited)", 610 | ); 611 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 612 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 613 | GCC_WARN_UNDECLARED_SELECTOR = YES; 614 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 615 | GCC_WARN_UNUSED_FUNCTION = YES; 616 | GCC_WARN_UNUSED_VARIABLE = YES; 617 | IPHONEOS_DEPLOYMENT_TARGET = 15.5; 618 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 619 | MTL_FAST_MATH = YES; 620 | ONLY_ACTIVE_ARCH = YES; 621 | SDKROOT = iphoneos; 622 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 623 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 624 | }; 625 | name = Debug; 626 | }; 627 | 3503158528D29C3A002626A4 /* Release */ = { 628 | isa = XCBuildConfiguration; 629 | buildSettings = { 630 | ALWAYS_SEARCH_USER_PATHS = NO; 631 | CLANG_ANALYZER_NONNULL = YES; 632 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 633 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; 634 | CLANG_ENABLE_MODULES = YES; 635 | CLANG_ENABLE_OBJC_ARC = YES; 636 | CLANG_ENABLE_OBJC_WEAK = YES; 637 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 638 | CLANG_WARN_BOOL_CONVERSION = YES; 639 | CLANG_WARN_COMMA = YES; 640 | CLANG_WARN_CONSTANT_CONVERSION = YES; 641 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 642 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 643 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 644 | CLANG_WARN_EMPTY_BODY = YES; 645 | CLANG_WARN_ENUM_CONVERSION = YES; 646 | CLANG_WARN_INFINITE_RECURSION = YES; 647 | CLANG_WARN_INT_CONVERSION = YES; 648 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 649 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 650 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 651 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 652 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 653 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 654 | CLANG_WARN_STRICT_PROTOTYPES = YES; 655 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 656 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 657 | CLANG_WARN_UNREACHABLE_CODE = YES; 658 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 659 | COPY_PHASE_STRIP = NO; 660 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 661 | ENABLE_NS_ASSERTIONS = NO; 662 | ENABLE_STRICT_OBJC_MSGSEND = YES; 663 | GCC_C_LANGUAGE_STANDARD = gnu11; 664 | GCC_NO_COMMON_BLOCKS = YES; 665 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 666 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 667 | GCC_WARN_UNDECLARED_SELECTOR = YES; 668 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 669 | GCC_WARN_UNUSED_FUNCTION = YES; 670 | GCC_WARN_UNUSED_VARIABLE = YES; 671 | IPHONEOS_DEPLOYMENT_TARGET = 15.5; 672 | MTL_ENABLE_DEBUG_INFO = NO; 673 | MTL_FAST_MATH = YES; 674 | SDKROOT = iphoneos; 675 | SWIFT_COMPILATION_MODE = wholemodule; 676 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 677 | VALIDATE_PRODUCT = YES; 678 | }; 679 | name = Release; 680 | }; 681 | 3503158728D29C3A002626A4 /* Debug */ = { 682 | isa = XCBuildConfiguration; 683 | buildSettings = { 684 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 685 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 686 | CODE_SIGN_STYLE = Automatic; 687 | CURRENT_PROJECT_VERSION = 1; 688 | DEVELOPMENT_ASSET_PATHS = "\"snackoverflow/Preview Content\""; 689 | ENABLE_PREVIEWS = YES; 690 | GENERATE_INFOPLIST_FILE = YES; 691 | INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; 692 | INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; 693 | INFOPLIST_KEY_UILaunchScreen_Generation = YES; 694 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; 695 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; 696 | LD_RUNPATH_SEARCH_PATHS = ( 697 | "$(inherited)", 698 | "@executable_path/Frameworks", 699 | ); 700 | MARKETING_VERSION = 1.0; 701 | PRODUCT_BUNDLE_IDENTIFIER = com.vb10.snackoverflow; 702 | PRODUCT_NAME = "Snack Over Flow"; 703 | SWIFT_EMIT_LOC_STRINGS = YES; 704 | SWIFT_VERSION = 5.0; 705 | TARGETED_DEVICE_FAMILY = "1,2"; 706 | }; 707 | name = Debug; 708 | }; 709 | 3503158828D29C3A002626A4 /* Release */ = { 710 | isa = XCBuildConfiguration; 711 | buildSettings = { 712 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 713 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 714 | CODE_SIGN_STYLE = Automatic; 715 | CURRENT_PROJECT_VERSION = 1; 716 | DEVELOPMENT_ASSET_PATHS = "\"snackoverflow/Preview Content\""; 717 | ENABLE_PREVIEWS = YES; 718 | GENERATE_INFOPLIST_FILE = YES; 719 | INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; 720 | INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; 721 | INFOPLIST_KEY_UILaunchScreen_Generation = YES; 722 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; 723 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; 724 | LD_RUNPATH_SEARCH_PATHS = ( 725 | "$(inherited)", 726 | "@executable_path/Frameworks", 727 | ); 728 | MARKETING_VERSION = 1.0; 729 | PRODUCT_BUNDLE_IDENTIFIER = com.vb10.snackoverflow; 730 | PRODUCT_NAME = "Snack Over Flow"; 731 | SWIFT_EMIT_LOC_STRINGS = YES; 732 | SWIFT_VERSION = 5.0; 733 | TARGETED_DEVICE_FAMILY = "1,2"; 734 | }; 735 | name = Release; 736 | }; 737 | 54A2A840297F7010007EF227 /* Debug */ = { 738 | isa = XCBuildConfiguration; 739 | buildSettings = { 740 | BUNDLE_LOADER = "$(TEST_HOST)"; 741 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; 742 | CODE_SIGN_STYLE = Automatic; 743 | CURRENT_PROJECT_VERSION = 1; 744 | GENERATE_INFOPLIST_FILE = YES; 745 | IPHONEOS_DEPLOYMENT_TARGET = 16.2; 746 | MARKETING_VERSION = 1.0; 747 | PRODUCT_BUNDLE_IDENTIFIER = "com.test.Snack-Over-FlowTests"; 748 | PRODUCT_NAME = "$(TARGET_NAME)"; 749 | SWIFT_EMIT_LOC_STRINGS = NO; 750 | SWIFT_VERSION = 5.0; 751 | TARGETED_DEVICE_FAMILY = "1,2"; 752 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Snack Over Flow.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Snack Over Flow"; 753 | }; 754 | name = Debug; 755 | }; 756 | 54A2A841297F7010007EF227 /* Release */ = { 757 | isa = XCBuildConfiguration; 758 | buildSettings = { 759 | BUNDLE_LOADER = "$(TEST_HOST)"; 760 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; 761 | CODE_SIGN_STYLE = Automatic; 762 | CURRENT_PROJECT_VERSION = 1; 763 | GENERATE_INFOPLIST_FILE = YES; 764 | IPHONEOS_DEPLOYMENT_TARGET = 16.2; 765 | MARKETING_VERSION = 1.0; 766 | PRODUCT_BUNDLE_IDENTIFIER = "com.test.Snack-Over-FlowTests"; 767 | PRODUCT_NAME = "$(TARGET_NAME)"; 768 | SWIFT_EMIT_LOC_STRINGS = NO; 769 | SWIFT_VERSION = 5.0; 770 | TARGETED_DEVICE_FAMILY = "1,2"; 771 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Snack Over Flow.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Snack Over Flow"; 772 | }; 773 | name = Release; 774 | }; 775 | /* End XCBuildConfiguration section */ 776 | 777 | /* Begin XCConfigurationList section */ 778 | 3503157328D29C38002626A4 /* Build configuration list for PBXProject "snackoverflow" */ = { 779 | isa = XCConfigurationList; 780 | buildConfigurations = ( 781 | 3503158428D29C3A002626A4 /* Debug */, 782 | 3503158528D29C3A002626A4 /* Release */, 783 | ); 784 | defaultConfigurationIsVisible = 0; 785 | defaultConfigurationName = Release; 786 | }; 787 | 3503158628D29C3A002626A4 /* Build configuration list for PBXNativeTarget "snackoverflow" */ = { 788 | isa = XCConfigurationList; 789 | buildConfigurations = ( 790 | 3503158728D29C3A002626A4 /* Debug */, 791 | 3503158828D29C3A002626A4 /* Release */, 792 | ); 793 | defaultConfigurationIsVisible = 0; 794 | defaultConfigurationName = Release; 795 | }; 796 | 54A2A83F297F7010007EF227 /* Build configuration list for PBXNativeTarget "Snack Over FlowTests" */ = { 797 | isa = XCConfigurationList; 798 | buildConfigurations = ( 799 | 54A2A840297F7010007EF227 /* Debug */, 800 | 54A2A841297F7010007EF227 /* Release */, 801 | ); 802 | defaultConfigurationIsVisible = 0; 803 | defaultConfigurationName = Release; 804 | }; 805 | /* End XCConfigurationList section */ 806 | 807 | /* Begin XCRemoteSwiftPackageReference section */ 808 | 54A2A832297F6CD9007EF227 /* XCRemoteSwiftPackageReference "Alamofire" */ = { 809 | isa = XCRemoteSwiftPackageReference; 810 | repositoryURL = "https://github.com/Alamofire/Alamofire.git"; 811 | requirement = { 812 | kind = upToNextMajorVersion; 813 | minimumVersion = 5.0.0; 814 | }; 815 | }; 816 | /* End XCRemoteSwiftPackageReference section */ 817 | 818 | /* Begin XCSwiftPackageProductDependency section */ 819 | 54A2A833297F6CD9007EF227 /* Alamofire */ = { 820 | isa = XCSwiftPackageProductDependency; 821 | package = 54A2A832297F6CD9007EF227 /* XCRemoteSwiftPackageReference "Alamofire" */; 822 | productName = Alamofire; 823 | }; 824 | /* End XCSwiftPackageProductDependency section */ 825 | }; 826 | rootObject = 3503157028D29C38002626A4 /* Project object */; 827 | } 828 | -------------------------------------------------------------------------------- /snackoverflow.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /snackoverflow.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /snackoverflow.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "pins" : [ 3 | { 4 | "identity" : "alamofire", 5 | "kind" : "remoteSourceControl", 6 | "location" : "https://github.com/Alamofire/Alamofire.git", 7 | "state" : { 8 | "revision" : "78424be314842833c04bc3bef5b72e85fff99204", 9 | "version" : "5.6.4" 10 | } 11 | } 12 | ], 13 | "version" : 2 14 | } 15 | -------------------------------------------------------------------------------- /snackoverflow.xcodeproj/project.xcworkspace/xcuserdata/vb.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VB10/snackoverflow/b502c7fead3b8d3d2e2bec9555e06d2cfa3da636/snackoverflow.xcodeproj/project.xcworkspace/xcuserdata/vb.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /snackoverflow.xcodeproj/project.xcworkspace/xcuserdata/vb10.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VB10/snackoverflow/b502c7fead3b8d3d2e2bec9555e06d2cfa3da636/snackoverflow.xcodeproj/project.xcworkspace/xcuserdata/vb10.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /snackoverflow.xcodeproj/xcuserdata/vb.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | snackoverflow.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /snackoverflow.xcodeproj/xcuserdata/vb10.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 9 | 21 | 22 | 23 | 25 | 37 | 38 | 39 | 41 | 53 | 54 | 55 | 57 | 69 | 70 | 71 | 73 | 85 | 86 | 87 | 89 | 101 | 102 | 103 | 105 | 117 | 118 | 132 | 133 | 147 | 148 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | -------------------------------------------------------------------------------- /snackoverflow.xcodeproj/xcuserdata/vb10.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | snackoverflow.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | 14 | 15 | --------------------------------------------------------------------------------