Flutter란?
Google이 만든 Dart언어를 사용한, 멀티 플랫폼 개발 프레임워크
Flutter 특징
IOS, Android, MacOS, Windows, Linux, 사물인터넷, 임베디드 앱 개발 가능! ( 멀티 플랫폼의 의미 )
( React는 임베디드 개발 불가능 )
Flutter 엔진을 사용해, 앱의 여러가지 요소를 "커스터마이징"할 수 있고, 아주 강력하다.
Flutter 프로젝트 시작하기
Window
Chocolatey로 다운 ( 해당 방법 사용하면, 아래 내용 건너뛰어도 됌 )
choco install flutter
Flutter SDK 다운
프로젝트 폴더속에, 압축해제
환경 변수 추가
1. 시작 -> 검색 -> "환경 변수" 검색
2. 환경 변수에서 Path 찾기
3. "압축푼 sdk 위치\flutter\bin" 을 사용해, Path에 추가한다.
Mac
M1이후 Apple Silicon Mac인 경우, 로제타 설치
# 로제타 설치
sudo softwareupdate --install-rosetta --agree-to-license
SDK 설치
프로젝트 폴더 이동 후, 압축해제
cd "폴더 경로"
# 아래는 예시일뿐, 다운받은 압축파일이름으로 바꿔주셔야 합니다.
unzip ~/Downloads/flutter_macos_arm64_3.3.10-stable.zip
환경변수 추가
# 절대경로로 작성해주세요
export PATH="$PATH:폴더경로/flutter/bin"
Flutter 프로젝트 만들기
flutter create 프로젝트명
Flutter 프로젝트 실행하기
cd 프로젝트명
flutter run
... 저 뒤 어딘가
Flutter 구조
네이티브 언어( IOS - Swift, Android - Java )를 사용해서 운영체제와 직접 통신하는 방식이 아니다.
C, C++로 만들어진 "엔진"이, Flutter로 만들어진 UI를 렌더링 해준다.
1. 개발자가 Flutter 코드 작성
2. Flutter가 코드 분석해서, 해당 기능에 맞는 엔진 실행
3. 실행된 엔진이 UI렌더링
[ C, C++ 컴파일 ]
runner IOS 프로젝트로 컴파일
NDK 프로젝트로 컴파일
모든 작업은, 운영체제가 작동하지 않고, Flutter엔진이 한다.
( 이런 특징 때문에, 멀티 플랫폼이 가능하다 - 플랫폼 제약이 없다 )
( 네이티브코드를 사용하지 못한다 - React Native는 가능 )
반응형