Mercurial > public > stock-charts
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 +}