안녕하세요. 휴먼스케이프에서 개발자로 일하고 있는 Hugh 입니다.
현재 휴먼스케이프에서는 React-native라는 모바일 앱을 위한 크로스 플랫폼 UI 라이브러리를 사용하여 서비스를 개발하고 있습니다. 따라서 비교대상이 될 수 있는 플러터(Flutter)에 대해서 살펴보려고 합니다.
플러터(Flutter)란?
플러터(Flutter)는 구글이 만든 모바일 앱 크로스 플랫폼 UI 프레임워크로 다트(Dart)라는 언어를 사용해 개발을 합니다. 2019년 9월 기준 플러터의 버전은 1.9 까지 개발이 되었고, Github 스타 수가 약 75,000으로 React-native와 5천정도 밖에 차이가 나지 않습니다.
이와 같이 플러터 또한 핫 한 모바일 앱 크로스 플랫폼 UI 프레임워크인데요.
플러터 공식 홈페이지에서 어필하는 다음과 같은 세가지의 키워드가 있습니다.
첫 째는 Fast development 입니다. hot reload를 통한 생산성 향상을 강조합니다. hot reload 는 React-native에서도 제공하나 잘 동작하지 않아 이번 0.60 대 버전에서 패치를 한 바 있습니다.
둘 째는 Expressive, beautiful UIs 입니다. 구글에서 만든 만큼 Material과 Cupertino design을 기본적으로 지원합니다. React-native를 사용하는 입장에서 이 부분은 꽤 매력적으로 느껴집니다.
셋 째는 Native Performance입니다. 양 플랫폼의 차이점을 통합하여 모든 기능에서 네이티브 성능을 제공한다고 합니다.
위 세 가지 키워드를 제시하는데 아직 매력적인지는 잘 모르겠습니다.
또 플러터의 공식 홈페이지의 쇼케이스나 이 사이트를 보면 플러터를 이용해 만든 앱 목록을 확인할 수 있습니다. 하지만 쇼케이스를 보면 알 수 있듯이 아직 이름만 대면 알 수 있는 앱은 알리바바, Google Ads 정도 밖에 없는 것 같습니다.
아직 React-native만큼 유명한 레퍼런스 앱들의 수는 좀 부족하지만, 공식홈페이지의 문서도 잘 정리되어 있고, 유튜브에 동영상 강의 채널도 관리가 잘 되고 있는 만큼 빠르게 발전하고 있는 것 같습니다. IDE 는 Android Studio나 vs code 중 편한 것을 사용하면 되는데 전자를 더 권장하고 많이 사용하는 것 같습니다.
다트(Dart)란?
다트라는 언어가 생소할 것 같은데요. 다트 또한 구글이 개발한 언어이고 겉모양은 java와 많이 비슷하게 보입니다. 객체지향언어 경험이 있다면 어렵지 않게 적응할 수 있다고 합니다. 플러터에 대한 여러 글을 읽은 결과, React-native보다 진입장벽이 낮다는 의견들을 볼 수 있었습니다.
그리고 다트와 관련된 재미있는 정보를 찾았는데요. codementor.io라는 개발 커뮤니티에서 발표한 ‘2018년 배우지 말아야 할 프로그래밍 언어' 순위에서 1위를 차지한 이력도 있네요. 물론 그 이후로는 플러터의 힘으로 주목을 받고 있고 2019년 9월 기준 2.5.0 까지 개발이 되었습니다.(순위에 큰 의미를 둘 필요는 없다고 생각합니다.)
React-native 와 플러터
플러터는 그 안에서 모든 걸 제공하려고 합니다. 이미 개발되어 있는 많은 종류의 위젯이 있습니다.(React-native는 있는 것 마저도 외부 레포지토리로 추출하는 추세입니다.)
컴포넌트가 아닌 위젯 기반 입니다.
네이티브 위젯이 아니라 최대한 비슷하게 그려낸 것 입니다.
javascript라는 익숙한 언어가 아닌, Dart라는 언어를 사용해야 합니다.
애니메이션 구현이 상대적으로 쉽다고 합니다.
플러터로 만들면 누가 봐도 구글 앱이라는 느낌이 듭니다.
여러 글들을 읽고 샘플 코드를 보며 기억나는 차이점은 이정도 인 것 같습니다. 뭐가 좋다 나쁘다 할 수 없을 정도로 장단점이 명확한 것 같습니다.
이상으로 플러터에 대해서 간단하게 알아보았습니다.
감사합니다.
Get to know us better! Join our official channels below.
Telegram(EN) : t.me/Humanscape KakaoTalk(KR) : open.kakao.com/o/gqbUQEM Website : humanscape.io Medium : medium.com/humanscape-ico Facebook : www.facebook.com/humanscape Twitter : twitter.com/Humanscape_io Reddit : https://www.reddit.com/r/Humanscape_official Bitcointalk announcement : https://bit.ly/2rVsP4T Email : support@humanscape.io