0117_코드팩토리 플러터 프로그래밍 cpt5
5장
플러터 입문하기
구글이 구현한 크로스 플랫폼 프레임워크
초기에는 안드로이드, ios 앱만 지원했지만 현재는 웹사이트, MacOs, 윈도우, 리눅스 데스크톱 앱 까지 지원.
플러터로 개발하면 한 소스 코드로 수많은 플랫폼에 대응할 수 있어서 개발 비용을 아끼고 관리 부담을 줄일 수 있음.
상대적으로 다루기 쉽다는 점과 크로스 플랫폼 호환성이 자연스럽다는점
구글에서 강력하게 밀고 있는 프로젝트라는 점을 종합했을때 플러터는 앞으로 더욱 기대되는 프레임워크임
플랫폼 간에 이질감이 적은 크로스 플랫폼 프레임워크
기존 크로스플랫폼 프레임워크들은 코드를 네이티브 프레임워크 코드로 전환하는데 중점을 둠
하지만 플러터는 스키아(Skia) 엔진이라는 2D 렌더링 엔진과 직접 통신을 하기 때문에 스키아 엔진이 실행되는 플랫폼에서는 똑같은 API 를 사용해서 프로그래밍 할 수 있습니다. 이런 장점 덕분에 플러터 프레임워크는 어떤 플랫폼이든 일관된 UI를 제공할 수 있음.
그래서 타 크로스 플랫폼 프레임워크 보다 플랫폼별 UI 디버깅 부담이 적다
플러터 구조
- 하드웨어와 가장 가까운 로우레벨에는 임베더(embedder) 계층이 있음. 임베더는 플러터가 지원하는 6개 플랫폼의 네이티브 플랫폼과 직접 통신을 하고 운영체제의 자체적 기능을 모듈화 해둔 계층. 이 모듈들은 각 플랫폼의 네이티브 언어로 작성되어 있음
- 엔진 계층 : 대부분 C++ 로 작성되어있음. 플러터 코어 API 와 스키아 그래픽 엔진, 파일시스템, 그리고 네트워크 기능등이 정의되어 있음
- 마지막 계층은 프레임워크 계층 위젯, 애니메이션, 머티리얼 패키지, 쿠퍼티노 패키지.
이렇게 잘 모듈화된 아키텍처 덕분에 플러터는 쉽게 여러 플랫폼을 지원하고 일관된 API 및 개발 경험을 제공함.
플러터가 스키아엔진을 사용했을 때 어떤 장점이 있는걸까요? 대부분의 크로스 플랫폼 앱 개발 프레임워크들은 웹뷰를 사용하거나 각 플랫폼의 UI library를 사용함. 플러터는 웹뷰를 사용하지 않고 직접 스키아 엔진을 사용해 화면에 ui를 그려냅니다. 새로 렌더링이 필요한 위젯들만 렌더링 하기 때문에 다른 크로스 플랫폼 앱 개발 프레임워크보다 높은 퍼포먼스를 보임. 리액트 네이티브는 자바스크립트 브릿지를 통해 플랫폼과 통신함. 또한 플랫폼의 UI(OEM 위젯)을 그대로 사용함. 그래서 플랫폼과 리액트 네이티브 간 통신을 할때 필요한 리소스 비용이 상당히 높음.하지만 플러터는 위젯을 스키아 엔진에 직접 그려내고 필요한 제스처 및 이벤트를 브릿지를 통하지않고 실행하기 때문에 리액트 네이티브에 비해 상당히 빠른 퍼포먼스를 자랑함.
hello world 만들기 실습
- MaterialApp은 Material design 기반의 위젯들을 사용하게 해주는 위젯
Leave a comment