한국의 개발자들을 위한 Google for Developers 국문 블로그입니다.
회사나 고객에게 효과적으로 Flutter 소개하는 방법을 알려드립니다
2019년 1월 21일 월요일
<블로그 원문은
이곳
에서 확인하실 수 있으며 블로그 번역 리뷰는 김태호(Google)님이 참여해 주셨습니다>
What’s Revolutionary about Flutter(Flutter는 왜 혁명적인가?)
를 게시한 지 1년 넘게 지났습니다. 물론, 이 글은 여전히 Flutter를 잘 소개해주는 글입니다. 필자가 이 글을 쓰던 당시에는 Flutter에 대해 들어본 적 있는 모바일 개발자가 드물었지만, 그 이후로 큰 진전이 있었습니다. 지금은 적극적이고 활발하며
폭발적으로 성장 중인
Flutter 커뮤니티에서 Flutter를 주제로 쏟아내는 수많은 글과 동영상을 도저히 다 볼 수 없을 정도가 되었습니다.
개발자들은 Flutter의 진가를 알아챘고
이제는
진심으로
각별한 애정
을 쏟아붓고 있습니다.
Reflectly
에서
Flutter를 사용하여 만든 훌륭한 앱
을 감상해 보세요.
Reflectly 지능형 일기 쓰기 Flutter 앱
개발자들은 요즘 직면한 최대의 난제 중 하나는 회사 경영진(에이전시나 프리랜서로 활동하는 개발자라면 고객)에게 Flutter를 사용해보자고 설득하는 일이라고 필자에게 토로하곤 합니다. 회사 경영진이나 고객과 같은 의사결정권자는 단지 뭔가 대단한 기술이라는 이유만으로 최신 기술을 채택하는 데 열정을 보이지는 않습니다. 그들 역시 대체로 기술을 잘 알고 있는 사람들이지만, 그게 그들의 유일한 관심사는 아닙니다. 그들은 새로운 기술을 사용하는 것이, 예컨대 신규 고객 확보나 위험 감소와 같이, 회사의 성공에 도움이 될지 알고 싶어 합니다.
이 글은 다음 두 부류의 개발자를 염두에 둔 글입니다.
회사 경영진에게 Flutter를 사용해야 할 이유를 설득하고 싶은 개발자. 개발자가 Flutter를 잘 알고 있더라도 경영진에게 제시할 확고한 논거가 필요합니다.
Flutter를 사용하여 제품을 개발할지 스스로 결정하고 싶은 개발자.
이 글에서는 특정 모바일 앱은 Flutter를 사용하기에 좋은 대상이 아닐 수도 있는 이유도 설명하므로, 충분한 정보를 바탕으로 올바른 의사결정을 할 수 있을 것입니다.
Flutter란?
(엘리베이터 피치에 어울리는 표어적 문구로 작성한) Flutter의 슬로건은
‘빠른 시간 안에 아름다운 네이티브 앱 빌드’
입니다.
이 슬로건 문구를 네 부분으로 나누어서 하나씩 자세히 뜯어 봅시다.
빌드
아름다운
네이티브 앱
빠른 시간 안에
1. 빌드
Flutter는 현재 iOS 및 Android용 모바일 앱을 빌드하는 데 초점이 맞춰져 있습니다.
하지만 Flutter가 현재의 모바일 프레임워크와 구분되는 더욱 크고 장기적인 비전이 있습니다. Flutter는 단순한
프레임워크
가 아니라 화면을 사용하여 상호 작용하는 앱을 빌드하기 위한
완전한 SDK
입니다. 즉, Flutter에는 렌더러와 렌더링할 것들(Flutter에서
위젯
이라고 함)을 비롯하여 사용자 인터페이스를 만드는 데 필요한 모든 것이 있다는 의미입니다.
많은 면에서, Flutter는
Unity
또는
Unreal
과 같은 게임 엔진과 유사한데, 이런 엔진은 자체적인 렌더러와 렌더링할 것들, 그리고 기타 소프트웨어도 제공합니다. 하지만 Flutter는
게임
을 빌드하는 대신
앱
을 빌드합니다.
Flutter가 완전한 SDK라는 사실은 디스플레이를 포함한 사실상 어떤 하드웨어에서든 실행하도록 포팅 가능하다는 의미입니다. Flutter 렌더러는 다양한 기기에서 쉽게 사용할 수 있는
인기 오픈소스 그래픽 엔진인 Skia
를 사용합니다.
데스크톱과 Raspberry Pi의 Flutter
Google에서는 모바일 앱에 초점을 맞춰왔지만, 다양한 회사와 개발자가
데스크톱 컴퓨터
(그림 왼쪽의 macOS, Windows, Linux 및
기타
),
TV
(
Nvidia Shield TV에서 실행 중인 Flutter의 동영상
), Raspberry Pi(그림 왼쪽 아래)로 Flutter를 포팅하는 작업을 해왔습니다. Flutter는 내부적으로는
Fuchsia
용 사용자 인터페이스를 빌드하는 데도 사용됩니다.
앱은 점점 더 휴대폰의 범위를 뛰어넘어 확장할 것입니다. 홈 어시스턴트(Google Home Hub, Lenovo Smart Display 등), 자동차의 대화식 디스플레이, 가전기기(냉장고), 웨어러블 기기(시계, 옷), 기타
IoT
기기를 포함한 여러 기기에 걸쳐 앱에 액세스하는 것이 일상화될 것입니다. 2017년에는 온라인에 그런 기기가 84억 개가 있었습니다.
IDC의 추정
에 따르면, (지금으로부터 2년도 채 남지 않은) 2020년이 되면 (휴대폰은 50억 개인데) 위와 같은 기기는 300억 개를 넘을 것이라고 합니다. 이러한 기기 중 다수에 대화식 화면이 사용될 것입니다. Flutter의 아키텍처는
이처럼 새로운 기기를 위한 강력하고 아름다운 사용자 인터페이스
를 만들기 위한 모든 요소를 갖추고 있습니다.
어디에나 있는 화면들
물론, Flutter는 완전히 무료이며 오픈소스로 제공됩니다.
2. 아름다운
만들려는 모바일 앱이
Google Play Store에 있는 380만 개의 앱과 Apple App Store에 있는 200만 개의 앱
과 경쟁하는 현실에서 어떻게 앱의 성공을 보장할 수 있을까요? 사용자가 앱을 다운로드하도록 하는 데까지는 그럭저럭 성공하더라도, 사용자가 30일 후에도 앱을 활발히 사용할 가능성은 3%에 불과합니다. Gartner Inc.에 따르면,
게시되는 모든 모바일 앱 중 재정적 측면에서 성공하는 앱은 0.01%에 불과하다
고 합니다. 개발자는 얻을 수 있는 모든 도움을 받아야 합니다.
Alibaba(왼쪽)와 Topline(오른쪽)
2Dimensions
연구 결과,
호소력 있는 디자인이 매우 중요한 성공 요인일 수 있다
는 점이 밝혀졌습니다. 최근 몇 년간 가장 큰 인기를 끌었던 모바일 앱을 살펴보면 각각 나름대로 고유하고 눈에 띄는 디자인을 지니고 있음을 알 수 있습니다. 뿐만 아니라, 아름다운 앱은 이런저런 상도 받으면서 가치 있는 대중성도 얻게 됩니다.
몇 가지 예만 들자면, 왼쪽에 보이는
Alibaba
(세계 최대의 전자상거래 회사)의 앱, Abbey Road Studios의
Topline 레코딩 앱
,
2Dimensions의 놀라운 실시간 애니메이션
데모 앱과 같은 Flutter 앱이 있습니다.
회사 웹사이트와 웹 앱에 대해서도 그러하듯이, 회사의 브랜딩을 보완해주는 모바일 앱을 원하는 회사가 점점 늘고 있습니다. 이에 따라
높은 수준의 맞춤화 작업
이 필요합니다.
마지막으로, 디자이너에게 훌륭하고 멋진 아이디어가 있었는데 그 아이디어가 실제로 구현되는 시점에 돌이켜보면 툴킷의 제한 때문에 최초의 아이디어를 제대로 살리지 못하는 경우가 종종 있습니다. Flutter는 자신의 비전을 구현하는 앱을 빌드하려는
디자이너에게 자신 있게 '예'라고 대답
할 수 있게 해줍니다.
Flutter 쇼케이스
에서 더 많은 Flutter 앱을 볼 수 있고,
It’s All Widgets 사이트
에도 수백 가지의 Flutter 앱이 소개되어 있습니다. 이러한 앱에는 이 글 초반부에 애니메이션 GIF를 사용하여 표시한 아름다운
Reflectly 일기 쓰기 앱
도 포함되지만, 앱 스토어에서 다운로드하여
Android
또는
Apple
휴대폰에 설치해야 합니다.
앱을 Flutter로 전환한 경험
에 대해 읽어보세요.
3. 네이티브 앱
모바일 개발자는 이 점에 놀라실지 모르겠습니다. 모바일 앱의 세계에서 '네이티브 앱'이라는 용어는 특정 언어를 사용하여 직접 플랫폼 API를 대상으로 하는 앱을 가리키는 데 종종 사용되는 용어이기 때문입니다. 게다가 더욱 혼란스럽게 만드는 점은, React Native 및 Xamarin과 같은 프레임워크에서는 플랫폼 위젯을 사용할 수 있다는 의미로 '네이티브'라는 용어를 사용한다는 사실입니다.
'네이티브'라는 용어는 모바일에 사용되는 용어이므로 컴퓨팅 기술의 다른 영역에서는 실제로는 사용되지 않습니다. 예를 들어 Windows 및 macOS 컴퓨터 그리고 다른 많은 종류의 컴퓨터에 Linux를 설치할 수 있지만, Windows 또는 macOS를 '네이티브'라고 부르거나 Linux를 '교차 플랫폼' 또는 '하이브리드' 솔루션이라고 부르지는 않습니다. 사람들은 Linux를 그냥 Windows나 macOS와 똑같이 네이티브로 생각합니다.
그냥 그게 당연하다 생각하기 때문이죠
.
컴퓨팅에 대해 '네이티브'의 정의
를 더욱 정밀하게 내려보자면
'특정 시스템을 위해 디자인되거나 특정 시스템에 내장된다는 뜻으로,
특히 특정 프로세서, 컴퓨터 또는 컴파일러와 그 안에 작성된 프로그램과 관련된 언어를 나타냅니다
.'
Flutter 앱은 iOS와 Android에서 모두 네이티브 기계(
ARM
) 코드로 컴파일됩니다.
네이티브 앱은 장점이 많습니다. 네이티브 앱은 시작 속도가 더 빠르다는 점도 있지만, 가장 중요한 점은 더욱 원활하게 작동하며 기존 앱보다 끊김이나 버벅거림이 덜하다는 사실입니다(
버벅거림은 아름다운 일이 아님
). 또한 네이티브 앱은 개발자에게 앱의 동작에 대해 더 강력한 제어 능력을 부여합니다.
네이티브 앱의 장점을 누리기 위해, 모바일 개발자는 보통 별개의 도구와 언어를 사용하여 두 개의 앱을 따로 빌드해왔습니다. 이 사실이 의미하는 바는, 각 플랫폼에 대한 개발자 팀을 따로 두고서 개발한 후 팀 간에 조정해야 하는 경우가 종종 있었다는 사실입니다. 이로 인해 비용이 상당히 상승하고 위험이 증가하고 출시 시간이 길어집니다. 개발자는 Flutter를 사용하여 단일 코드베이스로 통합하고 개발 팀을 하나로 뭉치고 위험을 줄이고 출시 시간을 앞당길 수 있습니다. 이 모든 것이 네이티브 앱의 이점을 누리는 동시에 가능한 일들입니다.
어떤 것이 '네이티브'일까요? 둘 다입니다!
그럼, 위젯은 어떨까요?
Flutter는 자체 위젯을 제공
하므로, 플랫폼 위젯과 도구를 사용하여 개발한 앱과는 달리 Flutter 앱이 뭔가 이상하게 보이거나 느껴지지 않을지 걱정하실 수도 있을 겁니다.
왼쪽에서 iOS 플랫폼 설정 화면과 Flutter를 사용하여 만든 똑같은 화면을 비교한 모습을 확인할 수 있습니다. 픽셀 레벨에서는 작은 차이점이 몇 가지 있지만, Flutter를 사용하면 플랫폼 화면과 같은 모양과 느낌의 화면을 쉽게 만들 수 있다는 점이 중요합니다.
플랫폼은 OS 버전마다 바뀌므로, 플랫폼 네이티브 앱도 OS 버전마다 대체로 다르게 보입니다. Flutter가 '픽셀 레벨까지 완벽'하도록 시도하는 것은 사실상 무의미합니다.
Flutter의 위젯은 자신이 작동 중인 플랫폼에 맞춰 적응하면서 아이콘, 색상, 레이아웃, 글꼴, 스크롤 동작 등을 비롯하여 알맞은 모양과 느낌을 제공합니다. Flutter 앱에 있어 '픽셀 레벨까지 완벽'해지는 것이 아닌, 더 중요한 목표는 해당 플랫폼의 디자인 가이드라인을 따르고 사용자에게 친숙하고 편안한 느낌을 주는 것입니다.
Flutter는 플랫폼 캔버스에 직접 렌더링하는 완전한 SDK이므로 Flutter 앱의 높은 플랫폼 충실도를 실현할 수 있습니다. 따라서 같은 플랫폼에서도 언제든 바뀔 수 있는 플랫폼의 위젯, 글꼴 등에 앱이 종속되지 않습니다.
Flutter를 사용해 앱을 개발하면
호환성 라이브러리
도 불필요합니다. 예를 들어 Android Jelly Bean(4.1.2)을 실행하는 휴대폰에 머티리얼 디자인 위젯을 사용하는 Flutter 앱이 있습니다. 이 휴대폰은 머티리얼 디자인이 처음 만들어진 시점보다
2년이나 앞서
나온 제품이므로, 이 휴대폰에는 머티리얼 디자인용으로 내장된 위젯이 전혀 없습니다. 하지만 Flutter 앱은 이 휴대폰에서도 더 최근 버전의 OS가 설치된 더 최신 기종의 휴대폰에서와 똑같이 작동하고 멋진 모습을 보여줍니다.
Flutter가 없었더라면 이런 문제를 스스로의 힘으로 끙끙대며 해결해야 했을 것입니다. 그러나 Flutter가 있으므로 이전 버전의 OS에서 더욱 다양한 테스트를 수행하며 개발자의 앱이 사용하는 기능을 제공하지 않는 플랫폼을 위한 해결책을 찾을 수 있습니다. 개발자들은 Flutter를 사용해보니 테스트 작업이 너무나 쉬워졌다고 말합니다.
요컨대, Flutter는 네이티브 앱의 장점뿐 아니라 다음과 같이 추가적으로 중요한 이점이 있습니다.
Flutter 앱은 각 플랫폼 OS의 이전 버전에서 실행됩니다. 예를 들어 개발자가 최신 버전의 Android에서 Flutter 앱을 테스트하는 경우 이전 버전에서와 똑같은 모습일 것입니다. 따라서 Flutter 앱은 구형 휴대폰에서 잘 작동할 수 있으며, 테스트 횟수도 훨씬 줄일 수 있습니다.
변경 사항으로 인해 Flutter가 종속된 부분이 중단(이는 극히 드문 경우로, 개발자의 앱이 아니라 Flutter의 버그 때문일 것임)되지 않는 한, 플랫폼 OS의 새 버전에서도 Flutter 앱이 중단되는 일은 없을 것입니다.
제조업체나 이동통신사의 OS에 대한 수정 사항(기본 글꼴의 변경을 일반적인 예로 들 수 있음)으로 인해 앱의 모양이 극적으로 달라지지는 않을 것입니다.
가장 중요한 점은, 개발자가 Flutter를 사용함으로써 모든 플랫폼과 모든 버전에서 앱의 모양을
픽셀 레벨까지 정밀하게
완벽히 제어할 수 있다는 사실입니다.
원한다면 iOS와 Android에서 Flutter 앱의 모양이 다르게 나타나도록 명시적으로 구현할 수 있습니다. 그렇게 하지 않더라도 Flutter 위젯은 각 플랫폼의 디자인 가이드라인에 맞춰 적응합니다.
Flutter는 두 플랫폼에 대해 모두 단일 코드베이스를 사용하여 이를 실현할 수 있습니다. 또는 원한다면 Flutter 앱에
각 플랫폼에 대한 플랫폼 네이티브 코드를 추가
할 수 있습니다.
4. 빠른 시간 안에
마지막으로 언급하지만 결코 다른 항목보다 그 중요성이 덜하지 않은 점은, Flutter를 사용하면
더 나은
앱을
더 빠르게
개발할 수 있다는 점입니다. Flutter의 가장 인기 있고 정말 멋진 기능은
상태 저장 핫 리로드
기능입니다. 이 기능은 놀랍도록 빠른 속도(보통 1초 미만)를 자랑할 뿐 아니라 상태가 저장되는데, 그 의미는 앱의 깊숙한 부분에서 코드를 변경할 경우 다시 컴파일한 후에 변경 효과를 확인하기 위해 다시 같은 곳으로 이동하거나 상태를 수동으로 재생성할 필요가 없다는 뜻입니다.
상태 저장 핫 리로드!
Flutter의 상태 저장 핫 리로드는 (자바스크립트용
V8 컴파일러
와 Smalltalk용
Strongtalk
를 빌드한 사람들 중 몇 명이 개발한) 고급 컴파일러 기술과 Flutter가 네이티브이고 반응형 뷰를 기반으로 한다는 사실 덕분에 가능합니다.
속도가 빨라졌다는 점 외에도, 많은 개발자가 Flutter 덕분에 코딩 방식이 극적으로 변했다고들 합니다. 개발자는 Flutter로 새로운 아이디어와 새로운 레이아웃을 빠르게 시도해 볼 수 있습니다. 개발자는 이해관계자가 요청하는 변경 사항을 그들이 보는 앞에서 바로 구현할 수 있습니다.
우리는 디자이너가 자신이 원하는 결과를 정확히 얻는 데 Flutter가 도움이 된다는 점도 잘 압니다. 디자이너는 원하는 모습이 실현될 때까지 다양한 매개변수로 시험해 볼 수 있습니다. 사실, 웹 앱에서 CSS를 사용하는 방법을 아는 디자이너는 Flutter에서 레이아웃을 변경하는 방법을
스스로 쉽게 터득할 수 있다
는 얘기를 들려줍니다.
이 점을 제대로 알아보려면 실시간으로
Flutter 앱 라이브 코딩을 보거나
Flutter를 직접 사용해 실제 앱을 빌드해 보세요. Flutter 해커톤에 참가해 얼마나 빠르게 Flutter를 배우고 Flutter에서 실제로 작동하는 앱을 빌드할 수 있는지 알아보세요.
마지막 섹션에서 논한 바와 같이, Flutter 앱은 또한 테스트가 덜 필요하므로 앱의 새로운 기능을 훨씬 더 빠르게 테스트하고 제공할 수 있습니다. 예를 들어 JD.com에서는 다음과 같은 얘기를 들려주었습니다.
우리는 전에 비해 절반의 개발 리소스만으로 똑같은 기능을 개발할 수 있었습니다. 같은 수의 엔지니어를 투입해도 이제는 릴리스마다 더 많은 기능을 제공할 수 있습니다.
마찬가지로,
Alibaba
역시 Flutter를 사용한 덕분에 새로운 기능을 추가하는 데 걸린 평균 시간이 한 달에서 2주로 단축되었다고 합니다.
Hamilton 앱
Hamilton 앱
의 경우 실제로 개발자가 앱을 출시하기
전날 밤에
앱에 대한 주요 변경 작업을 수행했는데, 앱이 바위처럼 굳건한 안정성을 가지고 있다는 확신이 있었기에 가능한 일이었습니다. 3개월이라는 짧은 기간에 빌드된 이 앱은 양쪽 앱 스토어에서 모두 인기를 끌었습니다. 게다가 Flutter를 사용하면 계속해서 새로운 기능을 자주 추가하기도 더 쉬우므로, 사용자를 적극적인 사용자로 유지하고 더 많은 사용자가 앱을 다시 사용하도록 하는 데 도움이 됩니다.
그게 바로 성공적인 모바일 앱을 빌드하는 방법입니다.
Flutter를 사용하면 앱을 쉽고 빠르게 빌드하고 수정할 수 있을 뿐 아니라, Flutter 위젯도 빠르게 업데이트할 수 있습니다. 플랫폼 위젯을 사용하지 않는 Flutter에 대해 공통적으로 걱정하는 문제는 각 플랫폼의 새로운 위젯이 출시되거나 기존 위젯이 개선될 때마다 Flutter가 플랫폼의 변화를 따라잡기 힘들지 않겠느냐는 점입니다.
하지만 Apple이 노치를 포함한 새로운 iPhone X를 발표했을 때 Flutter는 그 휴대폰 자체가 출시되기도 전에 노치를 위한 지원을 추가할 수 있었습니다.
이는 iOS 기능에만 해당되는 얘기가 아닙니다. Google이 I/O 2018에서
머티리얼 디자인의 중대한 개편
을 발표했을 때 Flutter는 이미 새로운 기능을 완전히 구현하도록 업데이트된 상태였습니다. 빠르게 맞춤설정할 수 있는 Flutter의 능력 덕분에 가능한 일이었습니다.
개발자들이 Flutter를 사용해봤더니 생산성이 2~3배 정도 높아지고 더욱 성공적인, 더 나은 앱을 빌드할 수 있게 되었다고 자주 알려오는 것만 보더라도 Flutter의 가치를 확인할 수 있습니다.
위험 및 제한 사항
어떤 일에든 항상 절충할 점이 있게 마련인데, Flutter 역시 예외는 아닙니다. 특정 앱에는 Flutter가 최선의 도구가 아닐 수도 있는 이유가 몇 가지 있으므로, 이를 토대로 충분한 정보를 바탕으로 결정할 수 있습니다.
최종 완성된 Flutter 앱은 Flutter 위젯과 렌더러를 포함하므로 플랫폼 위젯과 렌더러를 활용하는 앱보다 크기가 약간 더 큽니다. 최근까지만 해도 Flutter 앱의 최소 크기는 6.7MB였지만 지금은
4MB를 약간 넘는 수준으로 줄었습니다
. 앞으로 더욱 최적화할 계획입니다.
(Flutter는 단일 플랫폼 전용 앱을 빌드하는 데도 사용되지만) Flutter의 주요 이점 중 하나는 양쪽 모바일 플랫폼에서 모두 단일 코드베이스를 사용하여 앱을 출시할 수 있다는 점입니다. 하지만 하나의 특정한 플랫폼에 긴밀하게 연계되어 있는 앱이나 주로 알림 기능을 제공하는 백그라운드 서비스를 제공하는 앱과 같이 플랫폼에서 제공되는 뷰 주위의 래퍼가 주된 역할인 앱이 있습니다. 이러한 앱을 Flutter로 작성할 수 있지만 그 이점을 충분히 누리지는 못할 것입니다.
우리가 종종 받는 질문 중에 Flutter가 계속 여기에 머무를지 여부를 묻는 질문이 있습니다. 그에 대한 대답이
강한 긍정
인 이유가 여러 가지 있습니다. 첫째, Google은 그 자신이 고객용 앱과 내부용 앱(더 많은 앱을 개발 중임) 모두를 위한 Flutter를 비롯하여, Flutter의 헤비 유저입니다. 예를 들어 최근에 출시한 Google Ads 모바일 앱(전에는 AdWords라 불림)은 Flutter로 작성한 앱입니다. Google이 Flutter 뒤를 굳건히 받쳐주고 있고 Flutter의 성공을 위해 최선을 다하고 있습니다.
둘째, 회사들이 주요 앱을 일반적으로 두 플랫폼에서 따로 빌드해왔다는 사실로 미루어 볼 때, 예컨대 회사에서는 먼저 iOS 앱을 빌드한 다음에 수요가 충분할 경우 Android 앱을 이후에 빌드하는 것이 덜 위험한 방법이라고 생각했을 수 있습니다. Flutter를 사용하면 사실상 똑같은 기능으로
두 플랫폼에서 모두 앱을 동시에 출시할 수
있으므로, 그러한 위험을 우회하고 앱의 잠재 시장을 늘릴 수 있습니다. 이는 Android에 크나큰 이점이 될 수 있습니다.
또 다른 잠재적 문제는 Flutter가 비교적 새로운 도구라는 점입니다. 따라서 당연히 기능과 커뮤니티 지원이라는 측면에서 모두 Flutter가 기존 도구를 따라잡으려면 시간이 어느 정도 걸릴 것입니다. 현재로서는 플랫폼에서 제공하는 기능 중에 Flutter가 구현하는 데 시간이 다소 걸릴 기능이 있습니다. Google은 이러한 기능을 추가하기 위해 Flutter에 리소스를 투입하고 있습니다.
왜 Flutter를 사용해볼 만한 가치가 있는지에 대해 더욱 심층적인 정보를 원하신다면
What’s Revolutionary about Flutter(Flutter의 어떤 점이 혁명적인가)
와
Why Flutter uses Dart(Flutter가 Dart를 사용하는 이유)
를 읽어보세요. 그리고 Flutter 사용자가 Flutter에 대해 어떻게 생각하는지 알아보려면
최신 사용자 연구
결과를 읽어보세요.
시작하는 방법
Flutter를 사용해볼 준비가 되었으면 아래에 몇 가지 유익한 참고 자료가 있으니 확인해 보세요.
https://flutter.io/get-started/
— Flutter 설치, 편집기 구성, 시험 사용, 첫 번째 Flutter 앱 작성에 도움이 되는 가이드입니다.
YouTube에서 Flutter 동영상
을 시청해 보세요.
개발자로서
Android
,
iOS
,
React Native
,
Xamarin
중 하나 이상에 익숙한 분을 위한 가이드 세트가 있습니다.
모바일 개발에 처음 도전하는 개발자를 위해
Building Layouts in Flutter
,
Add Interactivity
,
A Tour of the Flutter Widget Framework
와 같은 가이드도 있습니다(반응형 프로그래밍 원리에 익숙하지 않은 분을 위한 설명 포함).
Flutter 설명서
는 매우 가치 있는 자료입니다.
위젯 카탈로그
와
FAQ
도 중요한 내용을 담고 있습니다.
마찬가지로,
It’s All Widgets
의 앱도 살펴보세요. 이들 중 다수가 오픈소스이므로 게시된 앱의 코드를 볼 수 있습니다. 자신의 Flutter 앱을 작성하신 후에는 잊지 말고 꼭 제출해 주세요.
Flutter에 대한 베스트 기사 목록을 매주 이메일로 받고 싶으시면
Flutter Weekly 구독 신청
을 해주세요.
훌륭한
Flutter용 코드랩
이 많이 있습니다. 그걸로 충분치 않다면 Udacity에서
무료 제공하는 Flutter에 관한 온라인 동영상 과정
도 있으므로 챙겨 보시기 바랍니다.
여기에는 다수의 다른 문서
가 있습니다.
Flutter 커뮤니티에 참가하려면
Twitter
,
Gitter
,
Stack Overflow
에서 우리를 찾으실 수 있습니다.
Flutter Dev 메일링 리스트
에 구독 신청하셔야 합니다. 그리고 가까운 곳에서 열리는 Flutter Meetup이나 Study Jam을 찾아보시고, 근처에서 열리는 모바일 앱 해커톤이 있는지 알아보세요.
결론
Flutter는 개발자의 생산성을 높여주고 더 나은 앱을 빌드하는 데 도움이 되는 고속 개발 환경을 제공합니다. 개발자에게 정말 놀라운 수준의 제어 능력을 부여하는, 이해하기 쉽고 유연성이 뛰어나며 맞춤설정 가능한 툴킷입니다. Flutter는 단일 코드베이스에서 빠르고 원활하게 작동하는 네이티브 iOS 및 Android 앱을 만듭니다.
Flutter를 사용하면 비용을 절감하고 위험을 줄일 수 있습니다. Flutter는 무료이고 오픈소스로 제공됩니다. 또한 Flutter는 더 많은 수익을 거두는 데도 도움이 됩니다. Android 시장과 iOS 시장을 둘 다 동시에 공략하고, 더 짧은 시간에 더 나은 앱을 만들 수 있습니다.
또한 개발자들은 (
필자의 마음에 가장 드는 부분 중 하나이기도 함
)
Flutter 덕분에 모바일 개발이 다시 재미있게 느껴진다
고 합니다. Flutter를 사용하는
개발자 중 92%
라는 압도적 비율로 Flutter에 대해
만족
또는
매우 만족
으로 응답했습니다. 이 숫자는 꾸준히 증가해오고 있는데, 이러한 결과는 모두 1.0 버전이 출시되기
전인
Flutter 알파 버전과 베타 버전에 대한 응답 결과라는 점이 더욱 놀랍습니다.
마지막으로, Flutter는 미래를 지향합니다. Flutter는 반응형 뷰를 지원하는 유일한 네이티브 모바일 툴킷이고, 더 나은 앱을 빌드하는 데 도움이 되는 프로그래밍 패러다임이며, 초고속 상태 저장 핫 리로드와 같은 기능도 지원합니다. 그리고 Flutter는 완전한 SDK이므로 대중적 인기를 얻게 되면 새로운 플랫폼으로 포팅함으로써 계속 유용하게 활용될 수 있습니다.
Contents
ML/Tensorflow
Android
Flutter
Web/Chrome
Cloud
Google Play
Community
Game
Firebase
검색
Tag
인디게임페스티벌
정책 세미나
창구프로그램
AdMob
AI
Android
Android 12
Android 12L
Android 13
Android 14
Android Assistant
Android Auto
Android Games
Android Jetpack
Android Machine Learning
Android Privacy
Android Studio
Android TV
Android Wear
App Bundle
bootcamp
Business
Chrome
Cloud
Community
compose
Firebase
Flutter
Foldables
Game
gdg
GDSC
google
Google Developer Student Clubs
Google Play
Google Play Games
Interview
Jetpack
Jetpack Compose
kotlin
Large Screens
Library
ma
Material Design
Material You
ML/Tensorflow
mobile games
Now in Android
PC
Play Console
Policy
priva
wa
wear
Wearables
Web
Web/Chrome
Weeklyupdates
WorkManager
Archive
2024
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2023
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2022
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2021
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2020
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2019
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2018
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2017
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2016
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2015
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2014
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2013
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2012
12월
11월
10월
9월
8월
7월
6월
5월
3월
2월
1월
2011
12월
11월
Feed