ㅇ 플러터 소개 - 구글이 구현한 크로스 플랫폼 프레임워크 - 한 소스코드로 수많은 플랫폼에 대응할 수 있음 -> 개발 비용 아끼고, 관리 부담을 줄일 수 있음 - 기존 리액트 네이티브가 장악하던 크로그 플랫폼 앱 개발 프레임워크 시장을 플러터가 상당 부분 장악했음 - 상대적으로 다루기 쉬움 - 크로스 플랫폼 호환성이 상당히 자연스러움 - 구글에서 강력하게 밀고 있는 프로젝트 - 종합적으로 앞으로 더욱 기대되는 프레임워크 - 플랫폼 간의 이질감이 적음 - 기존 크로스 플랫폼 프레임워크 : 코드를 네이티브 프레임워크 코드로 전환하는데 중점 플러터 : 스키아 엔진이라는 2D 렌더링 엔진과 직접 통신(똑같은 API를 사용) -> 어떤 플랫폼이든 일관된 UI를 제공(타 프레임워크보다 플랫폼별 UI 디버깅 부담이 현저히 적음)
ㅇ 플러터 구조 -> 잘 모듈화된 아키텍처 덕분에 쉽게 여러 플랫폼을 지원하고 일관된 API 및 개발 경험을 제공 1. 임베더 계층 : 가장 하드웨어와 가까운 로우 레벨 -> 플러터가 현재 지원하는 6개 플랫폼의 네이티브 플랫폼과 직접 통신을 하고 운영체제의 자체적 기능을 모듈화 -> 이 모듈들은 각 플랫폼의 네이티브 언어로 작성되어 있음 2. 엔진 계층 : 중간 계층 -> 대부분 C++로 작성되어 있음 -> 플러터 코어 API, 스키아 그래픽 엔진, 파일시스템, 네트워크 기능 정의되어있음 3. 프레임워크 계층 -> 플러터 개발자들이 대부분의 시간을 보내는 계층 -> 위젯, 애니메이션, 머티리얼 패키지, 쿠퍼티노 패키지 등이 있음
ㅇ 스키아 엔진 - 스키아 엔진과 직접 통신한다 -> 어떤 플랫폼이든 스키아 엔진을 지원한다면 플러터가 컴파일되고 실행되도록 구현할 수 있다 -> ios, 안드로이드 앱, 윈도우, 리눅스, 맥os, 웹사이트를 같은 플러터 코드로 배포하도록 구현 가능
- 스키아 엔진을 사용했을 때 장점 -> 대부분의 프레임워크들은 웹뷰를 사용하거나 각 플랫폼 UI 라이브러리 사용 -> 플러터는 웹뷰를 사용하지 않고, 직접 스키아 엔진을 사용해 화면에 UI를 그려냄 -> 새로 렌더링이 필요한 위젯들만 렌더링하기 때문에 타 프레임워크보다 상당히 높은 퍼포먼스를 선보임