[go: up one dir, main page]

전 세계 Android 유저들은 다양한 디바이스를 통해 개발자 여러분의 앱을 사용하고 있습니다. 태블릿, 폴더블, Chrome OS 등 Android 대화면 기기 수는 2억 5천만 개가 넘으며, 2023년까지 폴더블은 약 3천만 대, Android 태블릿은 약 4억 대 이상 활용될 것으로 예상됩니다. 

이같이 수요가 증가함에 따라 유저들은 소셜 네트워킹 및 게임 플레이에서 멀티 태스킹부터 여러 작업 수행에 이르기까지, 대화면을 그 어느 때보다 다양한 방식으로 사용하고 있습니다. 

Google Play는 유저들이 대화면 기기를 더 편리하고 알차게 활용할 수 있도록, 대화면에 최적화된 게임과 앱을 더 찾기 쉽게 만들고자 Google Play 스토어에 많은 변화를 도입하고 있습니다.

이번 블로그 게시물에서는 여러분의 앱을  대화면에 맞게 최적화할 수 있도록 총 4단계로 최적화 단계를 소개합니다. 대화면 최적화로 유저 경험을 대폭 개선한 개발자들의 성공사례를 살펴보고, 디자인 가이드 및 Android 12L 주요 기능을 통해 앱 화면을 효율적으로 디자인 및 테스트 하는 방법도 확인해보시기 바랍니다. 


STEP 1. 최적화 성공 사례 확인하기 


어떤 유저 경험을 제공해야할 지 고민이시라면, 왓챠 등 다양한 글로벌 파트너사의 최적화 사례를 확인해보세요. 왓챠는 테이블탑 모드드래그 앤 드롭 기능을 적용해 2021년 올해를 빛낸 앱의 ‘베스트 폴더블 앱’을 수상했으며 ‘더 넓어진 화면으로, 더 새롭게’ 라는 주제로 Google Play 스토어 상단에 소개되어 태블릿 및 폴더블 유저들을 위해 새롭게 추가된 기능을 선보였습니다. 


  • 콘텐츠 재생 중에 Flex Mode로 폰을 접으면 상단 영역에 영상이 계속 재생되고, 하단 영역에 콘트롤러 UI들이 내려와 영상을 방해없이 즐길 수 있습니다. 
  • 여러 앱이 떠 있는 상태에서 콘텐츠 등을 롱 프레스 & 드래그 하면 다른 앱에 왓챠의 콘텐츠 정보를 공유할 수 있습니다.

"Android 대화면 기기의 출시와 판매가 점차 늘어나고 있고 폴더블 기기 역시 이제는 유저들에게 플래그십 레벨의 경험과 가치를 주고 있다고 판단했기 때문에, 대화면 최적화를 통해 계속해서 확대되는 유저들을 대상으로 유의미한 경험 개선이 가능할 것이라고 확신했습니다.”

- 송재우, WATCHA INC., 안드로이드 팀장



그 외에도, 전세계 많은 유저들로부터 사랑받는 파트너사들의 대화면 최적화 기능을 간략히 소개해드립니다.


STEP 2. 디자인 가이드라인에 맞춰 대화면 대응하기    

Basic, Better, Best 3단계의 대화면 최적화 단계를 참고하여 앱 품질을 점검하고, 머티리얼 디자인 가이드라인을 통해 다양한 화면 크기에 맞춰 앱 화면을 효율적으로 디자인해보세요. 


STEP 3. Android 12L과 개발자 툴에 대한 이해도 높이기 

대화면에 특화된 Android 12 버전인 Android 12L의 주요 기능을 살펴보고, 다양한 폼팩터 상에서 최적의 사용자 경험을 지원하는 Jetpack WindowManager의 업데이트를 확인해보세요. 


STEP 4. 에뮬레이터로 테스트 진행하기에뮬레이터를 위한 Android 12L 시스템 이미지가 준비되어 있으니, 12L의 새로운 기능 뿐 아니라 다양한 형태의 폼 팩터를 에뮬레이터로 손쉽게 테스트해보세요.  

 이 글의 원문은 여기서 확인하실 수 있습니다. 

데브시스터즈는 세계적인 모바일 게임 개발사이자 퍼블리셔이며, 쿠키런 IP 기반의 캐주얼 게임을 보유하고 있습니다. 대표적인 게임인 Cookie Run: OvenBreak(러닝 아케이드 게임)와 Cookie Run: Kingdom(소셜 RPG)은 한국, 대만, 미국을 중심으로 전세계에서 사랑받고 있습니다. 쿠키런: 오븐브레이크는 캐주얼 게임이지만 5년간 리소스가 축적되면서 CDN 용량이 2.5GB까지 늘어나 CDN 비용이 증가했습니다. 이에 맞춰 데브시스터즈는 대용량 파일을 사용하는 게임을 유지할 수 있는 지속 가능한 모델이 필요했습니다.

데브시스터즈 내부 데이터 이미지

PAD 적용 전/후(에셋 최적화 포함)

적용 과정

데브시스터즈는 CDN 대용량 다운로드가 유저에게 부정적인 경험으로 작용하여 유저 이탈이 증가하는 것을 발견했습니다. 유저가 처음 게임을 시작하기 전 진행되는 다운로드의 시간이 너무 오래 걸린 것이 원인이었습니다.

데브시스터즈는 불필요한 게임 리소스를 줄이기 위해 Play Asset Delivery(PAD)를 사용하기 시작했습니다. Install-Time 에셋 팩 하나로 최대 1GB까지의 에셋을 1차 다운로드에 포함할 수 있었습니다.

데브시스터즈의 배형욱 대표는 “Install-Time 딜리버리 옵션으로 빠르게 전환하여 좋은 결과를 얻었습니다. 새 게임에는 세 가지 딜리버리 모드인 Install-Time, Fast-Follow, On-demand를 모두 적극적으로 활용할 수 있는 데이터 구조를 적용하고자 합니다”라고 전했습니다.

결과

데브시스터즈는 CDN을 사용하는 2차 다운로드 크기를 40%까지 줄여 2.5GB에서 1GB로 낮췄고, 추가적인 에셋 최적화로 CDN 비용을 84%까지 줄여 연간 20만 달러(약 2억원)를 절감했습니다. 또한, 총 바이너리 크기를 46% 축소했습니다. 첫 2주간의 유저 리텐션도 향상되었습니다. 게임 운영을 하면서 리텐션을 높이는 것이 쉽지 않기 때문에 데브시스터즈에게 의미있는 성과였습니다.

시작해 보세요

Play Asset Delivery를 더 살펴보고 지금 시작해 보세요.
더 자세한 내용은 Google for Games Developer Summit 2022Play asset Delivery 세션에서 확인해보세요.

이 글의 원문은 여기서 확인하실 수 있습니다. 


배경

NEW STATE Mobile은 2021년 11월에 전세계에 출시한 크래프톤(Krafton)의 배틀 로얄 게임으로, 출시 첫 달에 4천 5백만 건 이상 다운로드 되었습니다. 크래프톤은 전세계 유저에게 혁신적이고 매력적인 엔터테인먼트 경험을 제공하기 위해 독립적인 게임 개발 스튜디오가 모여 만든 집합체입니다. 펍지 스튜디오(PUBG Studios), 블루홀 스튜디오(Bluehole Studio), 스트라이킹 디스턴스 스튜디오(Striking Distance Studios), 라이징윙스(RisingWings), 드림모션(Dreamotion), 언노운 월즈(Unknown Worlds)가 각자 고유의 전문 기술을 가지고 뭉쳤습니다. NEW STATE Mobile은 언리얼 엔진 4(Unreal Engine 4)로 제작되었으며, 게임 특성상 GPU 사용량이 높아 발열과 배터리 소모를 줄이기 위해 다양한 방법을 시도했습니다.

장거리 전투가 벌어지기 때문에, 상당히 먼 거리까지 렌더링이 가능해야 했습니다. 또한 전장에 표시되는 식생이 많기 때문에, 게임 성능이 상당히 저하되기도 했습니다. 그래서 개발 팀은 게임의 GPU 사용량을 최적화하고 해결 방법을 찾기 위해 Android GPU Inspector(AGI)를 활용했습니다. 

Screenshot from NEW STATE Mobile

사진 1: NEW STATE Mobile 스크린샷

적용 과정 

