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