본문 바로가기

iOS/개발11

[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.
Demystify parallelization in Xcode builds https://developer.apple.com/wwdc22/110364 Demystify parallelization in Xcode builds - WWDC22 - Videos - Apple Developer Learn how the Xcode build system extracts maximum parallelism from your builds. We'll explore how you can structure your project to... developer.apple.com 목차 Core concepts Build phases Cross-Target bulids Core concepts Xcode에서 CMD+B를 눌러서 앱을 빌드할 때 발생하는 일은 다음과 같다. 빌드 시스템은 Xcode의 .. 2023. 11. 3.
Link fast: Improve build and launch times https://developer.apple.com/wwdc22/110362 Link fast: Improve build and launch times - WWDC22 - Videos - Apple Developer Discover how to improve your app's build and runtime linking performance. We'll take you behind the scenes to learn more about linking,... developer.apple.com 우리는 코드를 작성하면서 라이브러리나 프레임워크의 형태로 다른 사람의 코드도 사용한다. 이런 라이브러리들을 사용하려면 링커(Linker)가 필요하다. Linking의 종류 Static Linking 앱을 빌드할 때.. 2023. 10. 17.
[iOS] 프로젝트 개발 환경 세팅 자동화 with fastlane, Makefile 필요성 및 배경 iOS 프로젝트를 진행하다 보면 github에 올리지 말아야 하는 코드, 파일들이 생기게 됩니다. API Secret Key, API의 baseURL 등 다양한 데이터들이 해당되며 일반적으로 이 데이터들은 별도의 파일을 만들고 그 파일을 .gitignore에 추가하여 Git 커밋에 포함되지 않도록 합니다. Git의 관리를 받지 않는 파일이 생긴다는 것은 결국 팀원간 파일 공유를 수작업으로 진행해야 한다는 것을 의미합니다. Git의 도움 없이 슬랙이나 카톡으로 파일들을 주고 받는 경험은 꽤나 귀찮고 번거롭습니다. 심지어 이러한 비밀 파일(private files)들을 수정하고 팀원들에게 공유하는 것을 까먹는다면 서로 다른 환경 속에서 프로젝트를 빌드, 개발하는 불상사가 발생할 수 있습니다... 2023. 8. 7.