새로운 프로젝트로 플러터를 선택하는 이유는 무엇일까요?
결국 하나의 코드 베이스를 유지하는 것!
플러트는 한 가지 언어인 "Dart"만 알게 되면 됩니다.
iOS, Andorid, Web .. 등 많은 것에 대해서 모르고 오직 "Dart" 한 가지만 잘하면 된다는 것입니다.
다트는 다른 언어들과 매우 비슷한것을 알 수 있으며,
또한 구글 내부적으로 사용되고 있습니다.(그동안 구글이 없앤 게 많지만.. 애도..)
하나의 코드 베이스지만,
Flutter를 사용한다면 매우 단순하고 유연한 레이아웃 시스템을 이용하여 사용자 인터페이스(UI)를 제공할 수 있습니다.
사용자 인터페이스는 개발자들이 감당하는 어려움 중 하나입니다.
(새로운 스마프폰이 나올때마다 해상도를 찾아보는 짜릿함이란,, 갤럭시 폴드... 넌 진짜 신선함이었어..)
iPhone 3G가 처음 출시되었을 때 화면 크기와 가로 세로 비율은 단지 3.5인치 하나였습니다.
그러나 현재는 다양한 종류의 장치들이 많습니다.
(iPad Pro, iPad, iPad Mini, iPhone ... )
여기서 더 나아가 안드로이드를 생각해본다라면,
화면 크기에 따라, 가로 세로 비율이 달라지기의 위의 이미지와 같이 다양한 기기값을 확인할 수 있습니다.
개발자로서 이 모든 것을 대처하고, 앱의 외관을 좋게 하기 위해 많은 노력을 합니다.
과거에는 작은 스크린이기에 표현할 수 있는 것이 한계가 있기에 제약조건을 사용해도 문제가 없었습니다.
그러나 요즘은 커지기 시작하면서 계속해서도 커지기도 하지만,
그렇기에 화면에 많은 요소를 넣을 수 있게 되며 그렇다는 것은 복잡해진다는 것입니다.
웹사이트를 생각해보자.
접속하는 방법은 다양해지고 있다, 모바일, 태블릿, PC와 같이 다양한 환경에서 웹사이트를 불러오고 있다.
그렇기에 웹에서는 해당 방법을 해결하기 위해,
Girds, Columns, bootstrap을 통하여 화면 크기가 다를 때마다 다른 레이아웃으로 표현합니다.
Flutter에서는 웹 디자인의 많은 핵심 개념이 있습니다.
Widget내의 Row, Column을 통하여 수평 혹은 수직으로 요소들을 나열할 수 있으며.
Stack을 통하여 요소를 겹쳐 쌓을 수 있습니다.
또한 Margin와 Padding을 통해서도 요소 간의 영역을 넓히거나, 그 안의 여백을 줄 수 있습니다.
이렇게 위젯을 통해서 코드를 작성하고, 그대로의 앱을 보고자 할 때,
iOS에서는 코드 저장 > 앱 실행 > 컴파일 > 화면 표시와 프로세스가 10~30초 사이입니다,
그러나! Flutter에서는 코드를 수정하고, 저장을 누르자마자 변경이 적용된 화면을 볼 수 있습니다.
플러터는 오픈소스기에 각 위젯에 대한 구성 방식을 그저 클릭을 통해서 이동할 수 있습니다.
바로 어떻게 구현되는지 확인할 수 있고,
나만의 커스터마이즈 된 위젯을 만들 수 있다는 것입니다.