[1] NSCollectionLayoutBoundarySupplementaryItem > absoluteOffset 대놓고 이름이 offset 인데, inset 처럼 동작안해서 이상하다고 생각하고 있었다 ;;;;; 위 그림에서 item (파란색) bottom 으로 부터 안쪽 100에 footer (초록색) 이 위치해야하는데, 이상하다 ? 고 생각함 ;;;;; 왜그랬을까 생각해보면... 스유에서 alignment 에 값 주던 형태랑 비슷하니까 안쪽으로 들어간다고 생각했지 않을까 ? 갑자기 떠오르는 SwiftUI 초창기 시절에 들었던 발표,,, 아무리 사고방식이 바뀌었다고 해도 이름이 offset 이다.. 정신차려라. 그리고 주석에도 그림이 적혀있음! 내가 헷갈렸던 footer 2개 들..
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 값을 바꿔보거나 함수를 호출해보거나 할 수 ..
# 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..
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..
- Total
- Today
- Yesterday
- ipad multitasking
- METAL
- cocoapod
- Dart Factory
- flutter dynamic link
- PencilKit
- 플러터 얼럿
- Flutter 로딩
- 구글 Geocoding API
- Flutter Spacer
- Sketch 누끼
- Django FCM
- 장고 Custom Management Command
- flutter 앱 출시
- Django Heroku Scheduler
- Watch App for iOS App vs Watch App
- drf custom error
- 플러터 싱글톤
- ribs
- flutter deep link
- Python Type Hint
- Django Firebase Cloud Messaging
- Flutter Clipboard
- Flutter Text Gradient
- DRF APIException
- github actions
- SerializerMethodField
- 장고 URL querystring
- Flutter getter setter
- flutter build mode
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |