일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Flutter
- UIDatePicker
- SwiftUI
- watchkit
- swift concurrency
- Sendbird
- cloud functions
- UITableView
- UIStackView
- github
- Delegate Pattern
- createml
- spring
- WWDC22
- backend
- Firebase
- ios
- fcm
- widgetkit
- Project
- task.yield()
- 코테
- Tuist
- Complication
- Coding Test
- app intents
- tabman
- coreml
- Apple Developer Academy
- Swift
- Today
- Total
목록Swift (27)
azhy의 iOS 이야기
Suspension pointsSwift Concurrency의 장점 중 하나로 소개된 것이 스레드를 코어 수만큼만 사용해서 콘텍스트 스위칭이 적다는 것이었습니다.하지만 반대로 스레드 개수가 제한되어 있어서 스레드가 작업을 오래 들고 있으면 다른 작업이 밀리는 상황이 발생할 수도 있습니다. 이러한 문제점을 어떻게 해결할까요?여기서 바로 Suspension points가 등장합니다. Suspension points는 OS에서 Swift Concurrency 작업의 스레드 점유권을 가져와 다른 작업에 할당할 수 있는 지점입니다. await 키워드를 잠재적 Suspension points라고도 합니다. 스레드가 작업을 오래 붙잡지 못하게 OS가 적절하게 스레드 점유권을 다른 작업에게 양도한다는 뜻이죠await..

2022년 10월 17일에 작성됨 평소에 Navigation Bar를 잘 사용 안 하다가 사용을 하려 했는데 배경 색이 자꾸 검은색으로 표시가 되는 문제가 발생했습니다. 사실 그 이유와 해결방법을 정말 별거 아닌데 나중에 계속 찾게 될까 봐 적어놓으려 합니다.문제Developer Forums에 문제점과 해결방법까지 다 나와있습니다. 정상적으로 나오던 bar 색깔이 오른쪽처럼 검은색으로 덮여버리는 현상입니다. 그 이유는 바로 WWDC21에 공지를 보면 알 수 있습니다. While UIKit does its best to make this new appearance seamless in your app, there are a few issues you may encounter. You should audit..

2022년 9월 24일에 작성됨 이번에 앱을 업데이트하면서 아카이브에 앱을 올리는데 이런 경고가 뜨더라고요.. 흠.. 한 번도 본 적이 없는 경고라서.. 이게 뭐지.. The app references non-public selectors in Payload 여기에 보면 첫 이슈가 2018년에 오픈이 되었는데 작년까지 토론이 이어지는 모습을 볼 수 있네요. 수많은 해결방법들이 올라왔고 이야기가 오가는데 그 누구도 명확한 답을 제시하지는 못하는 거 같습니다.'The app references non-public selectors in Payload' 3주 전에 Developer Forums에 올라온 글입니다. 아마 iOS 16 유효성 검사 버그일 수도 있을 거 같네요. 저도 iOS 16으로 올리고 나서 이..

2022년 9월 19일에 수정됨 이번에 iOS 16으로 업데이트시키면서 xcode도 같이 업데이트를 시켰습니다. 근데 지금까지 안뜨던 경고가 떴는데 바로 warning: Usage of /Users/sunghun/Library/org.swift.swiftpm/collections.json has been deprecated. Please delete it and use the new /Users/sunghun/Library/org.swift.swiftpm/configuration/collections.json instead. 이런 경고문이 떴습니다.. 빌드는 정상적으로 잘되는데 괜히 이 경고를 처리 안 했다가 리젝을 받을 수 있으니 해결법을 같이 알아봅시다.해결법stackoverflow 글을 보니 정확한..

2022년 9월 17일에 작성됨 종종 앱을 사용하다 보면 다른 앱으로 이동하는 경우가 있습니다. URL Scheme를 이용하면 정말 쉽게 구현이 가능합니다. 구현 방법에 대해 알아보고 끝에 좌표값을 가지고 구글맵과 카카오맵을 띄우면서 그 장소로 이동하는 것을 한번 정리해 보겠습니다.URL Scheme 란?URL Scheme란 무엇일까요?우리가 인터넷에 주소를 입력하면 앞에 붙는 https:// 이 부분이 바로 웹의 스키마입니다. 스키마는 https:// 만 있는 것이 아닙니다. 이 사진은 크롬 설정창의 주소입니다. 맨 앞에 https:// 이 아니라 chrome://라고 적혀있죠? 이 뜻은 '웹사이트가 아닌 chrome에 직접 요청을 보냈다.'라는 뜻입니다.그럼 앱으로 한번 접근해 보면 대충 상상이 가시..

