본문 바로가기
반응형

{ Frontend, Client }/Flutter9

[Flutter] 플러터 - 위젯(widget) 테스트 위젯 테스트 : https://flutter-ko.dev/docs/cookbook/testing/widget/introduction a. flutter_test 의존성 추가 근데 기본적으로 의존성이 걸려있어서 따로 추가할 필요가 없다. dev_dependencies: flutter_test: sdk: flutter b. 테스트할 위젯 생성 class MyWidget extends StatelessWidget { final String title; final String message; const MyWidget({ Key key, @required this.title, @required this.message, }) : super(key: key); @override Widget build(BuildCo.. 2022. 12. 9.
[Flutter] 플러터 - 다트 : ENUM 타입 알아보기(enumerated types) 기본 enum 사용 enum Color { red, green, blue } blue 옆에 콤마를 붙여도 가능하다. 참고로 이 콤마를 trailing commas라고 부르며, 복붙 시에 에러를 방지해주는 효과를 가진다고 한다. 확장된 enum 사용 Enum을 마치 클래스처럼 확장하여 사용할 수 있다. 몇가지 규칙만 준수하면 된다. 1. 인스턴스 변수는 final이어야 한다. 2. 생성자는 constant이어야 한다.(메모리에 한번만 올라가게 하려고 그런거 같음) 3. 팩토리 생성자는 오직 정의되어있는 인스턴스들 중 하나만을 리턴할 수 있다. 4. Enum 클래스가 자동적으로 extends 되어 있어서, 다른 클래스를 상속받을 수 없다. 5. index, hashCode, 동등성을 재정의(override).. 2022. 12. 9.
[Flutter] 플러터 - 다트 : 다양한 생성자 알아보기 생성자를 통한 파라미터 초기화 class Point { final double x; final double y; Point(this.x, this.y); } 네임드 생성자 const double xOrigin = 0; const double yOrigin = 0; class Point { final double x; final double y; //named constructor Point.origin() : x = xOrigin, y = yOrigin; } 상속 관계에서 생성자 활용 class Vector2d { final double x; final double y; Vector2d(this.x, this.y); } class Vector3d extends Vector2d { final double .. 2022. 12. 9.
[Flutter] 플러터 - 다트 : 함수 알아보기(optional parameter, named parameter 등등) 다트에서 제공하는 함수에 관한 여러가지 기능을 알아보자. a. optional parameter : 함수 호출 시 [ ] 안의 파라미터를 선택적으로 넣어주거나 생략할 수 있다. String say(String from, String msg, [String? device]) { var result = '$from says $msg'; if (device != null) { result = '$result with a $device'; } return result; } assert(say('Bob', 'Howdy') == 'Bob says Howdy'); assert(say('Bob', 'Howdy', 'smoke signal') == 'Bob says Howdy with a smoke signal'); 주.. 2022. 12. 9.
[Flutter] 플러터 - 다트 : 리스트(List) 다양한 기능 알아보기 아주 기본적인 리스트 개념은 생략하고, 다트에서 제공하는 리스트의 다양한 기능을 알아보자. spread operator var b = [4, 5]; var a = [1, 2, 3, ...b]; // a = [1,2,3,4,5]가 됨 assert(a[3] == 4); assert(a[4] == 5); null-aware spread operator 아래 코드에서 변수 list가 null이면 아무것도 추가되지 않는다. var list2 = [0, ...?list]; assert(list2.length == 1); collection if 리스트 안에서 if를 사용할 수 있다. var flag = true; var a = [1, 2, if(flag) 3]; print(a); //[1, 2, 3] collect.. 2022. 12. 9.
[Flutter] 플러터 - 다트(Dart): Nullable 변수와 late 변수의 이해 다트는 Nullable type을 제공해준다. 초기화하지 않을 경우 값은 null이 된다. 자바에서는 기본타입(int, double..) 등이 null이 될 수 없지만, 다트에서는 nullable이기만 한다면 int 같은 기본타입도 널이 가능하다. ⇒ Object로 취급하기 때문. int? lineCount; assert(lineCount == null); non-nullable일 경우, 반드시 initialize를 해주어야 한다. int lineCount = 0; 그런데, 초기화를 반드시 선언부에서 할 필요는 없고 사용 시점에서 non-null이면 된다. 따라서 아래와 같은 코드도 유효하다. int lineCount; if (weLikeToCount) { lineCount = countLines(); .. 2022. 12. 9.
반응형