일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- spring
- app intents
- Flutter
- WWDC22
- cloud functions
- Swift
- Delegate Pattern
- createml
- 코테
- UIDatePicker
- coreml
- Sendbird
- Firebase
- Apple Developer Academy
- SwiftUI
- tabman
- fcm
- Complication
- swift concurrency
- watchkit
- ios
- UIStackView
- widgetkit
- Coding Test
- github
- backend
- task.yield()
- UITableView
- Project
- Tuist
- Today
- Total
목록iOS (36)
azhy의 iOS 이야기
2024년 11월 2일에 작성됨 많은 분들이 비트맵 이미지와 벡터 이미지 그 차이점을 잘 모르시고 이미지 파일을 추가할 때 무조건 svg 파일로 추가하시는 분이 계실 수도 있습니다.하지만 두 이미지의 차이점에 대해 알고 사용하는 것과 모르고 사용하는 것에는 앞으로 개발하는 데 있어 분명 다른 결과를 만들어 낼 거라 생각합니다.비트맵 이미지비트맵 이미지는 쉽게 말해서 수많은 점(픽셀)들의 조합으로 이루어진 이미지입니다. 대표적으로 .jpg .png .gif 가 비트맵 방식입니다. 우리의 iOS 디바이스는 어떤 디스플레이를 쓰냐에 따라서 기준이 달라집니다. 이미지에서도 확인하실 수 있죠.당연히 숫자가 올라갈수록 더 많은 픽셀을 사용하니 해상도가 높아지고 더 선명한 이미지를 보여줄 수 있습니다.그래서 개발자..
2024년 10월 7일에 작성됨Shortcuts?Shortcuts은 단축어를 뜻합니다. 음.. 저는 개인적으로 단축어를 안 써봤지만 분명 잘 쓰시는 분이 계실게 분명하니까 iOS 개발자라면 당연히 알아야 하고 기능을 제공해야 하지 않을까요..?App IntentsShortcuts을 알아보기 전에 먼저 App Intents에 대해서 알고 넘어가야 합니다. App Intents는 앱의 기능을 외부에서 사용하는데 공통적인 인터페이스라고 볼 수 있습니다.이미지에서 볼 수 있듯이 Siri, Sportlight, Shortcuts 기능을 사용하려면 App Intents를 구현해야 합니다.(그리고 코드를 재사용하여 WidgetKit과 함께 컨트롤 및 인터랙티브 위젯을 생성할 수 있다고 하네용..?) WWDC24에서도..
2024년 8월 31일에 작성됨 오늘은 (1년이 지난 프로젝트에서 사용했던.. ㅎㅎ;) CreateML에 대해 이야기해보려 합니다!왜 CreateML을 쓰셨는지..?비비노라는 정말~~ 유명한 와인 앱이 있습니다. 비비노에는 정말 강력한 기능이 있는데 바로 라벨 스캔! 와인 라벨을 카메라로 찍으면 그 와인에 대한 정보를 알려줍니다.그때 당시 우리가 만들고 있던 막걸리 앱에서도 동일한 기능을 만들고 싶었습니다. (물론 제 욕심으로..)약간 외국인들이 한국에 놀러와서 우리 앱을 통해 막걸리 라벨을 스캔만 하더라도 그 정보들이 쭈루룩 보이는.. 그런 상상을 했거든요 ㅎㅎ; 자자 기능을 만들자! 결정을 하고 난 뒤에 어떻게 접근을 해야할지 고민에 빠졌습니다..분명히 이미지 학습은 시키지 않을까? 라는 생각으로 아..
2024년 1월 26일에 작성됨 Static Framework & Dynamic Framework에 대해 한번 정리하려 합니다. Tuist 세팅할 때 고생한 부분이기도 하고.. 공부하면서 정리해 두면 좋겠다 싶은 부분이라서요!Framework간단하게 설명하면 프레임워크는 위에서 프로그램을 구현하는 틀 이라고 생각하시면 됩니다. 또한 여러 요소들도 제공해 주는데, 예를 들어 에셋, nib 파일 등등을 제공해 주고 이를 사용합니다. 그리고 이 요소들과 위의 가이드 규칙을 꼭 지켜서 만들어야 합니다.프레임워크를 이야기하면 꼭 나오는 라이브러리는 도와주는 도구일 뿐 사용해도 상관없고 사용 안 해도 상관이 없습니다. 그래서 이렇게 정의할 수 있습니다.Framework = Library + Asset(Bundle)..
2022년 10월 4일에 작성됨 HIG, iOS 개발을 조금이라도 접해봤다면 알고 있거나 어디선가 들어봤을 거라 생각합니다. 저도 중요하다는 것을 인지는 하고 있었지만 정작 행동으로 실천을 하지는 않은.. 흠흠.. 그래서 HIG가 뭔지, 또 추구하는 방향은 뭔지 한번 정리해 보고 시간이 남으면 하나씩 읽어나갈 생각입니다. 🙋♂️ : 오늘 내용은 뭔가요?👨💻 : Apple이 제공하는 HIG 입니다. 원래 한번 쭉 읽어볼 계획이 있었기도 했고, 찾아보니 WWDC22 이후 2022년 6월 7일 자로 업데이트가 됐길래 이번 기회에 한번 읽어보면서 정리해보려 합니다. 🙋♂️ : HIG가 뭐야 ?👨💻 : Apple은 사용자가 익숙한 방식으로 앱을 사용하는 것을 추구하기 때문에 따라서 앱의 모든 ..
2022년 9월 27일에 작성됨 오늘은 iOS16에서 지원하는 잠금화면 위젯 추가에 대해 정리하려 합니다.[iOS] WWDC22 - Complications and widgets: Reloaded - 잠금화면 위젯에 대한 WWDC22 영상 정리내용이니 꼭 한 번씩 보고 오세요!if iOS16 { supportedFamilies } 제 프로젝트에서 사용하던 위젯입니다. 이제 잠금화면 위젯을 추가해 볼까요? 기존 위젯기능을 사용하고 계셨으면 생각보다 별로 어렵지 않습니다. 저는 .accessoryInline을 제외한 .accessoryCircular, .accessoryRectangular 두 위젯을 추가해 보겠습니다..accessoryCircular, .accessoryRectangular은 잠금화면 위젯..
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..