avocado8 2024. 4. 28. 22: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 위젯으로 중앙 정렬

근데 vs코드로 하면 실행 5억년 핫리로딩 1년정도 걸리는데 안드스튜디오로 하면 실행 3천년 리로딩 1억년정도 걸림 뭐때문...