| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- SwiftUI
- 네트워크 통신
- JSON
- swift 6
- RxSwift
- Firebase
- observable
- Firebase Analytics
- KeyPath
- ios
- uitableviewdiffabledatasource
- swift db
- swift
- Swift Tuist
- Subscribe
- 카카오뱅크 ios
- realm
- xcode
- SeSAC
- Tuist
- combinecocoa
- ios database
- Subject
- swift database
- ribs
- swift 5.9
- arc
- Tuist Swift
- Combine
- GCD
- Today
- Total
목록ios (36)
천원의 개발
전처리문? - 컴파일 이전에 미리 처리되는 문장을 말합니다. 또한 선행처리기라고도 말합니다. 여기서 컴파일러는 여러분들이 작성하신 코드를 컴파일하기 전에 전처리문에서 정의해 놓은 코드를 우선적으로 실행하게 됩니다. 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 = "검색어와..
RxSwift? ReactiveX에서 만든 라이브러리입니다. (Reactive eXtension + Swift = RxSwift) " RxSwift is a library for composing asynchronous and event-based code by using observable sequences and functional style operators, allowing for parameterized execution via schedulers. " By Marin Todorov. ‘RxSwift - Reactive Programming with Swift.’ 해석 해보면 RxSwift는 관찰 가능한 시퀀스와 함수 형태의 연산자를 사용하여 비동기 및 이벤트 기반 코드를 구성하기 위한 라이브러..
URLSession ? - 앱이 서버와 통신하기 위해 애플이 만들어둔 API입니다. - 서버 통신을 위한 라이브러리인 Alamofire, moya 등 의 기반이 되는 API입니다. - 서버에서 받아온 데이터를 어떤식으로 동작할지를 설정할 수 있습니다. ex) 타임아웃, 캐시 정책, 백그라운드 데이터 전송 등 URLSessionConfiguration - 서버와 통신시 세부적인 동작과 정책을 설정할 수 있습니다. • Shared Session - 싱글턴 패턴 구조로 기본 설정이 되어 있어 단순한 네트워크 요청을 할 때 주로 사용이 되고, 커스터마이징은 할 수 없습니다. - 구현이 간단한 장점이 있지만, 백그라운드 전송을 지원하지 않습니다. let url = URL(string: "https://www.dh..
마이그레이션? - Realm 데이터베이스를 사용하여 개발하다 보면 데이터베이스의 스키마 구조를 변경해야 할 경우가 생기는데 이런 경우 앱 충돌이 발생합니다. 개발 시에는 앱을 새로 삭제 후 실행해 주면 문제없이 작동하지만, 앱을 출시한 상태에서 스키마 구조를 변경하고 싶을 때 사용하는 게 마이그레이션 입니다. Schema Version - 마이그레이션을 관리 하기 위한 스키마 버전입니다. 처음 상태는 0으로 시작합니다. - 컬럼의 추가나 삭제 같은 동작은 Schema Version을 증가 시 키는 것만으로 마이그레이션이 이루어집니다. 스키마 버전을 출력해주는 코드입니다. do { let version = try schemaVersionAtURL(fileURL!) print("Schema Version: ..
Codable - JSON과 같은 외부 표현과의 호환성을 위해 데이터 유형을 인코딩 및 디코딩할 수 있는 프로토콜입니다. - Codable = Decodable & Encodable Codable은 Decodable과 Encodable을 준수하는 프로토콜인데 그러면 Decodable과 Encodable을 알아 보겠습니다. Decodable - 원하는 모델로 데이터를 디코딩 할 수 있는 프로토콜입니다. - Key의 일부를 디코딩 하지 않는 것은 문제가 없습니다. - 보통 Struct에 채택하여 사용하며, Enum과 Class 또한 채택할 수 있습니다. 아래와 같은 형태의 JSON 데이터가 있다면 { "blogName": "천원의 개발", "userID": "1000원", "number" : 111 } 아래..