NEW STATE Mobile은 AGI를 통해 수많은 GPU counter 정보에 따라 GPU 사용량을 최적화했습니다. AGI가 제공하는 GPU activity 프로파일링 데이터의 도움을 받아 불필요한 렌더 패스를 발견했습니다. 어떤 세그먼트가 GPU 사용량과 메모리 대역폭을 차지하는지 확인한 후, GPU counter와 GPU activity를 오가며 최적화가 올바른 방향으로 수행되고 있는지 점검하며 작업을 이어갔습니다.

Screenshot from NEW STATE Mobile

사진 2: NEW STATE Mobile 스크린샷

NEW STATE Mobile이 AGI를 사용하며 게임 수행에 관해 확인한 점이 몇 가지 있습니다.

  • 베이스 패스 최적화: Depth prepass는 Early-Z 사용을 향상하는 기법으로, 프래그먼트 쉐이딩을 저하하는 데 도움을 주었습니다. 특별히 스크린 공간 대부분을 차지하는 LOD0에 사용되어, 추가 드로우 콜로 발생할 수 있는 부담을 최소화했습니다. 32비트 씬 컬러를 사용하면 전체 렌더 패스 성능도 향상됩니다. 언리얼 엔진 4의 기본 씬 컬러는 64비트인 Float RGBA이기 때문에 32비트 씬 컬러 포맷을 사용하면 메모리 대역폭이 절반으로 감소합니다.

  • 결과 측정: Depth prepass를 적용한 후, GPU 사용이 7.5% 감소했습니다. Depth prepass 덕분에 더 많은 프래그먼트에 Early-Z를 사용할 수 있었습니다. 프래그먼트 쉐이딩에 소요되는 시간은 2% 감소했습니다. 32비트 씬 컬러 포맷을 통해 GPU 사용은 5.3% 낮아졌습니다. Shaders Busy는 2% 감소했고, 총 GPU가 시스템 메모리를 읽은 양은  330MB/s 감소했습니다. GPU가 시스템 메모리를 기록한 양은 78MB/s 줄었고, 텍스처 메모리 읽기는 43MB/s 감소했습니다.

  • 쉐도우 패스 최적화: 메시가 쉐도우 캐스터로 사용될 때는, 높은 폴리곤 LOD의 사용이 품질 면에서 별다른 차이를 만들어 내지 못하기 때문에 삼각형의 수를 줄일 수 있는 낮은 폴리곤 LOD를 사용하는 것이 선호됩니다. 언리얼 엔진 4에서는 ‘ForceLODShadow’라는 콘솔 명령어로 폴리곤 LOD를 낮출 수 있습니다.

  • 결과 측정: 그림자에 사용된 삼각형 수가 약 12만개 줄었습니다. AGI 내 GPU counter 정보를 통해 GPU 사용량은 약 2%, GPU가 시스템 메모리를 읽은 양은 130MB/s, GPU가 시스템 메모리를 기록한 양은 23MB/s만큼 감소한 것을 확인했습니다.

  • 오토 인스턴싱: 오토 인스턴싱은 쉐도우 패스와 베이스 패스 최적화에 모두 사용될 수 있어 동일한 렌더  커맨드를 런타임에서 병합하여 한 번에 렌더링할 수 있습니다. 이를 통해 NEW STATE Mobile은 성능을 유지하면서 글로벌 일루미네이션을 개별 오브젝트에 적용했습니다. 오토 인스턴싱은 언리얼 엔진 4에서 기본으로 제공됩니다.

  • 결과 측정: OpenGL을 통해 측정된 결과는, 드로우 콜이 500개, 약 48% 가량 감소했고, GPU 사용은 3.5% 낮아졌습니다. 

Internal data showing GPU usage reduction

사진 3: GPU 사용량 감소를 보여 주는 내부 데이터

결과

NEW STATE Mobile은 AGI를 이용해 GPU 사용량을 22%까지 줄였습니다. Depth prepass와 쉐도우 패스 최적화로 GPU 사용량이 각각 19%와 3% 감소한 것입니다. 드로우 콜과 GPU가 시스템 메모리를 읽고 기록한 메모리 양도 상당히 줄었습니다. 

시작해 보세요

Android GPU Inspector(AGI)를 이용해 성능 문제와 최적화할 영역을 발견하여 여러분의 게임이 안드로이드 기기에 미치는 영향을 분석하는 법을 배워 보세요. 더 자세한 내용은 Google for Games Developer Summit 2022Android GPU Inspector 세션에서 확인해보세요.

