본문 바로가기

Study/Flutter

[Flutter] 왜 Flutter?

Flutter는 Google이 만든 오픈 소스 크로스 플랫폼 GUI 애플리케이션 프레임워크이다.

 

지구상에서 수많은 사람들이 사용하는 모바일 OS는 크게 양분화해보면 Apple의 iOS와 Google의 Android이다. 두 OS 시장에 어떤 서비스를 개발하여 출시하고자 한다면 Swift와 Kotlin(또는 Java)으로 앱을 각각 개발해야 하고, 이를 각 스토어에 출시하면 된다.

 

스타트업처럼 규모가 작은 회사라면 두개의 OS에 대응하여 독립적으로 개발하는 것은 어찌보면 힘들 수 있다. 각 언어를 사용할 줄 아는 개발자를 구해야 하고, 한 쪽의 개발자가 다양한 이슈에 직면하게 되면 개발 기간은 지연되게 된다.

 

하나의 코드로 Android와 iOS를 모두 대응할 수는 없을까? 이 질문에 대한 대답으로 React Native나 Xamarin처럼 크로스 플랫폼 애플리케이션 프레임워크/라이브러리가 세상에 등장하였다.

 

React Native는 사용해본 경험이 있는데, 기존 웹에서 사용하던 React.js와 언어가 같고, 모바일이라고 하더라도 형태가 아주 많이 유사하여 금방 배웠던 것으로 기억한다. React.js를 그대로 승계받아 모바일에서 돌아가도록 만든 것이라고 보면 될 것 같다.

 

React의 장점을 그대로 활용할 수 있다. 컴포넌트 단위로 개발하기 때문에 재사용이 가능하다. 버튼 하나를 만들어 두고 각각의 액티비티에서 그 버튼을 호출해서 바로 사용할 수 있다. 최고의 장점이다. 그리고 JavaScript를 다룰 줄 아는 프론트엔드 개발자나 Node.js를 사용하는 백엔드 개발자라면 러닝 커브가 적다는 것, 이것도 장점이라 할 수 있겠다. 가장 큰 장점은 하나의 코드로 iOS, Android 둘 다 빌드가 가능하다는 점.

 

물론 단점도 존재하기 마련이다. 치명적인 단점은 Native Bridge를 사용하여 JavaScript Thread와 Native Thread를 연결시켜 하이브리드 앱으로 동작하기 때문에 병목현상 등이 있어 속도가 느리다. 네이티브로 개발하는 것보다 성능이 뒤쳐진다.

 

그리고 오픈소스이기 때문에 누구나 사용하고 생산성은 오를지 모르겠으나, 버그가 발견된다면 그 버그가 수정되어 패치될 때까지 기다리고 기다려야 한다..

 

다른 프레임워크/라이브러리는 써본 적이 없어서 잘 모르겠지만, 아무튼 React Native는 여태까지 마이너 업데이트가 주를 이루었고, 업데이트 했더니 갑자기 어떤 기능이 안돌아가거나 하는 적이 많았다.

 

Flutter도 1버전까지는 쳐다도 안보는 프레임워크라고 들었는데, 2버전 이후 업데이트 부터는 괜찮다는 소문을 들었다. 그리고 항상 크로스 플랫폼 애플리케이션에 관심이 많았기 때문에 도전은 해보려한다.

 

오늘은 우선 개발 환경만 세팅해두었다.

 

1. Android Studio 설치하기

2. Android Studio 플러그인에서 Flutter 찾아 설치하기

3. Flutter SDK 설치하기(https://docs.flutter.dev/development/tools/sdk/releases?tab=macos)

4. Futter SDK 환경변수 설정하기

4-1. Flutter SDK 환경변수는 Flutter SDK를 다운받고 압축을 풀어준 경로에 있는 flutter 디렉토리의 bin으로 잡아준다.

 

4-2. 그리고 환경변수 등록 후 이를 반영해준다.

5. 그 다음으로 flutter doctor를 실행하여 Flutter를 개발하는데 어떤 이슈가 내 컴퓨터에 존재하는지 살펴본다.

지금 PC에는 Xcode가 설치되어 있으나 뭔가 제대로 갖춰져 있지 않은 것 같다..

개발하면서 차차 부족한 부분을 채워나가야 할 것 같다.

 

CocoaPods은 iOS 또는 macOS 앱을 실행시키기 위해 필요하다. 이것도 설치가 안되어 있다고 하니 설치하면 될 것 같다.

 

다음 포스팅부터는 본격적으로 코딩해보는 것으로,...