Sua Blog

Dart, Flutter

17-1

Flutter

  • Google에서 개발하고 2018년 최초 베타 릴리스를 발표하며 소개된 크로스 플랫폼 모바일 앱 개발 프레임워크
  • IOS, Android 두 OS에 대해 고품질 인터페이스를 제작할 수 있도록 도움을 주는 크로스 플랫폼 프레임 워크
  • 자체적으로 UI 렌더링. Flutter 엔진이 Skia기반으로 렌더링 (웹 개발에서 HTML무시하고 flash나 canvas로 만드는 것과 같음)

CrossPlatform

  • 기존 모바일 개발 : IOS와 Android 개발자가 각각 다른 언어로 개발 (IOS: swift, Android: kotlin, java)
  • 각 OS별로 유저들에게 동일한 UI,UX제공하면서 개발하기 어려움 + 개발 자원 2배 이상 필요
  • 개발 후에도 IOS, Android 따로 유지보수 필요
  • Flutter는 하나의 프레임 워크로 IOS, Android 동시 개발 가능
  • Facebook에서 개발을 주도하는 React-Native와 비교됨

Dart

  • 2018년 프로그래밍 언어에서 배우면 안되는 언어 1위 (Flutter 나오기 이전)
  • Flutter를 배울때 가장 큰 진입 장벽......
  • Flutter도 OS별 Native코드를 사용 (IOS: Swift ,Android: kotlin)
  • 현재는 10위 내외 사용률

Flutter 장단점

장점

  • 다양한 Editor로 빌드 가능(Android Studio, VS Code)
  • 성능 문제 해결: 기존 RN 혹은 Hybrid App 의 경우 네이티브 브릿지를 통한 통신이 불가피 했지만 Flutter는 직접 컴파일 되서 렌더링 하기 때문에 성능이 빠름 (애니메이션 속도 60프레임 이상)
  • Material design (대표 디자인 가이드 기본제공)
  • Native 코드도 같이 사용하여 OS에 최적화된 앱을 만들 수 있음 (장점이자 단점)

단점

  • Code Pushing : 코드를 고치려면 새 버전을 배포해야함 (RN이나 Ionic에서는 지원중)
  • 지원되는 플러그인 부족. 아직 플러그인이 부족한 편이고 지속적으로 업데이트 되고 있음.
  • 개발관련 자료 많이 없음. 이슈 상황 발생시 자료 찾기 어려움. Flutter 개발자도 적은편.

Flutter Widget

  • Flutter는 위젯으로 시작해서 위젯으로 끝난다.
  • Flutter에서 화면에 표시된 모든 요소가 위젯, 눈에 보이지 않지만 화면을 구성하는 레이아웃도 위젯

StatefulWidget vs StatelessWidget

Stateful Widget : 어떤 상태값을 가지고 있으며, 해당 상태값에 의해 화면에 움직임이나 변화를 표현할 때 사용

Stateless Widget : Stateful Widget과는 반대로, 어떠한 상태도 가지고 있지 않은 정적인 위젯.

어떠한 상태값도 가지고 있지 않기 때문에 Stateless Widget은 화면에서 어떠한 움직임이나 변화가 없음.

Material App

  • Flutter 는 Material Design을 바탕으로 위젯을 만듦
  • MaterialApp은 Material Design을 사용할 수 있게 해주는 class
  • Flutter에 미리 정의되어 있어 별도의 개발 필요없음
📔 참고

https://velog.io/@jojo_devstory/Flutter란-Flutter에-대해-알아보자

https://dev-yakuza.posstree.com/ko/flutter/widget/

apk build

extension