[1] Linker Option > release vs debug 다음과 같이 프로젝트를 세팅했을 때 debug랑 release 의 빌드로그 차이점 몇가지를 살펴 보자. 1) debug 빌드일때만 링커에 -export_dynamic, -no_deduplicate 옵션을 넘긴다 우선 해당 옵션을 하나씩 보자 # -no_depulicate 중복 제거 최적화 (사이즈 최적화) 를 하지 말라는 옵션이다. debug 빌드는 빠른 속도가 중요하기 때문에 사이즈 최적화 단계를 거치지 않도록 해당 옵션을 넘긴다. # -export_dynamic 공유 라이브러리의 symbol을 외부로 노출시키고, 다른 모듈에서 해당 기호를 사용할 수 있도록 하는 옵션이다. (출처 GPT) debug 에서는 중복제거를 안하므로 dupli..
[1] 바닐라 Static Framework 에서는 프리뷰를 볼 수 없다. https://forums.developer.apple.com/forums/thread/704910 Getting error in previews when are… | Apple Developer Forums Previews don't work when are inside of a static framework. Has anyone experimented it also? MessageSendFailure: Message send failure for update ================================== | RemoteHumanReadableError: Unknown preview provider "Provid..
Tuist 4.7.0 기반 [ 문서 ] Tuist Docs 를 보면 다음과 같이 나와있다. 1) Cache Warming Tuist가 종속성 그래프의 각 대상에 대해 해시를 효율적으로 활용하여 변경 사항을 감지합니다. 이 데이터를 활용하여 Tuist는 이러한 대상에서 파생된 이진 파일에 고유한 식별자를 빌드하고 할당합니다. 그런 다음 Tuist는 그래프 생성 시에 원래의 대상을 그에 해당하는 이진 버전으로 원활하게 대체합니다. 이 작업은 "캐시 워밍"이라고 불리며, 로컬 사용이나 Tuist Cloud를 통해 팀원 및 CI 환경과 공유하기 위한 이진 파일을 생성합니다. 캐시를 워밍하는 과정은 간단하며 다음 명령으로 시작할 수 있습니다. tuist cache 팁: 캐시를 워밍하기 위해 별도의 CI 파이프라인..
[1] 궁금증 dylib 를 iOS 에서는 직접 못만드는 걸로 알고 있다. 그래서 맥 OS 와 달리 'Static' Library 라고 템플릿 이름이 명시되어있는 것이고 iOS 에서는 오직 System 라이브러리만 다이나믹 가능한 것으로 알고 있다. (예전 관련 글) 하지만 Tuist 를 보다보니.. Product Type 중 Dynamic Library 를 iOS 에서도 쓸 수 있다. Linking 도 잘들어가있고 앱에 embed 할때도 dylib 으로 잘나온다. 이게 어떻게 가능한 것일까 ??? ㄴ Tuist Github 을 뒤져봐도 잘모르겠음 ;;; ㄴ 애플 문서 > Creating Dynamic Libraries 를 봐도 모르겠음 ;;; [2] 추측 세가지 가능성이 있을 것이라고 생각했다. 1) ..
Tuist 튜토리얼 이 major version 3 기준이라서 초기 만들어지는 파일이나 폴더가 major version 4 랑 많이 다르다. 동료분과 Tuist 팀의 도움으로 겨우 4.7.0 기반 프로젝트 만들기 성공함 🥹 3과 달리 4는 한땀한땀 직접 추가해야하는 경우가 많아서 기록해둠 [1] Tuist 4 버전대 설치 Installation 가이드 보고 mise 설치 후, tuist 설치 해주면 된다. 나는 옛날에 mise 말고 다른 툴로 tuist 3 버전대를 설치했어서 이 이슈로 시간 많이 잡아먹음 ;; (tuist install 명령어를 통해 외부 의존성을 설치하겠다는 건데 명령어가 충돌나서 tuist 자체를 설치하려고 했던 기억) 답변에 있는 것 처럼 uninstall 하고 mise 로 다시 ..
☑️ 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..
- Total
- Today
- Yesterday
- Sketch 누끼
- github actions
- ipad multitasking
- 플러터 얼럿
- 구글 Geocoding API
- flutter build mode
- PencilKit
- flutter dynamic link
- Django Heroku Scheduler
- Django FCM
- Flutter getter setter
- SerializerMethodField
- flutter 앱 출시
- DRF APIException
- Flutter 로딩
- 플러터 싱글톤
- Django Firebase Cloud Messaging
- ribs
- flutter deep link
- Python Type Hint
- METAL
- Flutter Spacer
- 장고 Custom Management Command
- drf custom error
- Flutter Clipboard
- Flutter Text Gradient
- 장고 URL querystring
- Watch App for iOS App vs Watch App
- cocoapod
- Dart Factory
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |