flutter
-
<Flutter> 플러터 SDK 버전 다운그레이드액티브 스킬/플러터 2022. 7. 26. 23:32
🧭 Flutter SDK 다운그레이드 프로젝트를 진행하다보면 특정 시점의 플러터 버전을 유지해야 하는 경우가 있습니다. 시간적 여유가 있다면 플러터 업그레이드를 주기적으로 하고 그에 따른 문제들을 차근차근 해결하면 됩니다. 하지만 당장 요구사항들도 해내기 어려운 마당에 무턱대고 flutter upgrade를 해버리면 버전에 따른 버그를 잡아내느라 시간을 허비하게 될 수도 있습니다. 플러터의 버전을 변경할 2가지 방법을 살펴보겠습니다. 1. 플러터 SDK git history 활용 첫번째 방법은 플러터 sdk가 설치된 경로로 이동하여 원하는 버전의 commit을 checkout 하는 것입니다. $ git checkout 2.2.2 이 방법을 사용하면 현재 사용중인 컴퓨터의 모든 플러터 프로젝트에 영향을 받..
-
<TIL> 플러터: overflowed by x.x pixels클래스/└ TIL 2022. 7. 21. 20:50
🧭 OVERFLOWED BY x.x PIXELS 플러터로 개발중에 화면을 초과하는 에러를 종종 마주하게 됩니다. 오늘은 2번이나 해당 경우를 마주했기 때문에 TIL로 기록해 둡니다. SafeArea 첫번째 경우는 SafeArea로 Scaffold 전체를 감싸지 않고, Scaffold 내 body만 SafeArea로 감싸서 하단 네브바가 overflow 하는 에러가 발생했습니다. SafeArea를 사용하는 경우 당장 차일드 위젯이 하나 뿐이더라도 최상단에서 감싸도록 해야 겠습니다. overflowed by 1.0 pixel 두번째로 divider 위젯의 두께로 인해 1 pixel을 초과하였습니다. 에러가 발생한 곳은 네모 박스 안에서 텍스트 위젯과 디바이더, 그리고 텍스트 위젯까지 총 3개의 위젯이 컬럼 ..
-
<Flutter> ListView 내 Stack 위젯의 child가 다음 ListViewItem에 가려질 때액티브 스킬/플러터 2022. 7. 19. 22:51
🧭 어떤 경우에? ListView 내 ListViewItem이 Stack 위젯을 가지고 Stack 위젯에 사용자 이벤트가 발생했을 때 숨겨둔 Positioned 위젯 등을 노출시킬 수 있습니다. 이 때 노출된 위젯의 높이가 부모 위젯의 높이를 초과하는 경우 다음번 나오는 ListViewItem에 가리게 됩니다. 높이를 초과하는 부분을 가리지 않고 그대로 드러내려면 어떻게 해야 할까요? 어떻게? OverlayEntry, CompositedTransformFollower 등을 조합하여 이를 구현할 수 있습니다. 📌 https://blog.logrocket.com/complete-guide-implementing-overlays-flutter/ Implementing overlays in Flutter - L..
-
<Flutter> ListViewItem 내 버튼을 누르는 경우 특정 위젯 보이기/숨기기액티브 스킬/플러터 2022. 7. 16. 23:10
🧭 어떤 경우에? ListView 내 ListViewItem에서 버튼을 누르는 경우 별도의 위젯을 보였다가 숨겼다가 하고 싶은 경우가 있습니다. 가령 인스타그램, 트위터 같이 피드들을 리스트 형식으로 보여주는 앱에서 점 3개짜리 버튼을 누르면, 메뉴 선택 창이 화면위의 특정 위치를 차지하는 경우가 있을 것입니다. 어떻게? isVisible 같은 bool 타입의 변수를 만들어서 값을 저장해 두면 될 것 같습니다. 이 변수를 어디에서 정의해야 할까요? 상태가 변해야 하니까 StatefulWidget을 활용해야 겠습니다. ListView를 포함하는 부모 위젯을 StatefulWidget으로 정의하고 싶겠지만 그렇게 했다간 상태가 변할 때마다 부모 위젯도 매번 다시 그려지면서 상태가 초기화되는 안타까운 경험을 ..
-
<Flutter> font_awesome_flutter 패키지 - 아이콘 팩액티브 스킬/플러터 2022. 7. 13. 23:50
🧭 Font Awesome 플러터의 기본 제공 아이콘 말고 새로운 아이콘을 적용해 보고 싶지 않으신가요? font_awesome_flutter 패키지를 설치하면 됩니다! 패키지를 설치하면 아이콘 아카이브(?)로 유명한 fontawesome.com 사이트에서 제공하는 무료 아이콘을 활용할 수 있습니다. 📌 https://pub.dev/packages/font_awesome_flutter font_awesome_flutter | Flutter Package The Font Awesome Icon pack available as Flutter Icons. Provides 1600 additional icons to use in your apps. pub.dev
-
<Flutter> native_splash 라이브러리로 스플래시 스크린 간단하게 만들기액티브 스킬/플러터 2022. 7. 5. 21:36
🧭 splash screen 앱을 처음 열면 기본적인 화면구성을 위해 로딩 시간이 발생합니다. (앱이 구동 전인 경우 콜드 스타트, 앱이 구동을 시작했으나 화면이 그려지는 중인 경우 웜 스타트라고 함) 이 때 사용자에게 브랜드 로고 등을 노출하는 화면을 스플래시 스크린이라고 합니다. 플러터에서 해당 화면을 구현하더라도 플러터가 네이티브 앱에 올라가는 동안은 하얀 화면을 노출할 수 밖에 없습니다. 이 때 flutter_native_splash 패키지를 활용하면 플러터가 네이티브 위로 올라가는 시간에도 스플래시 스크린을 적용할 수 있습니다. flutter_native_splash 1. 패키지 설치 $ flutter pub add flutter_native_splash --dev ※ 스플래시 스크린의 종료 시..
-
<Flutter> BottomNavigationBar 라벨 지우기액티브 스킬/플러터 2022. 6. 24. 15:14
⚡🕊️🧭 BottomNavigationBar BottomNavigationBar 위젯은 label 속성이 필수인데, 이 label을 없애고 싶은 경우가 있습니다. showSelectedLabels, showUnselectedLabels 프로퍼티에 각각 false를 대입하면 label 없는 BottonNavigationBar를 만들 수 있습니다. 📌 https://api.flutter.dev/flutter/material/BottomNavigationBar-class.html BottomNavigationBar class - material library - Dart API A material widget that's displayed at the bottom of an app for selecting a..