Hi, I am a novice Swift developer, wanting to develop an app or three for my own use for now and as a learning experience. I want use Swift/SwiftUI to download a file (.sqlite) from AWS S3 Bucket and then upload when complete. I am trying to follow Amazon's tutorials but finding it difficult to apply to my code. So far I have been able to import the necessary packages (I think) into Xcode, but that is far as I have progressed.
Are there any good examples or templated that I can use to get started? Also another newbie question, what make ContentView.swift the first/parent view of the application?
I Appreciate your patience and assistance.
// ContentView.swift
// Shared
//
// Created by Cameron on 2/7/2022.
//
import SwiftUI
import Foundation
import ClientRuntime
import AWSClientRuntime
import AWSS3
struct ContentView: View {
@State var showFilter = false
@State var messageClicked = false
@State var attendanceClicked = false
@State var reportingClicked = false
let pvmaRed = Color(red: 234/255, green: 26/255, blue: 33/255)
var body: some View {
VStack {
Text("PVMA CRM")
.font(.largeTitle)
HStack {
if(!(messageClicked || attendanceClicked || reportingClicked)) {
Button("Filter") {
showFilter.toggle()
}
.frame(maxWidth: .infinity, alignment: .top)
.foregroundColor(pvmaRed)
}
}
.frame(maxWidth: .infinity, alignment: .top)
ZStack {
if(!(messageClicked || attendanceClicked || reportingClicked)) {
NavigationView {
List {
NavigationLink {
MemberDetail()
} label: {
MemberRow()
}
NavigationLink {
MemberDetail()
} label: {
MemberRow()
}
NavigationLink {
MemberDetail()
} label: {
MemberRow()
}
}
.navigationTitle("Members")
}
}
if (showFilter) {
Filter()
.frame(height: .infinity, alignment: .top)
.scaleEffect(x: 1.0, y: 1.0, anchor: .top)
.transition(.scale(scale: 0.0, anchor: .top) .animation(.easeInOut(duration: 0.66)))
}
if (messageClicked) {
message()
}
if (attendanceClicked) {
attendance()
}
if (reportingClicked) {
reporting()
}
}
Spacer()
HStack {
Button(action: {
messageClicked.toggle()
attendanceClicked = false
reportingClicked = false
showFilter = false
}, label: {
VStack {
Image("messages")
.resizable(resizingMode: .stretch)
.frame(width: 40, height: 40, alignment: .center)
.grayscale(messageClicked ? 0.0 : 1.0)
Text("Message")
.font(.caption)
.frame(width: 120)
.foregroundColor(messageClicked ? pvmaRed : .black)
}
})
Button(action: {
messageClicked = false
attendanceClicked.toggle()
reportingClicked = false
showFilter = false
}, label: {
VStack {
Image("attendance")
.resizable(resizingMode: .stretch)
.frame(width: 40, height: 40, alignment: .center)
.grayscale(attendanceClicked ? 0.0 : 1.0)
Text("Attendance")
.font(.caption)
.frame(width: 120)
.foregroundColor(attendanceClicked ? pvmaRed : .black)
}
})
Button(action: {
messageClicked = false
attendanceClicked = false
reportingClicked.toggle()
showFilter = false
}, label: {
VStack {
Image("reporting")
.resizable(resizingMode: .stretch)
.frame(width: 40, height: 40, alignment: .center)
.grayscale(reportingClicked ? 0.0 : 1.0)
Text("Reporting")
.font(.caption)
.frame(width: 120)
.foregroundColor(reportingClicked ? pvmaRed : .black)
}
})
}
}
.background(showFilter ?
Color(red: 0.94117647, green: 0.94117647, blue: 0.96470588) : Color(red: 1.0, green: 1.0, blue: 1.0))
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
.previewInterfaceOrientation(.portrait)
}
}
Bump
Hi all. With no response, so I need to reword this? Maybe it is unclear what I am asking.