본문 바로가기
모바일/Flutter

[Flutter] 01 플러터 시작하기 - 플러터의 등장 배경

by 푸_푸 2022. 12. 31.
728x90

플러터의 등장 배경

애플 : 오브젝티브-C → 스위프트(Swift)
구글 : 자바 → 코틀린(Kotlin)
오브젝티브-C나 스위프트로 iOS 앱을 개발하거나 자바나 코틀린으로 안드로이드 앱을 개발하는 것처럼 각 모바일 운영체제에 맞는 언어로 개발한 앱을 네이티브 앱(native apps)이라고 함

웹앱, 하이브리드 앱의 등장
더 많은 사용자가 앱을 사용하게 하기 위해서는 똑같은 앱을 iOS용과 안드로이드용으로 두번 개발해야 했기 때문에 
하나의 소스로 iOS와 안드로이드에서 실행할 수 있도록 웹앱과 하이브리드 앱이 등장
- 웹앱 : 웹 기술을 이용해서 만든 앱
앱의 화면을 나타내는 뷰를 모바일용 웹으로 만들어서 다양한 기종과 해상도에 대응하며 빠르게 개발
*프로그레시브 웹앱 : 네이티브 앱처럼 알림도 보내고 오프라인에서도 동작
- 하이브리드 앱 : 웹앱을 만든 후 별도의 프레임워크를 이용해 운영체제 별로 동작하는 앱

✓ 이러한 기술로 만든 앱은 네이티브 앱과 비교해 상대적으로 속도가 느리고 애니메이션 사용에도 제약이 있어 스마트폰의 성능을 충분히 활용할 수 없음

리액트 네이티브와 플러터
- 리액트 네이티브(React Native) : 페이스북에서 만든 여러 운영체제에서 동작하는 앱을 개발할 수 있는 크로스 플랫폼 앱 개발 프레임워크
자바스크립트를 사용. 웹 개발자가 앱을 개발할 수 있게 함
✓ 웹앱이나 하이브리드 앱보다는 속도가 빠르지만 화면에 표시할 내용이 많으면 느려질 수 있음
✓ 운영체제의 업데이트에 따라 디자인이 달라질 수 있음

- 플러터(Flutter) : 구글에서 만든 다트(Dart)라는 언어를 사용하는 크로스 플랫폼 앱 개발 프레임워크
자바나 C#같은 컴파일 언어가 가진 특징을 활용해 앱 개발


* 프레임워크, 엔진, 임베더 계층으로 구성
-프레임워크 계층은 다트 언어로 개발된 여러 가지 클래스가 있으며 이를 이용해 앱을 개발
-엔진 계층은 플러터의 코어를 담당. C와 C++언어로 만들어져 데이터 통신, 다트 컴파일, 렌더링, 시스템 이벤트 등을 처리
-임베더 계층은 플러터 앱이 크로스 플랫폼에서 동작하도록 플러터 엔진이 렌더링 한 결과를 플랫폼별 네이티브 언어로 뷰를 만들어 화면에 보여줌
안드로이드 앱은 자바와 C, C++언어로 만들고, iOS앱은 오브젝티브-C와 오브젝티브-C++언어로, 리눅스와 윈도우 앱은 C++언어로 만듦
다트 언어로 소스파일만 작성하면 플러터의 각 계층을 거쳐 플랫폼 별 앱을 개발할 수 있음

728x90

댓글