자주쓰며 기본이 되는 내용 정리 페이지
프로젝트의 시작은 lib/main.dart로 시작한다.
초기 build까지의 필수 공통사항은
import 'package:flutter/material.dart';
void main() {
runApp(
const MaterialApp(),
);
}
build(){ } : 위젯 또는 중첩된 위젯 트리를 반환해야 한다.
MaterialApp() : 생성자 함수이며 위젯이다.
뷰를 그릴때 필요한 단위
- 우리가 사용하는건 생성자 함수이며 class에 기반해 개체를 생성한다. 그렇기에 위젯도 class다.
그래서 우리가 컴포넌트 분리로 직접 만드는것도 위젯이며 class인것이다.- 앱 자체도위젯이고 컴포넌트도 위젯이라 불릴 수 있고
눈에보이지 않는 padding이나 column, center 등과 같은 Flutter 앱을 빌드할 때 사용되는 요소.
BoxConstraints(w=866.0, h=494.0)
컨테이너에 대한 값을 가지고 있기 때문에 constraints.maxWidth >= 600
이런식으로 사용 가능class GradientContiner extends StatelessWidget{
// 풀어쓰기 : 생성자함수 뒤에 콜론(:)을 추가하고 그 후에 변수 초기화를 할 수 있다.
// super()키워드를 통해 상속받은 부모 클래스(StatelessWidget)에 접근할 수 있다.
// 부모의 key를 받아서 넣어준다.
const GradientContainer({key}): super(key: key);
// 간단하게 : 위와 동일한 내용을 다트에서 간단하게 사용할 수 있도록 도와준다.
const GradientConntainer({super.key})
...
}
gradient: LinearGradient(
colors: [
Color.fromARGB(255, 48, 79, 255),
Color.fromARGB(255, 34, 255, 233)
],
begin: Alignment.topLeft,
end: Alignment.bottomRight,
),
상태가 없는 위젯
상태가 있는 위젯
상태관리를 위해 사용하는 클래스
class Counter with ChangeNotifier {
int _count = 0;
int get count => _count;
void increment() {
_count++;
notifyListeners();
}
}
// ChangeNotifier를 상속받아 count 상태를 관리
Dart에서는 변수나 메서드 이름 앞에 언더바(_)를 붙이는 것만으로도 해당 변수나 메서드가 프라이빗(private)으로 처리된다.
위의 예시로 보면 _count는 클래스 외부에서 직접 접근 불가하지만, getter나 메서드를 통해서 _count를 가져오거나 변경할 수 있다.
final과 const의 차이점이라고 하면, 언제 정의를 하느냐인데 그렇다면 어떨때 사용..? 최 적 화 !
- const의 경우 특정 화면이 리렌더링 된다고 했을 경우 항상 같은 내용을 표시 (리스트 추가 불가능)
- final의 경우 특정 화면이 리렌더링 된다고 했을 경우 현재의 내용을 표시 (리스트의 경우 추가 가능)
const로 지정된 위젯 안에서는 const변수를 사용할 수 있다.
이미 위젯이 고정일거라고 명시되어있기때문에.
공부하며 정리&기록하는 ._. 씅로그