[Flutter] 플러터에 대해 (플러터 개요)
플러터란 무엇인가?
기존 앱 개발의 문제점
개발자 Bob은 IOS로 A앱을 개발했다. A앱은 인기가 많아져서 많은 사용자가 생겼지만 IOS에서만 사용할 수 있다는 문제가 있었다. 안드로이드 버전으로 출시해달라는 무수한 요청이 들어와 Bob은 안드로이드 책을 사서 공부하고 다시 개발하여 GooglePlay와 AppStore에서 모두 출시할 수 있게되었다.
하지만 이제 앱을 업데이트할 때마다 PlayStore와 AppStore에 모두 반영해주어야 한다.
(코드 기반은 두개로 늘어나 더 많은 작업을 해야한다.)
여기서 끝이 아니다. 이제 그는 아이폰, 아이패드 뿐만 아니라 안드로이드 생태계에 맞는 화면의 레이아웃까지 디자인해주어야 한다. 여기서 Flutter가 등장한다.
Flutter의 등장
Flutter는 안드로이드와 iOS, 각기 다른 환경에서의 개발로 인해 일어나는 문제들을 해결해주었다.
Android, iOS, Web, Desktop에 상관 없이 장치에 빈 창을 요청하여 Flutter에 미리 빌드되어 있는 다양한 위젯들을 제공받아 간단하게 사용하고 배치할 수 있다.
예를 들어 기존의 iOS 앱을 Java로 Andorid 앱을 만들고 JavaScript로 웹 앱을 만들어 업데이트하고 유지하는 것은 정말 복잡하고 어려운 일이다. 반면 Flutter에서는 단 하나의 언어만 알면 된다. 바로 Dart이다.
Dart는 다른 객체지향 프로그래밍 언어들과 매우 유사한 구조를 가지고 있으며 다른 언어들과 차별되는 기능들도 있다. Google AdWords 및 Google Fiber와 같은 도구들이 있으며 그 활용도는 점점 커질 것이다.
현재 앱 개발자의 가장 큰 어려움 중 하나는 디바이스 별 다른 화면 크기와 비율이다.
아이폰, 아이패드, 아이패드 프로.. Andorid로 가면 상황은 더 악화된다. Android는 오픈소스 이므로 스마트폰을 만들고자 하는 모든 사람들이 백만 가지 유형의 기기에서 실행될 수 있다. 이에 Flutter는 웹에서 많은 영감을 얻었다. 웹사이트에서는 다양한 기기에서 화면이 호출되기 때문에 웹에는 레이아웃, 그리드 등 인터페이스를 배치하는 간단하고 다양한 기술들이 개발되어 있다.Flutter는 웹 디자인의 핵심 개념을 많이 갖고 있으며 웹 기술들 또한 허용하고 있다.
네이티브 언어의 기능을 지니면서 웹개발의 직관적이고 편리함 또한 갖고있다는 뜻
또한 Flutter는 Hot Reload 기능도 제공한다.
앱을 개발할 때 iOS에서 코드를 수정하고 확인하려면 앱을 실행해보아야 한다. 코드를 저장하고 컴파일하고 앱을 실행하여 화면에 표시하기 까지 10~30초가 걸린다. 하지만 Flutter에서는 코드를 저장하는 순간 Flutter에서는 변경된 디자인과 로직을 바로 눈앞에서 확인할 수 있다. 웹 사이트에 새로고침 버튼이 있는 것과 거의 같다. 무언가를 바꾸자 마자 저장을 누르면 앱의 변경사항을 확인할 수 있어 기존 앱개발보다 더 나은 개발경험을 할 수 있을 것이다.
마지막으로 Flutter는 원본 소스 코드에 쉽게 엑세스할 수 있다.
Fluter는 오픈소스이기 때문에 버튼위젯의 구현방식을 확인하려면 위젯의 코드가 어떻게 구성되어 있는지 볼 수 있다. 즉 화면의 모든 항목에 대해 Flutter팀이 작성한 원본 코드를 볼 수 있고, 더 나아가 이를 이용해 커스터마이징도 할 수 있다. 이를 통해 당신은 위젯이 작동하는 방식을 더 쉽게 이해할 수 있을 것이다.
인용 출처
https://www.udemy.com/course/flutter-bootcamp-with-dart/
The Complete 2021 Flutter Development Bootcamp with Dart
Dr. Angela Yu, Developer and Lead Instructor