2022년 9월 8일에 작성됨 이번에는 전에 다뤘던 [iOS] ScaleToFill / AspectFit / AspectFill 부분의 연장이라고 봐도 됩니다. 바로 masksToBounds / clipsToBounds 이 친구들인데 뷰를 그리는 데 있어서 중요한 부분을 담당합니다.두 친구가 하는 일은 거의 똑같습니다. 둘 다 자신의 영역 이외의 영역을 그릴지 말지를 정해주는 역할을 하거든요. 그럼 뭐가 다르냐? 사진을 보시면 알겠지만 clipsToBounds는 UIView의 프로퍼티고 masksToBounds는 CALayer의 프로퍼티입니다. 그리고 둘 다 default 값이 false입니다. clipsToBounds : View 영역을 넘어갔을 때 그 부분을 보이게 할 거냐 안 보이게 할거냐masks..

2022년 9월 6일에 작성됨contentMode아마 작업을 하다가 본인도 모르게 contentMode를 사용을 해봤을 겁니다. 그럼 이 contentMode가 무엇이냐 ? 애플 문서에는 이렇게 정의되어 있습니다.'A flag used to determine how a view lays out its content when its bounds change'bounds가 변경될 때 뷰가 콘텐츠를 배치하는 방법을 결정하는 데 사용..? 이라고 합니다..종류는 이렇게 많지만 사실 많이 사용하고 헷갈리는 친구는 ScaleToFill, AspectFit, AspectFill 이 3개입니다. 실제로 저는 이거 말고는 사용을 해보지도 않아서, 요 친구들을 한번 정리해보겠습니다.ScaleToFillcontentMode..

2022년 9월 1일에 작성됨 사실 SpriteKit은 예전에 프로젝트하면서 한번 사용해 보면서 정리를 해야겠다 싶었는데, 그 사이에 면접 준비랑 이것저것 하다 보니 이렇게 밀려버렸네요.. SpritKit의 기본 개념과 SpritKit를 사용하여 눈과 비를 내리는 효과를 한번 간단하게 한번 정리해 보겠습니다 :)SpriteKit공식 문서 에서는 SpriteKit을 이렇게 정의하고 있어요.'SpriteKit 프레임워크를 사용하면 고성능의 배터리 효율적인 2D 게임을 쉽게 만들 수 있습니다. 사용자 정의 OpenGL ES 셰이더 및 조명 지원, SceneKit과의 통합, 고급 새 물리 효과 및 애니메이션을 통해 힘 필드를 추가하고 충돌을 감지하며 새 조명 효과를 생성할 수 있습니다.' 주로 2D 게임을 만들..

2022년 8월 19일에 작성됨 iOS는 앱의 사용량, 메모리가 너무 높아지면 앱을 죽이기 때문에 메모리 관리를 항상 신경 쓰며 코드를 짜야합니다.이러한 메모리 관리에 있어 도움을 주는 많은 친구들 중에 한명이 바로 lazy 키워드입니다.이미 많은 분들이 lazy에 대해 자세하게 설명을 해놓으셨기에 오늘은 중요한 키포인트 몇 개만 짚어보려 합니다.lazy variable?공식문서에는 lazy를 이렇게 정의합니다.'A lazy stored property is a property whose initial value isn’t calculated until the first time it’s used. You indicate a lazy stored property by writing the lazy mod..

2022년 8월 12일에 작성됨 프로젝트 앱을 출시하며 업데이트 관리를 어떻게 하는지 궁금해서 알아보고 적용시킨 다음 그 방법에 대해 정리해보고자 합니다.더 좋은 방법이 있거나 현직에서 사용하는 방법이 있으면 댓글로 알려주세요!업데이트 로직?만약 업데이트와 관련된 로직이 안 들어가 있는 앱에서 심각한 버그가 발생했다? 버그를 수정하고 앱을 배포했는데도 불구하고 사용자 본인이 직접 업데이트하지 않는 한 강제로 앱을 업데이트시킬 방법이 없습니다. 따라서 업데이트와 관련한 로직을 앱을 처음으로 배포하기 전에 포함시키는 게 좋아 보입니다.업데이트 로직!우선 저의 프로젝트에는 업데이트 버전을 이렇게 설정했습니다.X.X.X 이렇게 버전이 있으면 세 번째 숫자가 바뀌면 강제 업데이트 시키지 않고 맨 앞과 두 번째 숫..