일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- tabman
- backend
- UITableView
- UIDatePicker
- app intents
- widgetkit
- task.yield()
- watchkit
- Flutter
- Firebase
- Tuist
- SwiftUI
- spring
- Apple Developer Academy
- cloud functions
- fcm
- Swift
- Delegate Pattern
- Complication
- 코테
- coreml
- Coding Test
- UIStackView
- github
- createml
- WWDC22
- Project
- Sendbird
- ios
- swift concurrency
- Today
- Total
목록2024/11 (67)
azhy의 iOS 이야기
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 { ..
2022년 8월 5일에 작성됨Complication..?? 이게 뭔데?네.. 저도 처음에는 몰랐습니다.. 이게 뭔지.. 워치를 사용하시는 분이라면 이제는 아실 겁니다. 본인이 원하는 정보들을 워치 화면에 많이 표시하죠.예를 들자면 배터리라던가 날씨, 카카오톡, 유튜브 뮤직 등등 공식문서에서는 Complication을 이렇게 정의합니다. "사람들이 손목을 올릴 때마다 볼 수 있는 시계 페이스에 관련된 정보들을 표시합니다." 만약 iOS앱과 함께 워치앱을 출시하고 Complication 관련해서 세팅을 안 해주면 모든 종류가 default로 전부 다 들어가는 것 같습니다. 그리고 아무런 처리를 안 해주었기 때문에 아무런 데이터가 뜨지 않는 상태가 됩니다. 그래서 만약 워치앱을 출시했는데 '나는 Complic..
2022년 8월 4일에 작성됨 이번 글은 제 프로젝트를 통해 Watch Connectivity를 사용한 예시를 소개하면서 몇 가지 있었던 문제들을 소개하려 합니다. 제가 앞에서 설명한 부분을 안 보셨다면 꼭 WatchKit[1], WatchKit[2] 를 읽어보시고 진행해 주세요! updateApplicationContext(_:)우선 저는 커플 디데이 프로젝트를 진행 중입니다. iOS앱에서 day와 배경사진을 설정하면 watch앱에서 그 데이터를 가지고 watch화면에 보이게 되는 형태입니다. 데이터를 보내는 Send 메서드 중 저는 updateApplicationContext(_:) 이 친구를 가지고 이미지와 day 데이터를 같이 넘기려고 했습니다.그러나 문제가 발생했습니다. 저는 이미지와 day 데..
2022년 8월 2일에 작성됨Watch ConnectivityiOS 앱이랑 watch 앱이랑 데이터를 주고받으려면 widget처럼 UserDefaults 데이터를 가지고 쉽게 공유할 수 없습니다.사진으로 보면 알 수 있듯, iOS App의 Data Store 부분과 Watch App의 Data Store 부분이 완전 분리돼 있기 때문이죠. 그래서 우리는 Watch Connectivity 를 사용해서 데이터를 공유해야 합니다. 공식문서에서는 Watch Connectivity를 이렇게 정의하고 있습니다. " iOS 앱과 페어링된 watchOS 앱 간의 양방향 통신을 구현합니다. " 이제 iOS앱과 watch앱 사이에 데이터 공유를 위해서는 Watch Connectivity 를 사용해야 하는 것을 알았으니 한..
2022년 8월 1일에 작성됨 이번에는 앱을 만들면서 watch 앱도 같이 만들어 봤습니다.모든 글들은 제가 경험하고 진행했던 프로젝트에 기반해서 작성될 거라 제가 모르는 개념들도 많고 틀릴 수도 있습니다. 댓글로 알려주시면 수정하겠습니다. 아마 watch 관련된 글도 widget처럼 3~4개 정도 나오지 않을까 예상해 봅니다.워치 프로젝트 생성기본적으로 워치 프로젝트 생성은 2가지 케이스가 존재합니다. 처음부터 watch 앱을 포함한 프로젝트를 생성하기.File - New - Project - watchOSiOS App with Watch App은 iOS 앱과 워치 앱이 서로 연동이 가능한, 즉 iOS 앱도 만들고 watch 앱도 만드는 프로젝트이고 Watch App은 iOS 앱을 제외하고 워치 앱만 ..