일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 2D 그래픽 라이브러리
- 에러 메시지를 잘보자 ^^
- 다트
- refresh 토큰
- 인코딩방지
- SOLID 원칙
- 배움순서
- Android
- Parameter specified as non-null is null
- 토큰갱신
- 플러터 테스트
- 객체 지향 설계
- 2D graphics library
- dart
- 플러터
- 테스트 주도 개발론
- 다트 테스트
- widget test
- Refresh Tocken
- permission_handler
- 안드로이드를 위한
- 안드로이드
- pubspec
- TDD 개발 방법론
- retorift
- Same parameter
- 8시간 삽질
- pubspec.yaml
- dart test
- Flutter
- Today
- Total
Landroid
[Flutter] Skia가 뭐지? 본문
Skia is an open source 2D graphics library which provides common APIs that work across a variety of hardware and software platforms. It serves as the graphics engine for Google Chrome and Chrome OS, Android, Flutter, Mozilla Firefox and Firefox OS, and many other products.
Skia는 다양한 하드웨어 및 소프트웨어 플랫폼에서 공통 API를 제공하는 오픈 소스 2D 그래픽 라이브러리입니다.
구글 크롬, Chrome OS, Android, Flutter, Firefox, Firefox OS 등 많은 다른 제품들의 그래픽 엔진 역할을 합니다.
Skia라는 단어는 2017년 플러터의 출시로 크게 알려졌습니다.
특히 플러터의 UI 렌더링에 대해 설명하면 거의 무조건 "Skia 엔진을 사용합니다."라고 합니다.
하지만 Skia는 2005년에 구글에 인수되고 2008년에 오픈소스로 출시되었을 만큼 생각보다 오래된 2D 그래픽 라이브러리입니다.
공식문서 : https://skia.org/
오픈소스 : https://skia.googlesource.com/skia
오픈소스(깃허브) : https://github.com/google/skia
Skia는 오래된 라이브러리임에도 불구하고
제대로 된 자료나 정보들이 공식문서 외에는 거의 없다는 것이 의문이다.
그림을 보면 Canvas가 HWUI와 Skia를 이용해서 Surface로 요청을 하는 구조이며
현재도 Canvas는 Skia엔진으로 구현됩니다.
노출 영역 및 SurfaceHolder(Last updated 2019-12-02 UTC.)
그래서 Skia는?
Flutter는 각각의 디바이스에서 렌더링 하는 방법으로 Skia를 사용하기 때문에 각각의 디바이스에 제한 없이 동일한 화면으로 렌더링이 가능합니다.
각각의 디바이스들의 Native Component를 사용하지 않기 때문에, 동일한 스타일의 화면을 만들어 낼 수 있습니다.
Flutter는 React와 ReactNative에서 영감을 받았기 때문에, 개발자로 하여금, 구현 코드와 상태 관리에만 신경을 쓰게 하여, 렌더링의 복잡도를 줄이고, 빠른 구현이 가능하게 합니다.
'플러터' 카테고리의 다른 글
[Flutter] 플러터 프로젝트에 .gitignore 추가하기 (1) | 2021.03.10 |
---|---|
FutureBuilder에서 future 함수 중복 호출 방지 (0) | 2021.02.21 |
[플러터] 테스트 (0) | 2021.01.09 |
[플러터] 헷갈리는 권한 정리(with permission_handler) (0) | 2020.12.22 |
[플러터] Stateful 생명주기 (2) | 2020.12.17 |