Did some major reformatting of the Change Log tab (now Docs) and will hopefully get to adding some more actual features soon
This commit is contained in:
parent
5578d86ccf
commit
7b421a0a73
9 changed files with 294 additions and 45 deletions
|
|
@ -9,6 +9,9 @@
|
|||
/* Begin PBXBuildFile section */
|
||||
850062C92802328F0095F121 /* TabViewData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 850062C82802328F0095F121 /* TabViewData.swift */; };
|
||||
8502250E27FA5D0800FE8E95 /* ChangeLogData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8502250D27FA5D0800FE8E95 /* ChangeLogData.swift */; };
|
||||
850F8014284A7F6A0094580D /* DocsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 850F8013284A7F6A0094580D /* DocsView.swift */; };
|
||||
850F8016284A815C0094580D /* KnownIssues.swift in Sources */ = {isa = PBXBuildFile; fileRef = 850F8015284A815C0094580D /* KnownIssues.swift */; };
|
||||
850F8018284A83400094580D /* FeaturesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 850F8017284A83400094580D /* FeaturesView.swift */; };
|
||||
85AAA0D627FA2DD600F4B9A1 /* SplitsApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85AAA0D527FA2DD600F4B9A1 /* SplitsApp.swift */; };
|
||||
85AAA0D827FA2DD600F4B9A1 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85AAA0D727FA2DD600F4B9A1 /* ContentView.swift */; };
|
||||
85AAA0DA27FA2DDA00F4B9A1 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 85AAA0D927FA2DDA00F4B9A1 /* Assets.xcassets */; };
|
||||
|
|
@ -21,6 +24,9 @@
|
|||
/* Begin PBXFileReference section */
|
||||
850062C82802328F0095F121 /* TabViewData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabViewData.swift; sourceTree = "<group>"; };
|
||||
8502250D27FA5D0800FE8E95 /* ChangeLogData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeLogData.swift; sourceTree = "<group>"; };
|
||||
850F8013284A7F6A0094580D /* DocsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DocsView.swift; sourceTree = "<group>"; };
|
||||
850F8015284A815C0094580D /* KnownIssues.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KnownIssues.swift; sourceTree = "<group>"; };
|
||||
850F8017284A83400094580D /* FeaturesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeaturesView.swift; sourceTree = "<group>"; };
|
||||
85AAA0D227FA2DD600F4B9A1 /* Splits.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Splits.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
85AAA0D527FA2DD600F4B9A1 /* SplitsApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SplitsApp.swift; sourceTree = "<group>"; };
|
||||
85AAA0D727FA2DD600F4B9A1 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
|
||||
|
|
@ -65,6 +71,9 @@
|
|||
8502250D27FA5D0800FE8E95 /* ChangeLogData.swift */,
|
||||
85AAA0D727FA2DD600F4B9A1 /* ContentView.swift */,
|
||||
850062C82802328F0095F121 /* TabViewData.swift */,
|
||||
850F8017284A83400094580D /* FeaturesView.swift */,
|
||||
850F8013284A7F6A0094580D /* DocsView.swift */,
|
||||
850F8015284A815C0094580D /* KnownIssues.swift */,
|
||||
85AAA0E727FA2F1600F4B9A1 /* ChangeLogView.swift */,
|
||||
85AAA0E527FA2EB100F4B9A1 /* ModalView.swift */,
|
||||
85AAA0D927FA2DDA00F4B9A1 /* Assets.xcassets */,
|
||||
|
|
@ -161,8 +170,11 @@
|
|||
85AAA0D627FA2DD600F4B9A1 /* SplitsApp.swift in Sources */,
|
||||
850062C92802328F0095F121 /* TabViewData.swift in Sources */,
|
||||
8502250E27FA5D0800FE8E95 /* ChangeLogData.swift in Sources */,
|
||||
850F8014284A7F6A0094580D /* DocsView.swift in Sources */,
|
||||
850F8016284A815C0094580D /* KnownIssues.swift in Sources */,
|
||||
85AAA0E827FA2F1600F4B9A1 /* ChangeLogView.swift in Sources */,
|
||||
85AAA0E627FA2EB100F4B9A1 /* ModalView.swift in Sources */,
|
||||
850F8018284A83400094580D /* FeaturesView.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -10,6 +10,32 @@ import SwiftUI
|
|||
struct June2022: View {
|
||||
var body: some View {
|
||||
ScrollView {
|
||||
//2022-06-04
|
||||
HStack {
|
||||
VStack (alignment: .leading) {
|
||||
Text("2022-06-04")
|
||||
.font(.title2)
|
||||
Text("Version Prerelease Build LVSXT10d.2\n")
|
||||
.font(.footnote)
|
||||
Text("\u{2022} Reformatted some tabs, and added the Recently Resolved issues tab\n\u{2022} Moved the Help tab into Docs")
|
||||
}
|
||||
Spacer()
|
||||
}
|
||||
.padding(30)
|
||||
|
||||
//2022-06-03
|
||||
HStack {
|
||||
VStack (alignment: .leading) {
|
||||
Text("2022-06-03")
|
||||
.font(.title2)
|
||||
Text("Version Prerelease Build LVSXT10d\n")
|
||||
.font(.footnote)
|
||||
Text("\u{2022} Finished hours input.\n\u{2022} Moved some things around and the \"Change log\" tab is now \"Docs\" which holds info on features, the change log, and known issues, with a few other things.")
|
||||
}
|
||||
Spacer()
|
||||
}
|
||||
.padding(30)
|
||||
|
||||
//2022-06-01
|
||||
//gay
|
||||
HStack {
|
||||
|
|
|
|||
|
|
@ -9,16 +9,23 @@ import SwiftUI
|
|||
|
||||
struct ChangeLog: View {
|
||||
var body: some View {
|
||||
NavigationView {
|
||||
HStack {
|
||||
VStack (alignment: .leading) {
|
||||
Text("Change Log")
|
||||
.font(.largeTitle)
|
||||
.bold()
|
||||
}
|
||||
Spacer()
|
||||
}
|
||||
.padding()
|
||||
List {
|
||||
Section(header: Text("2022")) {
|
||||
NavigationLink("June", destination: June2022())
|
||||
NavigationLink("May", destination: May2022())
|
||||
NavigationLink("April", destination: April2022())
|
||||
}
|
||||
}
|
||||
.listStyle(.insetGrouped)
|
||||
.navigationTitle("Change log")
|
||||
}
|
||||
}
|
||||
}
|
||||
struct ChangeLog_Previews: PreviewProvider {
|
||||
|
|
|
|||
|
|
@ -37,25 +37,26 @@ struct ContentView: View {
|
|||
.frame(minWidth: 60, maxWidth: 300)
|
||||
HStack {
|
||||
VStack {
|
||||
Text("Total hours")
|
||||
Text("Hours")
|
||||
TextField("Enter hours here", text: $timeHours)
|
||||
.keyboardType(.numberPad)
|
||||
.textFieldStyle(.roundedBorder)
|
||||
}
|
||||
.frame(minWidth: 100)
|
||||
.padding(.leading, -15)
|
||||
.padding()
|
||||
VStack {
|
||||
Text("Total Minutes")
|
||||
TextField("Enter minutes here", text: $timeMinutes)
|
||||
.keyboardType(.numberPad)
|
||||
.textFieldStyle(.roundedBorder)
|
||||
}
|
||||
.frame(minWidth: 100)
|
||||
.padding(.trailing, -15)
|
||||
.padding()
|
||||
VStack {
|
||||
Text("Total Seconds")
|
||||
Text("Minutes")
|
||||
TextField("Enter minutes here", text: $timeMinutes)
|
||||
.keyboardType(.numberPad)
|
||||
.textFieldStyle(.roundedBorder)
|
||||
}
|
||||
.frame(minWidth: 100)
|
||||
.padding(.trailing, -15)
|
||||
.padding(.leading, -15)
|
||||
.padding()
|
||||
VStack {
|
||||
Text("Seconds")
|
||||
TextField("Enter seconds here", text: $timeSeconds)
|
||||
.keyboardType(.numberPad)
|
||||
.textFieldStyle(.roundedBorder)
|
||||
|
|
@ -96,13 +97,14 @@ struct PaceResults: View {
|
|||
|
||||
let leadingZeros:String = String(format: "%02d:%02d", timeMinutesUnderSixty, timeSecondsUnderSixty)
|
||||
|
||||
let actualTime:Double = timeMinutesDouble + (convertedSeconds / 100) + (totalHours * 60)
|
||||
let actualTime:Double = timeMinutesDouble + (convertedSeconds / 100) + ((Double(timeHours) ?? 0) * 60)
|
||||
let pace:Double = actualTime / distanceDub
|
||||
let paceString:String = String(format: "%.2f", pace)
|
||||
let hoursFormatted:String = String(format: "%.0f", totalHours)
|
||||
|
||||
VStack {
|
||||
Text("Distance: \(distance)\(selectedSystem)")
|
||||
Text("Total time: \(totalHours):\(leadingZeros)")
|
||||
Text("Total time: \(hoursFormatted):\(leadingZeros)")
|
||||
Text("\(paceString) minutes per \(selectedSystem)")
|
||||
}
|
||||
}
|
||||
|
|
@ -113,3 +115,36 @@ struct ContentView_Previews: PreviewProvider {
|
|||
ContentView()
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
struct AllTheMath {
|
||||
@Binding var timeHours: String
|
||||
@Binding var timeMinutes: String
|
||||
@Binding var timeSeconds: String
|
||||
@Binding var selectedSystem: String
|
||||
@Binding var distance: String
|
||||
|
||||
let distanceDub = Double(distance) ?? 1.0
|
||||
|
||||
let convertedSeconds:Double = (Double(timeSeconds) ?? 0) * (1.666666666666666666666666)
|
||||
let timeSecondsInt:Int = Int(timeSeconds) ?? 0
|
||||
let timeSecondsUnderSixty:Int = (timeSecondsInt % 60)
|
||||
|
||||
let timeSecondsToMinutes:Int = (timeSecondsInt - timeSecondsUnderSixty) / 60
|
||||
|
||||
let timeMinutesDouble:Double = Double(timeMinutes) ?? 0.0
|
||||
|
||||
let timeMinutesInt:Int = (Int(timeMinutes) ?? 0) + (timeSecondsToMinutes)
|
||||
let timeMinutesUnderSixty:Int = timeMinutesInt % 60
|
||||
let timeMinutesToHours:Int = (timeMinutesInt - timeMinutesUnderSixty) / 60
|
||||
|
||||
let totalHours:Double = Double(timeMinutesToHours) + (Double(timeHours) ?? 0)
|
||||
|
||||
let leadingZeros:String = String(format: "%02d:%02d", timeMinutesUnderSixty, timeSecondsUnderSixty)
|
||||
|
||||
let actualTime:Double = timeMinutesDouble + (convertedSeconds / 100) + ((Double(timeHours) ?? 0) * 60)
|
||||
let pace:Double = actualTime / distanceDub
|
||||
let paceString:String = String(format: "%.2f", pace)
|
||||
let hoursFormatted:String = String(format: "%.0f", totalHours)
|
||||
}
|
||||
*/
|
||||
|
|
|
|||
44
Splits/DocsView.swift
Normal file
44
Splits/DocsView.swift
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
//
|
||||
// DocsView.swift
|
||||
// Splits
|
||||
//
|
||||
// Created by Isaac Greene on 6/3/22.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct DocsView: View {
|
||||
var body: some View {
|
||||
NavigationView {
|
||||
List {
|
||||
NavigationLink("Help", destination: HelpView())
|
||||
NavigationLink("Change Log", destination: ChangeLog())
|
||||
|
||||
Section(header: Text("Features")) {
|
||||
NavigationLink("New", destination: NewFeatures())
|
||||
NavigationLink("In Progress", destination: InProgressFeatures())
|
||||
NavigationLink("Deprecated", destination: DeprecatedFeatures())
|
||||
}
|
||||
Section(header: Text("Known Issues")) {
|
||||
NavigationLink("Recently Resolved", destination: RecentlyResolved())
|
||||
NavigationLink("High Priority", destination: HighPriority())
|
||||
NavigationLink("Medium Priority", destination: MediumPriority())
|
||||
NavigationLink("Low Priority", destination: LowPriority())
|
||||
}
|
||||
Section(header: Text("App Information")) {
|
||||
Text("Version: Prerelease LVSXT10d.2")
|
||||
Text("Release date: 2022-06-04")
|
||||
Text("Start date: 2022-03-25")
|
||||
Text("App files: 9")
|
||||
}
|
||||
}
|
||||
.navigationTitle("Docs")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct DocsView_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
DocsView()
|
||||
}
|
||||
}
|
||||
76
Splits/FeaturesView.swift
Normal file
76
Splits/FeaturesView.swift
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
//
|
||||
// FeaturesView.swift
|
||||
// Splits
|
||||
//
|
||||
// Created by Isaac Greene on 6/3/22.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct NewFeatures: View {
|
||||
var body: some View {
|
||||
ScrollView {
|
||||
Text("New Features\n")
|
||||
.font(.largeTitle)
|
||||
.bold()
|
||||
.padding(.top, 40)
|
||||
VStack(alignment: .leading) {
|
||||
Text("\u{2022} Reformatted the Docs tabs and made the common things up at the top")
|
||||
Text("Implemented in Version Prerelease LVSXT10d.2 (current version)\n")
|
||||
.font(.footnote)
|
||||
.italic()
|
||||
Text("\u{2022} Added the Features, Known Issues, and moved the Change Log for better navigation")
|
||||
Text("Implemented in Version Prerelease LVSXT10d\n")
|
||||
.font(.footnote)
|
||||
.italic()
|
||||
Text("\u{2022} Total time now shows the time in a way we humans can understand")
|
||||
Text("Implemented in Version Prerelease LVSXT10k\n")
|
||||
.font(.footnote)
|
||||
.italic()
|
||||
}
|
||||
.padding(30)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct InProgressFeatures: View {
|
||||
var body: some View {
|
||||
ScrollView {
|
||||
Text("Features In Progress")
|
||||
.font(.largeTitle)
|
||||
.bold()
|
||||
.padding(.top, 40)
|
||||
Text("Note: this does not include things I have to fix\n")
|
||||
.font(.footnote)
|
||||
.italic()
|
||||
VStack(alignment: .leading) {
|
||||
Text("\u{2022} Working on a conversion between measurements for pace and distance\n")
|
||||
}
|
||||
.padding(30)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct DeprecatedFeatures: View {
|
||||
var body: some View {
|
||||
ScrollView {
|
||||
Text("Deprecated Features")
|
||||
.font(.largeTitle)
|
||||
.bold()
|
||||
.padding(.top, 40)
|
||||
VStack(alignment: .leading) {
|
||||
Text("\n\u{2022} Removed the picker wheel to enter total time (a truly horrible system)")
|
||||
Text("Stricken before recorded history\n")
|
||||
.font(.footnote)
|
||||
.italic()
|
||||
}
|
||||
.padding(30)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct FeaturesView_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
NewFeatures()
|
||||
}
|
||||
}
|
||||
75
Splits/KnownIssues.swift
Normal file
75
Splits/KnownIssues.swift
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
//
|
||||
// KnownIssues.swift
|
||||
// Splits
|
||||
//
|
||||
// Created by Isaac Greene on 6/3/22.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct RecentlyResolved: View {
|
||||
var body: some View {
|
||||
ScrollView {
|
||||
Text("Recently Resolved Issues")
|
||||
.font(.largeTitle)
|
||||
.bold()
|
||||
.padding(.top, 40)
|
||||
VStack(alignment: .leading) {
|
||||
Text("\n\u{2022} None since the addition of this tab")
|
||||
}
|
||||
.padding(30)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct HighPriority: View {
|
||||
var body: some View {
|
||||
ScrollView {
|
||||
Text("High Priority Issues")
|
||||
.font(.largeTitle)
|
||||
.bold()
|
||||
.padding(.top, 40)
|
||||
VStack(alignment: .leading) {
|
||||
Text("\n\u{2022} You can not dismiss the keyboard on iPhone\n\t\u{2022} This hides the tab bar at the bottom so you can't navigate the app after bringing it up")
|
||||
}
|
||||
.padding(30)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct MediumPriority: View {
|
||||
var body: some View {
|
||||
ScrollView {
|
||||
Text("Medium Priority Issues")
|
||||
.font(.largeTitle)
|
||||
.bold()
|
||||
.padding(.top, 40)
|
||||
VStack(alignment: .leading) {
|
||||
Text("Wow. Such Empty.")
|
||||
.italic()
|
||||
}
|
||||
.padding(30)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct LowPriority: View {
|
||||
var body: some View {
|
||||
ScrollView {
|
||||
Text("Low Priority Issues")
|
||||
.font(.largeTitle)
|
||||
.bold()
|
||||
.padding(.top, 40)
|
||||
VStack(alignment: .leading) {
|
||||
Text("\n\u{2022} Space between the equation and explanation in the \"Help\" tab is too large\n\u{2022} App has no custom icon")
|
||||
}
|
||||
.padding(30)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct KnownIssues_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
HighPriority()
|
||||
}
|
||||
}
|
||||
|
|
@ -8,7 +8,7 @@
|
|||
import SwiftUI
|
||||
import RichTextView
|
||||
|
||||
struct ModalView: View {
|
||||
struct HelpView: View {
|
||||
@State var mathSheet = false
|
||||
@State var problemSheet = false
|
||||
|
||||
|
|
@ -19,7 +19,7 @@ struct ModalView: View {
|
|||
.bold()
|
||||
.padding(.top, 40)
|
||||
|
||||
Text("Due to limitations in our system, you can only use kilometers and miles at this time. \nSmaller units like meters and feet are not supported. \nYou can, however, use decimals, such as .2km or .8mi.\n\nWe apologize for any inconvenience. In the future, we hope to make our app easier to use.")
|
||||
Text("Due to limitations in the system, you can only use kilometers and miles at this time. \nSmaller units like meters and feet are not supported. \nYou can, however, use decimals, such as .2km or .8mi.\n\nI apologize for any inconvenience. In the future, I hope to make our app easier to use.\n\nI'm currently looking to add help articles about running to this page and it'll have loads of stuff about running and pace and all that stuff to actually help you with running. If I do, the purpose of this app might change.")
|
||||
.padding()
|
||||
|
||||
Button("See our math", action: {
|
||||
|
|
@ -29,15 +29,6 @@ struct ModalView: View {
|
|||
.sheet(isPresented: self.$mathSheet, content: {
|
||||
algorithmView()
|
||||
})
|
||||
|
||||
Button("Known issues", action: {
|
||||
self.problemSheet.toggle()
|
||||
})
|
||||
.padding(30)
|
||||
.padding(.top, -30)
|
||||
.sheet(isPresented: self.$problemSheet, content: {
|
||||
problemView()
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -109,16 +100,3 @@ struct mathLaTeX_inator: UIViewRepresentable {
|
|||
)
|
||||
}
|
||||
}
|
||||
|
||||
struct problemView: View {
|
||||
var body: some View {
|
||||
VStack {
|
||||
Text("Known issues")
|
||||
.font(.largeTitle)
|
||||
.bold()
|
||||
.padding(.top, 40)
|
||||
Text("\n\u{2022} You can not dismiss the keyboard\n\t\u{2022} This hides the tab bar at the bottom so you can't navigate the app")
|
||||
.padding()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,13 +14,9 @@ struct TabViewData: View {
|
|||
.tabItem {
|
||||
Label("Calculator", systemImage: "candybarphone")
|
||||
}
|
||||
ModalView()
|
||||
DocsView()
|
||||
.tabItem {
|
||||
Label("Help", systemImage: "info.circle")
|
||||
}
|
||||
ChangeLog()
|
||||
.tabItem {
|
||||
Label("Change log", systemImage: "doc.text.fill")
|
||||
Label("Docs", systemImage: "doc.text.fill")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue