플러터(Flutter)란 무엇인가?
단일 코드베이스로 모바일(Android, IOS) 개발, 웹 개발, 데스크탑 개발, 임베디드 개발등이 가능한 크로스 플랫폼이다.
Google에서 개발하고 있는 장차 Fuchsia OS 위에서 UI / UX를 담당하게 될 오픈소스 프레임워크이다.
구글에 맞춘 Meterial 디자인과 애플에 맞춘 Cupertino 디자인도 가능하다.
왜 크로스 플랫폼을 선택해야하는가?
사용하기에 앞서 각 플랫폼별 native 언어가 있는데 불구하고 크로스 플랫폼을 선택을 왜 하는지에 의문이 있을 것이다.
ex) 현재 native 개발자인데 크로스 플랫폼을 사용해도 생산성 차이가 없을 것 같다 등
답 : NAVER 지식IN 개발 후기를 보면 알 수 있듯이 기존 native 개발과 크로스 플랫폼으로 따로 같은 개발을 해봤을 시 생산성이 3~5배로 차이가 날 정도로 좋다. 물론 개인마다 차이가 있겠지만 최소 1.5배 ~ 2배 차이가 나면서 멀티 플랫폼 개발을 한번에 하는게 압도적인 생산성 차이가 난다고 생각한다.
ex) 크로스 플랫폼으로 개발을 해도 결국 native로 변경해야하는 것 아닌가? 등
답 : Computing이나 민감한 디바이스의 특정 기능을 요구하는 것이 아니므로 반드시 native가 필수일 필요는 없다. 즉, 처음 모바일 설계를 할 시 구분을 하고 넘어가야한다 대부분의 모바일 앱은 Computing이나 민감한 디바이스의 특정 기능을 요구하지 않으며 사용한다고 하면 크로스 플랫폼을 선택하지 않는게 맞기 때문이다.
ex) native에서 되는게 크로스 플랫폼에서 개발 안되는 것 아닌가? 등
답 : 현재 대부분의 기능을 플러그인을 통해 구현이 되어있으며 점차 더 개발될 것이기 때문에 걱정할 필요는 없다고 생각한다.
플러터(Fluter) vs 리액티브 네이티브(Reactive Native) 비교
플러터(Flutter)
장점
- 리액티브 네이티브(Reactive Native)처럼 Bridge를 거치지 않고 각 플랫폼에 맞는 native 언어로 컴파일된 후바로 Skia엔진을 통해 canvas에 렌더링하기 때문에 각 플랫폼의 native 언어와 비슷한 수준의 성능을 보여준다.
- 리액티브 네이티브(Reactive Native)의 인기를 쉽게 따라잡았으며 인기의 추세가 더 크다.
단점
- 리액티브 네이티브(Reactive Native)보다 구직하기 어렵다. (채용사이트 구인 게시글 수를 비교하였을 때)
리액티브 네이티브(Reactive Native)
장점
- 기존 React 개발자이면 빠르게 학습하여 모바일 개발이 가능하다.
- 플러터(Flutter)보다 구직하기가 더 쉽다. (채용사이트 구인 게시글 수를 비교하였을 때)
단점
- Bridge를 사용하여 플러터(Flutter)보다 렌더링 성능이 떨어진다.
개발 특징
1. Hot Reload(핫 리로드) : 모바일 앱이 실행되고 있는 상태에서, 앱의 상태를 유지한 채로 변경사항을 적용시켜 주어 빠른 개발을 할 수 있다.
2. Hot Restrat(핫 리스타트) : 모바일 앱이 실행되고 있는 상태에서, 변경사항을 적용시켜준다. 단, 앱의 상태는 초기화 된다. Hot Reload(핫 리로드)보다는 시간이 조금 더 걸리지만, 앱을 재실행하는 것보다는 훨씬 빠르게 변경사항을 확인할 수 있다.
기존 Native의 명령형 스타일 -> 선언형 스타일로 하게 되어 개발하기 더 쉽다.
// 명령형 스타일
b.setColor(red)
b.clearChildren()
ViewC c3 = new ViewC(...)
b.add(c3)
// 선언형 스타일
return ViewB(
color: red,
child: ViewC(...),
)
플러터(Flutter)로 만들어진 기업 어플리케이션
- 네이버 지식IN
- GS SHOP
- Google AdSense, Google Assistant, Google Pay
- BMW
- Toyota
- Alibaba
- Tencent
'플러터' 카테고리의 다른 글
flutter ios 배포 시에만 흰 화면이 나오는 문제 해결 방법 (Flutter) (0) | 2023.09.04 |
---|---|
flutter build error시 해볼것 (1) | 2022.09.20 |
flutter ios build 시간 단축하기 (firestore 사용 시) (1) | 2022.09.20 |
NaverThirdParty 에러 해결 방법(플러터) (0) | 2022.09.20 |
user name or password in incorrect (flutter)(ios simulator) (0) | 2022.06.17 |