한 문장으로 간단하게, Google 에서 개발 한 Cross-Platform 을 타겟으로 한 UI Toolkit 이자 Framework.
조금 더 설명을 덧붙이면 Dart라는 언어를 활용하여 화면이 있는 대다수 Platform에 UI를 그려내고 간단한 Bussiness logic을 실행 할 수 있는 개발 도구
One Source Multi Platform
1가지 코드 소스로 여러 플랫폼에 지원이 가능하다는 점은 개발에 대한 기회비용을 줄이는데 이보다 효과적일 수는 없을 것이다.
현재 Flutter 에서 Stable로 지원하고 있는 Platform은 Android / iOS / Web / Desktop Application이고, 추가적으로 차량 내에 들어가는 embedded system에도 일부 지원 예정이며, Google의 차세대 OS로 개발중인 Fucusia부터 개발자의 좋은 친구 ubuntu의 GUI버전 설치 프로그램에 이르기까지 점차 사용처가 확대되는 추세이다.
Hot Reload / Hot Restart 지원에서 오는 빠른 개발
입력한 코드를 즉각적으로 시각화 하여 확인 할 수 있는 부분은 상당히 강점이다. 개발자에게 Build 시간에 대한 압박으로 부터 꽤 벗어날 수 있게 해주며, 단순 실수적인 코드의 개선 및 보완이 즉각적으로 조치 될 수 있어 생산성 부분에 있어 큰 강점을 가질 수 있다.
Open Source로 세계 많은 개발자들이 기여
Flutter는 Open Source이기 때문에 Flutter의 내부가 궁금하다면, 언제든 Framework 내부 소스를 뜯어보거나 Public Github Repo를 통해 확인이 가능하다.
또한, 맘에 안드는 기능이나 원하는 기능이 있을 경우 직접 기여하여 해소를 하거나 다른 사람으로부터 도움을 받을 수 있는 부분이 상당 수 있다.
Use Dart language. 프레임워크와 함께 성장하는 기본 언어
비교적 비주류 언어인 Dart를 사용하였다는 점은 마이너스요소 일 수도 있지만, 사실 JavaScript나 TypeScript을 사용 해 본 개발자라면 그다지 러닝커브를 크게 느끼지 않고 구현 해 낼 수 있을 정도로 타 언어와의 유사도가 높다.
또한 compile language로서의 강점도 지니고 있어 ARM / x86 Architechure에 대한 지원이나 async / await 기능을 활용한 비동기 프로그래밍과 arrow function / first-class function 을 활용한 함수형 프로그래밍도 가능하다.
All of Widgets, Flutter를 구성하는 거의 모든 것은 Widget
'Flutter로 Application을 개발 한다.' 는 곧, 'Flutter에서 활용할 Widget을 개발한다.' 와 의미가 맞닿을 정도로 Flutter는 거의 모든 것이 Widget이라는 객체로 이루어져있다.
그렇기 때문에 각각의 Widget의 배치와 상태관리로 UI가 구현이 되기 때문에, 최극 각광받고 있는 선언형 UI를 경험 해 보고 싶다면 Flutter는 딱 알맞는 Tool일 것이다.

이미지 출처 : GDG Songdo Flutter Study - 1st section Flutter 101

이미지 출처 : https://flutter.dev
Flutter는 기본적으로 SKiA라는 C / C++ 라는 별도의 엔진을 통해 각종 UI들이 구현이 된다. 그렇기 때문에 Native Env와 유사한 속도를 낼 수 있으며, Hot Reload 같은 독특한 디버깅이 가능하다.
실제로 개발자들이 개발하는 Widget은 SKiA 엔진을 통해 각각의 OS에 알맞는 Embedder 영역을 호출 하거나 별도로 연계된 MethodChannel 을 통해 실제 작동하게 된다. (단, Web의 경우 SKiA를 사용하지 않고 Dart to JS 같은 별도의 동작 체계가 있다.)
이러한 특징 때문에, 실제 개발자들은 엔진 아래의 동작과 완전히 분리 된 환경에서 Widget을 통해 Application을 구현 할 수 있는 구조이다.
Flutter를 사용하기 위해서 필요한 것들
개발을 할 컴퓨터 (너무나도 당연)
설마 코드를 메모장에 하는 개발자는 없을 것이다. (여기서의 메모장은 Notepad 가 아닌 진짜 문방구에서 파는 메모장)
단, 특수한 상황에서는 특수한 OS의 PC가 필요한데, iOS 개발 / 테스트를 하기 위해서는 Mac OS 가 반드시 필요하다. 개발은 Mac 없이 할 수 있지만... 추천하진 않는다.
Flutter SDK
SDK 없이 해당 Framework를 사용 할 수는 없다. 유명 Framework인 Spring이나 Django 하물며 가장 간단한 구조라는 Flask도 SDK 설치는 필요하다.
단, Flutter만의 특징인지는 모르겠으나, Flutter SDK 를 설치 하게 되면 해당 SDK 내부에 Dart SDK가 포함되어있어, Dart를 단독으로 개발 / 활용해야 할 상황이 아니라면, Dart SDK를 별도로 설치하지 않아도 된다.