본문 바로가기

iOS55

[Combine] 스케줄링을 위한 subscribe(on:)과 receive(on:)의 원리 (with OpenCombine) Combine 탐구 시리즈 1. Publisher와 Subscriber 그리고 Subscription(with OpenCombine) 2. Cancellable 탐구 (with OpenCombine) 3. Combine과 Backpressure (with OpenCombine, RxSwift) 오늘은 OpenCombine을 기반으로 Combine에 대해 Deep Dive 하는 4번째 글입니다! 많은 분들이 사용하고 있지만 정확히 어떻게 동작하는지 잘 모르는 스케줄러 지정 연산자(Sepecifying Schedulers)가 주제입니다. 이번 글은 Combine의 구독 생성 과정에 대한 사전 지식이 필요합니다. 제 지난 글의 내용이 사전 지식으로 필요하니 참고 부탁드립니다!! Specifying Schedu.. 2024. 1. 16.
[iOS] SOPT - 푸시 알림 딥링크 라우팅 개발 여정 3 이전 글인 1. [iOS] SOPT - 푸시 알림 딥링크 라우팅 개발 여정 1 2. [iOS] SOPT - 푸시 알림 딥링크 라우팅 개발 여정 2 에서 이어지는 내용입니다! 이전 글에서 딥링크 라우팅 설계와 구현에 대해 살펴보았습니다. 오늘은 앞서 구현한 로직의 활용 사례와 웹 링크를 주제로 글을 적어보겠습니다! 추가로 이번 라우팅 로직을 설계를 하며 고민했던 부분들과 코드레벨에서 이렇게 구현한 이유에 대해서도 소개하겠습니다! 먼저 웹링크부터 시작하겠습니다! 웹링크 웹링크는 저희 SOPT Makers 팀에서 딥링크과 구별하여 웹 URL 을 부르는 이름입니다. 이 웹링크가 등장한 이유는 SOPT 앱 자체가 플랫폼으로서 SOPT 공식 홈페이지, Playground 등 다양한 웹 페이지로 이동할 수 있도록 라.. 2024. 1. 6.
[iOS] SOPT - 푸시 알림 딥링크 라우팅 개발 여정 2 이전 글인 1. [iOS] SOPT - 푸시 알림 딥링크 라우팅 개발 여정 1 에서 이어지는 내용입니다! 앞서 요구사항의 발생과 설계에 대해 살펴보았습니다. 오늘은 코드 레벨에서 상세한 구현 내용에 대해 공유하겠습니다! 코드 설명 앞선 글에서 다이어그램으로 표현한 객체와 인터페이스(프로토콜)들에 대해 소개하겠습니다! 1. NotificationPayload 구조체 public struct NotificationPayload: Codable { public let aps: APS public let id: String public let category: String? public let deepLink: String? public let webLink: String? public var hasLink: .. 2024. 1. 5.
[iOS] SOPT - 푸시 알림 딥링크 라우팅 개발 여정 1 오늘은 IT 동아리 SOPT의 공식앱인 SOPT를 개발하며 했던 고민들과 이렇게 개발한 이유에 대해 적어보려고 합니다! 주제는 바로 푸시 알림 딥링크 라우팅입니다. 푸시 알림 딥링크란 무엇일까? 아이폰을 사용하다보면 카톡이 오거나 기타 앱에서 광고 같이 알림 센터에서 짧게 팝업으로 표시하는 메시지가 있는데 이것을 푸시 알림이라고 합니다. SOPT 앱에서도 이런 푸시 알림에 대한 니즈가 생기기 시작했습니다. 특히, 푸시 알림이 유용한 이유는 저 알림을 터치했을 때 개발자가 원하는 위치의 화면으로 이동시키는 경험을 제공할 수 있기 때문입니다. 카카오톡 푸시 알림을 터치하면 해당 메시지가 있는 채팅방으로 바로 이동하는 것처럼 말이죠! 이것을 저는 푸시 알림 딥링크 라우팅이라고 부르고 있습니다. 푸시 알림의 페.. 2024. 1. 5.
[Combine] Combine과 Backpressure (with OpenCombine, RxSwift) Combine 탐구 시리즈 1. Publisher와 Subscriber 그리고 Subscription(with OpenCombine) 2. Cancellable 탐구 (with OpenCombine) 오늘은 OpenCombine을 기반으로 Combine의 Backpressure 전략에 대해 알아보도록 하겠습니다!! 추가로 RxSwift의 Backpressure와의 차이점에 대해서도 살펴보겠습니다. Backpressure란? Backpressure라는 단어 자체를 처음 들어본 분들도 꽤 있을 것 같습니다. 저 또한 익숙한 단어는 아니었는데 사전적 의미는 다음과 같습니다. "기체를 배출하는 쪽의 압력"이라고 용어 사전에 적혀있습니다. 배압 또는 역압이라고도 하며 흐름 방향의 반대 압력을 막연하게 배압(bac.. 2023. 12. 14.
Eliminate data races using Swift Concurrency https://developer.apple.com/wwdc22/110351 Eliminate data races using Swift Concurrency - WWDC22 - Videos - Apple Developer Join us as we explore one of the core concepts in Swift concurrency: isolation of tasks and actors. We'll take you through Swift's... developer.apple.com 이전 Swift Concurrency WWDC 정리에 이어 오늘은 Swift Concurrecy를 통해 Data race를 제거하는 방법을 전체적인 관점에서 정리해 보겠습니다. 이번 WWDC에서는 동시성의 세계를 동시.. 2023. 11. 23.