Flutter

    [플러터] Splash 화면 변경하기 (로딩 화면)

    [플러터] Splash 화면 변경하기 (로딩 화면)

    Splash 앱을 실행하면 몇 초간 앱의 로고를 출력하는 로딩 스크린을 마주할 것이다. 플러터 앱을 에뮬레이터에서 디버깅을 할 때에는 잘 보지 못하지만, 실 기기에서 테스트시에는 앱 실행 전 하얀 blank 화면이 몇 초간 출력됨을 확실히 볼 수 있다. (가벼운 네이티브 앱은 로딩이 거의 존재하지 않는다.) 이를 Splash 스크린이라고 하는데, 칙칙한 blank 화면을 간단한 방법으로 산뜻하게 바꿔보자. 방법 플러터 프로젝트에서 아래의 경로로 찾아간다. android > app > src > main > res > drawable > launch_background.xml 이 xml 파일이 splash 화면 그 자체이다. drawable 폴더에 원하는 로고 이미지를 넣은 후 아래와 같이 코드를 변경해보..

    [다트/플러터] 클래스 생성자

    Dart는 자바와 다르게 클래스의 생성자를 매개변수로 구분하지 않고 정의한 명칭으로 구분한다. Dart는 함수나 클래스 생성자에서 인자를 {}로 감싸면 선택적으로 받을 수 있기 때문이다. void main() { var first = myClass('플러터'); var second = myClass.d('플러터', 1); } class myClass{ myClass(this.name){ print(name); } myClass.d(this.name, this.number){ print('$name $number');} var name; var number; }

    [플러터/다트] 열거 타입 enum

    C와 Java에서도 볼 수 있는 enum이 dart에도 존재한다. 사용 방법도 더 편리하게 제공되고 있다. enum enum은 상수 열거형이라고 하며 C언어의 #define과 흡사한 개념이나, 특정 상황에서 사용되는 것들끼리 묶어놓은 것이라고 할 수 있다. 예를 들어 로딩 상태를 나타낼 때 prepare, loading, complete의 상태를 가질 수 있다. 이러한 상태를 조건문 등에 이용하기 위해 0, 1, 2를 사용하곤 했다. 이렇게 상수로 지정해놓을 경우 코드의 가독성이 떨어지게 되는데 이 때 enum을 사용할 수 있다. 정의 enum LoadingState { prepare = 0, loading, complete } dart에서 enum은 위와 같이 정의할 수 있다. 첫글자에는 대문자를 사용..

    [플러터] Stateful Class 내부에 접근하기

    State Class 플러터의 Stateful 클래스는 State와 Stateful Widget 두 가지의 클래스가 생성되는데, 기본으로 State 클래스가 private으로 정의된다. 일반적으로 변수와 함수를 build가 존재하는 State 클래스에 정의하게 되는데, 이렇게 정의된 것들은 외부에서는 사용할 수 없다. 이를 사용하기 위해서 기본 위젯 Stream을 활용하거나 패키지 GetX를 사용하긴 하지만 이 것들을 사용하고 싶지 않을 수도 있다. 이 포스팅에서는 State 클래스 내부에 접근할 수 있는 근본적인 방법을 설명한다. 이전에 자식 클래스에서 부모 클래스의 데이터에 접근하는 방법을 포스팅 한 적이 있는데, 이 방법을 사용해도 무방하다. 접근하기 class MyStatefulWidget ext..

    [플러터] Toast 메시지 (Snack bar) 생성하기

    [플러터] Toast 메시지 (Snack bar) 생성하기

    Snack bar 자바에서는 toast(토스트) 메시지가 존재한다. 하지만 플러터에는 toast 메시지가 기본으로 제공되지 않는다. 대신 snack bar(스낵바)라는 것을 기본으로 제공해주고 있다. 자바의 그것과 흡사하지만 조금은 다른 형태이다. 화면의 최하단 부분에 표시되며, toast보다 시간이나 세부적인 사항들을 유연하게 조절할 수 있게 제공해주고 있다. 물론, toast의 형태를 원한다면 패키지를 사용해 어렵지 않게 구현할 수 있을 것이다. 사용 플러터의 snack bar를 사용하는 방법은 매우 간단하다. ScaffoldMessenger.of(context) .showSnackBar(SnackBar( content: Text('hi'), )); content 속성내의 위젯을 snack bar에 ..