# notification을 눌렀을 때 들어오는 메소드 1) application(_:didReceiveRemoteNotification:fetchCompletionHandler:) - remote notification을 눌렀을 때 들어오는 메소드 2) userNotificationCenter(_:didReceive:withCompletionHandler:) - remote, local notification을 눌렀을 때 들어오는 메소드 - iOS 10 이상부터 remote notification을 이 메소드로 처리하라고 권장함. - Handling Notifications and Notification-Related Actions 문서에서는 항상 competionHandler() 를 콜하라고 적혀있음..
# USDZ USDZ는 애플과 픽사가 같이 만든 AR content를 표시하는 3D file format입니다. 이 글에서는 USDZ가 3D계의 PNG 같은 것이라고 하며 storage와 sharing을 최적화했다고 합니다. 그리고 USDZ는 안드로이드와 iOS에서 AR Preview를 볼 수 있는 WebAR Viewer의 일부라고 합니다. (iOS에서는 WebAR Viewer가 AR Quick Look을 말하는 것 같아요!) - 픽사: Usdz File Format Specification - 애플: USDZ Schemas for AR # AR Quick Look AR Quick Look 은 USDZ 파일을 display 해주는 것을 말합니다. Safari, 메시지, Mail, News, 메모 등의 애..
[1] iOS App과 WatchKit Extension 사이의 관계 WatchApp도 위젯처럼 Shared Container를 이용하여 간단히 앱과 워치 사이의 데이터를 공유할 수 있을 줄 알았으나,,, (참고: App과 Extension간 UserDefaults 공유하기 ) Watch는 이 방법말고 Watch Connectivity 라는 framework를 사용해서 iOS App과 paired watchOS app 사이의 two-way communication을 구현해줘야한다고 합니다. 그 이유는 다음과 같습니다. WatchOS 1에서는 iOS App과 Watchkit Extension이 둘다 아이폰 안에 있었으며 data store를 공유했습니다. 하지만 WatchOS 2부터는 WatchKit Ex..
Watch Complications HIG 랑 개발문서랑 왔다갔다 보기 힘들어서 정리 ✍️ Complication Family와 Templates가 UI와 코드로 어떻게 표현되는 지 살펴보겠습니다. [1] Circular Small 이 Family는 코드 상으로 CLKComplicationFamily enum 중, circularSmall 에 해당됩니다. # Template 이 Family에 해당하는 templates들은 아래와 같습니다. 위 템플릿들이 코드상으로 어떻게 표현되는 지는 Circular Small 에 나와있습니다. [2] Modular Small 이 Family는 코드 상으로 CLKComplicationFamily.modularSmall 에 해당됩니다. # Template 이 Family에..
WWDC 2020 - VoiceOver efficiency with custom rotors 를 본 기록 ✏️ [1] 로터 VoiceOver는 화면이 보이지 않더라도 Apple Device와 interact 할 수 있게 해주는 Apple의 Screen Reader 입니다. VoiceOver를 사용하면 화면을 터치하여 손가락 아래에 뭐가 있는 지 들을 수 있고 간단한 제스처를 수행하면서 user interface를 탐색할 수 있습니다. 화면을 보지 않는 사람들은 VoiceOver 모드에서 많은 작업을 rotor에 의존합니다. 스크린에서 두손가락을 비틀면 로터가 활성화됩니다. swipe down을 하면 next rotor item으로 이동하고 swipe up을 하면 previous rotor item으로 이..
WWDC 2019 - Accessibility in SwiftUI 를 본 기록 ✏️ 이렇게 4가지에 대해 설명해주십니다. [1] Introduction to Accessbility 애플의 built-in accessibility feature들입니다. 이 중, VoiceOver를 먼저 언급하시고 이 목록에서 이번에(2019년) 추가된 두가지 항목을 언급하십니다. Voice Control와 Full Keyboard Access 입니다. ( Full Keyboard Access는 iOS에서는 완전 새로운 것이고 Mac에서는 크게 향상되었습니다. ) VoiceOver, Full Keyboard Access, Voice Control 과 함께 너의 앱을 써보십시오 [2] Automatic Accessibilit..
Provisioning Profile 관련 헷갈리는 것들을 기록 ✏️ [1] Provisioning Profile의 Capabilities 는 지원가능한 Capabilities를 말한다. MyApp이라는 예제 앱을 만들고 developer 사이트 > Identifiers 에 가서 App ID를 등록해줬습니다. 이 때 Capabilities 중 Access WiFi Information을 체크해준 것을 주목해주세요! 그리고 Profiles에서 Provisiong Profile을 만들고 다운로드 눌러줍니다. 그리고 다운로드된 Provisiong Profile을 더블 탭하여 설치해주면 XCODE Provisiong Profile 목록에 뜨는 데 선택해줍니다. 느낌표 눌러서 Provisiong Profile 정..
WWDC 2019 - Making Apps More Accessible With Custom Actions 을 본 기록 ✏️ [ 인트로 ] VoiceOver는 blind 또는 low vision인 사람들을 위한 built-in screen reader 입니다. VoiceOver 사용자는 다양한 방법으로 앱을 탐색할 수 있지만 가장 유명한 방법은 swiping left and right 하여 이전 항목, 다음 항목으로 이동하는 방법입니다. 사용자가 좋아하는 피넛 버터 종류들을 tracking하는 데 도움을 주는 앱을 예시로 보겠습니다. 만약 VoiceOver를 사용하지 않고 목록의 두번째 땅콩 버터 아이템의 rating을 올리고 싶다면 어떻게 해야할까요? 우선 너가 선택할 아이템이 목록에서 어디 있는 지 ..
User Notifications framework를 사용하여 Local Notification을 create & schedule 할 수 있습니다. [1] Asking Permission to Use Notifications Asking Permission to Use Notifications 문서 를 참고해주세요. 이런 얼럿을 띄워서 Notification 권한을 먼저 받아줍니다. 보통 이 얼럿은 앱 처음 실행시킬 때 보여주잖아요! 근데 문서에서는 사용자가 이 앱에 노티 권한이 필요한 이유를 이해할 수 있는 context에서 권한을 요청하라고 나와있습니다. 예를들어 리마인드 노티를 보내주는 task-tracking 앱이라고 한다면, 사용자가 첫번째 Task를 예약한 후 이 권한을 요청하는 것이 좋습니다..
WWDC 2019 - Large Content Viewer - Ensuring Readability for Everyone 를 본 기록 ✏️ [1] Large Content Viewer 란? 우리의 목표는 앱의 모든 부분이 모든 사용자에게 readable한 것입니다. Large Content Viewer은 Dynamic Type이랑 연관되어있습니다. (참고: Dynamic Type 글) 텍스트 사이즈를 Accessibility size 중 하나로 키워봅시다. 하지만 탭바의 텍스트는 여전히 커지지 않은 것을 볼 수 있습니다. 자리가 부족하기 때문에 탭바를 키우고 싶지는 않습니다. 대신 해당 버튼을 long press 하면 더 큰 버전을 볼 수 있습니다. 탭바 안에서 손가락을 Drag하면 각 탭의 큰 버전이..
- Total
- Today
- Yesterday
- flutter dynamic link
- 장고 Custom Management Command
- 구글 Geocoding API
- ribs
- PencilKit
- Watch App for iOS App vs Watch App
- github actions
- flutter 앱 출시
- Flutter 로딩
- 플러터 얼럿
- DRF APIException
- Dart Factory
- Django FCM
- Django Heroku Scheduler
- 장고 URL querystring
- 플러터 싱글톤
- Flutter Spacer
- flutter build mode
- ipad multitasking
- Flutter Text Gradient
- Django Firebase Cloud Messaging
- SerializerMethodField
- drf custom error
- Sketch 누끼
- Flutter getter setter
- cocoapod
- Python Type Hint
- METAL
- Flutter Clipboard
- flutter deep link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |