[ 인트로 ] SwiftUI는 state-driven, data-driven 방식으로 state 가 변하면 view 를 다시 그립니다 (body를 호출하여) 하지만 body를 재호출한다고 모든 것을 다시 그리는 것이 아니라 변경이 필요한 부분만 다시 렌더링 합니다. 그렇다면.. re-rendering 또는 re-draw를 결정하는 SwiftUI의 diff 판단 로직은 어떻게 될까요? (= body가 호출될 때 무엇을 다시 그리고, 무엇을 다시 안그릴 지 어떻게 결정할까요?) WWDC21 - Demystify SwiftUI 를 보면 identity, life time, dependencies 이 세가지 요인이 메인요소인 것 같습니다. 저는 이 중에서 identity 위주로 저의 re-rendering 추측..
Library, Framework, Swift Package 궁금한 것들을 확인해보고 정리합니다. 테스트를 위한 MyApp workspace 를 하나 만들고 시작합니다. [1] Library # 만들기 File > New > Project > Static Library 선택 MyStaticLibrary 라는 이름으로 만들고 아래처럼 경로 / Add to / Group 을 설정해줍니다. # 기본 정보 Target에 가보면 Mach-O Type이 static library 로 세팅 되어있으며 (Project는 Mach-O Type이 명시 안되어있음) 앱에 embed 하면 .a 확장자를 볼 수 있습니다. # 궁금! 만약 Mach-O Type 을 dynamic library 로 바꾸면..?! 다시 import를..
[1] ISA Swizzling Method Swizzling이 런타임에 특정 메서드를 다른 메서드로 바꿔서 실행될 수 있게 하는 것이라면, ISA Swizzling은 런타임에 특정 객체를 다른 객체로 바꿔서 실행될 수 있게 하는 것을 말합니다. (isa 는 포인터를 의미합니다) object_setClass 를 이용해서 isa swizzling을 할 수 있습니다. 예를들어 나의 커스텀 탭바를 사용하고 싶은 상황을 봅시다. TabBarController의 tabBar 프로퍼티는 get only 이고 이를 세팅할 수 없는 이니셜라이저나 메소드가 없습니다. 이 때 isa swizzling을 통해 기본 탭바를 서브클래싱한 커스텀 탭바를 사용할 수 있습니다. private class CustomTabBar: UI..
☑️ 이 글의 제목 - status bar를 hidden한 뷰컨트롤러를 푸쉬했다가 back 했을때 navigation bar가 shrink 되는 현상 - status bar를 hidden한 뷰컨트롤러를 푸쉬했다가 back 했을때 navigation bar 가 status bar 와 overlap 되는 현상 (두가지를 계속 고민하다가 결국 둘다 너무 길어서 찐제목에는 키워드만 적음,,,) ☑️ 주된 테스트 환경 Xcode 13.4.1 / iOS 15 [1] 준비 아래와 같은 상황으로 준비해줍니다 (feat. 노치없는 시뮬레이터!) - A 는 네비게이션의 root 이다. - A 에서 B 를 푸쉬한다 import UIKit class MyNavigationController: UINavigationContro..
Swift-Collections 패키지(Commonly used data structures for Swift) 에 있는 deque 라는 자료구조를 살펴보겠습니다. deque는 파이썬에서 오래전부터 많이 봐왔던 친구라.. 파이썬 문서랑 Swift 문서를 함께 살펴볼게요! [1] Deque 란 ? - deque는 "double-ended-queue" 의 줄임말입니다. 발음은 "deck" 이라고 합니다. - 양쪽 끝에서 삽입, 삭제가 가능한 큐입니다. (파이썬 문서에서는 'Deques are a generalization of stacks and queues' 라고 말합니다) - array 와 굉장히 비슷합니다. deque와 array 는 모두 ordered, random-access, mutable, ra..
- Total
- Today
- Yesterday
- SerializerMethodField
- flutter 앱 출시
- Flutter Spacer
- METAL
- 장고 Custom Management Command
- DRF APIException
- 플러터 싱글톤
- Sketch 누끼
- PencilKit
- Flutter getter setter
- 구글 Geocoding API
- Flutter Clipboard
- ipad multitasking
- ribs
- Flutter Text Gradient
- 플러터 얼럿
- flutter dynamic link
- flutter deep link
- cocoapod
- flutter build mode
- Dart Factory
- Django Firebase Cloud Messaging
- Django Heroku Scheduler
- Python Type Hint
- Django FCM
- Flutter 로딩
- github actions
- 장고 URL querystring
- drf custom error
- Watch App for iOS App vs Watch App
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |