Mobile/Flutter

[Flutter] Flutter 장점 단점

SambaLim 2019. 1. 17. 11:46
Flutter 장점 단점_2

Futter?

Dart 언어를 사용하는 구글에서 개발한 크로스 플랫폼 앱 개발 프레임워크입니다.

모바일 앱 SDK를 빠르고, 아름답게 만들 수 있는 새로운 도구로 기존의 웹뷰를 사용하던 방식이나, CSS의 복잡한 레이아웃으로부터 탈출할 수 있게 도와준 프레임워크입니다.

TMI

Fluuter의 초기 버전은 Sky로 불렸으며, 2018.12.04 Google Developer Days in Shanghai에서 1.0 버전을 출시하였다.

구글 번역기에 Flutter라고 치면 설레다로 번역되며 흔히 "펄-럭 이다."라는 동사로 사용된다.

 

장점

머티리얼 디자인과 쿠퍼티노

Flutter는 Androd, iOS의 대표 디자인 시스템을 기본적으로 제공합니다.

구글의 머티리얼 디자인(Material Design)의 홈페이지에는 이미 Flutter가 포함되어 있다. 가이드만 제공하는 것 뿐만아니라 Flutter 프로젝트에 바로 추가하여 사용할 수 있는 패키지도 제공합니다.

안드로이드와 iOS에서 같은 머티리얼 디자인을 사용하더라도 플랫폼에 따라 다르게 출력되는 부분을 각각 디자인 가이드에 맞게 화면을 그립니다.

iOS앱을 개발하는 경우 iOS특유의 디자인 시스템인 쿠퍼티노(Cupertino) 위젯을 제공합니다.

 

통합 개발 환경 지원

https://flutter.io/docs/get-started/editor

Flutter는 다양한 Editor(Android Studio, IntelliJ, VS Code)를 사용하여 빌드가 가능합니다.

Android Studio, IntelliJ IDE는 플러터 인스펙터와 플러터 아웃라인이라는 개발도구를 추가적으로 지원해줍니다. IntelliJ는 물론이고 Android에서 사용하던 IntelliJ의 기능을 사용할 수 있다는 장점이 있습니다. VS code 에서는 간단하게 Extension 으로 Flutter를 설치하여 Flutter를 사용할 수 있습니다.

 

성능 문제 해결

기존 React Native 혹은 Hybrid App의 경우 브릿지를 통한 통신이 불가피했습니다. 하지만 Flutter는 직접 컴파일되서 Render를 직접 하기때문에 성능이 빠릅니다. 애니메이션 속도가 60프레임은 가뿐히 넘어서는 것이 기존 크로스 플랫폼시장의 주류였던 React Native와 Flutter를 비교하는 많은 글들에서 Flutter를 내세우는 부분입니다.

 

단점

Dart

개발언어로 구글에서 만든 언어인 Dart를 사용하는 것은 Flutter의 가장 큰 단점입니다.

Java와 C#을 할 수 있다면 쉽게 학습하고 개발하는 것이 가능하다지만 Python이나 Javascript에서 이미 자유로운 자료구조 사용을 했다면 제네릭을 적용해서 개발하는 것이 답답할 수 있습니다.

Guthub에서 사용되는 언어의 통계를 보여주는 GitHut 2.0 에서 2018년 내내 20위 중후반의 등수를 유지할 만큼 많이 사용되지 않는 언어입니다. 또한 Codementor의 Worst Programming Languages to Learn in 2018 Rankings에서 압도적으로(?) 1위를 차지하며 평가가 좋지 않음을 보여줬습니다.

이렇게 Worst Programming Languages to Learn in 2018 Rankings에서 높은 순위를 차지한 것은 Dart를 백엔드에서 사용하고자 했기 때문이라고 생각합니다.

제 사견이지만 구글에서 백엔드언어로는 Go를 프론트엔드 언어로는 Dart를 밀고있다고 생각합니다. Dart로 단순 UI구성을 만드는 것은 쉽습니다.

하지만 코드가 나열됨에따라 가독성이 떨어지는 것은 사실입니다.

 

플러그인

아직 플러그인들은 부족한 편입니다.

어플을 생성할 때, Webview, Map 등 플러그인은 필요합니다. 하지만 Flutter의 이러한 플러그인들은 전부 0.4, 0.3 등등 1.0을 넘는 버전을 보기가 힘듭니다. 따라서 지속적으로 업데이트가 되고있고, 업데이트가 될때마다 다시 붙이고 테스트해보는 것은 어마어마하게 번거로운 일이 될 것입니다.

 

Eco

플러터 레퍼런스가 찾기 정말정말 어렵습니다.

공식문서가 잘도있고 Flutter Codelab등을 지원하여 이를 통해서 학습할 수는 있지만. 어플을 개발해나가면서 원하는 내용을 StackOverflow에서 검색을 해봐도 알맞는 결과를 얻기가 쉽지 않습니다. (특히나 원하는 내용을 한글로된 블로그에서 찾기는 하늘에 별따기입니다.)

'Mobile > Flutter' 카테고리의 다른 글

Flutter 개발환경 설정  (0) 2019.05.10