
플러터에서 공식적으로 제공하는 인터페이스를 활용하여 페이지 전환 애니메이션을 커스터마이징하는 방법은 크게 두 가지로 나눌 수 있습니다. PageTransitionsBuilder첫 번째 방법은 PageTransitionsBuilder를 이용하는 것으로, 이를 ThemeData.pageTransitionsTheme에 적용하여 앱 전반의 페이지 전환 애니메이션을 일괄적으로 변경할 수 있습니다. 이 방식은 MaterialPageRoute 등과 같은 기본적인 PageRoute에서 PageTransitionsBuilder를 참조하여 전환 애니메이션을 적용하는 구조를 활용하는 것입니다. 다만, MaterialPageRoute가 아닌 별도의 PageRoute를 사용하는 경우에는 PageTransitionsBuilde..

플러터에서 Android, IOS 스크롤과 관련하여 성능, 유연성을 확보한 위젯과 여러 기능들을 제공하는 패키지를 구현하고 배포하였습니다. flutter_appbar | Flutter packageThis package implements the flexible appbar behavior, And we pursue higher performance and responsiveness than the appbar generally provided by Flutter.pub.dev

구글의 Material 디자인의 클릭 효과를 구현하는 플러터의 기본 내장 위젯인 Inkwell를 이용하여 앱을 구현한다면 마치 구글 Material를 흉내내는 느낌과 비슷한 느낌을 받을 수 있으며 약간 싼(?)티까지 나는 경험을 느낄 수 있습니다. 또한 다양한 제스처와 동작을 구성할 수 없고 다양한 옵션을 통한 커스터마이징도 사실상 불가능합니다. 따라서 2년 전에 저는 기존 Inkwell을 대체하는 위젯을 제작하여 이를 Dart 패키지 형태로 배포하였습니다. 사실상 이 패키지가 이제 버전 2.0.0을 막 넘겼으니, 이제는 안정적인 패키지로 인정받을 시기가 되지 않았나 생각됩니다. 자세한 내용은 아래 링크를 클릭하여 README.md을 참고하세요. flutter_touch_ripple | Flutter ..

Stateful 위젯은 화면 상에서 사라지거나 위젯 트리 상에 존재하지 않으면(관용적으로 dirty widget이라고 부릅니다.) 위젯의 상태가 Dispose(폐기)되어 아무런 조치를 취하지 않는다면 상태를 유지할 수 없습니다. 해당 위젯을 다시 빌드하려고 한다면 기존에 존재하던 상태가 아니라 초기 값을 지닌 상태를 기반한 위젯이 빌드될 것입니다. 이렇게 되는 원인은 "메모리 관리와 효율성을 위해서"입니다. 모든 위젯의 상태들이 위젯 트리에 없더라도 메모리에서 불필요하게 존재한다면 생각만 해도 이는 굉장히 비효율적인 상황인 것이죠. 하지만 예외의 상황은 항상 있는 법, 이를 방지하는 방법은 매우 간단합니다.위젯의 상태 클래스를 AutomaticKeepAliveClientMixin로 확장하여 이를 해결할 ..

플러터를 개발하는데 있어서 빠질 수 없는게 바로 Listener 위젯입니다.(Gesture Recognizer를 구현하여 제스처를 커스텀해서 사용한다던가 자체 RawGestureDetector를 구현하는 경우가 아니라면 일반적인 상황에서 거의 사용되지 않습니다.)해당 위젯은 사용자의 포인터를 인식하고 전달하는 역할을 하는 위젯입니다. 그렇다면 GestureDetector와 다른 점이 무엇일까요?GestureDetector는 단순히 Gesture Arena 또는 Gesture Disambiguation(제스쳐 명확화)(Tap인지 DoubleTap인지 LongPress인지를 일관성있게 정의하는 것을 말합니다)에 의해 제스쳐를 정의합니다. 이는 Gesture Recognizer(Tap, Double, Long..

Touch Slop은 사용자가 스크롤을 하려는 건지 클릭하려 하는 건지 가로로 스크롤 또는 세로로 스크롤 하려는 것인지 정확하게 판단하기 위해 특정 픽셀을 최소로 이동해야 하는 거리를 뜻합니다. 안드로이드의 Touch Slop은 8입니다.반면 플러터의 경우 18입니다.(해당 이유는 플러터의 경우 안드로이드와 다르게 스크롤 드레그라고 판단되고 그냥 손을 때면 스크롤 활동 (IdleScrollActivity가 아니라 BallisticScrollActivity)이 활성화된 상태에서도 포인터 추적을 그만두어 또 다시 사용자의 제스처를 판단해야되기 때문에 발생하는 현상인 것 같습니다. 단순히 Touch Slop을 높이므로서 사용자의 실수를 줄인 것 같으나 HoldScrollActivity라는 스크롤 활동이 존재하..
- Total
- Today
- Yesterday
- 최적화
- 리플 효과
- 전환 애니메이션
- Factory Method
- 팩토리 메서드
- 객체 지향
- TypeScript
- Flutter
- 커스텀 요소
- 플러터
- JavaScript
- jetpack compose
- 타입스크립트
- 조건부 타입
- github
- omit
- android
- 객체지향
- pageroute
- 터치 효과
- web
- 안드로이드
- Reflow
- 안드로이드 개발
- 디자인 패턴
- webpack
- html custom element
- 깃허브
- pagetransitionsbuilder
- svg
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |