일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Firebase
- GCD
- privacy report
- Background Tasks
- Swift Tuist
- 네트워크 통신
- Xcode 15 Thread
- arc
- SwiftUI
- Tuist Swift
- privacyinfo
- ios
- 백그라운드 API 호출
- observable
- Swift \.
- xcode
- Combine
- Xcode15 runtime crash
- Subscribe
- Tuist
- Subject
- SeSAC
- ribs
- JSON
- swift
- privacy manifest
- backgorund에서 API 호출
- Firebase Analytics
- realm
- RxSwift
- Today
- Total
목록iOS&Swift🍎/iOS (24)
천원의 개발
안녕하세요. 천원입니다. 백그라운드에서 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..
먼저 본격적으로 들어가기 전에 어떤 위젯이 좋은 위젯일까요? WWDC에서는 personalized하고 glanceable한 위젯이 좋은 위젯이라고 하더라구요 그럼 이제 하나씩 어떤 뜻인지 살펴보겠습니다. 먼저 Personalized한 위젯이란? 간단한 날씨 위젯을 예제로 살펴보면 각 개인이 사는 지역마다 자신의 지역의 날씨 정보를 알려줘야겠죠. 이렇게 개인에 따라 맞춤 정보를 제공하는 것을 Personalized라고 합니다. 다음으로 glanceable한 앱들의 예제를 확인해 보시면 우리가 어떠한 동작을 하지 않아도 바로 간편하게 원하는 정보를 확인할 수 있죠! 이런 부분을 glanceable하다고 합니다. 또한 WWDC에서 강조한 부분이 바로 Widget are not mini-apps!!! 많은 분들..