TCA 를 보다가 context 를 live, preview, test 로 구분하는 것을 봤다. ProcessInfo.processInfo.environment["XCODE_RUNNING_FOR_PREVIEWS"] == "1"이면 프리뷰 빌드인 지 알 수 있다고 한다. (참고) [ TCA 코드 ]https://github.com/pointfreeco/swift-dependencies/blob/2ee34c93c717700eb58ab945fd0444cebe8a646f/Sources/Dependencies/DependencyValues.swift#L304 swift-dependencies/Sources/Dependencies/DependencyValues.swift at 2ee34c93c717700eb..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/clOXEH/btsIoP8BsMT/hISp8pS1pgOdKWZfGQzb3k/img.png)
https://developer.apple.com/apple-intelligence/ Apple Intelligence for DevelopersApple Intelligence is the personal intelligence system that puts powerful generative models right at the core of your iPhone, iPad, and Mac and powers incredible new features to help users communicate, work, and express themselves.developer.apple.com ㄴ Image PlayGround 는 세션도 없는데 아직도 여기 링크 추가안됨 😭 Genmoji 라도 해보자 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bgfotN/btsIgLlXJYH/FBkynrhP708xlJXSxLKxPk/img.png)
[1] 웹뷰 인스펙터 환경 세팅 사파리 앱은 개발자모드에서 인스펙터를 기본으로 볼 수 있지만앱에 들어가는 웹뷰는 별도 설정을 해줘야지 인스펙터를 볼 수 있다. 1) Safari Web Inspector 에서 웹뷰를 볼 수 있도록 isInspectable 를 ON #if !RELEASEif #available(iOS 16.4, *) { self.webView.isInspectable = true}#endif 2) (시뮬레이터가 아니라 실기기라면) '설정 > 사파리 > 고급 > 웹 인스펙터' ON 3) 이제 사파리 > 개발자용에 접속해서 웹뷰 인스펙터를 띄울 수 있다. --> FE 개발자분이 매번 배포를 하기 보다, 인스펙터를 띄우고 CSS 값을 바꿔보거나 함수를 호출해보거나 할 수 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/tHyYW/btsG5jjgtHb/c5LmO6NVEm1f4Tv2dFFbV0/img.png)
# Swift Pacakge Plugin - Xcode 14 부터 Swift Package 를 만드는 것과 유사한 방식으로 Swift Package Plugin 을 만들 수 있다. - 이 플러그인은 Swift 스크립트로 Swift 패키지나 Xcode 프로젝트에서 사용할 수 있다. - 빌드 전이나 빌드 중에 실행되는 사용자 정의 명령 (ex. 소스코드 생성) 을 실행할 수 있다 . 이전에는 shell script 나 makefile 로 이런 작업을 했으나 이젠 플러그인을 만들어서 할 수 있는 것이다. 자동화, 공유 의 이점을 가져갈 수 있다. - Xcode 는 플러그인을 컴파일하고 실행한다. 플러그인은 실행 파일과 입력 파일에 대한 정보를 사용해서 명령을 구성한다. 그리고 필요에 따라 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/NqZgh/btsGNMlASq7/ppfft6bQtOqI09dVm0WHXK/img.png)
[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..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/eljto3/btsGrVqyBIl/HPd8lzRTn5cnsphJnQ2IeK/img.png)
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 로 다시 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bMn5Iw/btsFGVdEAuT/rfU17DEe6a9XP0CFC67tYk/img.png)
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 ..
- Total
- Today
- Yesterday
- Django FCM
- Flutter getter setter
- 플러터 얼럿
- METAL
- 구글 Geocoding API
- Django Heroku Scheduler
- flutter build mode
- 장고 Custom Management Command
- ribs
- flutter 앱 출시
- drf custom error
- Flutter Spacer
- ipad multitasking
- Flutter Clipboard
- SerializerMethodField
- flutter deep link
- Sketch 누끼
- Watch App for iOS App vs Watch App
- github actions
- 플러터 싱글톤
- Flutter Text Gradient
- Django Firebase Cloud Messaging
- DRF APIException
- 장고 URL querystring
- Python Type Hint
- cocoapod
- Flutter 로딩
- PencilKit
- Dart Factory
- flutter dynamic 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 |