UIKit 에서 셀 (전체) -> 셀 내부의 버튼 으로 포커싱 이동시켜주고 싶으면 accessibilityElements = [ contentView, button ] 이렇게 해줬다. 예를들어 앱스토어 같은 동선이다. ------ 근데 SwiftUI 에서는 이걸 어떻게 할 수 있을까? 레퍼런스는 못찾았고 예전에 [SwiftUI] accessibilityRepresentation 과 accessibilityChildren 를 봤던 기억이 나서 이걸 활용해봤다. 아주 간단하게 비슷한 예제를 만들어보자 VStack 을 combine 하여 다 읽어주고 포커싱 이동하면 안의 버튼만 읽게 해주고 싶다 import SwiftUI struct ContentView: View { var button: some View ..
[ 유니티 문서 & WWDC ] - Unity, visionOS 지원: 개발자라면 미리 알아야 할 내용 - Create for Apple visionOS - WWDC [ 유니티로 만들 수 있는 것 ] [ 유니티 버전 ] Unity 2022.3 LTS(2022.3.5f1 이상) 릴리즈노트 보면 2023 버전은 VisionOS 가 안들어가있어서 저는 Unity 2022.3.15 으로 설치함! (+ 앱에 악성소프트웨어~ 얼럿이 뜨는데;; 여기 참고) ++ 유니티 에디터에서 권장하는 버전인 2022.3.16f1 으로 받으시길 추천! 그럼 에디터 내에서 바로 설치가능하고 얼럿도 안뜸! [ 유니티 포팅 ] File > Build Settings > VisionOS > Player Settings > Ohter Se..
Reality Composer Pro 의 등장 ! Reality Composer Pro 랑 Reality Composer 의 차이는 아래 사진을 참고. Reality Composer 를 아주 살짝쿵 써본 경험이 있어서 뭐가 달라졌는지는 잘모르겠음 ;;; 참고로 Scene 을 구성안하고 간단히 3D 오브젝트 하나만 띄운다면 Model3D(named:) 를 써도 충분함!! ✓ 개발환경 - Xcode 15 Beta 3 ✓ 레퍼런스 - WWDC 23 > Develop your first immersive app [1] Reality Composer Pro 진입 여기 다운로드에 없는데, 베타여서 없는 건지 Reality Composer 처럼 독립적인 툴로 쓰는게 아니여서 없는 건지 모르겠음. Xcode 에서 Vi..
WWDC 23 > Explore SwiftUI animation 를 보다가 iOS 17에서 animation(_:body:) 등장을 알게 되었다. 기존에 animation(_:value:) 잘썼는데 왜 저 인터페이스가 추가되었을까? WWDC 에 나오는 내용으로 살펴보자. (참고로 이 글 을 먼저 읽고 오길 추천!) [1] 문제 이런 코드를 짰는데, pet 과 상관없는 다른 곳에서도 이 코드를 재사용하고 싶다고 해보자 그래서 이렇게 generic 하게 바꿔줬다. 그럼 어떤 위험이 있을까? 전자처럼 전체 계층구조를 제어할 수 있는 상황이고 leaf component 라면 원하는대로 애니메이션이 잘 작동한다. 하지만 content가 non-leaf component 라면 (== 하위 계층을 가지고 있는 뷰라면..
# iOS 17 미만 iOS 17 미만에서는 backgroundColor를 먹여도 text Selection이 그 위에 되었음 (iOS 16.4 로 테스트한 결과) 뷰계층구조를 보면 UITextSelectionRectView 가 텍스트를 나타내는 뷰보다 위에 있음을 명확히 알 수 있음. # iOS 17 하지만 iOS 17에서는 계층 구조가 바뀜! (베타이지만 가장 최신버전 iOS 17.2 로 테스트한 결과. 정식 하위버전도 동일함.) 17에서는 RectView가 아니라 RangeView로 바뀌고 글자를 보여주는 뷰 (_UITextLayoutFragmentView) 보다 더 하위에 위치하게 됨 RangeView 상위의 HighlightView 는 iOS 17 에 새로 나온건데 문서에도 behind 라고 적..
웃는 입꼬리(?)를 그리고 싶어서 Curved Path 를 그려본 기록 (with Animation) [1] Rectangle Path 그리기 (연습) 우선 가장 만만한 Rectangle 로 연습 먼저 해보겠습니다. rounded rectangle 을 Path 로 그려보면 다음과 같습니다. 이렇게 라인을 그리고 path 를 닫아서 네모를 완성시켜주는 코드입니다. 그리고 Shape 의 trim(from:to:) 모디파이어를 사용해서 애니메이션을 줄 수 있습니다. 예를들어 trim(from:0, to: 0.5) - 처음부터 50%까지만 그린다. trim(from: 0.5, to: 1) - 50%부터 끝까지 그린다. from을 0으로 고정시키고 to 를 0 ~ 1 사이로 바꾸면서 애니메이션을 주면 됩니다. 코..
렛츠스위프트 2023 에서 민소네님 발표를 통해 external view hierarchy debugger 가 있다는 것을 알게 되었다. (🥹) xcode view hierarchy debugger 를 실행하면 개발하다가 일시중단되는 셈이라 생산성이 낮아지고 오래 멈추고 기다렸는데도 안나오면 마음이 어려움. 두가지 소개해주신 것 정리 ~.~ 1) Lookin - 무료 - 오픈소스 (objc 임..) [ 사용법 ] 위의 사이트에서 맥용 앱을 다운받고 LookinServer 프레임워크를 앱에 embed 한다 (참고) 1. via CocoaPods (Recommended) pod 'LookinServer', :configurations => ['Debug'] 2. via Swift Package Manager..
KeyPath 를 SwiftUI 쪽에서 자주 쓰면서 Swift 코드에도 자주 사용하고 싶어서 정리 및 useful example 을 모아두려고 한다. 사실.. 예를들어 map(\.xx) 이런 코드 많이 축약됐네~ 이런 느낌도 잘안들고 익숙하지도 않아서 잘안썼는데 앞으로는 의도적으로 더 많이 써보고 싶음. [참고자료] - Swift Docs > Key-Path Expressions - KeyPath 구현 [1] Key Path 정리 1. 백슬래쉬를 쓰는 이런 Key-Path Expression 은 컴파일 타임에 KeyPath class 의 instance 로 교체된다. \. 2. 모든 타입에 subscript(keyPath:) 가 구현되어있다. 이 서브스크립트에 keypath 를 넘기며 사용하면 된다. s..
[ Django Channels ] Django Channels 는 Django 로 HTTP 를 넘어 WebSockets, chat protocols, IoT protocols 등을 핸들링하고 싶을 때 사용합니다. ASGI 기반이라고 하고 다음과 같은 패키지들로 구성되어있습니다. Channels is comprised of several packages: Channels, the Django integration layer Daphne, the HTTP and Websocket termination server asgiref, the base ASGI library channels_redis, the Redis channel layer backend (optional) [ 설치 ] Daphne ASGI ..
Collection 문서를 보면 Time Complexity 가 두개로 나온 부분이 많은데요, 예를들어 1) randomElement() 2) distance(from:to:) 3) count ✓ RandomAccessCollection = 효율적인 random-access index 순회를 지원하는 콜렉션 ✓ BidirectionalCollection = 양방향 (forward, backward) 순회를 지원하는 콜렉션 이렇게 두개의 콜렉션이 있는데, Expected Performance 에 잘 나와있는 것 처럼 bidirectional collection 는 전체 collection 을 순회해서 카운팅 해야하므로 O(1) 의 시간복잡도를 가질 수 없기 때문입니다. 각 콜렉션 문서에서도 차이를 잘 볼 ..
- Total
- Today
- Yesterday
- ipad multitasking
- Flutter Clipboard
- flutter build mode
- Django FCM
- 장고 URL querystring
- flutter 앱 출시
- Dart Factory
- Flutter 로딩
- Django Heroku Scheduler
- flutter dynamic link
- Flutter getter setter
- 장고 Custom Management Command
- github actions
- PencilKit
- Flutter Spacer
- Sketch 누끼
- DRF APIException
- Django Firebase Cloud Messaging
- Python Type Hint
- METAL
- drf custom error
- Flutter Text Gradient
- 플러터 얼럿
- SerializerMethodField
- Watch App for iOS App vs Watch App
- flutter deep link
- 플러터 싱글톤
- cocoapod
- 구글 Geocoding API
- ribs
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |