Novice needing help - Download a file from AWS 3

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.

Add a Comment

Replies

Bump