[Flutter] 플러터 시작하기

도톨이·2024년 3월 31일
0

앱 개발-flutter

목록 보기
19/29

왜 플러터를 사용하는가

플러터는 빠르게 성장하고 있는 프레임워크이다.

플러터의 셀링 포인트는 코드를 한번 쓰고 동시에 여러개의 플랫폼에서 실행할수 있다는 점이다. 여기서 개발자가 두 개의 분리된 에코시스템을 배우고 동작시킬 필요를 제거하였다.

과거 어플 개발에서는 Android, iOS 각각의 플랫폼은 각자의 툴, API, 프로그래밍 패러다임등이 있었다. 이건 앱을 업데이트 혹은 변경하면 두 가지 다 변경해야함을 의미했다. 모바일 사용이 늘어나면서 이러한 분리 접근이 점차 비효율적으로 여겨졌다.
유저들은 또한 디바이스들 사이에 일관적이고 하이퀄리티의 경험을 원했다. Google 이 만든 플러터는 이러한 과제들을 해결하기 위해 출연했다.

플러터 세팅

플러터를 처음 시작한다면 SDK 를 설치해야한다. 이건 모든 중요한 커맨드라인 툴과 라이브러리들을 포함하는 것이다. Linux 나 Mac 에서는 flutter doctor 을 커맨드라인에 입력하여 셋업을 확인할 수 있다. Window 에서는 PATH 에 Flutter 와 Android SDK 폴더들을 추가해야한다.

한 번 셋업이 완료되면, fluttercreate myapp 을 커맨드라인에 입력하여 새로운 플러터 프로젝트를 생성할 수 있다. 그러나 원하는 IDE(integrated development environment) 에서 실행하는 게 편하면 그렇게 할 수 있다.

플러터 핵심 개념 이해하기

이제 플러터 프레임워크의 근본적인 빌딩 블럭들을 이해해보자. 플러터의 심장은 위젯 기반 모델이다. 이건 우리가 유저 인터페이스를 선언적(declarative)인 방법으로 구성할 수 있도록 한다. 플러터에서 위젯은 불변의 재사용가능한 오브젝트인데 이건 자신의 자식 위젯이 어떻게 나타나야할지 결정한다.

핵심위젯은 Widget 그 자치이다. 이건 모든 다른 위젯들의 베이스 클래스로서 작동한다. 이건 build 메소드를 정의하는데 이를 통해 위젯이 어떻게 보여질지에 대한 description 을 리턴한다.
예를 들어 텍스트 위젯의 build 메소드는 텍스트 렌더링 오브젝트를 리턴할것이다.

이러한 위젯들은 트리 구조로 정렬되어 있고, 부모-자식 관계를 가진다. 루트 위젯은 보통은 MaterialApp 이거나 CupertinoApp 위젯이다. 이것들은 글로벌 속성들을 정의한다.
이건 앱의 기본 재료들을 형성할 수 있는 Scaffold 위젯을 포함한다.
그 Scaffold 위젯은 그러면 AppBar나 body 와 같은 위젯들을 지니게 된다.

이러한 위젯 트리는 플러터 프레임워크에 의해 디바이스에서 렌더링되는데, 그 프레임워크는 위젯 트리를 재귀적으로 순회한다. (build 메소드를 호출호출 하면서)

상태가 변경할 때마다 프레임워크는 아래서부터 botton-up 방식으로 재빌드(rebuild) 한다.

플러터에서 위젯은 두가지 주요 타입을 가진다.

  • Stateless 와 Stateful

Stateless 위젯들은 변경 불가능하고, 그들의 build 메소드는 오직 속성의 정의에만 달려있다.
예를 들어 Text 와 Image 위젯들이 있다.

반면, Stateful 위젯들은 유저의 인터랙션과 다른 이벤트들에 반응하여 변화할 수 있다.
이건 변할 수 있는 State 라는 오브젝트를 포함하는데, 그 State 클래스가 StatelessWidget 과 비슷한 build 메소드를 가진다.

만약 StatefulWidget 이 재빌드하게되면 새로운 State 를 만드는 것 보다는 단순히 기존 State 를 업데이트한다.

profile
Computer Engineering

0개의 댓글

관련 채용 정보