목록분류 전체보기 (214)
파파비의 블로그
TextField는 데코레이션에 InputDecoration을 사용한다. 윤곽이나, 기타 꾸미기는 전부다 여기서 가능하다 Container는 decoration에 BoxDecoration을 넣을 수 있다. (다른 것들도 넣을 수 있을진 아직 모르겠다) 아무튼 이렇게 되면 Border 설정도 가능하고, 특히 Border의 색도 다음처럼해서 컨트롤 할 수 있다.
플러터나 dart에서는 Datetime객체의 형태를 변형하는 것이 없다. 그래서 외부 패키지를 끌고 와야한다. intl package를 끌고와서 쓰면 좋다. (https://pub.dev/packages/intl#-installing-tab-) 사용방법은 다음과 같다. 1. DateFormat 생성자를 사용. 2. DateFormat 생성자 인수에 보여지길 원하는 형태를 넣고, (형태에 관해서는 https://pub.dev/documentation/intl/latest/intl/DateFormat-class.html 참고) 3. .format의 인수로 Datetime 객체를 넣으면 된다. 참고로 2. 대신 이런식으로 이미 정해져있는 format을 가져와서 써도 된다. 마지막으로 형태에 관해서 간단히 얘기..
자료를 구성하는 방법은 1) Map을 활용하는 방법과 2) class를 직접 만들어서 거기에 필요한 data를 엮어 두는 방법이 있다. 이렇게 필요한 자료구조를 구성한다. 그 다음 필요한 곳에서 data를 List로 구성하면 된다. (꼭 리스트가 아니어도 된다.) 이렇게... 그리고나서 이 list를 안에 있는 객체들의 data를 참고해서 card를 만들든 하면 된다. 아니면 여기에 data를 넣어도 되고. 어떻게 만들까? dynamic하게 만들려면 map이 좋다. 이런 식으로 말이다. 여기서 눈여겨 보면 좋을 것이. "Data > 위젯으로 변환" 하는 과정이 1) Data list를 만들고 2) 해당 data를 활용한 위젯들이 들어가야 곳에 바로 리스트 넣고 거기서 .map으로 위젯으로 변환하는 것.
위 코드를 보면 칼럼 안에 2개의 카드가 있다. 코드를 실행해보면 다음처럼 나옵니다. 일단 카드의 사이즈가 굉장히 작죠. 왜이럴까요? Card는 위에 부모가 없으면 자식 사이즈에 맞춥니다. Text는 부모의 사이즈에 자신의 공간사이즈를 맞추고요. (꽉 채우는건 아니고 그 안에서 자신에게 딱 맞는 사이즈로.) 그렇다면 좀 넉넉하게 여유공간을 주려면 어떻게 해결 할 수 있을까요? 마진을 주거나, text에 container를 입히거나 Card에 container를 입힐 수 있습니다. 이런 관계를 어떻게 다 알 수 있을까? 없다. 그럴 때마다 꼭, flutter doc를 보거나, flutter doc API를 보거나, 직접해보거나... 웬만한 내용들 다 적혀있으며 직접 해보면서 숙달시켜야 한다.
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를 구현한 사람들도 종종보입니다. 나중에 필요한 경우가 있으면 그때 깊게 파보도록하겠습니다.