실행
void main() {
runApp(ChatApp());
}
- flutter 프로젝트를 실핼시키기위한 코드
runApp()
에 ChatApp()
위젯을 전달하면서 전체 애플리케이션이 구동됩니다.
Main widget
class ChatApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'JChat',
theme: ThemeData(
primarySwatch: Colors.purple, // 실제론 MaterialColor 필요
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: ChatScreen(),
);
}
}
StatelessWidget
을 상속받아 만듭니다.
MaterialApp
위젯을 반환하여 Flutter의 머티리얼 디자인 테마를 사용.
- 위젯타입을 반환하여 runApp의 매개변수로 작용한다
title
은 앱의 기본 제목.
theme
로 앱 전체에 적용할 테마 설정(글꼴, 색상, 위젯 스타일 등)을 지정.
- 주의:
primarySwatch
는 원래 MaterialColor
타입을 필요로 하므로, 실제 코드는 Colors.purple
같은 머티리얼 컬러를 사용해야 합니다.
home
으로 ChatScreenChatScreen
을 연결해, 앱 구동 시 가장 먼저 보여줄 화면을 지정합니다.
ChatScreen( )
class ChatScreen extends StatefulWidget {
@override
_ChatScreenState createState() => _ChatScreenState();
}
- 채팅화면을 담당하는 위젯으로, 사용자 입력에 따라 실시간으로 UI가 변해야 하므로
StatefulWidget
을 사용.
createState()
에서 실제 동작 로직이 들어있는 _ChatScreenState
인스턴스를 생성합니다.
_ChatScreenState
클래스