[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: ..
# 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 라고 적..
렛츠스위프트 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..
StoreKit Configuration File 의 기본 priceLocale 는 USD로 되어있다. 이걸 바꾸는 법을 알아보자. 참고로 Setting up StoreKit testing in Xcode 문서에 안나와있어서 이 글을 보고 알게됨! (wwdc 어딘가에 나와있을 것 같음) 파일 내부에 해당 세팅이 없고 다음과 같이 Editor 를 통해 변경한다. StoreKit Configuration File 선택 > Editor > DefaultStorefront 변경 그러면 StoreKit Configuration 아이템들의 price가 원화로 바뀌고 테스트 코드에서도 fetch 해온 product의 priceLocal / price가 원화기준으로 바뀐다. 이제 앱스토어커넥트에서 원화 기준으로 상품 ..
- Total
- Today
- Yesterday
- METAL
- Flutter Text Gradient
- ipad multitasking
- 장고 URL querystring
- drf custom error
- DRF APIException
- Django Firebase Cloud Messaging
- Watch App for iOS App vs Watch App
- flutter deep link
- 장고 Custom Management Command
- PencilKit
- ribs
- cocoapod
- Python Type Hint
- github actions
- Dart Factory
- 플러터 얼럿
- Flutter 로딩
- Django FCM
- Django Heroku Scheduler
- 플러터 싱글톤
- Flutter Clipboard
- Flutter getter setter
- flutter build mode
- Flutter Spacer
- flutter dynamic link
- SerializerMethodField
- Sketch 누끼
- 구글 Geocoding API
- flutter 앱 출시
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |