최근 바뀜
통계
임의의 문서로
도움말
문서
토론
원본 보기
역사 보기
로그인
Flutter 문서 원본 보기
내위키
←
Flutter
이동:
둘러보기
,
검색
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
[[구글]]에서 개발하는 크로스 플랫폼 프레임워크. 안드로이드와 iOS를 지원하며, 2019년 구글 I/O에서는 웹 개발까지 할 수 있는 Flutter Web 프레임워크까지 들고 나왔다. 즉 안드로이드, 아이폰, 웹에서 돌아가는 앱을 하나의 코드로 전부 개발할 수 있다는 이야기다. 물론 정말 이렇게 할 수 있는 범위는 제한적이며, 하드웨어를 컨트롤한다든가, 특정 OS에서만 지원되는 기능은 그에 맞는 네이티브 코드가 필요하다. 이 부분은 [[안드로이드]]라면 [[코틀린]], [[iOS]]라면 [[스위프트]]를 사용해서 붙일 수 있도록 Flutter에서 지원하고 있다. 지금까지 모바일을 겨냥한 크로스 플랫폼 프레임워크는 아파치 코르도바처럼 웹 뷰를 사용하되 여기에 사용되는 자원을 각 기기에 미리 심는 방식, 즉 로컬 웹 서버처럼 돌아가도록 해서 웹앱보다는 빠르고 OS 관계 없이 똑같은 인터페이스를 제공하거나, 리액트 네이티브나 자마린처럼 각 OS의 네이티브 기능을 최대한 활용해서 인터페이스는 조금 차이가 나지만 빠른 속도를 추구하는 방법이 있는데, Flutter는 이들 둘 과는 아예 다르다. 각 OS의 네이티브 그래픽 기능을 최대한 활용하되 각 OS의 유저 인터페이스를 무시하고 몽땅 Flutter가 자체 제공한다. 즉, 각 OS는 그림 그릴 캔버스만 제공하고 그 위에 뭘 표현할지는 Flutter가 다 그려버리는 것. 그 때문에 OS에 관계 없이 똑같은 모습의 유저 인터페이스를 제공하며, iOS에서 구글의 머티리얼 디자인을 100% 활용한 앱을 실행시킬 수 있으며 반대로 안드로이드에서 iOS 스타일의 쿠퍼티노 디자인 앱을 사용할 수도 있다. Flutter는 두 가지 디자인을 기본 제공한다. 네이티브 UI를 활용하는 것에 비해서 속도 면에서 불리하지 않은가 싶을 수 있는데 테스트 결과를 보면 상당히 준수하게 나온다. 사실 모바일 게임들은 상당수가 자체 인터페이스를 사용한다. 핫 리로드(Hot Reload) 기능을 제공하여 코드가 변경된 부분이 바로바로 디버그 모드의 앱에 반영되는 것도 특징이다. 네이티브도 코드가 변경되었을 때 전체 컴파일 및 패키징 없이도 변경 내용을 반영하는 기능이 있지만 Flutter의 핫 리로드는 이보다 훨씬 빠르고 간편하다. 애초에 Flutter 설계 때부터 이 기능을 염두에 두었다고 한다. 문제점이라면 Flutter의 개발 언어인 [[Dart]]가 별 인기가 없다는 것... 원래는 [[자바스크립트]]를 대체할 언어로 들고 나왔지만 시장에서 완전히 파묻혔으며, [[자바스크립트]]의 대안은 MS가 들고 나온 [[타입스크립트]]가 잡고 있는 실정이다. [[Dart]]나 [[타입스크립트]]나 간단한 컴파일을 통해 자바스크립트로 번역되기 때문에 이미 상당히 성숙해 있으며 개발자 저변도 넓은 자바스크립트를 대체한다기보다는 보완하는 역할 정도인데, 여기서도 [[타입스크립트]]한테 완전히 밀려서 쓰레기 취급 받던 언어다. 그냥 파묻기에는 아까웠던 건지 Flutter를 통해 [[Dart]]를 부활시킨 셈인데, [[Dart]]의 문법이 간단한 편이며 진입장벽이 낮기 때문에 [[자바스크립트]]나 [[자바]] 같은 언어들을 잘 알고 있다면 Flutter를 쓰기 위해서 [[Dart]]를 배우는 게 큰 시간 낭비는 아니긴 하다. 용량도 아직은 문제인데, 네이티브 <<< 자마린 < Flutter로 나타난다. 자마린도 .NET 프레임워크를 비롯한 덩치 큰 라이브러리를 품고 들어가기 때문에 달랑 Hello world 하나 보여주는 웹이 수십 메가에 이른다고 불만이 많은데, Flutter는 이보다 조금 더 크다.
이 문서에서 사용한 틀:
틀:각주
(
원본 보기
)
Flutter
문서로 돌아갑니다.
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보