작성자: Rohan Shah (Product Manager on Android)

이 글의 원문은 여기서 확인하실 수 있으며 블로그 리뷰에는 노현석(GDE)님이 참여해주셨습니다.

삼성, OnePlus, Oppo, Vivo, realme, Xiaomi, Tecno 등의 기기를 포함하여 전 세계적으로 더 많은 Android 12 스마트폰에서 Material You의 동적인 색상을 곧 사용하실 수 있습니다!

Android 12의 출시와 Material You의 도입을 통해 Android 사용 환경을 그 어느 때보다 유동적이고 개인적으로 설정할 수 있게 되었습니다. 멋지고 새로운 디자인으로 더욱 동적인 터치 리플, 실크처럼 부드러운 스크롤, 넉넉한 공간감의 레이아웃과 같이 사용 환경에 생동감을 불어넣었습니다. 무엇보다 그 중심에서 돋보이는 건 동적인 색상입니다. 좋아하는 배경화면을 선택하면 홈 화면부터 원하는 앱까지, 사용자 개인을 더욱 잘 표현하도록 전체 스마트폰 사용 환경을 바꿀 수 있습니다.

Material You의 도입과 함께 이제 개인 맞춤화는 우리 생태계가 앞으로 몇 년간 계속 만들어갈 Android의 뚜렷한 특징이 될 것입니다. 저희는 개발자 여러분이 이 여정에 저희와 함께하여 앱을 통해 사용자에게 보다 개인적인 외관과 느낌을 제공할 수 있다는 확신을 갖기를 바랍니다.


Material You를 지원할 일부 Android 기기 사용 환경에 표시되는 다양한 배경화면 기반 테마의 Gmail 레인보우 

Material You를 지원할 일부 Android 기기 사용 환경에 표시되는 다양한 배경화면 기반 테마의 Gmail 레인보우


앞으로 몇 개월 동안 더 많은 Android 12 기기에 Material You가 도입됨에 따라 개발자에게는 안심을, 사용자에게는 조화로운 사용 환경의 혜택을 드릴 수 있도록 OEM 파트너들과 협력을 통해 특히 동적인 색상과 관련된 주요 디자인 API가 Android 생태계 전반에서 일관되게 작동하도록 보장하고자 최선을 다하고 있습니다.

동적인 색상을 전체 브랜드 스토리에 맞추어 구현하는 방법을 더 잘 이해할 수 있도록, Material 팀이 Views 또는 Jetpack Compose를 시작하기 위한 코드랩과 가이드를 포함한 포괄적인 Material 사용자 설정 문서를 게시했습니다. 디자인과 구현에 필요한 도구를 받아 보기 위해 앞으로 몇 달에 걸쳐 계속 이루어질 Material Theme BuilderMaterial Color Utilities에 대한 업데이트를 지켜봐 주세요.


Material Theme Builder로 앱의 역동적인 색상 시각화 구현

Material Theme Builder로 앱의 동적인 색상 시각화 구현


Google 앱(Gmail, 포토, Chrome 등) 또한 Material You와 그에 대한 지침을 사용해 브랜드 경험에 생동감을 불어넣었습니다. 이 작업에 개발자 여러분도 함께하게 되어 기쁩니다. 색상이 사용자 선택과 조화를 이루어 동적인 색상으로 앱 내에서 함께 어우러져 작동하는지에 대해 자세히 알아보시고, Material Android Issue Tracker를 통해 의견을 들려주시면 정말 감사하겠습니다. 동적인 색상을 잘 활용해보시길 바라겠습니다!


게시자: Madan Ankapur (Product Manager)

이 글의 원문은 여기서 확인하실 수 있으며 블로그 리뷰에는 노현석(GDE)님이 참여해주셨습니다. 


저희는 이번에 앱 개발자가 Android Automotive OS용 내비게이션, 주차 및 충전 앱 빌드 작업을 시작할 수 있도록 지원하는 Car App Library 버전 1.2 베타의 출시합니다.

이제 개발자들은 Android Automotive OS와 Android Auto에서 모두 Automotive OS 에뮬레이터를 사용하여 이러한 범주에 대한 앱 빌드 및 테스트를 시작할 수 있습니다. v1.2 베타의 전체 변경 사항 목록은 출시 노트를 참조하세요. 자동차용 앱 빌드를 시작하려면 업데이트된 개발자 문서, 자동차 품질 가이드, 디자인 가이드를 확인해 보세요.

앞서 발표한 바와 같이, Polestar 2 및 Volvo 자동차 운전자는 이제 Google Play 스토어에서 Gmail 계정을 사용하여 Google Group에 가입하고 각 앱의 베타버전을 통해 Car App Library로 개발한 충전 앱(ChargePoint, PlugShare), 주차 앱(Spothero, Parkwhiz), 내비게이션 앱(Flitsmeister, Sygic)을 다운로드할 수 있습니다.

여섯 개의 spp 아이콘

Android Automotive OS의 Car App Library 앱은 개발자가 추가 작업을 하지 않아도 각 자동차 내에서 나머지 사용 환경과 일치하도록 자동으로 렌더링됩니다. 예를 들면 다음과 같습니다.

Polestar 2

Volvo

PlugShare용 On/Off 스위치 라벨이 표시된 Polestar 2 설정

PlugShare용 On/Off 스위치 라벨이 표시된 Polestar 2 설정

PlugShare용 슬라이딩 스위치가 있는 Volvo 설정

PlugShare용 슬라이딩 스위치가 있는 Volvo 설정



SpotHero용 Polestar 2 로그인 화면

SpotHero용 Polestar 2 로그인 화면

SpotHero용 Volvo 로그인 화면

SpotHero용 Volvo 로그인 화면

Android Automotive OS에서 앱 사용자 설정의 예


Android Studio에서 다운로드할 수 있는 OEM 에뮬레이터 시스템 이미지에 액세스하여 다양한 시스템 내에서 앱이 어떤 모습일지 직접 경험해 보세요. 오늘 바로 Android Automotive OS용 충전, 주차 및 내비게이션 앱 개발을 시작할 수 있으며, 앞으로 몇 달 후에는 개발된 앱을 Google Play 스토어에 게시할 수 있도록 노력하고 있으니 계속 지켜봐 주세요!

내비게이션 외에도, 승차 공유 운전자는 차량에서 많은 시간을 보내므로 이러한 앱을 차량 화면에 표시할 수 있다면 더욱 안전한 상호 작용의 이점을 누리게 될 겁니다. 저희는 Lyft 및 Kakao Mobility와 협력하여 앞으로 몇 달 안에 이들 회사의 운전자 앱 경험을 자동차에 도입할 예정입니다.

GPS 지도와 Lyft 로고가 있는 자동차 화면 이미지

또한, 모든 관심 지점(Points of Interest) 앱으로 지원을 확장할 예정입니다. 이를 통해 충전과 주차 외에도 사용자가 지도에서 흥미로운 위치를 발견 및 검색할 수 있는 앱을 개발할 수 있으며 사용자가 원할 경우 해당 지점에 찾아가도록 할 수도 있습니다. 현재 사전 체험판 파트너로 MochiMochi, Fuelio, Prezzi Benzina, NAVITIME JAPAN과 제휴를 맺었습니다.

향후 사전 체험판 프로그램 참여에 관심이 있다면 이 관심사 양식을 작성해 주세요. 지금 g.co/androidforcars를 방문해 자동차용 Android 앱 라이브러리를 사용할 수 있습니다.


작성자: Dan Galpin (Developer Relations Engineer)

이 글의 원문은 여기서 확인할 수 있습니다. 

화상 통화를 하는 모습의 Android 로봇

2021년 10월, 저희는 누구든지 Android 개발에 쉽게 다가갈 수 있도록 하는 무료 자기 주도형 프로그래밍 과정인 Android Basics in Kotlin의 최종 단원을 선보였습니다. 프로그래밍 경험이 없는 사람들도 이 과정을 통해 Android 앱을 빌드하는 방법을 배울 수 있으며, 학생들은 프로그래밍의 기초와 프로그래밍 언어 Kotlin의 기초를 터득할 수 있습니다.

교육자와 학습자의 다양한 의견을 토대로, 학생들이 학습 자료를 복습하는 것 외에도 배운 내용을 응용할 수 있는 프로젝트를 추가하고, 더 높은 수준의 자료도 학습할 수 있도록 새로운 주제를 추가했습니다.

기초에 집중

