Christmas Pikachu Flutter란?
개발일지/Flutter

Flutter란?

ZI_CO 2022. 11. 3.

Flutter  :  UI + 프레임 워크

단일 코드 베이스로 개발할 수 있는 구들에UI 프레임워크 이다.

스크롤 동작 , 글씨, 아이콘 같은 플랫폼별 달라지는 부분들을 아울러서 함께 개발할 수 있는 어플리게이션을 만드는게 목적이다.

 

UI - User Interface
프레임 워크
- 사용자 인터페이스란 사람(사용자)과
컴퓨터 시스템 사이의 의사소통 매개
- 의사소통은 해당 기기에 대한 효율적인 작동과
사용자의 제어를 보장하는 것이 목표이다.
틀(흐름)을 만들어두고,
실행의 흐름에 따라 수정&추가하며
만들어 가는 코드의 묶음

 

 

플러터 특징

구글이 지원하는 무료 오픈 소스이다
네이티브앱으로 컴파일이 가능하여 네이티브 수중에 성능이 좋다
플러터는 모든 것이 위젯이기 때문에 위젯에 대한 개념만 숙지를 하면 쉽게 개발이 가능하다
Dart를 프로그래밍 언어로 사용합니다.
배우기 쉽다

개발시에 핫 리로드 라는 특수 기능이 있어 가상머신(VM)을 사용

>>> 이를 통해서 코드를 업데이트하고 다시 배포하지 않고도
코드를 저장만 하면 변경 사항을 실시간으로 확인할 수 있다

 

 

 

 

* 플러터의 엔진 - Skia 엔진

Skia는 안드로이드, ios, 윈도우, 맥, 우분투 등

다양한 환경에서 공통 API를 가지는 화면을 그릴 수 있도록

도와주는 오픈소스 2D 그래픽 라이브러리

 

 

 

* 플러터 AOT와 JIT 지원

AOT
JIT
Ahead of Time 을 지원
즉, Dart 언어로 개발한 코드를
휴대폰에 빌드하기 전에
기계어 코드 (네이티브 코드)로 사전 컴파일 하여
코드를 빌드 할 수 있다.
JUST IN TIME 지원
JIT란 런타임에서 실행할 수 있는
중간언어로 변환 후
Dart에 가상머신 (VM)을 통해서
중간 언어를 실시간으로 번역 한다.
이 때 해당 기계에 맞게 번역을 실행하고
즉시 실행 된다.
  • 프로덕션 모드에서 사용한다.
  • AOT에 비해 런타임시 실행이 느리다.
  • 개발 모드에서만 사용한다.

 

 

 

 

 

* 플러터로 할 수 있는 것

HTML, CSS, JavaScript를 몰라도 웹 디자인이 가능합니다.

Java를 몰라도 Android 디자인 가능 합나다.

Swift 몰라도 iOS 디자인이 가능합니다.

Dart 언어와 Flutter 프레임 워크만 알면 데스크탑 앱을 만들 수 있습니다.

 

 

 

 

widget이란?

독릭적으로 실행되는 작은 프로그램이다.
주로 바탕화면 등에서 날씨나 뉴스, 생활정보 등을 보여준다.
그래픽이나 데이터 요소를 처리하는 함수를 가지고 있다.

 

 

 

>>> 플러터에 핵심 위젯 <<<

Stateless Widget
Statefull Widget
Inherited Widget
한번 렌더링되면 끝인 위젯
상호작용에 의해서
화면이 변경되는 위젯
Stateless :
- 이전 상호작용의 어떠한 값도 저장하지 않음
- 화면상에서 존재만 할 뿐 아무것도 하지 않음
- 어떠한 실시간 데이터를 저장하지 않음
- 변화를 유발시키는 value 값을 가지지 않음
Stateful :
-value 값을 지속적으로 추적 보전
(계속 움직임이나 변화가 있는 위젯)

 

 

 

widget tree

화면을 구성하면서 위젯들이 하나의 트리구조 정리 된다.
하나의 위젯에서 하위에 다른 위젯들을 포함 시킬 수 있다.
위젯은 부모와 자식에 관계로 정리 될 수 있다.

 

 

 

결론

플러터에서 거의 모든 것이 위젯이다.
위젯이 전혀 변화가 없으면 stateless widget이다.
위젯이 모양이나 상태가 바뀐다면 stateful widget이다.
위젯들은 트리구조로 구성이 되어 진다

 

 

댓글