일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- spring
- Swift
- tabman
- fcm
- ios
- backend
- createml
- cloud functions
- Flutter
- swift concurrency
- Tuist
- widgetkit
- 코테
- Sendbird
- Project
- SwiftUI
- Delegate Pattern
- WWDC22
- Coding Test
- task.yield()
- UITableView
- Firebase
- UIDatePicker
- coreml
- github
- Complication
- UIStackView
- watchkit
- Apple Developer Academy
- app intents
- Today
- Total
목록2024/11/13 (15)
azhy의 iOS 이야기
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 이렇게 버전이 있으면 세 번째 숫자가 바뀌면 강제 업데이트 시키지 않고 맨 앞과 두 번째 숫..
2022년 8월 10일에 작성됨setContentHuggingPriority(_:for:)공식문서에 나오는 정의는 '뷰가 고유 크기보다 커지는 것을 방지하는 우선순위를 설정' 즉 더 이상 커지지 않게 합니다. 예를 들면 3개의 라벨을 height값이 300인 vertical stackView에 추가했습니다. stackView은 기본값이 fill이라서 추가한 3개의 라벨들이 300만큼 채우게 되는데, 여기서 만약 one과 three의 라벨 크기는 유지시키고 싶으면 어떻게 해야 할까?testLabelOne.setContentHuggingPriority(UILayoutPriority(251), for: .vertical)testLabelTwo.setContentHuggingPriority(UILayoutPri..
2022년 8월 9일에 작성됨기획이번 앱은 '어떤 걸 만들까'라는 고민이 생각보다 길었습니다. 왜냐하면 첫 번째 앱의 목표는 Swift 문법 익숙해지기, StoryBoard 사용법이었고 두 번째 앱은 SwiftUI 접해보기라는 큰 틀의 목표가 분명했습니다. 그래서 엄청 복잡한 기능들이 들어가지 않은 앱들이었습니다.앞의 프로젝트들로 기초를 다졌으니 이번에는 뭔가 다른걸 해보고 싶었습니다.시간이 지나 앱스토에서 앱들을 구경하다가 문득 생각이 든 게 위젯이었습니다. 위젯을 큰 목표로 잡고 들어가니 커플 디데이 앱을 만들면 두고두고 기능도 넣으면서 나중에 쓰지 않을까?라는 생각에 커플 디데이 앱을 만들기로 결정을 했습니다!개발2022.06.08 ~ 2022.07.21첫 릴리즈는 7월 21일이니 대략 1달 반 정..
2022년 8월 8일에 작성됨 제가 진행했던 코드들을 보면서 Complication을 어떻게 핸들링하는지 한번 알아보도록 하겠습니다! 앞에 글을 안 보고 오셨으면 이해를 하기 어려울 수 있으니 꼭 한 번씩 읽어보시고 오세요!Watch와 Complication 데이터 공유데이터를 보여주지않고 앱 아이콘이나 사진 같은걸 Complication에 보여주면 넘어가셔도 됩니다.// InterfaceController//class DayInfo { static let shared = DayInfo() var days: String? private init() { } }class InterfaceController: WKInterfaceController, WCSessionDelegate { ..