https://inf.run/V3b51 iOS Clean Architecture & MVVM: RxSwift 완전 정복 강의 | 덤벨로퍼 - 인프런덤벨로퍼 | , iOS Clean Architecture & MVVM: RxSwift 완전 정복현업에서 Clean Architecture와 MVVM 패턴은 이미 널리 사용되고 있으며, 많은 채용 공고에서도 필수 역량으로 요구되고 있습니다. 이 강의는 Clean Arwww.inflearn.com SwiftUI TCA로 기능을 구현중이다.아직 초보자 수준이라 매시간이 도전이고 고비다.그러던중 이런 에러가 나타났다. 런타임에 발생하며 크래시는 안나지만UI가 심하게 버벅이면서 에러가 자꾸 난다.Perceptible state was accessed but is no..
-
SwiftData 기본 사용법 Model, ModelContext, Query
엔티티 정의@Modelfinal class User: Identifiable { var name: String var email: String @Attribute(.externalStorage) var imageData: Data? init(name: String, email: String, imageData: Data? = nil) { self.name = name self.email = email self.imageData = imageData }}@Attribute 매크로 써서 외부 저장소에 저장가능좀 느리지만 큰 데이터 다루는 용도일반적인 내부데이터는 SQLite DB 사용하지만 이것은 Document 폴더에 들어간다고 함ex..
-
TextEditor 자동 스크롤 오류, cursor 위치 따라가기
TextEditor 자동 스크롤 오류, cursor 위치 따라가기ScrollView //전체 스크롤이 내려감 -- VStack -- TextEditor(title) -- TextEditor(content) // 여기위와 같은 구조로 되어있음 TextEditor 의 컨텐츠 내용이 길다보면 화면을 넘어가기 떄문에 ScrollView로 감싸서 아래로 쭉 스크롤이 가능할것이다.TextEditor(text: $store.content.sending(\\.setContent)) .focused($focusedField, equals: .content) .frame(minHeight: 160, maxHeight: .infinity) .font(.sy..
-
긴 text 내용이 minHeight에 잘리는 문제 (onAppear, task)
의도한 동작은 최소 160의 높이를 가지고 내용이 길수록 TextEditor도 늘어나야 함 TextEditor(text: $store.content.sending(\\.setContent)) .focused($focusedField, equals: .content) .frame(minHeight: 160) .font(.system(size: 16)) .padding(.top, 16)내용을 처음부터 입력 할떄는 정상 동작하지만처음부터 content 가 길 경우 160 높이 에서 잘림, 입력하면 동적으로 늘어남 OnAppear 이후에 컨텐츠 갱신..
-
Observable → Async / Await 으로 변환하여 API 처리하기 (AsyncThrowingStream, withCheckedThrowingContinuation)
기존 삭제 기능 은 Observable을 사용하여 구현되었다 private func deleteImage(accessKey: String) -> Observable { return networking.request(.deleteImage(accessKey: accessKey)).asObservable() } 문제점은 해당 API를 요청하는데 사용 하는곳은 async/await 구조로 되어 있다는것이다.그렇다고 Base 네트워크까지 건드릴수는 없기 떄문에 네트워킹 구현체 부분은 수정할수없다그럼 응답을 처리하는곳에서 Rx→ async/await 으로 바꿔주는 로직이 필요하다.EX> UsecasewithCheckedThrowingContinuation웹소켓이나 지속적인 응답을 받는..
-
SwiftUI TextEditor에 키보드 toolbar가 노출되지 않는 오류
ScrollView 내부에 두개의 TextEditor가있다 ScrollView { VStack(spacing: 0) { if case .post = store.contentType { TextEditor(text: $store.title.sending(\\.setTitle)) .focused($focusedField, equals: .title) .frame(minHeight: 30) .frame(maxWidth: .infinity) .font(.system(size: 18, weight: .bold)) .padding(.top, 24..
리스트 : 콘텐츠가 있으면 최근 5건을 불러옵니다.
-
SwiftData 기본 사용법 Model, ModelContext, QuerySwift 2025.05.08 09:03
엔티티 정의@Modelfinal class User: Identifiable { var name: String var email: String @Attribute(.externalStorage) var imageData: Data? init(name: String, email: String, imageData: Data? = nil) { self.name = name self.email = email self.imageData = imageData }}@Attribute 매크로 써서 외부 저장소에 저장가능좀 느리지만 큰 데이터 다루는 용도일반적인 내부데이터는 SQLite DB 사용하지만 이것은 Document 폴더에 들어간다고 함ex..
-
TextEditor 자동 스크롤 오류, cursor 위치 따라가기Swift 2025.04.18 17:20
TextEditor 자동 스크롤 오류, cursor 위치 따라가기ScrollView //전체 스크롤이 내려감 -- VStack -- TextEditor(title) -- TextEditor(content) // 여기위와 같은 구조로 되어있음 TextEditor 의 컨텐츠 내용이 길다보면 화면을 넘어가기 떄문에 ScrollView로 감싸서 아래로 쭉 스크롤이 가능할것이다.TextEditor(text: $store.content.sending(\\.setContent)) .focused($focusedField, equals: .content) .frame(minHeight: 160, maxHeight: .infinity) .font(.sy..
-
긴 text 내용이 minHeight에 잘리는 문제 (onAppear, task)Swift 2025.04.18 17:10
의도한 동작은 최소 160의 높이를 가지고 내용이 길수록 TextEditor도 늘어나야 함 TextEditor(text: $store.content.sending(\\.setContent)) .focused($focusedField, equals: .content) .frame(minHeight: 160) .font(.system(size: 16)) .padding(.top, 16)내용을 처음부터 입력 할떄는 정상 동작하지만처음부터 content 가 길 경우 160 높이 에서 잘림, 입력하면 동적으로 늘어남 OnAppear 이후에 컨텐츠 갱신..
-
Observable → Async / Await 으로 변환하여 API 처리하기 (AsyncThrowingStream, withCheckedThrowingContinuation)Swift 2025.04.16 16:35
기존 삭제 기능 은 Observable을 사용하여 구현되었다 private func deleteImage(accessKey: String) -> Observable { return networking.request(.deleteImage(accessKey: accessKey)).asObservable() } 문제점은 해당 API를 요청하는데 사용 하는곳은 async/await 구조로 되어 있다는것이다.그렇다고 Base 네트워크까지 건드릴수는 없기 떄문에 네트워킹 구현체 부분은 수정할수없다그럼 응답을 처리하는곳에서 Rx→ async/await 으로 바꿔주는 로직이 필요하다.EX> UsecasewithCheckedThrowingContinuation웹소켓이나 지속적인 응답을 받는..
-
SwiftUI TextEditor에 키보드 toolbar가 노출되지 않는 오류Swift 2025.04.16 16:31
ScrollView 내부에 두개의 TextEditor가있다 ScrollView { VStack(spacing: 0) { if case .post = store.contentType { TextEditor(text: $store.title.sending(\\.setTitle)) .focused($focusedField, equals: .title) .frame(minHeight: 30) .frame(maxWidth: .infinity) .font(.system(size: 18, weight: .bold)) .padding(.top, 24..