이번 업데이트 이후에는 Android Basics in Kotlin에 Android Kotlin Fundamentals에서 다루는 핵심 자료가 포함되므로, Android Kotlin Fundamentals 과정은 일정에 따라 폐지할 예정입니다. 고급 과정 학습자에게는 Basics 과정의 학습 자료를 훑어보면서 익히 잘 아는 섹션은 건너뛰고 퀴즈 섹션으로 진행하는 것을 권장합니다. 기초에 집중하는 것으로 핵심 개념을 놓치고 있을지 모르는 중급 및 고급 학습자는 학습하는데 필수적인 내용을 습득할 수 있을 것입니다. 또한, 이를 통해 저희 팀은 코스웨어에 최신 가이드가 계속 반영되도록 하는 데 집중할 수 있습니다. 코스웨어 외에도, 모든 수준의 학습자에게 Codelab, 코드 샘플, 문서, 영상 콘텐츠를 계속해서 제공하고 있습니다.

다음 단계

저희 팀에서는 Jetpack Compose를 통해 Android 애플리케이션을 프로그래밍하는 방법에 대한 다음 과정을 열심히 마련하고 있습니다. Android UI를 간단하고 빠르게 개발하는 모든 방법을 동원해 네이티브 UI를 빌드하기 위한 Android의 최신 툴킷 교육이 어서 이뤄질 수 있기를 바랍니다.

지금 할 일

현재 마련된 교육 과정을 수강하면 앱 개발의 기초 사항을 배울 수 있으며, 기존의 Jetpack Compose Pathway를 둘러보거나 최신 Android Basics with Compose 학습 과정 이수를 위한 좋은 출발점이 될 것입니다. 또한 Android 개발 영역을 계속 탐색하면서 빌드 작업을 추진할 수 있게 됩니다. 두 가지 버전의 Android Basics가 모두 유지될 예정이니, 둘 중 하나의 UI 툴킷을 선택해 Android를 학습할 수 있습니다. 

앱 제작이 처음이라 방법을 배우고 싶은 분들이나 최신 우수 사례를 살펴보고 싶은 분들 모두 Android Basics in Kotlin 학습 과정을 확인해주세요!

작성자: Tim Sneath (Director, Product & UX)

이 글의 원문은 여기서 확인하실 수 있습니다.


모바일 및 웹에서도 실행되는 고품질 Windows 앱 빌드

Flutter를 출시한 이후로, 저희는 기계어로 컴파일되고 기기의 기본 그래픽 하드웨어를 최대한 활용하는 아름다운 맞춤형 앱을 위한 교차 플랫폼 솔루션을 제공하는 데 집중해왔습니다. 2월 4일, 앱 대상으로서 Windows용 지원의 최초 프로덕션 릴리스를 통해 교차 플랫폼 솔루션의 비전을 확장하였으며, 이를 계기로 Windows 개발자 또한 모바일 개발자가 누려온 것과 같은 생산성과 성능의 이점을 누릴 수 있게 되었습니다.

Flutter와 Dart의 마스코트인 Dash를 표현한 하늘색 새 두 마리가 노트북 위에서 마우스 커서를 조작하는 이미지. 이미지 내에 'Flutter + Windows'라는 텍스트가 표시되어 있습니다.

Flutter의 목표는 운영체제와 관계없이 훌륭한 사용 환경을 구축하는 데 필요한 도구를 제공하는 것입니다. 따라서 모든 그래픽 작업에 있어 동일한 핵심 프레임워크와 도구를 제공하고자 합니다. Flutter를 통해 브랜드와 디자인이 중심이 되는 아름다운 사용 환경을 제작할 수 있습니다. Flutter는 기계어로 컴파일되기 때문에 빠릅니다. 스테이트풀 핫 리로드를 지원하므로, 앱이 실행되는 동안 변경 작업을 수행하고 그 결과를 즉시 확인할 수 있는 대화형 환경의 생산성이 확보됩니다. Flutter는 오픈 소스이므로, 수천 명의 참여자가 핵심 프레임워크에 기여하고 다양한 관련 패키지를 사용해 프레임워크를 확장할 수 있습니다.

거의 50만 개의 앱이 Flutter를 사용합니다…

