changeset 7:a9690565726b

Add previews
author Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
date Mon, 26 Apr 2021 23:06:25 +0200
parents 9802bdd5c7f3
children 959175ee5ebd
files InteractiveCharts/UI Previews/ChartViewPreview.swift InteractiveCharts/UI Previews/ContentView.swift InteractiveCharts/UI Previews/Sample data/GenerateSampleData.swift
diffstat 3 files changed, 107 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/InteractiveCharts/UI Previews/ChartViewPreview.swift	Mon Apr 26 23:06:25 2021 +0200
@@ -0,0 +1,53 @@
+//
+//  ChartViewPreview.swift
+//  InteractiveCharts
+//
+//  Created by Dennis Concepción Martín on 26/4/21.
+//
+
+import SwiftUI
+
+struct ChartViewPreview: View {
+    var data: [Double]
+    var dates: [String]?
+    var hours: [String]?
+    
+    var range = ["5D", "1M", "3M", "1Y", "5Y"]
+    @State private var selectedRange = "3M"
+    
+    var body: some View {
+        NavigationView {
+            VStack(alignment: .leading) {
+                Text("Apple Inc")
+                    .font(.title3)
+                    .padding([.horizontal, .bottom])
+                
+                Picker("Select a range", selection: $selectedRange) {
+                    ForEach(range, id: \.self) {
+                        Text($0)
+                    }
+                }
+                .pickerStyle(SegmentedPickerStyle())
+                .padding(.horizontal)
+                
+                ChartView(data: data, dates: dates, hours: hours)
+                    .padding(.vertical)
+            }
+            .navigationTitle("AAPL")
+            .toolbar {
+                ToolbarItem(placement: .navigationBarTrailing) {
+                    Button(action: {}) {
+                        Image(systemName: "star")
+                    }
+                }
+                
+                ToolbarItem(placement: .navigationBarLeading) {
+                    Button(action: {}) {
+                        Image(systemName: "plus.circle")
+                    }
+                }
+            }
+        }
+        .navigationViewStyle(StackNavigationViewStyle())
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/InteractiveCharts/UI Previews/ContentView.swift	Mon Apr 26 23:06:25 2021 +0200
@@ -0,0 +1,25 @@
+//
+//  ContentView.swift
+//  InteractiveCharts
+//
+//  Created by Dennis Concepción Martín on 26/4/21.
+//
+
+import SwiftUI
+
+struct ContentView: View {
+    var body: some View {
+        TabView {
+            ChartViewPreview(data: generateSampleData(350))
+                .tabItem {
+                    Label("ChartView", systemImage: "house")
+                }
+        }
+    }
+}
+
+struct ContentView_Previews: PreviewProvider {
+    static var previews: some View {
+        ContentView()
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/InteractiveCharts/UI Previews/Sample data/GenerateSampleData.swift	Mon Apr 26 23:06:25 2021 +0200
@@ -0,0 +1,29 @@
+//
+//  GenerateSampleData.swift
+//  InteractiveCharts
+//
+//  Created by Dennis Concepción Martín on 26/4/21.
+//
+
+import SwiftUI
+
+/*
+ Generate sample data
+ */
+func generateSampleData(_ n: Int) -> [Double] {
+    var prices = [Double]()
+
+    for _ in (1..<n) {
+        var lastPrice = prices.last ?? 50.0
+        let randomNumber = Double.random(in: 0...0.02)
+        
+        if randomNumber < 0.013 {
+            lastPrice = lastPrice * (1 - randomNumber)
+        } else {
+            lastPrice = lastPrice * (1 + randomNumber)
+        }
+        
+        prices.append(lastPrice)
+    }
+    return prices
+}