Layout 프로토콜을 채택해서 Custom Layout 을 주로 만들지만 (문서, 예제 - WheelLayout )이 글처럼 SizeLogger 를 만들 수도 있다. 좋은 아이디어! struct SizeLogger: Layout { let label: String func sizeThatFits(proposal: ProposedViewSize, subviews: Subviews, cache: inout ()) -> CGSize { let result = subviews[0].sizeThatFits(proposal) print(label, proposal, result) return result } func placeSubview..
iOS 17 부터 scrollClipDisabled 모디파이어를 쓸 수 있다. ScrollView 는 기본적으로 contents 를 scrollView bounds 에 맞게 clip 하기 때문에ScrollView 안에 들어가는 뷰에 shadow 를 주면 짤리게 된다.그 때 이 모디파이어를 사용해서 shadow 를 안짤리게 할 수 있다. [ 문서에 나오는 예제 ] scrollClipDisabled > true (디폴트값) scrollClipDisabled > false [ 하위버전 ] 그럼 하위버전에서는 어떻게 shadow 가 안짤리게 할까 ? ScrollView 자체에 shadow 를 주면 된다. (동일하게 동작함) ScrollView(.horizontal) { ..
Timer 쓸 때, 편하게 썼던 autoconnect 는 ConnectablePublisher 의 메소드이다. ConnectablePublisher 에 대해 자세히 알아보자. [1] ConnectablePublisherConnectablePublisher 는 connection 을 명확히 지정할 수 있는 publisher 이다. 즉 connect 메소드를 직접 호출하기 전까지 값을 방출하지 않는다. 값이 방출되기 전에 추가적인 configuration 이나 setup 이 필요할 때,구독자들이 다 준비된 후 이벤트를 방출하고 싶을 때유용하다. autoconnect 는 connection , disconnection 을 자동으로 해주는 메소드이다. [2] ConnectablePublisher..
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..
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 라도 해보자 ..
[1] 웹뷰 인스펙터 환경 세팅 사파리 앱은 개발자모드에서 인스펙터를 기본으로 볼 수 있지만앱에 들어가는 웹뷰는 별도 설정을 해줘야지 인스펙터를 볼 수 있다. 1) Safari Web Inspector 에서 웹뷰를 볼 수 있도록 isInspectable 를 ON #if !RELEASEif #available(iOS 16.4, *) { self.webView.isInspectable = true}#endif 2) (시뮬레이터가 아니라 실기기라면) '설정 > 사파리 > 고급 > 웹 인스펙터' ON 3) 이제 사파리 > 개발자용에 접속해서 웹뷰 인스펙터를 띄울 수 있다. --> FE 개발자분이 매번 배포를 하기 보다, 인스펙터를 띄우고 CSS 값을 바꿔보거나 함수를 호출해보거나 할 수 ..
Preferences 는 서브뷰가 자신을 감싸는 컨테이너에게 configuration 정보를 알려줄 수 있는 방법이다. 많은 built-in modifier 에서 이 방식을 사용하고 있다. (ex. navigationTitle, colorScheme) 쉽게 말하면.. 뷰 하이어러키에서 하위 뷰가 상위뷰로 데이터를 간편하게 전달할 수 있는 방식이고앱의 전역적인 설정을 전달할 때 주로 사용한다. 예를들어 앱 설정 페이지의 깊숙한 곳에 앱 전체의 key color 를 세팅하는 뷰가 있다고 해보자 1) PreferenceKey 를 정의한다2) 하위뷰에서 preference(key:value:) 를 호출해서 preference 에 대한 value 를 세팅한다.3) 상위뷰는 해당 키를 알면, onPrefe..
# Swift Pacakge Plugin - Xcode 14 부터 Swift Package 를 만드는 것과 유사한 방식으로 Swift Package Plugin 을 만들 수 있다. - 이 플러그인은 Swift 스크립트로 Swift 패키지나 Xcode 프로젝트에서 사용할 수 있다. - 빌드 전이나 빌드 중에 실행되는 사용자 정의 명령 (ex. 소스코드 생성) 을 실행할 수 있다 . 이전에는 shell script 나 makefile 로 이런 작업을 했으나 이젠 플러그인을 만들어서 할 수 있는 것이다. 자동화, 공유 의 이점을 가져갈 수 있다. - Xcode 는 플러그인을 컴파일하고 실행한다. 플러그인은 실행 파일과 입력 파일에 대한 정보를 사용해서 명령을 구성한다. 그리고 필요에 따라 ..
[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 ForumsPreviews 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 "Prov..
- Total
- Today
- Yesterday
- flutter build mode
- DRF APIException
- Flutter Text Gradient
- Flutter getter setter
- flutter deep link
- Flutter Clipboard
- 구글 Geocoding API
- Django Heroku Scheduler
- Sketch 누끼
- 장고 Custom Management Command
- Watch App for iOS App vs Watch App
- 장고 URL querystring
- cocoapod
- SerializerMethodField
- Dart Factory
- 플러터 싱글톤
- METAL
- Flutter Spacer
- PencilKit
- flutter dynamic link
- ipad multitasking
- Flutter 로딩
- ribs
- 플러터 얼럿
- flutter 앱 출시
- Django Firebase Cloud Messaging
- Django FCM
- Python Type Hint
- github actions
- drf custom error
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |