요즘에 아주 아주 핫한 모바일 애플리케이션 개발 프레임워크인 Flutter(플러터)에 대해서 한번 다루어 볼까 한다.
1. Flutter 가 뭐죠?
- 하나의 코드베이스로 모바일, 웹, 데스크톱에서 네이티브로 컴파일 되는 구글의 UI 툴킷-
- 갓 구글님들이 개발하고 있는 오픈 소스 모바일 애플리케이션 프레임워크
- iOS 와 Android 두개 모두 개발이 가능한 크로스 플랫폼 지원
- 수명이 짧은 객체를 가지는 Dart 언어 ( GC가 효율적으로 일하기 쉽다)
- 핫 리로드!!! -> 수정한 것을 바로바로 확인 가능
- 호환성 굳.
2. Flutter가 왜 Hot 한가?
플러터가 왜 요즘 이슈가 되고 있는지에 대해 설명하기 전에 크로스 플랫폼 앱(Cross-platform App)에 대해서 짚고 가겠다.
크로스 플랫폼 앱(Cross-platform App)이란 단순히 말해 한 가지의 개발 언어, 프레임워크를 사용하여 iOS, Android 양쪽에 출시 할 수 있는 개발 방식이다. 하나의 코드로 2개의 플랫폼에서 사용하기 때문에 시간 단축에 용이하며, 유지보수가 용이하다는 장점이 있다. 대표적으로 Flutter 와 React Native가 있다.
이미 있는 React Native를 쓰면 되지, 왜 Flutter라는 새로운 언어를 써야 하는지 궁금한 사람도 있을 것이다.
검색을 해보니 여기에는 복잡 미묘한 사연들이 있는데, 개인적인 생각으로는
React Native의 외부 모듈(플러터의 플러그인)와 네비게이션의 불편함이 한몫을 하지 않았나 예상이 된다.
사실 기능을 구현하기 위해서 내부에 존재하는 빌트인 기능으로는 어플리케이션을 구현하기가 힘들다.(사실상 불가능에 가까움)
그렇기에 외부 모듈이 거의 필수적인데, 이에 따라 모듈의 의존성이 높아지며 만약 해당 모듈이 이슈(대부분은 버전에 대한 것)가 있을 경우에는 구현에 큰 문제가 생길 수 있다.
하지만, 플러터의 경우 현재까지는 큰 이슈는 없기 때문에 이와 같은 것이 큰 장점으로 작용하고 있다.
3. 결론
현재는 단순하게 플러터라는 것에 대해 구글이 만들고 사용하기 용이하다는 이유로 많은 사람들이 이슈화 하고 있다고 생각한다.
실제 대규모 프로젝트에 적용을 하고 나서는 어떤 문제가 생길지는 아직까진 모르겠지만, 대부분의 프로그램이 이야기 하듯 아무도 몰랐던 문제들이 발생할 것으로 예상한다.
그래서 필자는, 어플리케이션을 가볍게 개발해보고 싶은 예비 개발자 또는 다른 분야에서 일을 하는 개발자들 한테는 추천 할거 같지만 모바일 개발을 업으로 하는 사람들에게는 개인적으로는 추천하기가 아직은 어려울거 같다고 생각한다.
만약, 자신이 모바일 개발자가 되고 싶다면 해당 모바일의 네이티브를 공부하는것을 추천한다.