결과물
순서대로 Android App, Linux App, Web App 이다. 코드 베이스 하나로 3군데서 동작하는 앱을 빌드했다.
들어가며
Flutter의 명성은 여러차례 들어왔으나 딱히 써볼만한 이유를 찾진 못하고 있었다. 하지만 최근이 Flutter 2.0 소식을 들었고 Web의 정식 지원되며 Linux Desktop앱을 만들 수 있다는 소리에 Tutorial을 해보게 되었다.
Tutorial 과정은 굉장히 만족스러웠다. Tutorial은 Codelab 형태로 지원되며 1, 2가 있다. 천천히 따라해봐도 대략적인 구조를 알 수 있게 만들어뒀고 최근 업데이트 날짜가 2021-March라서 Flutter 2.0을 제대로 지원하고 있었다. 이러한 이유들로 굉장히 즐겁게? Tutorial을 따라해볼 수 있었고 위 동영상 같은 결과를 빠르게 얻을 수 있었다.
Flutter를 배워야하는 3가지 이유
1. Intellij에서 지원이 굉장히 잘됨.
Intellij 많이 쓸텐데 은근히 지원이 잘 되지 않는 유명한 Framework들도 꽤 있다. 하지만 Flutter는 매우 잘 지원되고 Dart plugin 만 설치하면 바로 Flutter 개발을 시작할 수 있다. 물론 그전에 Flutter 개발환경 세팅은 해둬야한다.
2. Dart라는 언어를 처음 써봤지만 Javascript, Kotlin, Java를 적절히 섞어놓은 듯한 느낌으로 문법이 편함
Dart 라는 언어를 처음 써봤는데, 요새 많은 언어들이 사용하는 Modern 스타일을 많이 채용하고 있었다. Arrow Lambda는 javascript에서, 객체 생성은 Kotlin에서, 상수 선언과 Class 선언은 Java에서 가져온 것 같은, 적당히 맛있게 버무려진 비빔밥 같은 느낌이다. 문법이 너무 익숙해서 낯설지 않았다.
3. Flutter는 React와 흡사한 구조 (Component, State)를 갖고 있어 러닝 커브가 낮았음
React를 많이 써본 분들이 Flutter의 구조가 굉장히 익숙할 건데, Tutorial을 따라하다보면 “Inspired by react” 라는 내용이 몇번 눈에 띈다. 아무튼 Component 처럼 Widget 을 만들고 State를 관리하면서 앱의 상태를 변화 시키는게 React의 컨셉과 굉장히 비슷했다.
추가적으로 또 좋았던거
pub.dev - Dart package manager
그리고 Dart package manager 가 잘 되어있었다. npm 만큼은 아니지만 패키지들을 쉽게 찾고 관리 할 수 있었다.
마무리
오랜만에 잘 만들어진 종합 Framework 가 잘 만들어졌다는 생각이 들었고 웹과 Desktop App을 만들고 싶을때가 있었는데, 그때 잘 사용할 수 있을것 같아서 기대가 많아졌다. 앞으로 종종 사용해보고 싶은 프레임워크다. 이 글을 우연히 읽어본다면 한번 해보면 좋을것 같다. 추천한다.