Flutter
Google에서 개발하고 관리하는 오픈 소스 크로스 플랫폼 모바일 애플리케이션 개발 프레임워크
- Dart라는 언어를 사용해 개발한다.
- 기본적으로 C언어나 Java 문법과 거의 같다.
- 기존 프로그래밍 언어들의 특징들이 많이 보인다.
- 기존 ui를 버리고 자체적으로 ui를 렌더링 해, 안드로이드 앱에서 iOS 디자인을, 반대로도 가능하다.
- 플러터의 ui는 모두 위젯으로 이루어져 있다.
Dart
Google이 JavaScript를 대체하기 위해 2011년에 개발한 웹 프로그래밍 언어이다.
- Native 코드로 안드로이드나 iOS용 앱을 동시에 개발할 수 있다.
- Java랑 유사한 문법으로, 몇 가지 특징만 숙지하면 쉽게 개발할 수 있다.
하나의 코드 베이스로 두 플랫폼에서 제공되는 서비스를 개발할 수 있다.
하나의 코드베이스로 Native 코드를 호출할 수 있고, 각각의 플랫폼에 대해서 많이 공부하지 않아도 자바스크립트, C#, Dart에 대해서 안다면 개발을 시작할 수 있다.
Flutter의 장점
- Material 디자인과 Cupertino
: Flutter는 Android와 iOS의 대표 디자인 가이드를 기본적으로 제공한다. Android와 iOS에서 같은 material 디자인을 사용하더라도 플랫폼에 따라 다르게 출력되는 부분을 각각 디자인 가이드에 맞게 화면을 그립니다.
- Dart를 사용하나 Native 코드도 사용할 수 있다.
: 크로스 플랫폼이기에 해당 OS에 최적화된 앱을 만들기 위해 Native와 Dart를 섞어서 사용한다.
- Hot reload를 제공한다.
: 코드 변경/수정 후 저장하면 변경사항을 즉각적으로 확인할 수 있는 기능으로, 실시간으로 앱을 테스트 및 디버깅, 빠른 개발을 할 수 있게 도와준다.
- 다양한 플랫폼 개발이 가능하다.
Flutter의 단점
- 코드를 고치려면 새 버전을 배포해야 한다.
- 웨어러블 디바이스 앱에 약하다.
- C/C++ 라이브러리 호출이 안 된다.
- 지원되는 플러그인이 부족하다.
Flutter를 사용하는 이유
1. 시간 내에 좋은 성능의 앱을 개발할 수 있다.
하나의 언어에 대해서만 학습하면 되기 때문에, 빠른 시간에 iOS, Android 앱을 개발할 수 있다.
2. 디버깅과 크로스 플랫폼
Flutter는 컴파일 할 때부터 에러 여부를 판단해서 알려주기 때문에 문법적인 오류로 인한 디버깅을 줄일 수 있다.