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)을 통해서
중간 언어를 실시간으로 번역 한다.
이 때 해당 기계에 맞게 번역을 실행하고
즉시 실행 된다.
|
|
|
* 플러터로 할 수 있는 것
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이다.
위젯들은 트리구조로 구성이 되어 진다
댓글