(Flutter-기초 강의) 1. Flutter(플러터)란 무엇인가?

1. 개요 (Overview)

Flutter(플러터)는 구글이 개발한 오픈 소스 프레임워크로, 사용자 인터페이스를 빌드하고 개발하기 위한 도구입니다. 이 Framework는 Mobile, Web, Desktop 및 embeded 환경에서 작동하는 Application을 만드는 데 사용됩니다.

2. 역사 (History)

  • 2015년: 첫 번째 버전인 “Sky”가 안드로이드 운영 체제에서 실행되며, 120 프레임/초의 일관된 렌더링을 목표로 공개되었습니다.
  • 2018년 9월: Flutter Release Preview 2가 발표되었고, 2018년 12월 4일 Flutter 1.0이 발표되어 첫 Stable 버전으로 등장했습니다.
  • 2019년 12월 11일: Flutter 1.12가 발표되었습니다.
  • 2020년 5월 6일: Dart SDK 버전 2.8과 Flutter 1.17.0이 출시되었는데, 이는 iOS 기기의 성능을 약 50% 향상시키는 Metal API 지원과 새로운 Material 위젯 및 네트워크 추적 개발 도구를 추가했습니다.
  • 2021년 3월 3일: Flutter 2를 발표했습니다. 이 중요한 업데이트는 새로운 Canvas Kit Renderer와 웹 전용 Widget을 포함하여 웹 기반 애플리케이션의 공식 지원을 가져왔습니다.
  • 2021년 9월 8일: Dart 2.14와 Flutter 2.5를 출시했습니다. 이 업데이트는 Android 전체 화면 모드와 Material You라고 불리는 구글의 최신 Material Design의 개선 사항을 가져왔습니다.
  • 2022년 5월 12일: Flutter 3와 Dart 2.17의 출시가 발표되었습니다. 이 업데이트는 Linux 및 macOS에 대한 안정적인 지원을 포함하여 총 6개의 플랫폼을 지원하도록 확장되었습니다.
  • 2022년 8월 30일: Flutter 3.3이 발표되었습니다. 이 릴리스에는 Objective-C 및 Swift 상호 운용성 및 “Impeller”라는 새로운 렌더링 엔진의 초기 미리보기가 포함되었습니다.
  • 2023년 1월 25일: Flutter 3.7이 발표되었습니다.

3. 장점과 단점 (Strength and Weakness)

장점

  1. 크로스 플랫폼 개발 지원: Flutter는 여러 플랫폼에서 동작하는 Cross-platform framework로, 동일한 코드를 사용하여 여러 플랫폼에 애플리케이션을 배포할 수 있어 개발 시간과 비용을 절약할 수 있습니다.
  2. 빠른 개발 속도: 핫 리로드 기능을 통해 코드 변경 사항을 즉시 반영하여 앱의 실시간 미리 보기를 제공하므로, 개발자들이 빠르게 실험하고 UI를 조정할 수 있습니다.
  3. 높은 성능: 자체적인 그래픽 렌더링 엔진을 사용하여 부드러운 애니메이션 및 빠른 UI 렌더링을 가능하게 합니다.
  4. 개인화 가능한 UI: Material Design과 Cupertino 스타일의 Widget을 포함하여 다양한 디자인 언어를 지원하며, 개발자들은 자유롭게 UI를 설계하고 구성할 수 있습니다.
  5. 강력한 커뮤니티 및 지원: 활발하고 다양한 커뮤니티를 가지고 있으며, 지속적인 업데이트와 개선이 이루어지고 있습니다.
  6. 풍부한 플러그인 및 패키지: 다양한 플러그인과 패키지를 제공하여 개발 프로세스를 향상시키며, 기능을 확장하고 다른 서비스와 쉽게 통합할 수 있습니다.
  7. 언어와의 호환성: Dart 언어 기반으로 만들어진 Framework이므로, 언어 레벨에서의 기능개선이 가능합니다.

단점

  1. 성숙도 부족: 새로운 기능의 안정성과 라이브러리 부재로 인해 일부 불안정할 수 있습니다.
  2. 라이브러리 부재: 특정한 기능을 위한 라이브러리가 부족하여 특정 프로젝트에 적용하기 어려울 수 있습니다.
  3. 학습 곡선: Flutter의 개념과 작동 방식을 이해하는 데 일정한 학습 곡선이 필요할 수 있습니다.
  4. 큰 앱 용량: Build된 Application의 용량이 크게 될 수 있습니다.
  5. Native App과 연동의 제한성: 일부 제한이 있을 수 있습니다.

4. 구조 (Architecture)

개요

Flutter는 앞서 설명했듯이 많은 Widget, Tools, 그리고 Framework를 제공하는 포괄적인 SDK로 Dart언어를 사용하여 Cross-platform application을 빌드하는데, Architecture를 이해하는것은 상당히 중요합니다.

Flutter의 Architecture는 다른 Framework과 달리 Layer 구조를 통해 개발자들에게 Application의 동작과 외관을 갖춘 Control들을 제공합니다.

Layers

  • Dart Framework Layer: Widget, Material Design, Animation 및 앱의 사용자 인터페이스를 구축하는 데 중요한 다양한 UI 구성 요소가 포함됩니다.
  • Engine Layer:  C/C++ 코드로 구성되어 Rendering, Guesture 및 Interfac 를 관리하여 다양한 Platform에서 고성능 Application을 개발할 수 있게합니다..
  • Embedder Layer: Flutter와 특정 Platform 코드간의 차이를 연결해주며, Native 기능(SDK)과의 연동 및 통신을 이용할 수 있게해 줍니다.

Widgets

Widget들은 flutter에서의 기본적인 bulding block으로 Element들, Layout 등과 같이 Application에서 보이는 모든 것을 포함합니다.

5. FAQ

Q1: Flutter는 대부분의 앱에 적합한가?

Flutter는 대부분의 앱 타입에 적합합니다. 그러나 특히 UI가 중요한 경우, flutter는 높은 성능과 화면 표현력을 제공하여 이점을 가집니다.

Q2: Flutter의 주요 장점은 무엇인가?

Flutter의 주요 장점으로는 크로스 플랫폼 개발, 빠른 개발 속도, 높은 성능, 화면 표현력 등이 있습니다.

Q3: Flutter를 사용하면 단점은 무엇인가?

Flutter는 아직 성장 단계에 있어 새로운 기능의 안정성과 특정 라이브러리 부재로 인해 일부 제한이 있을 수 있습니다.

Q4: Flutter 처음 배우는 개발자가 배우기 쉬운가?

Flutter는 간단하고 직관적인 구조를 가지고 있어 초보자들에게도 학습이 비교적 쉽습니다.

6. 참조링크

Leave a Comment