Structure and navigation
Flutter는 기본적으로 프로그래밍을 위한 프레임워크이다 보니 설계가 상당히 중요하다. 또한 화면의 이동이 Mobile / Web Application에서 중요한 요소이다보니, 이 부분 또한 매우 중요한 부분이라고 할 수 있다.
Displaying information
유저가 원하는 정보를 보여주는 것 보다 Application에서 중요한 UI / UX 요소가 있을..까?
Positioning widgets
Flutter의 장점 중 하나인 선언형 UI를 활용하여 UI Widget을 원하는 위치에 두는 방법
git을 활용한 프로젝트 clone
원래 가급적 후자를 추천 함. (IDE 내에서 추가 설정 필요가 줄어들고 간편함.) 그런데... 하단 프로젝트를 후자 방식으로 시작했더니... 모든 챕터가 우르르... 이번 E-Book 진행에 있어서 별도 챕터별로 프로젝트 뷰를 파고 싶다면, 각 챕터의 projects - starter 를 Open 하는 것을 추천
Clone Project
https://github.com/raywenderlich/flta-materials
Flutter로 Material Design 을 기반으로 한 앱을 만들 땐 기본적인 Widget Tree가 MaterialApp - Scaffold 로 이루어져야 한다.
물론 일반적인 Widget을 최상위 객체로 두고 쓸 수도 있겠으나, MaterialApp을 최상위 부모로 둠으로써, 기본적인 Material Design / Theme 이 적용 되고, 기초적인 Navigation을 활용 할 수 있는 상태가 되며,
MaterialApp의 home을 Scaffold를 사용하면서, Material Design의 기본적인 도화지를 활용, AppBar / Drawer / BottomSheet / BottomNavBar(약어) 등을 추가적 Widget을 활용 할 수 있게 된다.
추후에 쓸 지는 모르겠지만, GetX라는 상태관리 모델을 쓸 경우 MaterialApp 대신 GetMaterialApp을 사용하는데, 그건 나중에 이야기 할 수 있기를.
챕터 2 정리내용에 살짝 거론해 두긴 했지만 Flutter는 대표적인 2가지 디자인 가이드 라인인 Material 과 Cupertino를 지원한다.
간단하게 설명하자면 Material은 Android에서 주로 사용되는 Google에서 만든 디자인 가이드로, 최근 3.0 버전을 Release 하면서 활발한 활동을 보여주고 있으며, (공식 홈페이지)
Cupertino는 iOS에서 주로 사용되는 Apple에서 만든 디자인 가이드로, 이 역시도 iOS의 버전에 발맞춰 활발하게 활동 하고 있다. (관련 홈페이지)
P.S) Apple의 본사인 Apple Park가 위치 한 곳이 미국 캘리포니아 주의 Cupertino 이다. 한편 Google의 본사인 Google Flex가 위치한 곳은 Material 이라는 명칭과는 관계 없는 같은 캘리포니아 주의 Mountain View이다.