일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Swift Tuist
- 네트워크 통신
- privacyinfo
- JSON
- Xcode15 runtime crash
- Swift \.
- Tuist Swift
- observable
- swift
- privacy report
- SeSAC
- RxSwift
- ribs
- realm
- Firebase Analytics
- privacy manifest
- xcode
- Combine
- GCD
- Subject
- backgorund에서 API 호출
- Xcode 15 Thread
- SwiftUI
- Firebase
- Subscribe
- 백그라운드 API 호출
- ios
- Tuist
- arc
- Background Tasks
- Today
- Total
목록ios (34)
천원의 개발
안녕하세요. 천원입니다. 백그라운드에서 API를 호출하기 위해서 학습한 내용을 정리 하고자 이글을 작성합니다. Background Tasks 프레임워크 iOS 13부터 추가된 프레임워크로 시스템과 앱간의 background Task 요청을 담당하는 역할을 합니다. 해당 프레임워크에는 BGAppRefreshTask & BGProcessingTask 이렇게 두가지 타입이 존재하는데 BGAppRefreshTask는 30초 정도가 소요되는 작업에 사용되고 그 이상의 몇분이 소요되는 것들은 BGProcessingTask를 사용하게 됩니다. WWDC 2019 자료를 참고해 보면 사용자가 Foreground로 진입하는 시점을 시스템이 분석해서 그전에 호출하게 되고 그 외에도 유저의 백그라운드 앱 새로고침 설정, 배터..
안녕하세요. 천원입니다. ui/unit 테스트 라이브러리인 Quick/Nimble을 학습하는 도중 TDD와 BDD개념을 정리하고자 글을 작성합니다. TDD TDD는 Test Driven Development의 약자로 테스트 주도 개발을 의미합니다. 코드를 작성 후에 테스트 케이스를 구현하는게 아닌 테스트 케이스를 먼저 작성한 후에 이를 통과하는 코드를 추가해 가는 방식의 개발 방법론입니다. TDD는 위의 그림과 같은 개발주기를 가지고 반복적으로 개발을 진행하는데 Red 단계에서는 실패하는 테스트 코드를 작성하고, Green 단계에서는 테스트 코드를 성공시키기 위한 최소한의 코드를 작성합니다. Blue 단계에서는 중복 코드 제거, 일반화 등의 리팩토링을 수행합니다. 간단하게 말하자면 실패하는 경우를 찾고,..
안녕하세요. 천원입니다. 다른 분들의 Github 코드를 살펴보다가 재상용성이 좋아보이는 코드가 Adapter 패턴으로 작성되었다는걸 알고 공부해 보고자 정리합니다. Adapter 패턴 현재 특정 기능을 수행하는 인터페이스가 존재하는데 이와 비슷하지만 조금씩 다른 기능을 추가해야할 때 Adapter를 사용해서 사용하는 쪽에서 코드의 변경을 최소화하는 패턴, 코드의 중복을 방지하고 현재 서비스 중인 프로젝트에 대하여 변경을 최소화 할수있습니다. 구현 현재 인증 서비스가 구현되어 있었는데, Google 과 Naver 인증 서비스가 추가되는 시나리오를 구현해 보겠습니다. protocol AuthServiceType { func authenticate(username: String, password: Strin..
기존에 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..
전처리문? - 컴파일 이전에 미리 처리되는 문장을 말합니다. 또한 선행처리기라고도 말합니다. 여기서 컴파일러는 여러분들이 작성하신 코드를 컴파일하기 전에 전처리문에서 정의해 놓은 코드를 우선적으로 실행하게 됩니다. Swift에서 사용하는 전처리문 디버그 모드에서 출력 #if DEBUG print("디버그") #endif 메인 앱과 위젯 구분 #if MAIN_APP print("main app") #endif #if WIDGET print("widget") #endif OS 구분 #if os(iOS) print("iOS") #elseif os(macOS) print("macOS") #elseif os(watchOS) print("wathOS") #endif
Result ? Swift 5.0 부터 지원하는 에러를 처리하는 방법입니다. Result 타입 정의 enum Result { case success(Success) case failure(Failure) } enum을 활용하여 success와 failure의 case로 구분 지어주고 제네릭을 타입을 연관값에 넣어주어 사용합니다. 어떻게 사용할지 감이 안 잡히시죠 한번 같이 사용해 봅시다. Error프로토콜을 채택한 APIError enum APIError: String, Error { case invalidRessponse = "응답이 없습니다." case noData = "데이터가 없습니다." case failedRequest = "요청에 실패 하였습니다." case invalidData = "검색어와..