Stateful 위젯은 화면 상에서 사라지거나 위젯 트리 상에 존재하지 않으면(보통 dirty widget 이라고 부릅니다.) 위젯의 상태가 Dispose(폐기)되어 아무런 조치를 취하지 않는다면 상태를 유지할 수 없습니다. 해당 위젯을 다시 빌드하려고 한다면 기존에 존재하던 상태가 아니라 초기 값을 지닌 상태를 기반한 위젯이 빌드될 것입니다. 이렇게 되는 원인은 "메모리 관리와 효율성을 위해서"입니다. 모든 위젯의 상태들이 위젯 트리에 없더라도 메모리에서 불필요하게 존재한다면 생각만 해도 이는 굉장히 비효율적인 상황인 것이죠. 하지만 예외의 상황은 항상 있는 법, 이를 방지하는 방법은 매우 간단합니다.위젯의 상태 클래스를 AutomaticKeepAliveClientMixin로 확장하여 이를 해결할 수 ..
플러터를 개발하는데 있어서 빠질 수 없는게 바로 Listener 위젯입니다. (Gesture Recognizer를 구현하여 제스처를 커스텀해서 사용한다던가 자체 RawGestureDetector를 구현하는 경우가 아니라면 일반적인 상황에서 거의 사용되지 않습니다.) 해당 위젯은 사용자의 포인터를 인식하고 전달하는 역할을 하는 위젯입니다. 그렇다면 GestureDetector와 다른 점이 무엇일까요? GestureDetector는 단순히 Gesture Arena 또는 Gesture Disambiguation(제스쳐 명확화)(Tap인지 DoubleTap인지 LongPress인지를 일관성있게 정의하는 것을 말합니다)에 의해 제스쳐를 정의합니다. 이는 Gesture Recognizer(Tap, Double, L..
Touch Slop은 사용자가 스크롤을 하려는 건지 클릭하려 하는 건지 가로로 스크롤 또는 세로로 스크롤 하려는 것인지 정확하게 판단하기 위해 특정 픽셀을 최소로 이동해야 하는 거리를 뜻합니다. 안드로이드의 Touch Slop은 8입니다.반면 플러터의 경우 18입니다.(해당 이유는 플러터의 경우 안드로이드와 다르게 스크롤 드레그라고 판단되고 그냥 손을 때면 스크롤 활동 (IdleScrollActivity가 아니라 BallisticScrollActivity)이 활성화된 상태에서도 포인터 추적을 그만두어 또 다시 사용자의 제스처를 판단해야되기 때문에 발생하는 현상인 것 같습니다. 단순히 Touch Slop을 높이므로서 사용자의 실수를 줄인 것 같으나 HoldScrollActivity라는 스크롤 활동이 존재하..
- Total
- Today
- Yesterday
- webpack
- Flutter
- svg
- 조건부 타입
- 팩토리 메서드
- 타입스크립트
- JavaScript
- github
- Factory Method
- 아이콘 개발
- 최적화
- web
- mangler
- 디자인 패턴
- svg 툴
- html-inline-webpack-plugin
- Reflow
- 안드로이드
- 안드로이드 개발
- 깃허브
- jetpack compose
- 객체 지향
- 깃허브 터짐
- android
- TypeScript
- 무료 svg 툴
- 아이콘 템플릿
- 객체지향
- typescript-preact-webpack
- omit
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |