일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- app intents
- 코테
- createml
- Coding Test
- Swift
- coreml
- Project
- Delegate Pattern
- tabman
- UIStackView
- spring
- Flutter
- widgetkit
- Sendbird
- fcm
- Complication
- backend
- swift concurrency
- SwiftUI
- Tuist
- Apple Developer Academy
- github
- WWDC22
- Firebase
- UIDatePicker
- cloud functions
- ios
- UITableView
- task.yield()
- watchkit
- Today
- Total
목록SwiftUI (9)
azhy의 iOS 이야기
Suspension pointsSwift Concurrency의 장점 중 하나로 소개된 것이 스레드를 코어 수만큼만 사용해서 콘텍스트 스위칭이 적다는 것이었습니다.하지만 반대로 스레드 개수가 제한되어 있어서 스레드가 작업을 오래 들고 있으면 다른 작업이 밀리는 상황이 발생할 수도 있습니다. 이러한 문제점을 어떻게 해결할까요?여기서 바로 Suspension points가 등장합니다. Suspension points는 OS에서 Swift Concurrency 작업의 스레드 점유권을 가져와 다른 작업에 할당할 수 있는 지점입니다. await 키워드를 잠재적 Suspension points라고도 합니다. 스레드가 작업을 오래 붙잡지 못하게 OS가 적절하게 스레드 점유권을 다른 작업에게 양도한다는 뜻이죠await..
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년 8월 12일에 작성됨 프로젝트 앱을 출시하며 업데이트 관리를 어떻게 하는지 궁금해서 알아보고 적용시킨 다음 그 방법에 대해 정리해보고자 합니다.더 좋은 방법이 있거나 현직에서 사용하는 방법이 있으면 댓글로 알려주세요!업데이트 로직?만약 업데이트와 관련된 로직이 안 들어가 있는 앱에서 심각한 버그가 발생했다? 버그를 수정하고 앱을 배포했는데도 불구하고 사용자 본인이 직접 업데이트하지 않는 한 강제로 앱을 업데이트시킬 방법이 없습니다. 따라서 업데이트와 관련한 로직을 앱을 처음으로 배포하기 전에 포함시키는 게 좋아 보입니다.업데이트 로직!우선 저의 프로젝트에는 업데이트 버전을 이렇게 설정했습니다.X.X.X 이렇게 버전이 있으면 세 번째 숫자가 바뀌면 강제 업데이트 시키지 않고 맨 앞과 두 번째 숫..
2022년 6월 22일에 작성됨 원하는 Font 검색해서 다운하기저는 눈누 라는 페이지를 자주 사용합니다. 원하는 폰트를 다운해 주세요! TTF vs OTF폰트에는 TTF와 OTF 두 개의 파일이 있습니다. TTF는 포맷방식이 TrueType Font이고 문서 작업이나 디자인 작업에 적합한 대신 용량이 크고 OTF는 포맷방식이 OpenType Font 이고 고해상도 출력 작업에 용이하고 용량이 적습니다. 말고도 많은 차이점이 있지만 사실 TTF나 OTF는 작업 장식, 속도, 파일 크기 등 모든 것이 상대적이기 때문에 일반적인 작업을 하는 경우에는 큰 차이가 없다고 합니다. 차이가 나더라도 엄청 미세한 차이라고 하네요. 고해상도 대형 출력 작업 (300 dpi 이상)을 한다면 OTF를 권장하고 나머지는 아..
2022년 5월 3일에 작성됨 우리는 보통 GCD, Dispatch Queue를 구분하지 않고 부릅니다.요번에 정리하며 알게 됐는데 공식문서를 보면 GCD는 동시성 실행을 제공하는 프로그래밍 언어 요소, 런타임 라이브러리 등이라고 합니다. 그래서 따지고 보면 GCD랑 Dispatch Queue는 같지는 않지만 GCD의 개념으로 동시성 프로그래밍을 지원하는 친구가 Dispatch Queue라서 같은 의미로 봐도 무방할 것 같습니다. 다른 언어와 달리 iOS 는 Dispatch Queue에 작업을 넣으면 운영체제가 알아서 스레드에 할당해 주는 특징이 있습니다.Serial, ConcurrentDispatch Queue에는 2가지 종류가 있는데 Serial과 Concurrent가 있습니다. Serial등록된 ..