일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- GCD
- KeyPath
- Subject
- SeSAC
- Swift Tuist
- swift database
- combinecocoa
- Tuist Swift
- ribs
- arc
- Firebase Analytics
- realm
- RxSwift
- JSON
- 네트워크 통신
- SwiftUI
- Subscribe
- Combine
- Tuist
- swift 6
- observable
- swift 5.9
- 카카오뱅크 ios
- Firebase
- ios database
- swift
- uitableviewdiffabledatasource
- ios
- swift db
- xcode
- Today
- Total
목록전체 글 (87)
천원의 개발

안녕하세요. 천원입니다.오늘은 2024년 5월 부터 검수를 올리기 위해서는 반드시 필요한 Privacy Mainfest에 대해서 알아보겠습니다. Privacy Mainfest먼저 Privacy Manifest란 Required Reason API를 사용하는 이유를 명시하는 파일을 의미합니다. 여기서 Required Reason API란 기기 신호에 접근해 기기 혹은 사용자의 신원을 알 수 있도록 오용될 가능성이 있는 것들로, 구체적으로 활성화된 키보드(active keyboard), 디스크 공간(disk space), 파일 날짜(file timestamp), 시스템 부팅 시간(system boot time), 기본 사용자(user defaults) 등이 있습니다. 4월에 검수를 올렸을 때 전달받은..

안녕하세요. 천원입니다. 백그라운드에서 API를 호출하기 위해서 학습한 내용을 정리 하고자 이글을 작성합니다. Background Tasks 프레임워크 iOS 13부터 추가된 프레임워크로 시스템과 앱간의 background Task 요청을 담당하는 역할을 합니다. 해당 프레임워크에는 BGAppRefreshTask & BGProcessingTask 이렇게 두가지 타입이 존재하는데 BGAppRefreshTask는 30초 정도가 소요되는 작업에 사용되고 그 이상의 몇분이 소요되는 것들은 BGProcessingTask를 사용하게 됩니다. WWDC 2019 자료를 참고해 보면 사용자가 Foreground로 진입하는 시점을 시스템이 분석해서 그전에 호출하게 되고 그 외에도 유저의 백그라운드 앱 새로고침 설정, 배터..

안녕하세요. 천원입니다. 최근 TCA로 사이드 프로젝트를 진행하고 있는데 아래와 같이 \. 이런 문법이 종종 등장을 해서 정리하고자 이 글을 작성합니다. AuthTextField(text: viewStore.binding(get: \.codeText, send: InViteCodeFeature.Action.textEditing), placeholder: "초대코드", error: viewStore.validCode) // TCA Binding @Dependency(\.apiService) var apiServiced // Custom Dependency 먼저 Object-C에서 등장한 Key의 개념을 살펴보면 - Key는 문자열을 의미하고 Key값을 통해서 인스턴스의 프로퍼티에 접근하게 해주는 Objec..

안녕하세요. 천원입니다. 오늘은 Xcode15 에서 발생하는 버그 리포팅을 해보고자 이 글을 작성합니다. Xcode15.0.1에서 unit test 타켓을 추가하고 iOS 14이하의 디바이스로 빌드하게 되면 아래와 같은 런타임 crash 가 발생하게 되는데 먼저 Xcode 15에 Release Note를 살펴보면 static 라이브러리 linking 속도의 향상을 위한 새로운 linker가 나왔네요! 이녀석 때문에 문제가 발생한 것 같아 한번 찾아보니 아래와 같이 iOS 14 이하에서 약한 정의를 같는 심볼을 사용하는 바이너리 파일에서 런타임 crash 가 발생한다고 하네요. 회피책을 보니 OTHER_LDFLAGS bulid setting에서 -Wl, -ld_classic 을 추가해 주라고 하니 한번 해..

안녕하세요. 천원입니다. 오늘은 CompletionHandler로 값을 리턴하는 함수들을 async await 스타일로 변경할 때 사용하는 Continuation에 대하여 학습해 보겠습니다. 공식 문서를 보면 CheckedContiuation과 UnsafeContination 두 종류가 있는데 한번 확인해 보겠습니다. 동기와 비동기 코드의 사이를 인터페이스하는 메커니즘으로, 정확성 위반을 기록한다고 하네요. 이친구는 정확성을 검사하지 않는다고 하네요. 이제 코드를 보자면 dataTask함수의 completionHandler를 통해서 받은 data를 다시 handler에 실어서 보내주는 코드입니다. func requestImage(handler: @escaping ((Data) -> Void)) { let..

안녕하세요. 천원입니다. 오늘은 UIKit과 함께 많이 사용되는 시스템 아키텍쳐인 Clean Architecture를 정리하고자 이 글을 작성합니다. 소프트웨어 개발 방법론 중 에자일의 창시자인 로버트 C.마틴 선생님이 작성하신 Clean Architecture는 그동안의 디테일만 다르고 유사한 목적을 가지는 다양한 아키텍쳐를 통합하기 위해 고안한 아키텍쳐 패턴입니다. 그동안의 아키텍쳐들은 모두 소프트웨어를 계층으로 나눠서 관심사를 분리하였는데 이렇게 하면 만들어지는 소프트웨어는 아래와 같은 특징을 가집니다. 1. Independent of Frameworks: 아키텍쳐는 소프트웨어 라이브러리의 존재에 의존하지 않는다. 이를 통해 시스템을 제한된 제약 조건에 끼워 넣을 필요 없이 프레임워크를 도구로 사용..