지금까지 Betterment, BMW, ByteDance와 같은 회사의 대규모 앱과 Google 소속 30개 팀의 앱을 비롯해 현재 Flutter를 사용하는 앱이 거의 50만 개 출시되었으며, 예상을 뛰어넘는 성장세를 확인했습니다. StatistaSlashData 등의 분석에 따르면, Flutter는 2021년에 가장 인기 있는 교차 플랫폼 UI 툴킷이 되었다고 합니다.

Statista("Flutter는 전 세계 개발자가 사용하는 가장 인기 있는 교차 플랫폼 모바일 프레임워크…소프트웨어 개발자의 42%가 Flutter를 사용하고 있습니다."), SlashData("개발용으로 가장 인기 있는 교차 플랫폼 프레임워크로 Google의 Flutter(44%)가 포함됩니다."), JetBrains("Flutter의 인기가 계속 높아지고 있습니다. 올해는 React Native를 능가해 가장 큰 인기를 끌게 되었습니다..."), StackOverflow("Flutter는 두 번째로 큰 사랑을 받는 프레임워크")의 연구에서 발췌한 내용.

저희 자체 데이터 역시 이러한 분석과 일관됩니다., 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 형식을 사용해 작동합니다.

Flutter 아키텍처를 보여주는 아키텍처 다이어그램: 맨 위에는 머티리얼, 위젯 시스템, 렌더링 객체, 애니메이션, 동작, 그리기 기본 요소와 같은 빌딩 블록으로 구성되고 Dart로 빌드된 Flutter 프레임워크가 있고, 그 아래에 C++로 작성된 Flutter 엔진과 함께 Skia 및 텍스트 렌더링 라이브러리가 있고, 마지막으로 맨 아래에 기본 운영체제와 상호 운용되고 Win32 메시지를 엔진으로 전달하는 Windows 임베더가 있습니다.

Windows상의 Flutter는 정확히 똑같은 Dart 코드를 사용하면서 네이티브 Windows API를 활용합니다.

Flutter 프레임워크의 모든 요소를 앱이 사용할 수 있습니다. Windows에서는 Dart의 C interop 계층을 통해 직접, 또는 C++로 작성된 플랫폼 플러그인을 사용하여 Win32, COM 및 Windows 런타임 API와 통신할 수도 있습니다. Windows 지원을 포함하도록 camera, file_picker, shared_preferences를 비롯한 여러 가지 공통 플러그인도 조정했습니다. 커뮤니티 차원에서 이미 Windows 작업 표시줄 통합부터 직렬 포트 액세스까지 모든 것을 포괄하는 폭넓고 다양한 기타 패키지에 대한 Windows 지원을 추가하기도 했습니다.

USB 지원, 지도, 웹, 직렬 포트, 파일 선택, 창 관리, TensorFlow, 사용자 인증 정보 관리, 배터리, WMI, 프린터, 화면 캡처, 네트워크 연결을 포함한 Windows 패키지의 목록. Windows용으로 빌드된 Flutter 앱을 지원하도록 조정된 패키지가 이미 수백 개 있습니다.

완전 맞춤형 Windows UI의 경우 fluent_uiflutter_acrylic과 같은 패키지를 사용하여 Microsoft Fluent의 디자인 시스템을 아름답게 표현하는 앱을 만들 수도 있습니다. msix 도구를 사용하면 Windows의 Microsoft Store에 업로드할 수 있는 설치 프로그램에 앱을 래핑할 수 있습니다.

이런 모든 기능들을 통해 Windows에서 훌륭한 외관을 자랑하고 빠르게 실행되면서도 웹뿐 아니라 다른 데스크톱이나 모바일 기기에서도 사용할 수 있는 앱을 만들 수 있습니다. 다음은 지금까지 목격한 몇몇 초기의 사례입니다.

HarmonoidRows 등, 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에서 다운로드할 수 있습니다.

Flutter로 작성되고 어떤 Flutter 앱에든 삽입할 수 있는 출력을 생성하는 모션 디자인 도구 Rive의 스크린샷.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용으로 무엇을 빌드할지 기대됩니다!

Dart의 마스코트 Dash의 이미지. Dash가 Flutter 로고가 찍힌 노트북 컴퓨터 화면을 보며 앉아 있습니다. 우리 눈에는 보이지 않지만, Dash는 지금 Flutter로 빌드된 Windows 앱을 보는 중입니다!