소개
🏫 상시 학생 할인중
강의 금액이 부담되는 학생분들을 위해서 본인 학교 메일 계정으로 예) @***.ac.kr , @***.edu
이메일 보내주시면 전 강의 할인 쿠폰을 보내 드립니다.
👉 jacobko@kakao.com
안녕하세요. 😀
뉴질랜드에서 iOS 개발을 하고 있는 Jacob 입니다.
SwiftUI 을 통해 누구나 쉽게 iOS APP 을 만들수 있도록 다양한 강의를 제작중에 있습니다.
SwiftUI 뿐만 아니라 다양한 iOS 개발 관련 자료들을 저의 Jacob's DevLog 에서 만나실 수 있습니다.
Hello. 😀
I'm Jacob,living in New Zealand.
I'm currently working on creating various tutorials to make it easy for anyone to develop iOS apps through SwiftUI.
You can find not only SwiftUI but also various iOS development-related materials on my Jacob's DevLog.
강의
전체2수강평
게시글
질문&답변
2024.05.03
ScrollView에서 질문 있습니다.
안녕하세요 VnPaz 님. 원래는 ForEach 반복문 사용시 Object 마다 ID 값을 부여하고, identifiable 값이여야 합니다. 원래 Int 타입으로 반복분 사용시 Xcode 에서 자동으로 배당되어 error 가 발생되지 않아 예제나, 강의에서 생략된것이 있습니다. id: \.self 을 적어서 적용하시면 아마 error 가 발생되지 않으실 겁니다. 감사합니다. (사진)
- 0
- 1
- 29
질문&답변
2024.03.23
코어데이터에 중복값 입력 방지
안녕하세요 hooyoung.paul.lee 님. CoreData 의 단점으로써 중복되 값의 입력을 방지하는 Unique 키가 없기 때문에 Code 상에서 중복 확인의 로직을 넣어 줘야 합니다. 저도 처음에 CoreData 사용하면서 많이 해맸던 부분인데요 Crete 하면 Entity 가 중복으로 생성되어 2개가 나오곤 했습니다. 결국 해결방법은 CoreData 가 생성될때마다 기존에 중복되는 값이 있는지 확인하고 없는 경우에만 Update 하라고 Logic 을 설정하는것이 안전합니다. 그래서 강의 Project - Coffee Stamp APP 을 보시면 Create, Delete, Update Data 부분 강의를 참조하시어 기존에 있을때 중복값이 저장되지 않게 Logic 을 넣으시면 됩니다. 감사합니다 Jacob
- 0
- 1
- 78
질문&답변
2024.03.23
MVVM에서 처음
안녕하세요 실눈개발자님. 먼저 답변하자면, @StateObejct 를 사용해서 초기화된 Viewmodel을 .environmentObject 에 넘겨줘야 합니다. 올려주신 코드로 작성해서 ViewModel 을 넘겨줘도 당장 Error 는 발생되지는 않지만 여러 View 와 연계되서 @EnviromentObject 로 ViewModel 과 Binding 시에 추후에 View 가 업데이트 되면서 데이터흐름상 충돌하게 되어 APP 에서 Error 가 발생됩니다. @StateObejct 를 사용하게 되면 생성된 객체(instance) 는 View 라이프사이클에 상관 없이, SwiftUI View 와 별개의 메모리 곤간에 저장해 데이터를 안전하게 보관하는 상태값을 Reference 해주는 역활을 하기때문에 나중에 충돌을 방지 할수 있습니다. 아래와 같이 프로젝트 진행하시면 될꺼 같습니다. 감사합니다 import SwiftUI @main struct mountainApp: App { @StateObject var vm: AuthViewModel = .init() var body: some Scene { WindowGroup { AuthView() .environmentObject(vm) } } }
- 0
- 1
- 71
질문&답변
2024.02.26
ExtractView, @Binding 강의에서 .previewLayout(.sizeThatFits) 함수 관련해서 질문드립니다.
안녕하세요 열쓰님. .previewLayout(.sizeThatFits) 적용이 #Preview {} 안에서 사용방식이 달라서 적용이 되지 않았습니다. 아래의 코드를 참고하시면 PreviewLayout 이 적용되는 점을 확인 하실 수 있습니다. 질문 주셔서 감사합니다 Jacob 프로젝트 내에 먼저 minimum deployment version 을 iOS17.0 이후 버전으로 맞춰 주세요 (사진) 아래와 같이 코드를 적용하시면 됩니다 // XCode 15 (iOS 17) 이후 PreView 변경 적용 #Preview(traits: .sizeThatFitsLayout) { BindingChild(backgroundColor: .constant(Color.orange), title: .constant("Binding Child")) } (사진)
- 0
- 2
- 112
질문&답변
2024.02.26
iOS 15 버전이후 프리뷰 문제 관련해서 질문드립니다.
안녕하세요 열쓰님. 먼저 프리뷰 문제에 대해서 질문주셔서 감사합니다. xcode15 이후 프리뷰 문제를 여러 강의에서 발견하였습니다. 제가 전 강의 체크해서 #Preview{} 메크로 형태로 바꾸어서 강의 자료를 다시 업로드 하였습니다. 질문 주신 강의 LazyGrid 변경된 부분은 강의 자료 예제코드 를 참조해주시고, 공지사항으로 #Preview 가 문제된 강의 목록 안내하도록 하겠습니다. 추후, 강의 전반적으로 영상 업데이트 하여 수정하도록 하겠습니다. 감사합니다. Jacob // // LazyGridBasic.swift // SwiftUIBasic // import SwiftUI struct LazyGridBasic1: View { // LazyVGrid // columns 의 갯수를 3개로 설정 let columns: [GridItem] = [ GridItem(.flexible(), spacing: 6, alignment: nil), GridItem(.flexible(), spacing: 6, alignment: nil), GridItem(.flexible(), spacing: 6, alignment: nil), ] var body: some View { // 1 - LazyVGrid ScrollView { // Hero 부분 (위에 사진 부분) Rectangle() .fill(Color.orange) .frame(height: 400) LazyVGrid( columns: columns, alignment: .center, spacing: 6, pinnedViews: [.sectionHeaders]) { // Section 1 Section(header: Text("Section1") .foregroundColor(.white) .font(.title) .frame(maxWidth: .infinity, alignment: .leading) .background(Color.blue) .padding() ) { ForEach(0..
- 0
- 2
- 119