Flutter 란?
Flutter란?
Flutter는 2017년 Google이 발표한 오픈 소스 멀티 플랫폼 개발 프레임워크 입니다. Flutter는 멀티 플랫폼이므로 Android/iOS/Web/Windows/macOS/Linux의 6개 앱을 정확히 동일한 소스 코드로 개발할 수 있습니다.
Flutter1에서는, 모바일(Android와 iOS)만이 대상이었습니다만, 2021년의 Flutter2로 웹 앱, 2022년의 Flutter3로 Windows/macOS/Linux의 데스크탑 앱에 정식 대응해, 모바일 이외의 플랫폼의 앱 도 같은 소스 코드로 개발할 수 있게 되었습니다.
등장 당초부터 Flutter의 인기는 굉장히, 현재도 전세계에서 이용되고 있습니다. 2023년 3월 현재 GitHub의 스타 수는 150k 이상으로, 이것은 GitHub 리포지토리의 스타 수 랭킹에서 상위 20위에 들어갈 정도로 인기입니다.
2021년에는 모바일 앱의 멀티플랫폼에서 React Native의 점유율을 역전해 Flutter가 42%로 선두에 올랐다는 조사 정보도 있습니다. 참고: statista의 통계 보고서 “Cross-platform mobile frameworks used by software developers worldwide from 2019 to 2021”
공식 문서도 윤택하게 준비되어 있어 필요한 정보가 곧바로 모이기 때문에, 처음으로 모바일 앱을 개발하는 분이라도, 간단하게 Flutter를 시작할 수 있습니다. 또, Flutter는 이용자가 많기 때문에, 공식 이외의 노하우도 인터넷상에 대량으로 존재합니다.
Flutter의 프로그래밍 언어에는 Dart라는 컴파일형 언어가 채용되고 있습니다. Dart는 현대적인 프로그래밍 언어의 성질을 갖추고 있으며 (멀티 패러다임 언어) 매우 다루기 쉬운 언어입니다.
왜 Flutter가 주목받고 있는가
Flutter는 왜 이렇게 전세계에서 주목받고 사용되고 있는가? Flutter에는 다양한 우위성과 편리한 점이 있습니다만, 여기에서는 크게 5점에 주목해 소개합니다.
포인트 1. 자유롭고 개방적인 프레임워크
Flutter는 완전히 자유롭고 개방적인 프레임 워크입니다. 소스 코드는 모두 GitHub에서 공개됩니다.
자유롭고 오픈 소스라는 것은 기술적으로 열려 있으며 모든 엔지니어가 내용을보고, 나름대로 커스터마이징하거나, 개선 요청을 보낼 수 있다는 것입니다.
이에 따라 Flutter는 특정 국가나 기업에 의존하지 않고, 정치나 이익 등의 엇갈림에 묶이지 않고, 엔지니어끼리의 자유로운 커뮤니케이션에 의해, Flutter 전체의 발전이나 노하우 공유가 가속해, 전세계에 널리 퍼져 갑니다.
포인트 2. 멀티 플랫폼
Flutter는 멀티 플랫폼 개발 프레임워크입니다. 멀티 플랫폼은 Android/iOS/Web/Windows/macOS/Linux의 6개 플랫폼에 한 번에 대응할 수 있다는 의미입니다. Flutter를 사용하면 동일한 소스 코드로 각 플랫폼에 해당하는 앱을 한 번에 만들 수 있습니다.
그렇다면 멀티 플랫폼이라면 무엇이 기뻐합니까? 이는 플랫폼별로 대응하는 기술을 습득하거나 개별적으로 개발을 하지 않아도 된다는 점에 있습니다.
구체적으로 각 플랫폼에서는 다음과 같은 기술을 배워야 합니다.
- Android : Java, Kotlin
- iOS : Objective-C, Swift
- 웹 : HTML, CSS, JavaScript (React, Vue.js 등의 프레임 워크 포함)
- 데스크톱 앱 : Electron
Flutter의 멀티 플랫폼은 이러한 차이를 흡수하고 Flutter만을 습득하면 개별 기술의 습득을 하지 않아도 되므로 학습 비용이 작아지고, 또한 여러 플랫폼의 개발을 한꺼번에 관리할 수 있습니다. .
포인트 3. Google의 개발
Flutter는 Google이 개발하고 있습니다. 따라서 개발 커뮤니티의 모체는 매우 높은 기술과 안정적인 운영을하고 있습니다. 커뮤니티 자체도 매우 활발하며 일상적인 업데이트와 정보 발신은 물론, 년에 몇 번의 세계 수준의 컨퍼런스도 열리고 있습니다.
공식 사이트나 문서뿐만 아니라 YouTube나 Twitter에서도 매일 정보가 발신되고 있습니다.
이러한 이유로 Flutter 자체의 기초가 확고하고 안심하고 이용할 수 있습니다. 따라서 수많은 앱이 Flutter로 개발되어 기업에서도 상용 앱 개발에 Flutter를 채용하는 사례도 많습니다. 노하우의 공유도 활발하고, 수많은 서적이나 인터넷 기사가 집필되거나, 유저 커뮤니티에 의한 연구회 등이 정기적으로 개최되고 있습니다.
포인트 4. 개발 환경이 정비되어 있다
Flutter는 전세계의 툴과 서비스와 연계할 수 있어 개발 환경도 정비되어 있기 때문에 고품질의 앱을 단기간에 개발할 수 있습니다. Flutter는 VSCode를 시작해 다양한 IDE(통합 개발 환경)로 플러그인이 준비되어 있어 개발이나 테스트를 간단하게 실시할 수 있습니다. 또한 Firebase 및 Codemagic과 같은 우수한 클라우드 서비스와의 연계도 쉽고 개발 효율성을 더욱 향상시킬 수 있습니다. 또한 IDE와 에뮬레이터를 연계시키는 것만으로 실제기를 사용하지 않고 테스트를 할 수 있습니다. 그 때는 프로그램의 수정을 즉시 반영(핫 리로드)시켜 동작을 확인할 수도 있습니다. 물론 앱 빌드, 외부 패키지 가져오기, 데스크톱 앱 실행 파일 만들기 등도 쉽게 할 수 있습니다.
포인트 5. Google 제품과 궁합
Flutter는 Google이 개발하고 있기 때문에 다른 Google 제품과 매우 호환됩니다. 따라서 Google 제품과 매우 궁합이 좋습니다.
구체적으로는 머티리얼 디자인이나 Firebase를 표준 탑재 혹은 플러그인 제휴로 간단하게 이용할 수 있습니다. 따라서 우수한 디자인과 클라우드 서비스의 기능을 즉시 사용할 수 있어 설계성과 기능성을 쉽게 향상시킬 수 있습니다.