본문 바로가기

소프트웨어개발/플러터 개발 (Flutter)

플러터(Flutter)로 앱 개발 시작

지난 한달간 구글의 플러터 (Flutter)를 이용하여 앱을 제작하고 있습니다. 그동안 앱 개발에 관심이 상당히 많이 있었는데, 안드로이드와 iOS를 따로 익혀야 하는것에 부담감을 느껴서 피일 차일 미루고 있었지요. 사실 뭐 특별한 아이디어가 있었던 것도 아니구요. 그러다보니 단순한 웹앱이나 프로그레시브 웹앱 (PWA, Progressive Web Application)을 만들어보기는 했습니다만 모바일 앱 제작은 전혀 시도해본 적이 없었습니다.

지난 1년은 회사에서 React Native를 아주 깊이 있게 사용하면서 개인 프로젝트로 모바일 앱 개발을 하나 해볼까 생각해 보기도 했는데 아무래도 회사에서 하루종일 리액트와 타입스크립트로 씨름하다가 집에 와서까지 똑같은걸 하고 있으려니 내키지가 않더라구요. 그래서 그렇게 자신 있는 리액트 네이티브를 놔두고 플러터에 관심을 갖게 되었습니다.

플러터는 구글에서 만든 크로스 플랫폼 모바일 앱 개발 프레임워크입니다. 역시 구글이 개발한 Dart라는 언어 위에서 돌아가고, Android와 iOS의 네이티브 레이어와 channel 이라는 인터페이스를 통해서 구동되는 구조이지요. 리액트 네이티브가 자바스크립트 엔진과 자바스크립트 브릿지를 통해 네이티브를 구동하는것과 비슷하면서도, 플러터는 자바스크립트 엔진이 없고 Dart 구현부가 네이티브로 컴파일된다는 차이점이 있습니다. 네이티브로 컴파일 되기 때문에 속도면에서 유리하고, 리액트 네이티브의 사소하지만 무시할수 없는 단점 중 하나인 자바스크립트 엔진이 차지하는 메모리나 앱 용량등의 문제가 플러터에는 없습니다.

플러터를 한달정도 사용해서 앱을 개발해 본 결과, 장점과 단점이 슬슬 구분되기 시작합니다. 그 단점이 너무 커서 몇번씩이나 리액트 네이티브로 다시 만들까 하는 생각을 하기도 했구요. 하지만 장점들 또한 포기할 수 없는 것들이라 계속 플러터로 앱을 개발해 나가고 있습니다.

플러터의 가장 큰 단점은 커뮤니티가 너무 작다는 것인데, 개발이 진행 되면 될 수록 이부분이 상당히 뼈아픕니다. 심지어 구글 엔지니어들이 개발하는 코어 패키지들 조차도 답답하다고 느껴질 만큼 사용자 피드백에 대한 대응이 약하고 느립니다. 

그리고 의외로, 새로운 언어인 Dart를 익히는것은 전혀 문제가 되지 않더군요. Javascript(ES6) 에 어느정도 익숙한 분들이면 문제없이 습득 하실 수 있을거라고 생각합니다. Dart는 사용하면 할수록 상당히 좋은 언어라는 생각이 듭니다.

앞으로 플러터로 계속 개발하면서 이런저런 것들을 정리해드리도록 하겠습니다. ^^

 

재미있게 읽으셨다면 "공감" 버튼과 댓글로 응원해주세요. 로그인 없이도 됩니다. 😀