일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Tuist
- Combine
- realm
- ribs
- observable
- xcode
- KeyPath
- Subject
- combinecocoa
- swift db
- Swift Tuist
- ios
- 네트워크 통신
- 카카오뱅크 ios
- swift 5.9
- SwiftUI
- Firebase
- Subscribe
- arc
- uitableviewdiffabledatasource
- ios database
- swift
- Tuist Swift
- JSON
- swift database
- GCD
- SeSAC
- Firebase Analytics
- RxSwift
- swift 6
- Today
- Total
목록iOS&Swift🍎/iOS (25)
천원의 개발

우선 SwiftData는 데이터 모델링 및 관리를 위한 프레임워크로 iOS 17이상 부터 사용이 가능한 데이터베이스입니다.개발하면서 오류 로그들을 확인해 보면 CoreData를 기반으로 만들어져 발생하는 오류가 CoreData에서 발생하는 오류와 비슷한 경우가 많았습니다.기본적으로 SwiftUI와 친화적으로 만들어져있어서 SwiftUI와 함께 사용하는게 더 간편하지만, UIKit과 함께 사용하는 자료는 적은 것 같아 UIKit을 기반으로 어떻게 사용하면 좋을지 고민한 내용을 공유하고자 해당 글을 작성합니다. 모델 생성@Model atributte 키워드를 통해서 모델의 생성이 가능합니다. 저는 영화의 정보를 저장할 Movie 모델을 생성하고 @Attribute(.unique)를 활용하여 모델의 기본키..

안녕하세요. 천원입니다. 백그라운드에서 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..

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

안녕하세요. 천원입니다. 이 글은 제가 Tuist를 학습하면서 여러 프로젝트를 하나의 Workspace로 관리하는 방법을 정리한 글이며 앞선 포스팅을 확인하시면 조금 더 이해하기 편하실 것 같습니다. 여러프로젝트 관리하기 먼저 Workspace를 생성할 폴더를 만들어 줍니다. mkdir 폴더명 cd 폴더명 tuist init tuist init --platform ios editing tuist edit 그러면 위와 같이 Project파일이 생성되는데 우리는 Root를 Project로 만들지 않을 테니 삭제해 줍시다. 그런 다음 Project를 대신해서 Workspace 파일을 추가해 줍니다. import ProjectDescription let workspace = Workspace( name: "Tu..

기존에 codebase로 UI를 작성하다 보면 빌드를 해야 확인할 수 있어서 번거로울 때가 종종있습니다. 그래서 SwiftUI의 PreviewProvider를 활용해서 보면서 작업이 가능하도록 해보겠습니다. 1. ViewController Extension UIViewControllerRepresentable를 사용해서 뷰컨을 SwiftUI에서 사용이 가능하도록 Extension 해줍니다 import UIKit import SwiftUI extension UIViewController { private struct Preview: UIViewControllerRepresentable { let vc: UIViewController func makeUIViewController(context: Contex..