목록개발 (194)
파파비의 블로그
1. DebugConsole 을 이용하기 - 에러의 맨 윗부분에 제일 중요한 정보가 있다. - 위에서부터 아래로 내려가면서 침착하게 하나씩 읽어내려가야 한다. 튀지마라 2. vs code Degbog mode > 빨간점 이용해서 상황 정확하게 파악하기 3. Dart devtools, - 안드로이드로 치면 inspector있는 곳인데, vs code에서는 따로 브라우저를 통해 실행된다. - ctrl+shift+p를 눌러서 거기에 devtool이라고 치면 > Dart open dev tools이 있다. - Repaint Rainbow는 다시 그려질 때 색깔이 바뀌게 되는데, - repaint이랑 recreate랑은 개념이 다르다. 하지만 최적화를 위해선 아에 paint도 안하는게 좋긴하다. - 위젯트리를 잘..
보통은 메서드를 인수로 전달할때는 레퍼런스만 전달하기 때문에 메소드의 이름만을 전달하게 된다. 그런데 이런 경우에는 메서드가 실행할 때 인수를 필요로 하더라도 우리는 전달할 수가 없다. (사실은 있다. 메소드 자체가 해당 콜백메서드랑 똑같은 인수를 전달받는 형태라면, 그냥 레퍼런스를 전달해도 된다) 이를 해결하기 위한 한가지 방법은 위 코드대로 콜백메소드에 익명함수를 전달하고 익명함수의 바디에 우리가 원하는 함수를 넣는 것이다. 익명함수 자체가 메모리에 올라가게 되어 나중에 필요할 때 그대로 실행된다. 그래서 바디에 우리가 인수까지 넣어서 실행되도록 해두면 해결된다. 그리고 만약 콜백메서드에서 무조건인수를 받아야하는데, 사용을하지 않는다면 컨벤션으로 인수의 이름을 _로 지정해둔다 텍스트필드가 제출될 때,..
리스트 안에 > Map을 만들고 그 Map에서 Key는 String인데 Value는 또다시 string 이거나 Map이 된다. Map의 특징은 데이터들을 함게 묶어놓기 좋다는 점이다.
dart에서는 하나의 파일이 작은 하나의 libarary입니다. 그래서 private으로 할 경우 해당 파일에만 or 해당 라이브러리에만 접근이 가능하고 그외에는 접근이 불가능합니다. private으로 설정하는 방법은 변수 앞에 _을 붙이는 것입니다. Dart에서는 이거 두개 밖에 Access Modifiers 없다고 하는데, (https://www.woolha.com/tutorials/dart-using-access-modifiers-private-public 참고) 스택 오버플로우 같은 곳에는 protected를 구현한 사람들도 종종보입니다. 나중에 필요한 경우가 있으면 그때 깊게 파보도록하겠습니다.
Dart에서는 iterable이라는 개념이 있다. 이것은 반복이 가능한...집단 이란 뜻으로, list나 array, 등을 의미한다. Map은 iterable이 아니다. 왜냐면 순서가 없으니까. 하지만 linked Map은 순서가 있으니 iterable이다. (자료구조를 알면 좀 더 명확히 될 것이다. iterable은 for처럼 한바퀴돌릴 수 있는 자료구조를 얘기한다, array나 linked Map은 다음 data의 위치를 알 수 있어서 iterable 하지만, Map의 경우 Key-value 구조이기 때문에 순환(iterate)하는게 불가능하다) iterable 뜻 A collection of values, or "elements", that can be accessed sequentially. (..
Map은 Key와 Value로 이루어진 쌍이다. 하나의 Map안에는 다양한 Key와 Value의 쌍들이 존재할 수 있다. Map을 List로 하면 다양한 문제와 그에 따른 다양한 보기들을 하나의 자료구조에 포함시킬 수 있다. 이렇게 되면 한번에 접근이 가능해져서 매우편리해진다. 변수들도 많이 필요없다. 다음에도 사용할 수 있도록 꼭 익히도록 한다. Map은 현재 Map 인데 타입을 정해주지 않으면 둘 다 다이나믹이 된다.
Stateful 위젯 안에 Stateless 위젯들을 넣습니다. Stateless 위젯들은 생성자에 data가 들어갑니다. Stateful 위젯들의 data가 바뀌게 되면, Stateless를 생성하는데 들어갔던 변수들의 값도 변할 수 있습니다. 만약 변하게 되고 그 상태에서 setstate이 실행되면 Stateless위젯들이 다시 빌드 되면서 마치 바뀐것 같은 효과를 줍니다. 하나의 stateful안에 다양한 stateless위젯들을 넣어서 한번에 컨트롤하는 구조는 굉장히 자주쓰입니다. 특히 Stateless위젯으로 버튼이나 텍스트를 넣고, 버튼의 콜백을 생성자에 넣어서 입력하게 되면 버튼이 눌렸을 때 stateful의 data를 바꾸는 함수가 실행되게 할 수도 있습니다. 그러면 알아서 stateful..
Dart에서는 multi - constructor를 지원합니다. 이 뜻은, 생성자를 여러개 제공한다는 얘긴데, 멀티생성자는 classname.constructorname( parameter ){ } 처럼, .을 이용해서 추가적으로 만들 수 있습니다. 멀티 생성자의 장점은, 만약 속성이 굉장히 여러가지 인 경우, 멀티생성자를 통해 더 다양한 경우들에 대해 이름을 제공하면서 값을 넣게 할 수 있습니다. 플러터에서 대표적인 multi - constructor를 제공하는 class 중에는 EdgeInsets가 있습니다. 보통 마진이나 패딩의 값을 설정할 때하는데, 위 아래 왼쪽 오른쪽에 대한 값을 설정해야합니다. EdgeInsets는 EdgeInsets.only, EdgeInsets.all EdgeInsets...