본문 바로가기
스파르타/Flutter

[Flutter] Why Flutter? (week 1)

by bakcoding_sparta 2023. 4. 4.

Why Flutter 

앱 개발 방법에는 크게 네이티브 앱(Native App)과 크로스 플랫폼 앱(Cross Platform App) 두 가지가 있다.

 

네이티브 앱

원래 앱을 개발하는 방식이다.

모바일은 구글의 안드로이드와 애플의 iOS로 양분되어 있다. 

구글과 애플은 각각 플랫폼에서 사용할 수 있는 앱을 개발하는데 필요한 방법을 제공하는데 이를 SDK(Software Development Kit)이라고 한다. 

 

Android

프로그래밍 언어 : Java, Kotlin

개발 툴 : 안드로이드 스튜디오

개발 방법 : Android SDK

 

iOS

프로그래밍 언어 : Objective-C, Swift

개발 툴 : XCode (macOS에서만 개발이 가능하다.)

개발 방법 : iOS SDK

 

각 회사에서 제공하는 SDK를 통해서 해당 플랫폼에서 서비스가 가능한 앱을 개발할 수 있다.

 

네이티브 앱을 통해서 개발을 하게 되면 성능이 가장 빠르고 최신 기능을 바로 적용할 수 있다는 장점이 있지만 두 곳에서 모두 서비스를 해야 할 경우 각각의 플랫폼에 맞춰 다른 언어로 앱을 두 번 만들어야 하며 리소스 또한 많이 들어간다는 단점이 있다.

 

네이티브 앱으로 개발한 대표적인 iOS의 앱 중에 Photo Widget이라는 앱이 있다.

애플에서 배경화면 아이콘 위젯을 제어하는 방법이 제공되자 빠르게 해당 기능을 적용하여 앱을 개발하여 성공하였다. 이 처럼 애플에서 제공하는 특정 기능을 활용한 앱을 개발할 때는 네이티브 앱을 만드는 게 적합하다고 할 수 있다.

 

크로스 플랫폼 앱

하나의 프로그래밍 언어와 소스 코드로 안드로이드와 iOS앱을 모두 개발할 수 있는 방법으로 대표적으로 React Native와 Flutter가 있다.

 

React Native

프로그래밍 언어 : JavaScript

메타에서 출시한 React라는 웹을 만드는 라이브러리를 앱 개발용으로 만든 프레임 워크이다.

 

Flutter

프로그래밍 언어 : Dart

구글에서 출시한 프레임 워크이다.

 

* Frame Work : 특정 규칙대로 코드를 작성하면 앱을 만들어 주는 코드 뭉치

 

크로스 플랫폼 앱은 네이티브 앱의 성능을 뛰어넘지 못하지만 하나의 언어로 두 플랫폼에서 모두 서비스할 수 있는 앱을 만들 수 있다는 강력한 장점을 가지고 있다. 

 

네이티브 앱의 경우 각각의 플랫폼마다 인력과 시간이 개별적으로 필요하지만 크로스 플랫폼 앱은 하나의 개발에 모두 집중하여 개발하면 되기 때문에 생산성이 월등히 뛰어나다.

 

Flutter

크로스 플랫폼 앱을 개발하는 방법의 대표적인 방법인 React와 Flutter 둘 중 Flutter를 선택하는 데는 크게 두 가지 이유가  있다.

 

1. 자료

개발을 학습하는 데 있어서 가장 중요한 것은 자료의 양이다. Flutter는 React보다 늦게 배포된 후발 주자이지만 더 많은 자료와 커뮤니티가 형성되어 있고 공식 문서 또한 관리되고 있기 때문에  학습하는 입장에서 매우 유리하다.

Flutter 공식 Docs

 

2. 성능

안드로이드 개발에 있어서 React보다 성능적으로 뛰어나며 안드로이드의 네이티브 앱을 개발했을 때와 비교해도 크게 밀리지 않는 성능을 보여준다.

출처 - https://medium.com/swlh/flutter-vs-native-vs-react-native-examining-performance-31338f081980

 

각각의 방법들의 특징들을 종합했을 때 Flutter를 통해 개발하는 것이 이점이 많기 때문에 Flutter에 대해서 학습을 하기로 한다.