☑️ dynamic-callable 간단 설명 @dynamicCallable 은 객체가 함수처럼 동작할 수 있도록 만들어준다. 쉽게 말하면, 해당 객체에 대해 함수 호출 연산자 ()를 사용할 수 있게 해준다. 이를 통해 동적으로 호출되는 동작을 구현할 수 있다. 어떤 객체의 호출을 일반화하거나, 다양한 유형의 인자를 처리하는 등의 상황에서 유용하다. [1] 수학연산 @dynamicCallable struct DynamicMultiplier { func dynamicallyCall(withArguments args: [Int]) -> Int { return args.reduce(1, *) } } let multiplier = DynamicMultiplier() multiplier(1, 10) // 10 m..
Swift Concurrency 관련 Instruments 는 총 두가지가 있다. 이 중, Swift Tasks 를 활용하는 법을 기록! WWDC 23 > Analyze hanges with Instruments 와 비슷한 예제를 만들어서 진행해보자. # 1. import SwiftUI struct ContentView: View { var body: some View { ScrollView(.horizontal) { LazyHStack { ForEach(0.. Profile > Swift Concurrency 를 열어준다. (혹은 다른 툴을 열고 Instruments Library 에서 Swift Tasks 를 추가해도 무방하다) 레코딩을 해준 후, App > Thread > Graph Display ..
WWDC 23 > Analyze hanges with Instruments 를 기반하고 있습니다. (40분 쯤 되는데 너무 재밌고 유용함. 강추) # Hang hang 은 delay 를 의미한다고 생각하면 됩니다. Xcode Instruments 에서 녹화버튼을 꾹 누르고 Recording Options 에 가보면 Hang, MicroHang 등 애플이 몇초 기반으로 정의해뒀는 지 볼 수 있고 프로파일링할때 어디까지 리포트되게 할 건지 설정가능합니다. # Hang 만들어보기 Hang 을 유발할 코드를 만들어봅시다. struct ContentView: View { @State private var showImagePicker = false var body: some View { Button(action: ..
[1] 문제 Blender에서 Object 를 export 한 후, Reality Composer Pro 로 가져오면 Multiple root level objects exist for ~~ 얼럿이 뜬다. 또한 가져온 오브젝트를 열어보면 material 이 제대로 들어가지 않은 것을 볼 수 있다. [2] 해결 export option 에서 root prim 을 지정해줘야한다. 나는 블렌더 3.1.2 버전인데 export option에 Root Prim 필드가 없다. 몇버전 부터 생겼는지 잘모르겠음;; 4.0을 받으니까 있다. 그럼 얼럿도 안뜨고 material 도 잘 들어간다! + 참고로 Blender 4.1 은 root 설정이 디폴트로 들어가있다고 한다. ㄴ 애플 디벨로퍼 포럼 ㄴ 블렌더 PR 아직 A..
3D 앱에서 모델을 임포트하는 방법 문서를 기반으로 하고 있습니다. Blender to Unity 를 위해 두가지 방법이 있습니다. [1] 방법 1) 각 모델링 앱에서 export 한 3D 모델을 import 하기 Unity에서 읽기 가능한 파일 타입은 .fbx, .dae (Collada), .3ds, .dxf, .obj, .skp 입니다. 2) 각 모델링 앱 전용 파일 자체를 import 하기 Unity는 Max, Maya, Blender, Cinema4D, Modo, Lightwave, Cheetah3D 와 같은 DCC 소프트웨어에서 전용 파일을 임포트할 수 있습니다. 이렇게 가져온 파일은 임포트하는 동안 Unity가 .fbx 파일로 전환합니다. 예를들어 .blend 파일을 유니티 프로젝트의 Asse..
[1] SwiftUI hyperlink accessibility SwiftUI Text 에 마크다운을 넘기거나 (참고: 예제) struct ContentView: View { var body: some View { Text("Hello") + Text("[Apple](https://www.apple.com)") } } AttributedString 를 넘기면 struct ContentView: View { var attributed: AttributedString { let hello = AttributedString("Hello") var apple = AttributedString("Apple") apple.link = URL(string: "https://www.apple.com") return h..
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 라면 (== 하위 계층을 가지고 있는 뷰라면..
- Total
- Today
- Yesterday
- Django Firebase Cloud Messaging
- METAL
- Flutter 로딩
- Flutter getter setter
- 플러터 얼럿
- 장고 Custom Management Command
- flutter deep link
- flutter 앱 출시
- flutter build mode
- Flutter Clipboard
- SerializerMethodField
- 장고 URL querystring
- ipad multitasking
- ribs
- Django FCM
- Flutter Text Gradient
- cocoapod
- Django Heroku Scheduler
- github actions
- 플러터 싱글톤
- Python Type Hint
- 구글 Geocoding API
- flutter dynamic link
- PencilKit
- Watch App for iOS App vs Watch App
- Dart Factory
- Flutter Spacer
- Sketch 누끼
- drf custom error
- DRF APIException
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |