일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- UIStackView
- Firebase
- watchkit
- tabman
- Coding Test
- widgetkit
- createml
- cloud functions
- ios
- github
- fcm
- Swift
- spring
- app intents
- Project
- Delegate Pattern
- Sendbird
- 코테
- backend
- swift concurrency
- Tuist
- UIDatePicker
- Apple Developer Academy
- task.yield()
- coreml
- WWDC22
- Flutter
- SwiftUI
- Complication
- UITableView
- Today
- Total
목록ios (57)
azhy의 iOS 이야기

2022년 9월 21일에 작성됨 얼마 전에 iOS 16이 정식으로 출시가 됐습니다. 그중에서 잠금화면 위젯기능을 업데이트시켜주려 이것저것 해보니 WWDC22에 나왔던 Complications, widget 부분을 정리할 필요가 있겠더라고요.. 살짝 늦은 감이 있긴 하지만 한번 정리하고 가겠습니다.Complications and widgets: Reloaded 아직 영상을 안보신 분들은 한 번씩 보시고 오세요!!Complications..?Complication은 watchOS의 주요 요소로 시계 페이스에 빠르고 쉽게 알아볼 수 있는 정보를 제공해요. 가치가 높은 정보를 전달하거나 탭 하여 앱으로 바로 이동시키는 역할을 하죠. 지금 워치에 보이는 요소 하나하나가 Complication입니다.이제 iOS 1..

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월 12일에 작성됨1:1, 1:N여기서 한 가지 의문이 듭니다. 예를 들어 우리가 카카오톡을 이용할 때 한 사람과 대화를 할 때도 있고, 여러 사람과 같이 한 채팅방에서 대화를 하는 경우도 있습니다. 센드버드는 어떻게 구별할까요? Create One to One Chat in Sendbird IOS 이 글을 보면 어느정도는 이해를 할 수 있습니다. 간략하게 요약하면 1:1 채팅이 되려면 두 개의 사용자 ID로 그룹 채널을 생성하면 됩니다. 문서에 따르면 Distinct 속성을 활성화해야 한다고 적혀있네요. Distinct 속성에 대해서는 바로 밑에서 다뤄보겠습니다. 채팅방을 이용하는 사람이 2명이다 - 1:1채팅방을 이용하는 사람이 3명 이상이다 - 1:N채팅방 만들기센드버드에서 기본으로 제..

2022년 9월 11일에 작성됨 채팅 API 중에서 센드버드는 엄청 유명하고 이미 많은 곳에서 사용 중이라고 합니다. 네카라쿠배를 이은 몰두센이라고 부르는 센이 바로 센드버드입니다. 그래서 연습도 할 겸 한번 사용해보고 싶어서 센드버드를 이용해서 간단한 채팅 기능을 구현해보려 합니다. 센드버드 공식문서를 정리해놓은 걸 보면 알 수 있는데 엄청 정리를 잘해놓았습니다. 근데 문제점이 있습니다. 업데이트 속도가 너무 빨라서 그런 건지 잘 모르겠는데 최신 버전과 문서에 정리해 놓은 코드들이 맞지 않는 게 좀 많았습니다. 공식 깃헙 코드를 봐도 예전 코드들이 많고요.. 블로그로 정리를 해놓으신 분도 없었어요.. 그래도 하나하나씩 알아보도록 합시다.Install the Chat SDK우선 프로젝트를 하나 만들어주..

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 이렇게 버전이 있으면 세 번째 숫자가 바뀌면 강제 업데이트 시키지 않고 맨 앞과 두 번째 숫..