Flutter란?
Flutter란 구글에서 제공하는 개발 프레임워크이다. flutter를 기본적으로 가동시키는 프로그래밍 언어는 dart라고 해서 극단적인 object-oriented programming (객체 지향 프로그래밍)을 사용하는 언어이다. 그런데 자바나 c# 같은 다른 객체 지향 프로그래밍 언어들 보다는 syntax가 간단한 편이라 쉽게 배울 수 있었다. (글쓴이는 python을 메인 언어로 배우고 사용하는 중이다.)
Flutter와 dart 둘다 구글에서 제작하였다. 이는 구글이라는 같은 집단 내에서 계획된 프로젝트이기 때문에 성능 업그레이드나 flutter의 특정 기능을 위해 dart 언어의 구조를 변경해야하는 경우가 발생할 시, 능동적이고 빠르게 그러한 변경 요구들을 반영할 수 있다는 것을 보여준다. 이 외에도 multi-platform framework 이기 때문에, 하나의 프로그래밍 언어와 프레임워크를 통해서 안드로이드, ios, 윈도우, MacOS, 리눅스까지 다양한 플랫폼에서 앱을 개발하고 런칭할 수 있다는 것이다.
하지만 이를 위하여, flutter는 react native와는 다른 구조를 가지고 있다. React native 를 아직 잘 모르는 입장에서 정확한 차이점을 설명하기는 힘들지만, reactive native의 경우에는 사용되는 기기, android or ios 와 직접적인 소통을 하는 반면, flutter 는 독자적으로 개발한 엔진을 통해서 ui를 구현한다. 그런데 이 엔진의 성능이 엄청나게 좋은 모양이다.
Fig 1을 보도록 하자. 이는 Flutter documentation 사이트에서 제공하는 flutter의 대략적인 구조이다. 가장 위쪽에 보면 Dart를 이용하여 유저들이 앱을 만들 수 있는 부분인 Framework 부분이 있고,그 밑에 C 와 C++ 를 이용한 engine 부분이 있는데, 이 부분에서 ui를 렌더링하는 등의 작업을 한다. (C와 C++ 를 더 공부하려고 하는 이유) 그리고 마지막으로 embedder 부분이 우리가 flutter 앱을 띄우고 사용하는 부분인 기계, android 혹은 ios 등등의 기기 쪽이다. 이렇게만 보면 정말 명쾌하게 flutter의 각각의 부분이 어떻게 앱을 구현하는지 알 수 있다.
이제 이 Flutter를 어떻게 하면 활용할 수 있는지에 대해 알아보겠다. 참고로 글쓴이는 ubuntu 20.04를 사용하고 있다.
Flutter 작업환경 세팅하기
1. Flutter SDK 설치하기
Flutter SDK를 설치하는 방법에는 두가지 방법이 있다.
첫번째는 snap을 이용하는 것, 그리고 두번째는 wget을 이용하는 것이다. 개인적으로는 wget을 사용하는 것을 선호하지만, 그냥 최대한 간단히 설치를 완료하고 싶다면 snap을 이용하는 것을 추천한다.
- snap을 이용한 방법
sudo snap install flutter --classic
이 방법을 사용하였다면, 설치가 완료된 이후에는 다음과 같은 커맨드를 통하여 Flutter SDK path를 확인 할 수 있다:
flutter sdk-path
- wget을 이용한 방법
이 방법을 사용할 경우에는 그냥 Flutter 설치 가이드 에 있는
1) 저 설치 버튼을 클릭하여 다운을 받거나, 2) 저 버튼을 우클릭하여 설치 링크를 복사한 후 터미널 상에서 wget을 사용하여 저 설치파일을 다운받을 수도 있다.
1번 방법을 사용한다면 자동으로 /home/Downloads 디렉토리로 다운로드 된다.
2번 방법을 사용하는 경우에는 우선 터미널에서 /home/Downloads 디렉토리로 이동한 후에 다음의 커맨드를 사용하여 flutter 설치 파일을 다운로드 받을 수 있다. (23.04.21 금요일 기준)
wget https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.7.12-stable.tar.xz
(언제 설치파일의 링크가 변할 지 모르니 위 커맨드를 복사하여 사용하지 말고 위의 방법을 통해서 링크를 얻는 것을 추천한다.)
위에 설명된 부분까지 완료하였다면, 이제 Downloads 디렉토리에 다운로드 되어진 flutter 파일들을 설치해주어야 한다. 이 과정을 위하여 /home 디렉토리에 Flutter를 위한 다른 디렉토리를 만들어주는 것을 추천한다.
플러터 실팽 파일들을 위치시킬 디렉토리를 만들었다면, 그 디렉토리 안으로 이동하여 다음과 같은 커맨드를 사용한다.
tar xvf ~/Downloads/flutter_linux_{version_info}-stable.tar.xz
그러면 현재 위치한 디렉토리로 flutter가 설치된다. 설치가 완료되었다면, 이제 우리의 ubuntu 시스템의 PATH에 flutter를 등록시켜 줘야한다. zsh를 쓰고 있다면 .zshrc, bash를 쓰고 있다면 .bashrc 등등 본인이 쓰고 있는 터미널의 설정 파일로 간후에 다음의 코드를 넣어준다.
export PATH="$PATH: {pwd}/flutter/bin"
(여기서 말하는 {pwd}는 flutter가 설치된 디렉토리를 말함.)
여기까지 완료하였다면 source {설정 파일}을 통해 새롭게 추가된 설정을 터미널에 적용시킨다.
flutter doctor
snap을 이용하던 wget을 이용하던 여기까지 완료하였다면 이제는 flutter doctor를 사용하여 flutter를 구동시키는데에 필요한 프로그램들을 알아볼 수 있다.
flutter doctor
여기까지 실행할 수 있다면 flutter를 시작하기 위한 준비는 다 끝이 났다. flutter doctor에서 설치하라고 나오는 프로그램을 설치하고 나서는 이제 정말 플랫폼이 어디든지 본인이 원하는 바를 구현시켜 서비스를 제공할 수 있을것이다.