Sua Blog
Dart, Flutter
no date — flutter

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에-대해-알아보자