플러터에 대하여

Posted on 2021-12-14 by GKSRUDTN99
Flutter

플러터에 대하여


플러터와 다른 언어들과의 비교
  • Objective-C와 Swift로 iOS 앱을 개발하거나 Java와 Kotlin으로 AOS 앱을 개발한 것을 네이티브 앱이라 부른다.

  • 웹앱은 웹 기술을 이용하여 만든 앱이다.
    • 최근에는 네이티브 앱처럼 알림도 보내고 오프라인에서 동작하는 프로그래시브 웹앱도 있다.

  • 하이브리드 앱은 웹앱을 만든 후 별도의 프레임워크를 이용해 운영체제별로 동작하는 앱을 만드는 기술이다.
    • 이런 웹앱들은 네이티브 앱에 비해 상대적으로 속도가 느리고 애니메이션 사용에도 제약이 있는 등 성능을 충분히 활용할 수 없었다.

  • 리액트 네이티브는 여러 운영체제에서 동작하는 앱을 개발할 수 있는 크로스 플랫폼 앱 개발 프레임워크이다.
    • 리액트 네이티브에서는 자바스크립트가 다리 역할을 하면서 안드로이드나 iOS의 네이티브 API에 접근한다.
      웹앱이나 하이브리드 앱보다는 속도가 빠르지만 화면에 표시할 내용이 많으면 느려질 수 있다.
      또한, 운영체제가 업데이트되면 디자인이 의도한 바와 달라질 수 있다.

  • 플러터도 크로스 플랫폼 앱 개발 프레임워크지만, 구글에서 만든 다트(Dart)라는 언어를 사용한다.
    • 따라서 자바나 C#같은 컴파일 언어가 가진 특징을 활용해 앱을 개발할 수 있다.
      플러터는 크게 프레임워크와 엔진, 임베더 계층으로 구성되어 있다.
      프레임워크 계층에는 다트 언어로 개발된 여러 가지 클래스가 있으며 이러한 클래스를 이용해 앱을 개발한다.
      엔진 계층은 플러터의 코어를 담당하는데, 대부분 C와 C++ 언어로 만들어졌으며, 데이터 통신, 다트 컴파일, 렌더링, 시스템 이벤트 등을 처리한다.
      임베더 계층에는 플러터 앱이 크로스 플랫폼에서 동작하도록 플러터 엔진이 렌더링한 결과를 플랫폼별 네이티브 언어로 뷰를 만들어 화면에 보여준다. 안드로이드는 자바와 C, C++로, iOS앱은 Objective-C와 Objective-C++로, 리눅스와 윈도우 앱은 C++로 만들어져있다.
      따라서 다트 언어로 소스 파일만 작성하면 플러터의 각 계층을 거쳐 플랫폼별 앱을 개발할 수 있다.