목록Mobile/Flutter & Dart (16)
민스씨의 일취일장
Flutter 개발하면서 공부한 ThemeData를 정리한 글이다.Flutter - ThemeDataThemeData를 알아보게 된 동기Flutter로 급한 마음에 앱을 만들게 되면, themeData 설정은 최소화로 하고 만드는 위젯에서 하나하나 빠르게 세팅하게 된다. 이렇게 하면 일단 당장 원하는 스타일의 위젯을 만들 수 있어 '급하게' 만들땐 속이 편하다. 그런데 조금만 더 디테일한 설정을 하겠다고 하면 이런 작업이 얼마나 많은 일을 만드는지 알 수 있다.Light & Dart 모드 변환가장 직관적인 상황은 Light, Dark 모드 전환이다. 요즘은 안드로이드와 iOS 모두 다크모드를 제공한다. 따라서 앱을 만들면 이 기능을 제공하고 싶은 욕심이 난다. 하지만 단순히 지원했다간 기존의 엘레멘트들 ..
VoidCallback과 Function에 대해 비교하는 글이다.VoidCallback vs. FunctionVoidCallBack vs. Function위젯을 만들 때, 상위 위젯에서 메서드를 전달해 주는 경우가 있다. 그런데 어떤 경우에는 VoidCallback 타입의 메서드를, 또 어떤 경우에는 Function 타입의 메서드를 전달하는 경우가 있다. 이 둘이 어떤 차이가 있는지 한 번 알아보았다.VoidCallbacktypedef VoidCallback = void Funcation(); VoidCallback은 아무 인자도 받지 않고, 아무것도 반환하지 않는 함수 타입이다. 주로 Flutter 프레임워크에서 onPressed, onTap등에 사용된다.장점타입이 명확하기 때문에 IDE와 컴파일러가 ..
onPressed에 지정된 메서드가 무한 호출되는 이슈에 대한 원인 분석과 해결책에 대한 글이다.Flutter - onPressed 메서드 무한 호출 이슈현상TextButton의 onPressed 속성에 상태값에 따라 호출되는 메서드를 다르게 구성해 놓았는데, 실행시 해당 메서드가 무한으로 호출되는 이슈가 발생하였다.원인 1 - 빌드 과정에서 실행됨TextButton( onPressed: widget.isDetailOn ? widget.onTapDeatilShow() : widget.onTapSummaryShow(), ...)TextButton이 빌드 되는 과정에서 위의 삼항연산자를 평가하기 위해 코드를 실행하게 된다. 따라서 빌드 과정에서 widget.onTapDetailShow(..
shared_preference 사용방법에 대한 글이다.Flutter - shared_preference 사용 방법shared_preferences란?shared_preferences는 Android와 iOS의 네이티브 저장소를 사용하기 위해 사용하는 플러그인이다. 네이티브 저장소를 사용할 때, Android는 SharedPreferences API를, iOS는 NSUserDefaults를 사용한다. Flutter에서 shared_preferences는 이 둘을 감싸고 있어 하나의 코드로 함께 다룰 수 있도록 도와준다.사용방법1️⃣ 패키지 설치하기pubspec.yaml에 패키지를 추가해준다.dependencies: shared_preferences: latest_version추가(설치) 후 flutte..
MateiralApp과 AppBar 각각 title을 갖고 있는 이유에 대한 글입니다.MaterialApp title vs. AppBar title상황MaterialApp에서 title을 설정한 뒤, 색상을 여러 가지 설정해 보아도 설정이 되지 않아 이것저것 살펴보다 Flutter로 앱을 만들 때 title이 두 번 작성된다는 것을 인식하게 되었다.MaterialApp & AppBartitle이 작성되는 곳은 최상단 위젯에서 작성되는 MaterialApp 내에서와 MaterialApp 내 home에 위치하는 Page 위젯의 AppBar 내이다.둘의 차이점공식 문서를 살펴보면 차이가 명확하다.MaterialAppMaterialApp에서의 title은 사용자(device)가 애플리케이션(앱)을 식별하기 위해..
FlatButton이 없어진뒤(deprecated and removed) 새로운 button을 적용해야 한다.FlatButton 없어짐FlatButton이 없어진지 오래되었다. 하지만 여전히 여러 강의자료 등에서 FlatButton을 사용하고 있다. 이렇게 현재 없어진 버튼들을 적용해 실습을 적용해야 할 때 사용할 수 있는 버튼들에 대해서 알아보자.공식문서일단 모든 정보는 공식문서에 잘 설명돼 있다. 공식 문서로 확인하고 싶다면, 아래 링크에서 확인 가능하다. New Buttons and Button ThemesThe basic material button classes have been replaced.docs.flutter.dev새로운 버튼공식문서까지 안가고 현재 글에서 원하는 답을 찾을 수 있게 간..