묻고 답해요
140만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨Part1: 진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024)
강의 자료를 모아보는 프로그램을 제작해보려고 합니다!
안녕하세요! 다름이 아니라 강의 자료를 모아보는 앱을 하나 만드려고 하는 상황입니다이 앱을 만들기 위해 애구마님 강의도 열심히 들을 예정입니다ㅎㅎ 예를 들어 1강부터~ 12강까지 강의가 있고 각각 pdf나 ppt 등의 강의 자료가 있다고 가정했을 때스위프트UI의 List 기능을 이용해서 리스트로 만들어 자료를 쉽게 찾아볼 수 있도록 만들고 싶습니다다만 지금 막힌 부분이 일단 List의 각각의 제목을 작성해줘야 하는데 제목을 파일명에서 긁어오고 싶습니다그리고 막힌 부분이 하나 더 있는데 파일을 불러오는 코드를 작성하고 싶은데 잘 모르겠습니다 구글링을 해보니까 PDFKIT이라는 라이브러리가 있는 것 같은데 제가 자료를 못 찾은 건지 UIKIT으로 작성된 예제 코드들 뿐이어서 파일 불러오기부터 막힌 상황입니다...! 혹시 괜찮으시다면 번거로우시겠지만 도와주실 수 있으실까요?? 구현하고자 하는 앱의 구조는 대강 아래와 같습니다일단 앱을 설치하면 아이폰이나 아이패드 내부에 해당 앱에서 볼 강의 자료 파일들을 담을 폴더가 자동으로 생성각각의 강의 자료들을 폴더로 옮김폴더에 파일이 들어올 때마다 순서대로 List에 추가(파일 이름에 1강 or 1. 등 순서를 구분할 수 있는 인덱스를 포함할 예정)실제로 뷰에서 보이는 List의 각각의 이름들은 파일 이름을 그대로 긁어오고 싶음 이 정도입니다..! 아 참고로 아주 기본적인 내용 뿐이지만 Text 뷰나 Button, (V, H, Z)Stack 등 아주 아주 기본적인 내용은 이해하고 있는 상황입니다 ㅎㅎ 아직 강의를 초반까지 밖에 듣지 않았지만 굉장히 쉽게 설명해주시려고 노력하는 부분이 저 같은 초심자에게는 굉장히 크게 와닿는 것 같습니다 남은 강의도 열공 해보겠습니다 좋은 하루 보내세요! 감사합니다!
-
해결됨Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)
깃허브 문의
안녕하세요. 애구마님 현재 강의는 구매했고 먼저 하던 공부를 끝낸 후 보려고 준비중인데 현재 이 강의를 공부하면서 클론 코딩을 할때 저의 깃허브에 공개용으로 코드나 강의에서 중요한 설명을 코드에 주석처리해서 업로드해도 괜찮을까요? 출처는 Readme로 남기려고 합니다. 깃허브는 이력서 제출시 포트폴리오와 함께 사용하고 있습니다.감사합니다.
-
해결됨Part1: 진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024)
NavigationLink 질문
NavigationLink를 통해서 화면 전환을 하게 되면 기본적으로 > Back 버튼이 생성이 됩니다.혹시 이걸 제가 원하는 형태로 커스텀 할 수 있을까요?
-
해결됨Part1: 진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024)
서적 추천 부탁드립니다!
안녕하세요! 이제 막 섹션 0을 수강 완료한 수강생입니다 다름이 아니라 강의랑 함께 볼만한 내용의 서적이 있는지 궁금해서 글을 남기게 되었습니다. 제가 개인적으로 강의 내용들을 책에다가 정리하면서 공부하는 타입이라서 혹시 강의해주시는 내용과 비슷한 서적 추천해주실만한 거 있으시면 추천 부탁드리겠습니다. 좋은 강의 만들어주셔서 감사합니다! 남은 강의도 성실하게 수강하겠습니다 ㅎㅎ
-
해결됨Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)
@Bindable VS @Environment + @Bindable
안녕하세요. 강의 잘 듣고 있습니다.첫번째 질문.다름이 아니라, 처음에 회원가입 기능을 구현할 때, ViewModel을 @Observable을 통해 관찰 가능한 상태로 두고, ViewModel을 다루는 가장 상위 View인 ContentView에서 @State로 선언하는 것까지는 이해가 됩니다.ContentView의 하위 뷰들 중에서,로그인과 관련한 뷰는Login - EnterEmail - EnterPassword - EnterName - EnterUserName - Complete인데,강사님께서 코드로 작성해주신 간접적으로 접근하는 방법 말고, @Environment(SignupViewModel.self) var signupViewModel var body: some View { @Bindable var signupViewModel = signupViewModel 처음 설명해주신 직접적인 접근 방식을 활용했습니다.@Bindable var signupViewModel: SignupViewModel var body: some View{와 같이, ViewModel에 read-write가 가능하기 위해 @Bindable을 사용한다는 사실은 알고 있습니다.하지만 문제는 아래와 같이 입력한 결과에 대해서 출력도 잘 하는데, @Bindable을 적용하였을 때, 마지막 CompleteView에서 아래의 완료 버튼을 눌렀을 때 MainTabView으로 넘어가지 않은 문제가 생겼습니다.기존Auth.auth().currentUser 을 사용했을 때, swiftUI에서 변화를 감지 못하기 때문에, 알려주신대로 ViewModel 내부에서 var currentUserSession: FirebaseAuth.User? 프로퍼티를 만들어 했는데.. 왜 이러한 문제점이 생기는걸까요?if signupViewModel.currentUserSession != nil{ MainTabView() } else { LoginView() .environment(signupViewModel) }물론, 강사님이 알려주신 방법대로 하면 잘 넘어갑니다 ^^.두 번째 질문간접적인 방법 .environment를 사용했을 때, 오류가 떠서 CANVAS를 끄고 작업을 하셨는데 오류를 없앨수 있는 방법이 있을까요?1) 최상단 InstagramCloneApp에 ViewModel을 적용?2) environment로 설정되는 모든 뷰의 #Preview에 .enivronment() 적용?긴 글 읽어주셔서 감사합니다 😃 답변 기다리겠습니다.
-
해결됨Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)
17강 firebase로 이미지 업로드하기에서 업로드가 안됩니다~
선생님! 캡쳐사진 공유드립니다!!
-
해결됨Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)
17강 firebase로 이미지 업로드하기에서 업로드가 안됩니다~
Thread 9: Fatal error: Unexpectedly found nil while unwrapping an Optional value위와같은 오류가 뜨면서,,, 업로드가 안됩니다..
-
해결됨Part1: 진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024)
질문합니다. 섹션 4 - 10 [투두 삭제기능 구현하기(onDelete)]
완전 초보이다보니 궁금증이 생겨서요.투두 타이틀 반복문 쓸땐 List { } 안에서 todoList 의 타이틀들을 반복할땐 Foreach 쓰시고, .onDelete에선 for _ in을 쓰셨는데 서로 적용할 조건이 다른건가요???
-
해결됨SwiftUI의 Property Wrapper(@State, @Binding...)
@State 관련 질문입니다
//정상 작동 하지 않는 코드 import SwiftUI struct MiniView: View { @State var numb: Int var body: some View { Text("\(numb)") .padding() } } struct ContentView: View { @State var number: Int = 0 var body: some View { VStack { Text("\(number)") } Button(action: { number += 1 }, label: { number%2 == 0 ? Text("짝") : Text("홀") }) MiniView(numb: number) } } #Preview { ContentView() }위의 코드는 작동하지 않습니다. 하지만 여기서MiniView 아래 numb 변수의 @State 를 지워주면정상 작동합니다. (아래코드) 이유가 뭘까요.. ㅜㅠ ?? //정상 작동 하는 코드 import SwiftUI struct MiniView: View { var numb: Int var body: some View { Text("\(numb)") .padding() } } struct ContentView: View { @State var number: Int = 0 var body: some View { VStack { Text("\(number)") } Button(action: { number += 1 }, label: { number%2 == 0 ? Text("짝") : Text("홀") }) MiniView(numb: number) } } #Preview { ContentView() }
-
해결됨Part1: 진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024)
섹션4-4 'NavigationStack' 오류가 납니다
'NavigationStack' is only available in iOS 16.0 or newer라고 뜹니다
-
미해결[Lv.2] 레벨업 - SwiftUI intermediate with Core Data, SwiftData
5월 업데이트 예정이었던 , iOS17 컨텐츠 SwifData 업데이트 언제 되나요 ?
SwiftData - iOS 17 (24년 5월 중 업데이트 예정)
-
미해결[Lv.1] 누구나 할 수 있는 - SwiftUI Basic with iOS 17
GalleryView 작성시, @State? @Bidnable? 의 차이점이 뭔지 궁금합니다.
IOS17로 업데이트 됨에 따라,@Observable 매크로를 활용하여 ViewModel을 활용하면,상태 변화를 감지하여 'View에서 자동적으로 업데이트 된다.'라고 알고 있습니다. @Observable 매크로를 사용해서 코드를 업데이트하던 중 궁금증이 생겨 질문을 남겨봅니다. ContentView, VideoView에서 AnimalViewModel의 인스턴스를 갖고 있을 때, var로 정의했을 때와 let으로 정의를 했을 때의 차이점이 있을까요?struct ContentView: View { // let이나 var이나 상관없는가? let vm: AnimalViewModel var body: some View { NavigationStack{ List{ // 1. Cover Image - hero Image CoverImageView(vm: vm)관련내용을 공부하다보니, 해당 링크에서https://www.donnywals.com/comparing-observable-to-observableobjects/"Defining an @Observable as a let property" 부분에HomeView에서 ViewModel에 @State 프로퍼티 래퍼를 사용한 후 let을 사용한다? 라는 내용을 본적이 있습니다. GalleryView에서 @State 프로퍼티 래퍼와 @Bindable 프로퍼티 래퍼를 사용했을 때의 차이점이 뭘까요 ㅠㅠ . 우선, @State로 했을 때는 변화의 감지를 HomeView에서도 GalleryView에서도 잘 작동하여, 슬라이더를 변화시켰을 때 Grid의 개수가 바뀝니다. 하지만 @Bindable 프로퍼티 래퍼를 사용했을 때에는 GalleryView에서만 슬라이더 변화를 감지 하고, HomeView에서는 변화를 감지하지 못하는 상황이 벌어집니다. @State var vm: AnimalViewModel@Bindable var vm: AnimalViewModelstruct GallaryView: View { @State var vm: AnimalViewModel var body: some View { NavigationStack{ ScrollView(.vertical, showsIndicators: false){ VStack(spacing: 30){ // 1. Image Image(vm.selectedAnimal) .resizable() .scaledToFill() .frame(width: 250, height: 250) .clipShape(Circle()) .overlay(Circle().stroke(Color.accentColor, lineWidth: 5)) // 2. Slider Slider(value: $vm.gridColumn, in: 2...4, step: 1) .padding(0) .onChange(of: vm.gridColumn) { withAnimation(Animation.easeInOut(duration: 1.0)){ vm.gridSwitch() } } // 3. Grid LazyVGrid(columns: vm.gridLayout, spacing: 20){ ForEach(vm.animals){ animal in Image(animal.image) .resizable() .scaledToFill() .frame(width: 80, height: 80) .clipShape(Circle()) .overlay(Circle().stroke(Color.white, lineWidth: 1)) .onTapGesture { withAnimation(Animation.spring()){ vm.selectedAnimal = animal.image } } } } } //:VSTACK .padding() } //:SCROLL .navigationTitle("갤러리") .navigationBarTitleDisplayMode(.inline) } //:NAVIGATION } } 추가로,@Observable 매크로를 이용한 예시가 잘 정리되어 있는 문서들이 있을까요?? 제가 잘 이해를 못한 건지, 이 부분이 너무 어렵네요. 감사합니다 😀
-
해결됨Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)
릴스 기능 문의
강의에 릴스 페이지에 대한 기능은 업데이트 되지 않는건가요???
-
해결됨Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)
init 함수가 없는 구조체에 인자가 들어갈 수 있는 이유가 궁금합니다.
"ProfileView(viewModel: ProfileViewModel(user: user))"ProfileView에는 init함수가 존재하지 않지만viewModel을 인자로 받아서 생성자를 호출할 수 있는 이유가 무엇인지 궁금합니다.viewModel에 @state를 사용했기 때문일까요?"구조체에 @state변수가 있다면 해당 구조체를 새로 만들 때 인자로 부여할 수 있다."이렇게 이해하면 될까요?? @state에 대해 설명부탁드립니다
-
해결됨Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)
NewPostViewModel.swift 생성후 오류 질문
NewPostViewModel.swift 파일에서 @Observable에 Unknown attribute 'Observable' 이런 오류가 발생합니다...찾아보니 ios버전이 17이하버전에서는 Observable을 사용할 수 없다고하는데, 제가 지금 16.4버전을 사용중에 있습니다. 버전을 업그레이드하려는데, 이 부분도 해결이 되지 않아서 그러는데, 어떻게 해야할까요?
-
해결됨Part1: 진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024)
강의를 들으면서 앱을 만들어보고 있습니다
chat gpt API를 활용해서 간단한 앱을 만들어보려고 하는데 API를 어떻게 써야할지 감이 잘 오지 않습니다.혹시 괜찮으시다면 관련된 자료나 예시를 알 수 있을까요?
-
해결됨Part1: 진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024)
섹션2.끝말잇기앱 질문 - textfield 입력 변수 수정 방법
끝말잇기 앱을 만들다가 궁금증이 생겼습니다.textfield 로 입력 받은 문자열을 수정해서 사용하고 싶을 때(예: 사용자가 소문자로 입력한 영문자를 모두 대문자로 바꾸고 싶을 때)어떻게 할 수 있나요? 입력받은 값을 저장한 변수를 건드리면 에러가 뜹니다. 즉,nextWord = nextWord + "수정 더함"해도 에러가 나고다른 변수에 대입한 후 그 변수를 바꾸려 해도 (nextWord2 = nextWord + "수정") 에러가 납니다.
-
해결됨Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)
선생님 12강 mvc 코드 실습 강의 내용 영상이 짤린건가요?
시작 부분이 뭔가 짤린 거 같습니다..?? 흐름을 따라갈 수 없어요 ㅜㅠㅜ
-
미해결Apple 출신 개발자의 SwiftUI Basic Part 1 기초튼튼
파트2 개강 예정시기
안녕하세요, 혹시 파트2 개강 예정시기를 대략적으로 알 수 있을까요?