annotate LazyBear/ContentView.swift @ 418:83438c010b29

Delete old alternative icons
author Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
date Fri, 11 Jun 2021 11:44:10 +0200
parents f9611c94d636
children 4effac4733b0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
163
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
1 //
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
2 // ContentView.swift
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
3 // LazyBear
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
4 //
296
b481783c32c0 Start version 4
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 287
diff changeset
5 // Created by Dennis Concepción Martín on 21/3/21.
163
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
6 //
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
7
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
8 import SwiftUI
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
9
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
10 struct ContentView: View {
321
8f8d5ad3dfa0 Preparing backend requests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 307
diff changeset
11 @State private var showWelcome = false
378
6802c2393203 Implementing ProfileView (Watchlists)
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 377
diff changeset
12 @State var selectedView = 1
321
8f8d5ad3dfa0 Preparing backend requests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 307
diff changeset
13
395
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
14 @Environment(\.managedObjectContext) private var moc
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
15 @FetchRequest(entity: WatchlistCompany.entity(), sortDescriptors: [])
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
16 var watchlistCompanies: FetchedResults<WatchlistCompany>
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
17
163
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
18 var body: some View {
385
7aab87e16661 Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 378
diff changeset
19 TabView(selection: $selectedView) {
7aab87e16661 Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 378
diff changeset
20 HomeView()
7aab87e16661 Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 378
diff changeset
21 .tabItem {
7aab87e16661 Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 378
diff changeset
22 Image(systemName: "house")
7aab87e16661 Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 378
diff changeset
23 Text("Home")
7aab87e16661 Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 378
diff changeset
24 }
7aab87e16661 Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 378
diff changeset
25 .tag(1) // Do not remove tags. It causes an odd behaviour when showView is activated
7aab87e16661 Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 378
diff changeset
26 SearchView()
7aab87e16661 Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 378
diff changeset
27 .tabItem {
7aab87e16661 Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 378
diff changeset
28 Image(systemName: "magnifyingglass")
7aab87e16661 Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 378
diff changeset
29 Text("Search")
7aab87e16661 Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 378
diff changeset
30 }
7aab87e16661 Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 378
diff changeset
31 .tag(2)
7aab87e16661 Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 378
diff changeset
32 ProfileView()
7aab87e16661 Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 378
diff changeset
33 .tabItem {
7aab87e16661 Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 378
diff changeset
34 Image(systemName: "person")
7aab87e16661 Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 378
diff changeset
35 Text("Profile")
7aab87e16661 Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 378
diff changeset
36 }
7aab87e16661 Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 378
diff changeset
37 .tag(3)
7aab87e16661 Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 378
diff changeset
38 }
395
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
39 .onAppear {
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
40 // isAppAlreadyLaunchedOnce()
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
41 createDefaultWatchlist()
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
42 }
385
7aab87e16661 Delete HelperView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 378
diff changeset
43 .sheet(isPresented: $showWelcome) {
321
8f8d5ad3dfa0 Preparing backend requests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 307
diff changeset
44
8f8d5ad3dfa0 Preparing backend requests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 307
diff changeset
45 }
163
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
46 }
321
8f8d5ad3dfa0 Preparing backend requests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 307
diff changeset
47
395
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
48 /*
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
49 Check if app is already launched one -> If not show welcome
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
50 */
321
8f8d5ad3dfa0 Preparing backend requests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 307
diff changeset
51 // private func isAppAlreadyLaunchedOnce() {
8f8d5ad3dfa0 Preparing backend requests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 307
diff changeset
52 // let defaults = UserDefaults.standard
8f8d5ad3dfa0 Preparing backend requests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 307
diff changeset
53 //
8f8d5ad3dfa0 Preparing backend requests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 307
diff changeset
54 // if let isAppAlreadyLaunchedOnce = defaults.string(forKey: "IsAppAlreadyLaunchedOnce") {
8f8d5ad3dfa0 Preparing backend requests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 307
diff changeset
55 // print("App already launched : \(isAppAlreadyLaunchedOnce)")
8f8d5ad3dfa0 Preparing backend requests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 307
diff changeset
56 // self.showWelcome = true
8f8d5ad3dfa0 Preparing backend requests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 307
diff changeset
57 // }
8f8d5ad3dfa0 Preparing backend requests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 307
diff changeset
58 // }
395
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
59
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
60 /*
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
61 Check if exist default watchlist (Core Data) -> if not, create it
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
62 */
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
63 private func createDefaultWatchlist() {
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
64 let defaultCompanies = [("TSLA", "Tesla Inc"), ("AAPL", "Apple Inc"), ("MSFT", "Microsoft Corporation"), ("GS", "Goldman Sachs Group, Inc.")]
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
65 if watchlistCompanies.isEmpty {
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
66 for tupleCompany in defaultCompanies {
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
67 let watchlistCompany = WatchlistCompany(context: moc)
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
68 watchlistCompany.symbol = tupleCompany.0
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
69 watchlistCompany.name = tupleCompany.1
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
70 watchlistCompany.watchlist = "Default watchlist"
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
71 }
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
72 do {
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
73 try moc.save()
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
74 print("Default watchlist created")
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
75 } catch {
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
76 print(error.localizedDescription)
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
77 }
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
78 }
a0cf8fe47044 Fix minor bugs
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 386
diff changeset
79 }
163
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
80 }
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
81
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
82 struct ContentView_Previews: PreviewProvider {
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
83 static var previews: some View {
165
125d268db489 Update UI
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 164
diff changeset
84 ContentView()
163
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
85 }
9d519f230f26 Start clean project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
86 }