| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Tuist
- Combine
- Firebase
- SeSAC
- ios database
- Firebase Analytics
- uitableviewdiffabledatasource
- swift 6
- SwiftUI
- Swift Tuist
- arc
- 카카오뱅크 ios
- xcode
- JSON
- ios
- Subject
- 네트워크 통신
- GCD
- Subscribe
- swift database
- swift 5.9
- swift
- combinecocoa
- RxSwift
- swift db
- ribs
- Tuist Swift
- observable
- KeyPath
- realm
- Today
- Total
목록iOS&Swift🍎/iOS (25)
천원의 개발
먼저 본격적으로 들어가기 전에 어떤 위젯이 좋은 위젯일까요? WWDC에서는 personalized하고 glanceable한 위젯이 좋은 위젯이라고 하더라구요 그럼 이제 하나씩 어떤 뜻인지 살펴보겠습니다. 먼저 Personalized한 위젯이란? 간단한 날씨 위젯을 예제로 살펴보면 각 개인이 사는 지역마다 자신의 지역의 날씨 정보를 알려줘야겠죠. 이렇게 개인에 따라 맞춤 정보를 제공하는 것을 Personalized라고 합니다. 다음으로 glanceable한 앱들의 예제를 확인해 보시면 우리가 어떠한 동작을 하지 않아도 바로 간편하게 원하는 정보를 확인할 수 있죠! 이런 부분을 glanceable하다고 합니다. 또한 WWDC에서 강조한 부분이 바로 Widget are not mini-apps!!! 많은 분들..
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 = "검색어와..
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 } 아래..
APNs ? 동작 방식을 알아보기 전에 APNs가 무엇인지 살펴봅시다. APNs - Apple Push Notification service 개발자가 Third Party를 통해 앱에 푸시 알람을 보낼 수 있도록 Apple에서 만든 알림 서비스 플랫폼 여기서 우리는 Third Party로 Firebase를 활용 해보겠습니다. Push Notification의 동작 방식 우리가 Push를 보내려면 항상 APNs를 통해서 전송 해야 합니다. 그런데 APNs 에서는 어떤 Device에 Push 알림을 보내야 할지 모를 겁니다. 그래서 우리는 Push token을 사용하여 각 Device를 식별 하게 됩니다. 그러기 위해서는 각 Device별로 token을 발급 받아야 합니다. 토큰 발급 Device에서 APN..