플러터
특징
거의 모든것이 위젯 객체
구글이 지원하는 무료 오픈소스
1단계
사용자가 화면을본다(화면 그리기, 렌더링) -> 버튼을 누르거나 상호작용에 따라서 바뀜 변경 안해도 되면 StatefullWidget
다시 변경 되면 StatelessWidget
Dart 언어를 사용해야 함
안드로이드,스위프트ios 는 네이티브
핫 리로드 - 가상머신 을 통해 업데이트하고 다시 배포하지 않아도 코드를 저장만 하면 변경 사항을 실시간으로 확인할 수 있다.
-> 개발생산성높임, 로딩 시간 빨라짐
Dart 언어 특증
Type을 지원하는 언어
Type 추론도 지원
단일 스레드로 비동기 방식을 지원
스프레드 연산자 지원
배열은 x 컬렉션만 존재
컬렉션프레임워크 - list map set 세개만 지원
Skia 엔진 안드로이드, ios, 윈도우, 맥 등 2D 그래픽 라이브러리 사용목적으로 나왔지만 현재는 3D까지 지원이 된다.
React Native
버튼을 만드려면 브릿지시스템으로 안드로이드 버튼을 찾고 그 버튼을 매칭해서 휴대폰에 보여줌 -> 찾는 과정이 들어가기때문에 느림
Skia 는 바로 버튼 찾아서 직접 그림 -> 그려내는게 빠름
AOT
다트언어로 개발한 코드를 휴대폰에 빌드하기 전에 핸드폰의 기계어 코드(네이티브 코드)로 사전 컴파일하여 코드를 빌드할 수 있음. 빠르게 실행가능
JIT
런타임에서 실행할 수 있는 중간언어로 변환후 다트위 가상머신을 통해서 중간언어를 실시간으로 번역
AOT 에비해 런타임시 실행이 느림 -> 개발해서 유용함
플러터 아키텍쳐
머터리얼 - 구글의 디자인 플랫폼
쿠퍼티노 - ios 디자인 플랫폼
플러터로 할수 있는것
HTML, CSS JAVASCRIPT 몰라도 웹디자인 가능
자바 몰라도 안드로이드 디자인 가능
스위프트를 몰라도 IOS 디자인 가능 등
DartPad
DartPad
dartpad.dev





