많은 사람들이 shrinkWrap을 사용하면 성능이 크게 저하될 것이라고 걱정하지만, 정작 shrinkWrap의 정확한 동작 원리는 잘 모르는 경우가 많습니다. 이러한 생각이 플러터 개발자들 사이에서 정설처럼 받아들여지는 이유는 대부분 ListView나 GridView 같은 스크롤 위젯에서 자식에게 별도의 제약 조건을 걸지 않은 채 중첩 스크롤 안에서 shrinkWrap을 사용하거나, 부모에 최대 크기 제약이 없는 경우 ListView를 단순 Column처럼 사용하기 때문입니다. “엥? 원래 높이에 대한 제약이 없는 상태에서 쓰는 거 아냐?” 네, 그 생각은 완전히 틀리셨습니다.플러터 팀에서는 그럴거면 Column을 쓰라고 하지 ListView를 Column처럼 쓰게 만드려고 shrinkWrap을 만..
오늘은 선언형 UI 개발에서 반필수적으로(?) 사용되는 아키텍처 패턴, MVVM에 대해 알아보겠습니다. MVVM은 Model, View, ViewModel의 약자입니다.이름만 들으면 괜히 어려워 보이고, 그래서인지 간단함과 쉬움을 강점으로 내세우는 플러터에서는 단순 MVVM보다 제 생각엔 과대 마케팅이라고 볼 수 있는 클린 아키텍처와 BLoC, Riverpod가 오히려 더 유행하게 된 이유 중 하나이기도 합니다 사실 MVVM 아키텍처 패턴은, 선언형 UI 개발에서 자연스럽게 사용되던 방식들을 체계적으로 정리한 것 뿐입니다. 기존 아키텍처의 관례적 구조에 맞춰 구조화한 뒤, 각 구성 요소를 나타내는 약자를 붙여 MVVM이라는 이름으로 부르게 된 것이죠. 일단 협업하려면 앱 내에서 일관적인 아키텍처 패턴을..
오늘은 플러터에서 안드로이드의 서명 해시 값, 즉 해시 키를 구하는 가장 간단하고 정확하고도 아주 확실한 방법을 아주아주아주 간단하게 알아보도록 하겠습니다. 먼저 플러터에서 기존 서명 키를 참조하는 방법은 keytool을 사용하는 방법입니다. 하지만 해당 방법은 생각보다 부정확하고 실수 확률이 높습니다. 먼저 내가 사용하는 디버그용 키스토어 파일을 찾는 것부터 시작해서 keytool을 이용해서 서명 키를 해시 형태로 암호화하여 이를 적절히 참조해야 합니다. 솔직히 해당 방식이 널리 사용되고 관례적으로 많이 사용되지만 매우 귀찮고 실수할 수 있다는 것은 매한가지입니다. (그 키스토어를 사용해서 앱이 서명되었는지 알 수도 없는 노릇이고요.) 그래서 저는 플러터 Android 용 플러그인을 만들어 플러터 앱..
오늘은 아무런 Fastlane 설정 없이도 플러터 자동화 배포를 구현할 수 있는 GitHub Action을 만들었고 이제서야 여러분들께 소개하여 보여드립니다. v1.1 업데이트 이후로 추가 빌드 옵션 지정 가능하기에 당연하게도 flavor도 가능합니다.자세한 내용은 아래 링크를 참고하세요. (한국어로 더 설명하기에 너무 힘드네요. 누가 기여 좀 해줬면 참~ 좋겠네~ 참 좋겠네~) Deploy Flutter App with Fastlane - GitHub MarketplaceAutomatically sets up Flutter and Fastlane, then builds and deploys Android/iOS appsgithub.com 후기: 레딧에 올렸더니 반응이 생각보다 좋아서 기분이 참 좋네요.
네, 맞습니다.오늘은 제가 Flutter 공식 저장소에 제 코드 한 줄을 조심스레, 그러나 당당하게(!) 심고 온 이야기입니다.야릇하다고요? 지금 제 마음이 그렇습니다. 장난은 그만하고 이제 제가 왜 플러터 공식 SDK에 기여하게 되었는지에 관해서 자세히 이야기를 해드리도록 하겠습니다! 어떤 것을 기여한 것인가?그래서 도대체 무엇을 기여한 것이길래 이렇게 마구 비틱질을 해대냐고 궁금해하실 분들이 많을 거라 생각됩니다.일단, 기존 안드로이드 12, 즉 네이티브 환경에서 구현되는 기본 오버스크롤 효과와, 플러터에서 구현된 Stretching Overscroll 효과는 시각적인 표현 방식이 달랐습니다. Android Native 12 구현별도의 OpenGL 쉐이더를 활용해 콘텐츠가 당겨질 때 꽤나 균등하게 늘..
어느 날, 저는 제 아내인 플러터짱과 잠시 이별을 고한 채 Jetpack Compose로 이것저것 만지작거리다가 문득 Material 디자인의 고질적인 문제인 “사용자 정의가 매우 부족하다”는 사실을 깨달았습니다. 사실, 저는 Material이라는 이 거대한 종속성 덩어리를 그다지 좋아하지 않습니다. 그래서 애초에 Flutter의 CustomScrollView를 써도 발생하는 중첩 스크롤 지옥(제스처 지연 문제)과 복잡성 그리고 제한되어 템플릿화 되어 있는 레이아웃 구조를 해결하고자, 직접 flutter_appbar 같은 패키지를 만든 기억이 나네요. (플러터에 공식적으로 제스처 관련된 문제에 기여하려는 시.도.는. 했으나, 플러터는 관련 테스트만 무려 1.7만 개가 정도 될 정도로 매우 엄격합니다. ..
플러터에서 공식적으로 제공하는 인터페이스를 활용하여 페이지 전환 애니메이션을 커스터마이징하는 방법은 크게 두 가지로 나눌 수 있습니다. 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
- Total
- Today
- Yesterday
- 팩토리 메서드
- 타입스크립트
- android
- StretchEffect
- 조건부 타입
- 안드로이드 개발
- JavaScript
- 최적화
- flutter contribution
- omit
- compose_appbar
- 안드로이드
- jetpack compose
- webpack
- 플러터 기여
- keystore_signature
- 깃허브
- pagetransitionsbuilder
- Factory Method
- svg
- 플러터
- Reflow
- Flutter
- github
- 객체 지향
- pageroute
- TypeScript
- 객체지향
- web
- 디자인 패턴
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |