본문 바로가기
IT/Mobile 개발

모바일앱 개발 - 플러터(Flutter) 프로그래밍

by 청바지 입고 개발자 2021. 5. 5.
반응형

 iOS 기반의 아이폰과 안드로이드OS 기반 스마트폰 등장 이후 다양한 개발언어들이 등장하고 있는데요 오늘은 최근 구글에서 공식적으로 밀고 있는 플러터 프레임워크에 대해서 알아보겠습니다. 

 

 

 

모바일앱 개발 시 사용해야 되는 언어를 고민하면서 어떤 것이 강점이 있을까 고민해 보게 되었고 최근의 트렌드를 알아보면서 플러터라는 개발언어가 최근 모바일앱 개발시 화두가 되고 있었습니다.

 

플러터(Flutter)란? 

구글에서 만든 다트(Dart)언어 기반의 크로스 플랫폼 앱 개발 프레임워크입니다. 자바나 C#의 컴파일 언어가 가진 특징을 활용해 개발할 수 있고 고성능, 고품질의 iOS, Android, 웹(tech preview) 앱을 단일 코드 베이스로 개발할 수 있는 모바일 앱 SDK입니다.

 

현재는 Flutter1.9 버젼까지 나왔습니다.

 

 

 

 

플러터 장점

1) 개발 효율

Flutter의 Hot 리로드는 쉬고 빠른 실험, UI 빌드, 기능 추가, 빠른 버그 수정을 도와줍니다. 각 클라이언트 단에서 상태를 잃지 않는 1초 내 리로드 경험이 가능합니다.

 

2) 표현력있고 유연한 ui

구글의 머티리얼 디자인 위젯, 쿠퍼티노(iOS스타일) 위젯, 풍부한 모션 API, 부드럽고 자연스러운 스크롤, 플랫폼 인식 기능을 제공합니다. 

 

3) 네이티브 수준의 성능 

플러터는 전체 화면을 C++ 기반의 고성능 스키아 엔진을 사용합니다. 스키아는 C++로 개발된 오픈소스 2D 그래픽 엔진으로 다양한 플랫폼에서 모바일앱 개발 시 사용하고 있습니다.

 

 

 

플러터 장점 - 공식홈페이지

 

 

플러터앱과 함께 모바일앱 개발 시 사용되는 다양한 개발 방법에 대해서 간단하게 알아보겠습니다.

네이티브 앱이란 ? 

각 모바일 운영체제에 맞는 언어로 개발한 앱, 예를 들면 iOS의  오브젝티브- C나 스위프트나 

안드로이드 OS의 자바 또는 코틀린 언어 기반의 앱

웹앱과 하이브리드 앱의 등장 

하나의 소스로 안드로이드와 iOS 모두에서 실행할 수 있는 방법을 고민하면서 그 결과로 웹앱과 하이브리드 앱이 등장하였습니다.  웹앱은 뷰(view)를 모바일용 웹으로 만들어서 다양한 기종과 해상도에 대응하며 빠르게 개발할 수 있습니다. 하이브리드 앱은 웹앱을 만든 후 프레임워크를 이용해 운영체제별로 동작하는 앱을 만드는 기술입니다.

 

단점은 네이티브 앱에 비해 속도가 상대적으로 느리고 애니메이션 사용에 제약이 있어서 스마트폰의 성능을 충분히 활용할 수 없었습니다. 

 

 

리액트 네이티브와 플러터 

모바일앱 개발시 네이티브 앱과 하이브리드 앱의 가진 크로스플랫폼 이슈에 대한 해결과 성능이슈를 개선하기 위해 패이스북에서 자바스크립트 기반의 리액트 네이티브(React Native)  구글에서 만든 플러터(Flutter)가 등장하게 되었습니다.

 

플러터의 계층 

 

플러터 계층 Map 출처 - 플러터 공식 홈페이지

 

플러터는 프레임워크 계층/ 엔진 계층 / 임베더 계층으로 나뉘어 있습니다.

 

- 프레임워크 계층

다트 언어로 개발된 다양한 클래스가 있으며 이것을 이용해 앱을 개발합니다.

 

- 엔진 계층 

플러터의 코어를 담당하는데 C와 C++ 언어로 만들어져 있고 데이터 통신, 다트 컴파일, 렌더링, 시스템 이벤트 처리

 

- 임베더 계층

플러터 앱이 크로스 플랫폼에서 동작하도록 플러터 엔진이 렌더링한 결과를 플랫폼별 네이티브 언어로 뷰를 생성함.

 

플러터 공식페이지

Flutter - 가장 빠른 아름다운 네이티브 앱

Flutter(플러터)는 하나의 코드베이스로 모바일, 웹, 데스크톱에서 네이티브로 컴파일 되는 구글의 아름다운 UI 툴킷입니다. Flutter는 기존 코드와 함께 동작하고, 전세계 개발자와 조직에 쓰이고

flutter-ko.dev

 

오늘은 모바일앱 개발 시 개발플랫폼인 플러터(Flutter) 앱 프로그래밍에 대해서 간단히 알아보았습니다.

 

 

반응형

댓글