Flutter - Build apps for any screen
Flutter transforms the entire app development process. Build, test, and deploy beautiful mobile, web, desktop, and embedded apps from a single codebase.
flutter.dev
구글에서 만든 ios, android를 모두 아우를 수 있는 크로스브라우징 & 크로스 플랫폼 프레임워크이다.
Flutter 하나만으로 모바일 앱, 데스크톱 앱, 웹 앱이 모두 개발이 가능하다는 것이다. (심지어 IoT UI개발도 가능!)
하나의 코드베이스로 프로젝트 하나를 개발해서 apk로 빌드하면 안드로이드 앱이, web 빌드를 하면 웹 앱이 만들어지는 프레임워크 ~.~
(리액트로 예를 들면 리액트 앱 하나를 개발해서 안드로이드 아이폰 웹 데스크톱 앱 개발이 다 가능하다는 소리다 대박!)
Dart programming language
Dart is an approachable, portable, and productive language for high-quality apps on any platform.
dart.dev
Dart라는 새로운 언어를 배워야 해서 초기 진입장벽이 있기는 하지만,
만약 시스템 프로그래밍 언어(C,C++,java)를 배운 사람이라면 문법이 거의 유사하기때문에 빠르게 접할 수 있다.
컴공전공자가 매우 쉽게 배울 수 있는 프레임워크라네
그리고 C와 문법이 비슷하면서도, String 타입이나 async/await 비동기 처리도 지원을 하니 만약 javascript까지 알고 있다면 더욱 배우기 쉬울 것이다
또한, 배포단계에서 AOT (ahead of time compile)기반으로 컴파일되기때문에 실행시점에 컴파일되는 JIT(just in time)방식과 달리 초기 실행속도가 빠르고, 보안면에서 우수하다는 장점이 있다.
*aot : 소스코드를 기계어로 미리 변경 후 컴파일. 런타임에서 별다른 작업이 필요없음.
<-> jit : 실행시점에 그때그때 코드를 컴파일
더 신기한건, 개발시에는 JIT로 컴파일 된다는 점! 그래서 개발시에는 즉각적으로 변화를 확인할 수 있고 디버깅도 쉽게 할 수 있다는 점이다
물론 단점도 있다.
Flutter는 SEO 최적화가 어렵고, 기계어가 포함되기 때문에 파일 크기가 커질 수 있다. 또한, UI 개발에 최적화되어 있어 애플리케이션 계층의 작업을 처리하는 데는 강점이 있지만, 하드웨어 계층의 작업을 처리하는 데는 한계가 있다.
이러한 작업은 Java, Kotlin, Swift와 같은 네이티브 언어를 사용하는 것이 적합하다.
Flutter는 하드웨어를 직접 제어하기보다는 API(플러그인)나 라이브러리를 통해 간접적으로 하드웨어와 연동하는 애플리케이션 개발에 적합한 프레임워크이다.
끝
'flutter' 카테고리의 다른 글
플러터 Flutter 로 웹뷰 만들기 (in android) (1) | 2024.11.24 |
---|---|
[배포 실패] Error: The type 'JSObject' can't be used as supertype. 해결법 (0) | 2024.09.23 |