![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bXFXZk/btsLE1rmYpc/6HfmOukGiO7lFTqR00hvaK/img.png)
2024년도가 벌써 지나갔다. 바쁘고 바쁜 현대사회를 살아가다 보니 어느덧 2025년도가 되어있었다. 2024년도는 겨울이 늦게와서 가을이 길었다. 가을의 선선한 날씨를 참 좋아하는데 이곳저곳 많이 다니지는 못했어서 좀 아쉽긴 하다. 많은 일이 있었던 24년도를 돌아보는 시간을 가지려고 한다.1. 건강해짐24년도는 다이어트의 해 라고 불러도 될것같다. 얼굴이 안좋아보인다는 얘기에 2월달에 내 인생 처음으로 헬스장을 등록해봤고, 운동을 시작했고 재미가 들렸다. 건강해지기 위해 시작한 운동이지만 근육이 붙는걸 보는것도 즐겁고 무게가 올라가는것도 재미있었다.8개월 동안 12kg 정도를 감량했고 체지방 28% 로 시작했는데 지금은 17% 유지중이다.다이어트는 끝났지만 헬스와 가끔 러닝, 풋살 등을 하면서 유..
Open API Generator 를 초기 세팅 이후 사용하면서 점차 적응해보고 있다. Open API Generator 에 미들웨어를 적용해 네트워크 레이어에 필요한 여러 기능을 사용했다.우선, 내가 필요했던 기능은 다음과 같다. - 로깅 - 엑세스 토큰 주입 - 401 에러 캐치, 리프레시 토큰 갱신 후 재시도 (retry) 주로 사용했던 Alamofire 에서는 Interceptor 와 Event Monitor 로 사용했던 기능들인데,다행스럽게도 미들웨어의 example 이 잘 되어 있고, Swift Concurrency 를 활용해 간결하게 되어 있어어렵지 않게 적용할 수 있었다. 우선 미들웨어는 결국 인터셉터다. 프로토콜로 되어있는데, public protocol ClientMiddlewar..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/DwuaR/btsIUUi6uQ3/BVTE73WPKyKdS7kEwsvOGk/img.png)
사건의 발단회사 프로젝트에 date를 비교하여 유효한지 체크하는 로직이 있었다.간단한 로직이고 대부분 유저들에게 잘 작동했는데, 어느 한 유저만 작동하지 않는다고 문의가 들어왔다.로그를 살펴보니, 당연히 되어야 하는 date 비교 후 결과를 리턴하는 함수에서 false 를 리턴하는 것이였다. 본래 로직은 서버에서는 "yyyyMMddHHmmss" 형식으로 시작일과 종료일을 date를 내려주고 있었고,date 객체로 변환하여 현재 시점이 validate 한지 체크했었다. 모든게 정상이였다. 대부분 유저들도 잘 사용했고 내 시뮬레이터와 실기기, 테스트코드 환경에서도 잘 작동해서 실마리를 찾는게 어려웠다. 그런데 google 에 'swift dateForamtter issue' 를 검색하니 dateFormatt..
FLO MusicPlayer 앱에서 사용하는 AVPlayer는 음악을 재생시키고, 컨트롤를 하는 핵심 요소로 사용된다. AVPlayer를 어떻게 사용했는지 알아보자 먼저, iOS의 프레임워크들에서 자주 사용했던 자연스럽게 delegate를 채택하려고 했지만, delegate가 AVPlayer에는 없다. 대신, KVO(Key-Value-Observing) 방식으로 AVPlayer의 상태값을 받아올 수 있다. KVO는 존재만 알고 있었던지라, 이번 기회에 공부를 해보았다. KVO 짧은 정리 KVO는 NSObject의 기능으로 willSet, didSet 과 유사하다고 볼 수 있음 프로퍼티의 상태 변화에 대해 '외부' 에서 옵저버를 추가할 수 있음 (willSet, didSet은 내부에서 추가 필요) 외부에서..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bQg5NI/btsyqvfWb92/nGJ2EUrFkOmglhIYK7Kak0/img.png)
그동안 궁금했었던 부분들에 대해 공부하는 시간을 가져보던 중 평소 관심있었던 부분인 뮤직 플레이어를 만들어 보고 싶었다. FLO의 플레이어 뷰를 보면 기능 요구사항은 다음과 같다. - 플레이어 컨트롤 버튼 - 시간에 따른 가사 자동 스크롤 - 가사를 탭 했을 때 해당 부분으로 이동 - 음악 정보(이미지, 곡 정보 등) 사용한 프레임워크와 앱의 구조를 살펴보자 1. AVFoundation AVFoundation은 [ CoreAudio / CoreVideo / CoreMedia / CoreAnimation ] 위에 있는 프레임워크다. Core 패밀리들은 iOS 혹은 MacOS 등에서 하드웨어와 함께 Low-Level 로 동작하는 프레임워크들이고(C 기반), AVFoundation은 Core 패밀리 위에서 멀..
- Total
- Today
- Yesterday
- Swift
- retry
- demical
- IOS
- keyboardtype
- avplayer
- openapi-generator
- swift날짜
- DateFormatter
- KVO
- OAS
- Xcode
- 토큰
- easy cue
- SwiftUI
- 애플워치
- open-api-generator
- 애플워치 데이터 전송
- musicplayer
- 소수점
- AVFoundation
- auth
- TextField
- Xcode15
- watch connectivity
- 2024년
- watchOS
- locale
- 회고
- flo
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |