독립적으로 실행되는 작은 프로그램 UI를 만들고 구성하는 기본 단위 요소플로터는 모든것이 다 위젯화면에 있을뿐 아무것도 하지 않음.데이터를 가지고 있지 않음변화 데이터가 없음.사용자의 액션에 따라 모양이 바뀜.입력 데이터에 따라 모양이 바뀜다른 위젯들을 포함할수 있음t
시작 - lib 폴더의 main.dart클래스 명과 함수명 main(), runApp() - 함수명 시작은 소문자MyApp() - 클래스 이름은 대문자
Padding : 여백 EdgeInsets으로 설정 SizedBox(): 위젯간에 간격을 벌이고 싶을때 사용 Center(): 가운데로 보냄 Column() : 세로축에 제한이 없음. column에서 mainAxisAlignment 컬럼의 항목의 정렬 (세로축에 관련)
클래스 : 객체가 가져야 하는 속성과 기능을 정의한 설계도 객체: 정의된 클래스가 메모리상에 할당되는 상태,인스턴스 : 클래스를 기반으로 만들어진 객체https://dartpad.dev/?named arguments : 모든 인수는 옵셔널이 됨.Person({
AppBar leading: 앱바 왼쪽에 배치AppBar actions: 앱바 오른쪽에 배치
ListView 복수의 ListTile위젯을 나열
위젯 레이아웃Container : margin, padding, only one child
플러터 레이아웃 시트 // row와 column 모두 서로 특징들이 동일하게 적용된다. // column은 세로는 차지 가능한 모든 공간을 차지하지만 가로는 지정된 크기만 차지한다. // mainAxisAlignment: MainAxis
처음화면 두번째 화면route - 앱 페이지 구조네비게이터 - 스택 구조 push and pop
String interpolation 'Hi, $name, what's up' <= $name 과 스트링을 합쳐서 문자열 구성Collection: 데이터들을 모아서 가지고 있는 자료구조Generic: 컬렉션이 가지고 있는 데이터들의 타입을 런타임 시 지정 dyna
Scaffold.of(context).showSnackBar(SnackBar(...))모든 스텍바를 관리하기 위해 ScaffoldMessaer 클래스가 새로 나옴.변경된 버튼ButtonBar - 버튼들을 자동으로 정렬해주는 기능
main.dartonboarding.dart
main.dartmy_page.dartreponsive_layout.dartLayoutBuilder : 부모위젯의 크기를 파악mobile_body.dartdesktop_body.dart