모바일 및 웹에서도 실행되는 고품질 Windows 앱 빌드
Flutter를 출시한 이후로, 저희는 기계어로 컴파일되고 기기의 기본 그래픽 하드웨어를 최대한 활용하는 아름다운 맞춤형 앱을 위한 교차 플랫폼 솔루션을 제공하는 데 집중해왔습니다. 2월 4일, 앱 대상으로서 Windows용 지원의 최초 프로덕션 릴리스를 통해 교차 플랫폼 솔루션의 비전을 확장하였으며, 이를 계기로 Windows 개발자 또한 모바일 개발자가 누려온 것과 같은 생산성과 성능의 이점을 누릴 수 있게 되었습니다.
Flutter의 목표는 운영체제와 관계없이 훌륭한 사용 환경을 구축하는 데 필요한 도구를 제공하는 것입니다. 따라서 모든 그래픽 작업에 있어 동일한 핵심 프레임워크와 도구를 제공하고자 합니다. Flutter를 통해 브랜드와 디자인이 중심이 되는 아름다운 사용 환경을 제작할 수 있습니다. Flutter는 기계어로 컴파일되기 때문에 빠릅니다. 스테이트풀 핫 리로드를 지원하므로, 앱이 실행되는 동안 변경 작업을 수행하고 그 결과를 즉시 확인할 수 있는 대화형 환경의 생산성이 확보됩니다. Flutter는 오픈 소스이므로, 수천 명의 참여자가 핵심 프레임워크에 기여하고 다양한 관련 패키지를 사용해 프레임워크를 확장할 수 있습니다.
거의 50만 개의 앱이 Flutter를 사용합니다…
지금까지 Betterment, BMW, ByteDance와 같은 회사의 대규모 앱과 Google 소속 30개 팀의 앱을 비롯해 현재 Flutter를 사용하는 앱이 거의 50만 개 출시되었으며, 예상을 뛰어넘는 성장세를 확인했습니다. Statista와 SlashData 등의 분석에 따르면, Flutter는 2021년에 가장 인기 있는 교차 플랫폼 UI 툴킷이 되었다고 합니다.
저희 자체 데이터 역시 이러한 분석과 일관됩니다., 2021년에 진행한 네 차례의 분기별 설문조사에서는 Flutter 개발자의 92%가 우리가 제공하는 도구에 대해 긍정적인 만족도를 나타냈습니다. (나머지 8%의 의견도 귀담아듣고 있으며 이들 역시 만족하기를 원합니다!)
자주 제기되는 요청 사항은 Windows 지원이었습니다.
2월 4일, 안정적인 Flutter 버전의 Windows 완전 지원을 이뤄냈습니다..
Windows와 Flutter
2년 전, 저희는 Flutter를 iOS와 Android 기반의 모바일 앱에서 웹과 데스크톱을 포함한 다른 플랫폼으로 확장한다는 야심 찬 비전을 제시했습니다.
Flutter의 핵심은 휴대용 하드웨어 가속 Skia 그래픽 엔진에서 Flutter 렌더링 시스템, 핵심 기본 요소(예: 애니메이션, 테마, 텍스트 입력, 국제화), Flutter가 제공하는 수백 종의 위젯을 포함한 플랫폼 전반에 이릅니다.
하지만 모바일 앱이 더 큰 화면에서 실행된다고 데스크톱 앱이 되는 것은 아닙니다. 데스크톱 앱은 키보드 및 마우스와 같은 입력 기기에 적합하게 설계된 앱입니다. 이런 앱에는 와이드스크린 모니터에서 자주 실행되는 크기 조절 가능 창이 있습니다. 접근성, 입력 방법 편집기, 시각적 스타일 지정과 같은 중요한 사항에 있어 모바일 앱과는 다른 규칙이 있습니다. 데스크톱 앱은 기본 운영체제의 다양한 API와 통합되어 파일 시스템 선택기부터 기기 하드웨어와 데이터 저장소(예: Windows 레지스트리)까지 모든 것과 함께 작동합니다.
저희는 Flutter를 Windows에 도입하면서 Windows에 적합한 맞춤 구성 또한 진행했습니다.
Android와 iOS에 대한 지원과 마찬가지로, Flutter의 Windows 구현에서는 Dart 프레임워크와 C++ 엔진을 결합합니다. Windows와 Flutter는 Flutter 엔진을 호스팅하고 Windows 메시지 변환과 발송을 담당하는 삽입 계층을 통해 연결됩니다. Flutter는 Windows와 함께 UI를 화면에 그리고, 창 크기 조정 및 DPI 변경과 같은 이벤트를 처리하고, 입력 방법 편집기와 같은 국제화를 위한 기존 Windows 형식을 사용해 작동합니다.
Windows상의 Flutter는 정확히 똑같은 Dart 코드를 사용하면서 네이티브 Windows API를 활용합니다.
Flutter 프레임워크의 모든 요소를 앱이 사용할 수 있습니다. Windows에서는 Dart의 C interop 계층을 통해 직접, 또는 C++로 작성된 플랫폼 플러그인을 사용하여 Win32, COM 및 Windows 런타임 API와 통신할 수도 있습니다. Windows 지원을 포함하도록 camera, file_picker, shared_preferences를 비롯한 여러 가지 공통 플러그인도 조정했습니다. 커뮤니티 차원에서 이미 Windows 작업 표시줄 통합부터 직렬 포트 액세스까지 모든 것을 포괄하는 폭넓고 다양한 기타 패키지에 대한 Windows 지원을 추가하기도 했습니다.
Windows용으로 빌드된 Flutter 앱을 지원하도록 조정된 패키지가 이미 수백 개 있습니다.
완전 맞춤형 Windows UI의 경우 fluent_ui 및 flutter_acrylic과 같은 패키지를 사용하여 Microsoft Fluent의 디자인 시스템을 아름답게 표현하는 앱을 만들 수도 있습니다. msix 도구를 사용하면 Windows의 Microsoft Store에 업로드할 수 있는 설치 프로그램에 앱을 래핑할 수 있습니다.
이런 모든 기능들을 통해 Windows에서 훌륭한 외관을 자랑하고 빠르게 실행되면서도 웹뿐 아니라 다른 데스크톱이나 모바일 기기에서도 사용할 수 있는 앱을 만들 수 있습니다. 다음은 지금까지 목격한 몇몇 초기의 사례입니다.
Harmonoid와 Rows 등, Flutter로 빌드한 일부 초기 커뮤니티 Windows 앱의 예.
Microsoft와 Flutter
저희는 Windows 팀에 Flutter의 지원에 관한 의견을 들려줄 의향이 있는지 물었습니다. 아래는 Microsoft의 Windows 개발자 플랫폼 담당 부사장 Kevin Gallo의 말입니다.
“Flutter가 Windows 앱 제작을 위한 지원을 추가하는 걸 보니 기쁘군요. Windows는 개방형 플랫폼이므로 모든 개발자를 환영합니다. Flutter 개발자가 자신의 경험을 Windows 개발 환경에서 잘 살려 Microsoft Store에도 앱을 게시하는 모습이 기대됩니다. Flutter의 Windows 지원은 커뮤니티를 위해 큰 발걸음을 내디딘 것이며, Windows에 어떤 변화를 일으킬지 어서 보고 싶습니다!”
이번 업적을 이루기 위해 Microsoft사의 여러 팀이 공헌했습니다. 특히, Windows에서 Flutter 앱의 아이콘 체계 마련에 이바지한 Fluent 디자인 팀에 감사를 표하고 싶습니다. Fluent 디자인 팀에서 선보인 fluentui_system_icons 패키지의 우수한 품질을 인정하기 위해 Flutter Favorite 자격을 시상했습니다.
Microsoft가 Windows를 위한 접근성과 관련해 단행한 투자에도 깊은 인상을 받았으며, Flutter가 첫날부터 화면 읽기를 지원하도록 노력해 주신 Microsoft 팀에 감사드립니다. 접근성을 일부 소비자만의 요구 사항으로 취급해서는 안 됩니다. Microsoft 인클루시브 디자인 툴킷의 다이어그램이 잘 보여주듯이, 저희는 모두 다양한 영구적, 일시적 또는 상황적 요구에 맞춰 적응하는 사용 환경을 제공하는 데 관심을 기울여야 합니다.
아래 영상은 Flutter와 Windows Narrator의 통합 시연입니다. 이 영상의 목적상, 이 기능이 얼마나 가치가 있는지 확실히 느낄 수 있도록 화면을 의도적으로 흐릿하게 처리했습니다.
Windows의 자체 화면 읽기 앱인 Narrator는 Flutter 앱과도 훌륭하게 작동합니다.
Windows 개발을 위한 도구 생태계
저희 팀의 도구 제작 파트너들도 Windows를 위한 지원을 추가하고 있습니다. 몇 가지 주요 사항은 아래와 같습니다.
로우코드 Flutter 앱 디자인 도구인 FlutterFlow는 Flutter 개발자가 데스크톱에서 사용하기 편리하도록 맞춤화된 앱을 빌드하는 데 도움이 되는 기능과 함께, Windows를 위한 지원을 제공한다고 발표했습니다.
Realm은 초고속 로컬 데이터 저장소입니다. 2월 4일 출시된 버전에서는 iOS 및 Android와 같은 모바일 플랫폼을 위한 기존 지원에 더해, Dart FFI를 사용하여 기본 데이터베이스에 대한 빠른 액세스와 함께 Flutter를 사용한 Windows 앱 빌드를 지원합니다.
Nevercode는 Windows를 지원하도록 Codemagic CI/CD 도구를 업데이트하여 클라우드에서 Windows 앱을 테스트 및 빌드하고 Microsoft Store를 통한 앱 배포를 자동화할 수 있도록 했습니다.
Syncfusion은 Windows를 최대한 활용할 수 있도록 위젯 묶음을 업데이트했습니다. 툴키트를 구독하면 트리맵과 차트 작성 같은 데이터 시각화 구성 요소, 풍부한 데이터 그리드 위젯, 캘린더, 그리고 PDF 생성과 Excel 스프레드시트 지원까지 이용할 수 있습니다.
마지막으로, Rive는 인기 그래픽 도구 묶음의 Windows 버전 출시를 발표했습니다. 이를 통해 디자이너와 개발자는 상태 머신을 사용하여 실시간으로 코드에 응답하는 대화형 벡터 애니메이션을 만들 수 있습니다. Windows 버전의 Rive는 놀랍도록 강력한 성능과 낮은 메모리 점유율이 장점으로, Microsoft Store에서 다운로드할 수 있습니다.
Windows 기반의 Microsoft Store에 곧 선보일 Rive
Flutter를 기반으로 형성된 생태계가 성숙해진 모습을 보니 정말 기쁩니다. Flutter를 사용해 Windows 앱을 빌드하는 것과 동시에 이들 파트너를 각각 확인해 보시기 바랍니다.
Flutter 2.10부터 Windows 지원 제공
Windows 앱 빌드를 위한 안정적인 프로덕션급 지원은 2월 4일 출시된 Flutter 2.10에 포함되어 제공됩니다. Flutter 2.10에는 다른 많은 기능과 성능 개선 사항, 버그 수정도 포함되며, 이는 별도의 블로그 게시물에서 자세한 설명을 확인하실 수 있습니다.
앞으로 몇 달 후에는 macOS와 Linux를 위한 안정적인 지원 기능의 완성으로 프로덕션 Flutter 앱에 운영체제에 구애받지 않는 완전한 데스크톱, 웹, 모바일 플랫폼을 이용할 수 있게 될 것입니다.
그동안 Flutter를 성원해 주셔서 감사합니다. 여러분이 Windows용으로 무엇을 빌드할지 기대됩니다!