Modern Collection View 와 MVVM 패턴 가이드 [iOS] Modern Collection View & MVVM 패턴 가이드 - 인프런 | 강의 MVVM 패턴과 Modern Collection View를 사용해 네트워킹을 구현하고, 다양하고 동적인 Collection View를 자유자재로 다룰 수 있게 됩니다., - 강의 소개 | 인프런 www.inflearn.com Future 은 미래의 값을 의미합니다. 미래의 값은 무슨 말일까요? 비동기로 처리되어야 할 값을 의미합니다. 더 어려운 말이죠? 쉽게 예시를 들어봅니다. 카페에서 아메리카노를 주문합니다. 돈을내고 1분정도 기다리면 아메리카노를 받겠죠? 그러면 지금 기준으로 아메리카노는 Future 입니다. 1분 미래에 받을수 있기 때문입..
-
TCA에서 AsyncStream 사용해서 타이머 구현하기
타이머를 구현 해야 했습니다TCA + SwiftUI 기반으로 구현중이라 여기에 걸맞게 구현해야 합니다그래서 Reducer에서 타이머를 구현하고 카운트다운 State를 설정하여View에서 바인딩하는 방식으로 구현하려 합니다 우선 AsyncStream 사용해본적이 없어서 이거부터 만들어봤습니다간단히 60 부터 0까지 반복문 + Task.sleep을 넣어 1초마다 호출되도록 하였습니다Task { for i in (0...59).reversed() { try await Task.sleep(nanoseconds: 1_000_000_000) print(i) }}// 59..58..57..56이제 저 i를 AsyncStream 에 담아서 계속 전송해주도록 할겁니다private func t..
-
[Tuist] 모듈 생성 과 모듈 내 테스트 타겟 생성
모듈을 생성해서 개발할 예정이다(Tuist edit 한 후)메인앱 타겟을 보면 여러 디펜던시들이 세팅되어있다외부 라이브러리를 포함한다dependencies: [TargetDependency] { return [ .external(name: "AdFitSDK"), .external(name: "AMPopTip"), .external(name: "ChannelIOSDK"), .external(name: "CocoaLumberjack"), .external(name: "CocoaLumberjackSwift"), .... ]여기에 모듈을 만들 project 를 하..
-
[Error] Perceptible state was accessed but is not being tracked
https://inf.run/V3b51 SwiftUI TCA로 기능을 구현중이다.아직 초보자 수준이라 매시간이 도전이고 고비다.그러던중 이런 에러가 나타났다. 런타임에 발생하며 크래시는 안나지만UI가 심하게 버벅이면서 에러가 자꾸 난다.Perceptible state was accessed but is not being tracked.Track changes to state by wrapping your view in a 'WithPerceptionTracking' view.This must also be done for any escaping, trailing closures, such as 'GeometryReader',`LazyVStack` (and all lazy views), navigation..
-
[Swift] XIB 만 가지고 이벤트 핸들링 하는법, xib cell 내부에 또 cell 이있는경우
XIB 만 가지고 버튼 이벤트 핸들링 하는법VC → xib(view) → button 의존 상황button 터치 이벤트를 VC에서 받아야함 근데 xib를 위한 커스텀 class 없는 상황xib와 class 파일을 묶어서 버튼 접근이나 버튼 액션을 처리하지 못하는 상황해결 방법xib 를 위한 class 를 생성하여 이벤트를 받아 처리한다tag를 사용한다.viewWithTag활용하여 이벤트 받아옴if let backgroundView = nib?.instantiate(withOwner: self, options: nil).first as? UIView { if let pastButton = backgroundView.viewWithTag(100) as? UIButton { pastButton.addTarge..
-
[Swift] ReactorKit 사용시 고민할 부분 (비즈니스 로직, Pulse )
View 이벤트와 비즈니스 로직 연동 고민다음 페이지 진입을 할지 말지가 비즈니스 로직의 결과값에 의해 결정 되어서 바로 바인딩을 할수가 없는경우 필요한 로직은 다음과 같다.버튼 클릭reactor -> usecase 에서 비즈니스 로직 이후 Bool 리턴 or 에러 리턴에러인경우 에러 노출 , true 인경우 API 호출응답 값 가지고 다음 페이지 진입클릭 바인딩에서 보통 다음 페이지 진입을 하는게 일반적 이지만다음페이지 진입을 할지 말지가 비즈니스 로직의 결과값에 의존하기 때문에 바로 바인딩을 할수가 없다. 따라서 로직 결과값이 State를 변경시키며VC에서는 State 바인딩을 통해 다음 페이지 진입 하는식으로 작업버튼 클릭 -> 로직 수행 (vc -> reactor -> usecase)로직 에러 -..
리스트 : 콘텐츠가 있으면 최근 5건을 불러옵니다.
-
TCA에서 AsyncStream 사용해서 타이머 구현하기Swift 2025.01.15 23:18
타이머를 구현 해야 했습니다TCA + SwiftUI 기반으로 구현중이라 여기에 걸맞게 구현해야 합니다그래서 Reducer에서 타이머를 구현하고 카운트다운 State를 설정하여View에서 바인딩하는 방식으로 구현하려 합니다 우선 AsyncStream 사용해본적이 없어서 이거부터 만들어봤습니다간단히 60 부터 0까지 반복문 + Task.sleep을 넣어 1초마다 호출되도록 하였습니다Task { for i in (0...59).reversed() { try await Task.sleep(nanoseconds: 1_000_000_000) print(i) }}// 59..58..57..56이제 저 i를 AsyncStream 에 담아서 계속 전송해주도록 할겁니다private func t..
-
[Tuist] 모듈 생성 과 모듈 내 테스트 타겟 생성Swift 2025.01.14 22:07
모듈을 생성해서 개발할 예정이다(Tuist edit 한 후)메인앱 타겟을 보면 여러 디펜던시들이 세팅되어있다외부 라이브러리를 포함한다dependencies: [TargetDependency] { return [ .external(name: "AdFitSDK"), .external(name: "AMPopTip"), .external(name: "ChannelIOSDK"), .external(name: "CocoaLumberjack"), .external(name: "CocoaLumberjackSwift"), .... ]여기에 모듈을 만들 project 를 하..
-
[Error] Perceptible state was accessed but is not being tracked카테고리 없음 2025.01.14 21:49
https://inf.run/V3b51 SwiftUI TCA로 기능을 구현중이다.아직 초보자 수준이라 매시간이 도전이고 고비다.그러던중 이런 에러가 나타났다. 런타임에 발생하며 크래시는 안나지만UI가 심하게 버벅이면서 에러가 자꾸 난다.Perceptible state was accessed but is not being tracked.Track changes to state by wrapping your view in a 'WithPerceptionTracking' view.This must also be done for any escaping, trailing closures, such as 'GeometryReader',`LazyVStack` (and all lazy views), navigation..
-
[Swift] XIB 만 가지고 이벤트 핸들링 하는법, xib cell 내부에 또 cell 이있는경우Swift 2024.12.21 19:23
XIB 만 가지고 버튼 이벤트 핸들링 하는법VC → xib(view) → button 의존 상황button 터치 이벤트를 VC에서 받아야함 근데 xib를 위한 커스텀 class 없는 상황xib와 class 파일을 묶어서 버튼 접근이나 버튼 액션을 처리하지 못하는 상황해결 방법xib 를 위한 class 를 생성하여 이벤트를 받아 처리한다tag를 사용한다.viewWithTag활용하여 이벤트 받아옴if let backgroundView = nib?.instantiate(withOwner: self, options: nil).first as? UIView { if let pastButton = backgroundView.viewWithTag(100) as? UIButton { pastButton.addTarge..
-
[Swift] ReactorKit 사용시 고민할 부분 (비즈니스 로직, Pulse )Swift 2024.12.21 19:16
View 이벤트와 비즈니스 로직 연동 고민다음 페이지 진입을 할지 말지가 비즈니스 로직의 결과값에 의해 결정 되어서 바로 바인딩을 할수가 없는경우 필요한 로직은 다음과 같다.버튼 클릭reactor -> usecase 에서 비즈니스 로직 이후 Bool 리턴 or 에러 리턴에러인경우 에러 노출 , true 인경우 API 호출응답 값 가지고 다음 페이지 진입클릭 바인딩에서 보통 다음 페이지 진입을 하는게 일반적 이지만다음페이지 진입을 할지 말지가 비즈니스 로직의 결과값에 의존하기 때문에 바로 바인딩을 할수가 없다. 따라서 로직 결과값이 State를 변경시키며VC에서는 State 바인딩을 통해 다음 페이지 진입 하는식으로 작업버튼 클릭 -> 로직 수행 (vc -> reactor -> usecase)로직 에러 -..