본문 바로가기

DevOps/flutter

플러터(fluttter)란?

+ 세줄요약:

 - 단일소스로 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, 웹
장점 닷넷  기반 웹 개발자에게 친숙함 빠른 성능
    핫 리로드 핫 리로드
    코드 푸시  
단점 국내 활용도 낮음 웹 개발을 모르면? 어렵다 최근 출시
    자바스크립트 브릿지를 통해 
병목현상 발생
지원 라이브러리가 적음

 

flutter 한국 홈페이지: https://flutter-ko.dev/

 

'DevOps > flutter' 카테고리의 다른 글

2장 Mac Flutter 개발환경 설정  (0) 2021.08.05
1장 플러터 개발 소개 (App Brewery)  (0) 2021.08.03