+ 세줄요약:
- 단일소스로 iOS 모바일, 안드로이드 애플리케이션을 개발할 수 있는 UI 프레임워크이다.
- 구글에서 만들고 Dart 언어로 개발한다.
- 공식 개발환경 IDE는 VSCode와 안드로이드 스튜디오이다. (인텔리제이도 가능하다고 함)
+ 유사 기술:
- 페이스북 리액트 네이티브 (React Native)
- 마이크로스프트 자마린 (Xamarin)
- 어도비 폰갭 (PhoneGap)
+ 대표앱: 네이버지식인
- 업데이트 후 욕을 엄청 먹고 있는데 flutter 기술문제인지 잘못만든건지..
+ 시스템 구조 (프레임워크, 엔진, 임베더)
- 프레임워크 (framework)
> 다트 언어로 사용
> 구글 Materal Design (머터리얼 디자인), 애플 Cupertino(쿠퍼티노) UI 지원
> 동일한 소스코드에서 임포트문만 변경하면 바로 전체 룩앤필 변경 가능
> 모든 것이 위젯으로 이루어짐
- 엔진 (engine)
> C/C++ 로 구현됨
> 고성능 자체 렌더링 엔진을 통해 네이티브만큼 매우 가볍고 빠름
- 임베더 (embedder)
> 안드로이드와 iOS에서 동작할 수 있게함
+ 플러터의 장점
- 한번에 안드로이드, iOS 개발가능, 웹도 가능하다고 하던데? 즉 두번만들 필요가 없다.
네이티브 앱 vs 플러터앱 비교
안드로이드 네이티브 앱 | iOS 네이티브 앱 | 플러터 | |
개발언어 | 코틀린 | 스위프트 | 다트 |
자바 | 오프젝티브 C | ||
C, C++ | |||
UI 디자인 | 머터리얼 | 쿠퍼티노 | 머터리얼, 쿠퍼티노 |
- 가볍다
> 안드로이드 앱을 개발하려면?
코틀린, 자바를 배우고 UI를 위해 XML을 작성,
빌드 도구(gradle)을 배워야하고 안드로이드 라이프 사이클 또한 공부해야함
> 플러터는?
모든 것이 위젯으로 구성
main.dart 파일 하나만 있으면 안드로이드, iOS앱 자동변환 가능
안드로이드 앱 vs 플러터 앱 비교
안드로이드 네이티브 앱 | 플러터 앱 | |
앱 구성요소 | Activity | 위젯 |
Servie | ||
Content Provider | ||
Broadcast Receiver | ||
소스코드 | MainActivity.java | main.dart |
레이아웃 XML | activity_main.xml | X |
설정 XML | AndroidManifest.xml | X |
빌드 XML | build.gradle | pubspec.yaml |
> 빠르고 아름다운 앱
다양한 위젯을 기본 으로 제공
애니메이션을 넣어 감성적인 앱을 손쉽게 만들 수 있음
초당 60프레임의 빠른 화면 표시
> 웹 개발자가 쉽게 배울 수 있음
많은 동작 방식이 웹과 비슷하여 웹 개발자나 css 개발자도 손쉽게 플러터를 시작할 수 있음
> 구글의 지원
2018년 12월에 플러터 1.0 정식 버전이 출시된 이후 빠르게 기능을 확장하고 있고
공식 홈페이지에서 풍부한 개발자 문서를 제공하고 있음
+ 다른 플랫폼의 단점을 극복
자마린 vs 리엑트 네이티브 vs 플러터 비교
자마린 (Xamarin) | 리엑트 네이티브 (react Native) | 플러터 (Flutter) | |
개발 언어 | C# | 자바스크립트 | 다트 |
출시 연도 | 2011년 | 2015년 | 2017년 |
지원 플랫폼 | 안드로이드, iOS, 맥 OS | 안드로이드, iOS, 웹 | 안드로이드, iOS, 웹 |
장점 | 닷넷 기반 | 웹 개발자에게 친숙함 | 빠른 성능 |
핫 리로드 | 핫 리로드 | ||
코드 푸시 | |||
단점 | 국내 활용도 낮음 | 웹 개발을 모르면? 어렵다 | 최근 출시 |
자바스크립트 브릿지를 통해 병목현상 발생 |
지원 라이브러리가 적음 |
'DevOps > flutter' 카테고리의 다른 글
2장 Mac Flutter 개발환경 설정 (0) | 2021.08.05 |
---|---|
1장 플러터 개발 소개 (App Brewery) (0) | 2021.08.03 |