플러터(Flutter)는 Google에서 개발한 오픈 소스 UI 소프트웨어 개발 프레임워크입니다. 주로 모바일 애플리케이션을 빌드하기 위한 것이며, 안드로이드 및 iOS의 네이티브 앱을 개발할 수 있습니다. Flutter는 단일 코드베이스에서 여러 플랫폼을 대상으로 하기 때문에 크로스 플랫폼 프레임워크로 분류됩니다.
플러터의 특징은 다음과 같습니다:
1. Dart 언어 사용: 플러터 애플리케이션은 Dart 언어로 작성됩니다. Dart는 JIT(Just-In-Time) 및 AOT(Ahead-Of-Time) 컴파일 옵션을 지원하며, 플러터 애플리케이션의 성능을 최적화하는 데 도움이 됩니다.
2. 위젯 기반 UI: 플러터는 위젯이라는 작은 구성 요소를 조합하여 화면을 구성합니다. 위젯은 UI의 모든 요소를 나타냅니다. 이러한 위젯은 상태를 가지며, UI의 변화에 따라 다양한 방식으로 반응할 수 있습니다.
3. 크로스 플랫폼 지원: 단일 코드베이스에서 안드로이드 및 iOS 애플리케이션을 개발할 수 있습니다. 따라서 개발자는 두 플랫폼에 대해 따로 코드를 작성하지 않고도 애플리케이션을 개발할 수 있습니다.
4. 빠른 개발: 플러터는 빠른 개발 주기를 제공하며, 핫 리로딩(Hot Reload)이라는 기능을 통해 코드 변경을 즉시 확인하고 테스트할 수 있습니다.
5. 커뮤니티 지원: Flutter는 활발한 개발자 커뮤니티를 가지고 있으며, 다양한 패키지 및 플러그인을 통해 기능을 확장할 수 있습니다.
플러터를 사용하면 단일 코드베이스로 여러 플랫폼에 대한 애플리케이션을 개발할 수 있고, 빠르게 반응하는 사용자 인터페이스를 만들 수 있습니다.
플러터를 사용한 간단한 예제
이 예제는 "Hello, World!" 메시지를 포함하는 간단한 앱을 만드는 것입니다. 아래는 해당 예제의 코드입니다.
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Flutter Hello World'),
),
body: Center(
child: Text('Hello, World!'),
),
),
);
}
}
이 코드는 기본적인 플러터 앱을 작성하는 것입니다. 간단히 설명하면:
1. `main()` 함수는 앱을 시작하는 진입점입니다. 여기서 `MyApp` 클래스의 인스턴스를 생성하여 앱을 실행시킵니다.
2. `MyApp` 클래스는 `StatelessWidget`을 상속하며, 앱의 전체 구조를 정의합니다.
3. `MaterialApp`은 플러터 앱의 기본 구조를 정의하는 위젯 중 하나입니다. 여기에는 앱의 기본적인 테마와 라우팅이 정의됩니다.
4. `Scaffold`은 앱의 기본 레이아웃을 정의하는 위젯 중 하나입니다. 여기에는 앱 바 (`AppBar`) 및 본문 (`body`)이 포함됩니다.
5. `AppBar`에는 상단 바에 표시될 제목이 포함되어 있습니다.
6. `Center` 위젯은 자식 위젯을 중앙에 배치합니다.
7. `Text` 위젯은 화면 중앙에 "Hello, World!" 텍스트를 표시합니다.
이 예제는 간단하지만 플러터의 기본 구조 및 위젯을 이해하는 데 도움이 됩니다. 플러터는 더 복잡하고 강력한 애플리케이션을 만들 수 있는 다양한 기능과 도구를 제공합니다.