![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/5uzW7/btspk9TmmXF/wmi7fg2XW6N883EAMbLXHK/img.png)
헬스킷을 프로젝트에 적용하게 되면서 고민했던 점들을 한번 작성해볼까 합니다. 헬스킷 자체만으로도 많은 API를 가지고 있는데다가 비즈니스 로직까지 합쳐지며 코드 부담이 꽤나 커졌는데요, 이를 풀어갔던 과정을 공유해보겠습니다. 요구사항 제가 기획했던 서비스에서 필요했던 요구사항을 간단히 정리해보자면 다음과 같습니다. 사용자의 수면, 심박, 활동 데이터를 하루 단위로 정리해서 (서버에) 저장한다. 이때, 애플워치 데이터를 우선시한다. 세부적으로 필요한 데이터(분당심박평균, 총수면시간 등등 ..)들을 수집할 수 있는지는 문서와 실기기 테스트로 어느정도 검증한 상태였기 때문에 어려울게 없어보였는데요, 막상 작업을 시작해보니 난관이 있었습니다. 먼저 건강데이터들은 헬스킷 데이터베이스에 저장이 됩니다. 그래서 단순..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/2VKK6/btsidWyIvwn/utTcBbkBx7I9PJ76v8uzt1/img.png)
UI 살짝 바꾼 것 뿐인데 매번 새로 빌드에서 확인하기 귀찮지 않으신가요? iOS에서 Hot Reloading 기능을 이용해 변경사항을 바로 시뮬레이터에서 확인할 수 있는 라이브러리가 있어 소개해드리려고 합니다. InjectIII라는 라이브러리로 사용법도 엄청 간단해요! UIKit에서도 SwiftUI에서도 사용 가능합니다. GitHub - johnno1962/InjectionIII: Re-write of Injection for Xcode in (mostly) Swift Re-write of Injection for Xcode in (mostly) Swift. Contribute to johnno1962/InjectionIII development by creating an account on GitHu..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/c00Ugk/btsh3kAnoco/6gijYTNIWKkNPey1OOf730/img.png)
우연히 GraphQL을 써볼 기회가 생겼는데요, Apollo라는 라이브러리를 이용해 GraphQL을 적용해보려고 합니다! https://www.apollographql.com/docs/ios/get-started Getting Started with Apollo iOS The Apollo iOS SPM package includes the Codegen CLI as an executable target. This ensures you always have a valid CLI version for your Apollo iOS version. To simplify accessing the Codegen CLI, you can run the included apollo-cli-install SPM plugi..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/m9fDk/btshyNvJ3PZ/Re3SmIaPzkpjEjkue5KXsk/img.png)
의존성 주입하는게 귀찮아질 쯤 DI라이브러리를 알아보기 시작했는데요, 종류가 정말 많더라구요... 그래서 뭘 쓸지 고민하다가 각 라이브러리의 Overview를 읽어보며 특징을 정리해보게 되었습니다! Factory (0.9K)https://github.com/hmlongco/Factory GitHub - hmlongco/Factory: A new approach to Container-Based Dependency Injection for Swift and SwiftUI.A new approach to Container-Based Dependency Injection for Swift and SwiftUI. - GitHub - hmlongco/Factory: A new approach to Containe..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/XuOKm/btsg0NDQcUu/XHC3L6LfAhAXJ15kbTNSyK/img.png)
앱에 표시하는 컨텐츠를 서버 등에서 받아오는 것이 아니라 앱 내에서 직접 관리해야하는 경우, 일명 하드코딩 해야하는 경우가 있죠. 이럴때 어떻게 하면 좋을까요? 가장 쉽게 생각할 수 있는 방법은 static let이 있습니다. enum TestQuestions { static let questions: [TestQuestion] = [TestQuestion(title: "첫번째", content: "첫번째 컨텐츠 입니다."), TestQuestion(title: "두번째", content: "두번째 컨텐츠 입니다."), TestQuestion(title: "세번째", content: "세번째 컨텐츠 입니다."), TestQuestion(title: "네번째", content: "네번째 컨텐츠 입니다.")..
[iOS] 로컬 Push Notification(푸시 알림) 구현하기 [iOS] FCM으로 Push Notification (푸시 알림) 구현하기 FCM(Firebase Cloud Messaging)같은 경우는 공식문서와 설정 튜토리얼이 정말 잘 되어있어서 공식 문서를 따라가시는 것도 좋을 것 같습니다! I. Key 발급 1. dokit.tistory.com 이전 글에서는 단순하게 푸시 알림을 구현해보았는데요, 이번에는 앱이 백그라운드 상태일 때 특정 시간대에 알림이 오도록 설정해보겠습니다. 기존 코드 class LocalNotificationHelper { // ... func pushNotification(title: String, body: String, seconds: Double, identif..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/oRFwN/btsgdBDEgX7/X0bJuLtohkqq5SvTX7P2yk/img.gif)
[iOS] FCM으로 Push Notification (푸시 알림) 구현하기 FCM(Firebase Cloud Messaging)같은 경우는 공식문서와 설정 튜토리얼이 정말 잘 되어있어서 공식 문서를 따라가시는 것도 좋을 것 같습니다! I. Key 발급 1. 우선 먼저 Apple Developer Member Center에서 Keys에 들 dokit.tistory.com 이번엔 FCM에 이어서 로컬에서 푸시를 구현해보려고합니다. 별도의 토큰이 필요하지 않기 때문에 훨씬 간단해요! 알림 허용 받기 우선 사용자에게 알림 허용 권한을 받야야합니다. AppDelegate에서 설정하기 import UserNotifications class AppDelegate: NSObject, UIApplicationDeleg..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bQc2a5/btsf0SUrWpj/t7zPa7XcmVAQlH74KlBdj0/img.png)
FCM(Firebase Cloud Messaging)같은 경우는 공식문서와 설정 튜토리얼이 정말 잘 되어있어서 공식 문서를 따라가시는 것도 좋을 것 같습니다! ⚠️ 원격 푸시를 구현하기 위해선 개발자 계정 멤버십이 필요합니다. (멤버십은 대략 1년에 13만원이고 FCM은 무료입니다) I. Key 발급 1. 우선 먼저 Apple Developer Member Center에서 Keys에 들어가줍니다. 2. 그리고 Keys옆의 +버튼을 눌러 키를 생성합니다. 3. 적절한 이름을 작성하고, Apple Push Notification Service (APNs)항목에 체크합니다. 4. Continue > Register 를 완료하면 Download 버튼이 생깁니다. 이를 통해 p8파일을 다운로드합니다. 이때 한번 ..
- Total
- Today
- Yesterday
- 프로그래머스
- SWM
- Architecture Pattern
- ios
- design pattern
- coordinator pattern
- Flux
- combine
- swift
- 리액티브 프로그래밍
- MVI
- MVC
- 아키텍쳐 패턴
- reactive programming
- Swift Concurrency
- healthkit
- DocC
- SwiftUI
- programmers
- RX
- notion
- 코디네이터 패턴
- 비동기/동기
- MVVM
- Bloking/Non-bloking
- GetX
- TestCode
- 소프트웨어마에스트로
- 노션
- Flutter
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |