본문 바로가기

개발/Flutter

[Flutter] flutter란?

반응형

소개

플러터는 구글이 출시한 오픈 소스 크로스 플랫폼 GUI 애플리케이션 프레임워크이다. 안드로이드, iOS, 윈도우즈, 리눅스 및 웹용 애플리케이션과 구글 퓨시아용 앱의 주된 소스코드로 사용된다.

플러터는 위젯 기반으로 동작하는데


위젯은 React에서 영감을 얻은 현대적인 프레임워크를 사용하여 제작됩니다.
핵심 아이디어는 위젯으로 UI를 구축하는 것입니다.
위젯은 현재 환경설정과 상태를 고려할 때 보기의 모양을 설명합니다.
위젯의 상태가 변경되면 위젯은 설명을 재구축합니다.


이는 기본 렌더링 트리에서 한 상태에서 다음 상태로 전환하는 데 필요한 최소한의 변경을 결정하기 위해 프레임워크가 이전 설명과 다르게 설정됩니다.

 

 

  1. Just-In-Time (JIT) 컴파일:
    • 개발자가 애플리케이션을 개발하고 디버깅하는 동안에 주로 사용됩니다.
    • Dart 코드는 실행 시에 가상 머신(VM)에 의해 JIT 컴파일되어 기계어로 변환되고, 그 결과물이 실행됩니다.
    • Hot Reload 기능은 JIT 모드에서 빠르게 코드 변경을 반영할 수 있는 이점을 제공합니다.
  2. Ahead-Of-Time (AOT) 컴파일:
    • 애플리케이션이 배포되고 릴리즈 모드로 실행될 때 사용됩니다.
    • Dart 코드는 미리 컴파일되어 기계어로 변환되고, 그 결과물이 실행됩니다.
    • 이로써 애플리케이션의 실행 속도가 향상되며, 더 적은 메모리를 사용합니다.

특징

Dart 언어:

Flutter는 Dart라는 언어를 사용합니다. Dart는 JIT(Just-In-Time) 컴파일러와 AOT(Ahead-Of-Time) 컴파일러를 모두 지원하여 개발자가 편리하게 개발하고 높은 성능을 얻을 수 있도록 합니다. Dart는 C언어와 Java의 영향을 받아 객체지향 프로그래밍과 함수형 프로그래밍의 특징을 모두 가지고 있습니다.

 

위젯:

Flutter에서 모든 것은 위젯으로 이루어져 있습니다. 화면의 레이아웃, 스타일, 애니메이션 등 모든 것이 위젯으로 표현됩니다. 위젯은 기본적인 구성 요소로서 텍스트, 버튼, 이미지부터 더 복잡한 구성 요소까지 다양합니다. 이러한 위젯을 조합하여 사용자 인터페이스를 구성합니다.

 

위젯 트리와 빌드:

Flutter 애플리케이션은 위젯 트리로 구성됩니다. 각 위젯은 자신의 상태를 가지며, 상태가 변경되면 Flutter는 자동으로 해당 부분을 다시 그립니다. 이러한 메커니즘은 개발자가 명시적으로 관리하지 않아도 상태 변경에 대한 업데이트를 처리하게 해줍니다.

 

레이아웃 및 디자인:

Flutter는 다양한 내장 위젯과 레이아웃을 제공하여 애플리케이션의 디자인을 쉽게 구현할 수 있습니다. 또한, 사용자 정의 가능한 위젯을 만들어 새로운 디자인 패턴을 도입할 수 있습니다.

 

플러그인과 패키지:

Flutter는 다양한 플러그인과 패키지를 통해 기기 기능, 서비스, 외부 라이브러리와 통합할 수 있습니다. 이러한 생태계는 Flutter 개발자가 다양한 기능을 애플리케이션에 추가할 수 있게 해줍니다.

 

크로스 플랫폼 개발:

Flutter는 단일 코드베이스로 iOS와 Android를 비롯한 여러 플랫폼에 애플리케이션을 배포할 수 있습니다. 이는 개발 생산성을 높이고 코드의 재사용성을 극대화하는 데 도움이 됩니다.

 

Hot Reload:

Hot Reload는 애플리케이션을 실행 중에 코드 변경을 즉시 반영할 수 있는 기능입니다. 이는 애플리케이션을 다시 시작하지 않고도 신속한 실험과 디버깅을 가능하게 합니다.

 

커뮤니티와 문서화:

Flutter는 활발한 개발자 커뮤니티와 풍부한 문서화를 통해 지원됩니다. 이는 개발자들이 문제를 해결하고 새로운 기술을 배우는 데 도움이 됩니다.


결론

Flutter는 Dart라는 프로그래밍 언어로 작성되며, 다양한 애플리케이션을 개발하고 다양한 플랫폼에서 배포하는 데 유용합니다.
앱 개발을 쉽게 만들고 다양한 디바이스와 플랫폼에서 호환성을 제공하는 데 도움을 줍니다.

반응형