05 플러터 입문하기
5.1 플러터 소개
구글이 구현한 크로스 플랫폼 프레임워크. 한 소스 코드로 여러 플랫폼에 대응할 수 있어 개발 비용 절감, 관리 부담 감소
플러터는 스키아 엔진이라는 2D 렌더링 엔진과 직접 통신하기 때문에 스키아 엔진이 실행되는 플랫폼에서는 똑같은 API를 사용해 프로그래밍할 수 있다. 즉 어떤 플랫폼이든 일관된 UI를 제공할 수 있다.
플러터 구조 : 프레임워크(Dart) / 엔진(C/C++) / 임베더(Platform-specific)
임베더: 로우 레벨 계층. 플러터가 지원하는 플랫폼의 네이티브 플랫폼과 직접 통신, 운영체제의 자체적 기능을 모듈화
엔진: 중간 계층. 대부분 C++로 작성됨. 플러터 코어 API와 스키아 그래픽 엔진, 파일시스템, 네트워크 기능 등을 정의
프레임워크: 플러터 프레임워크를 사용하는 데 필수적인 위젯, 애니메이션, 머티리얼/쿠퍼티노 패키지 등
플러터는 웹뷰를 사용하지 않고 직접 스키아 엔진을 사용해 화면에 ui를 그려낸다. 이때 새로 렌더링이 필요한 위젯들만 렌더링하므로 퍼포먼스가 높다.
5.2 Hello Flutter 앱 만들기
5.2.1 안드로이드 스튜디오에서 프로젝트 생성하기
flutter create hello_world
아님 안드로이드 스튜디오에서 create flutter project로 생성
5.2.3 'Hello Code Factory' 출력하기
//main.dart
import 'package:flutter/material.dart';
void main() {
runApp(
MaterialApp(
home: Scaffold(
body: Text(
'Hello code factory',
),
),
),
);
}
티스토리는 코드블럭에 다트를 추가하라 우우
플러터 프로젝트 실행 시 가장 먼저 main()함수가 실행되며, main() 안의 runApp() 함수를 실행시켜 플러터 프로젝트를 시작한다.
MaterialApp : 머티리얼디자인 기반의 위젯들을 사용하게 해주는 위젯
Scaffold : 화면 전체를 차지, 레이아웃을 도와주고 UI 관련 특수 기능 제공 (스낵바, 앱바, 탭바 등)
5.2.4 Center 위젯으로 중앙 정렬