여자 저차 해서 Java -> Kotlin -> Flutter 순서대로 개발언어를 배우게 되었다.
점점 복잡해지는 느낌이지만 오히려 좋다.
더 폭넓게 배우기도 하고,
다른 언어도 같이 병행하면서 배우고 있어서 지루한 느낌이 없다.
아직은 배우고 있지만, 그래도 어느 정도 배운 것을 정리하는 차원에서
글을 써보려고 한다.
이 글을 쓰기전에 Flutter 설치 법을 쓰려고 했는데,
터미널 사용법에서 잠깐 막혀서 화나서 꺼버렸다 헤헤..
설치가 중요하긴 한데,
이미 인터넷에 많은 자료가 나와 있으니,
내가 배운 것을 정리하는 것이 더 중요하다는 것을 파악했다.
우선 나 같은 경우는 코딩셰프님의 영상을 보며 익힌 점을 정리하므로,
출처는 남긴다.
정리
Widget
오늘 배운 것은 여러 가지이지만, 크게 두 가지로 나뉜다.
우선 그중에서 Widget에 관한 내용이다.
사전적 의미는 Widget은 작은 장치라는 의미이다.
자바나, 코틀린을 다루는 네이티브 앱에서는 약간 View와 의미가 비슷한 느낌을 받았다.
그렇다면 더 자세히... 위젯이란 무엇일까?
보통은
독립적으로 실행되는 작은 프로그램을 이야기한다.
우리가 보통 휴대폰에서 보는 날씨, 뉴스, 생활정보, 바탕화면 등등.. 모두 위젯이라고 할 수 있다.
(그래픽이나 데이터 요소를 처리하는 함수를 가지고 있다.)
이 위젯이 플러터에서는
UI를 만들고 구성하는 모든 기본 단위 요소라고 말할 수 있다.
또한, 눈에 보이지 않는 Column과 Center, Padding도 위젯이라고 할 수 있다.
곧 플러터에 모든 것이 위젯이라고 할 수 있다.
위젯으로 시작해서 위젯으로 끝난다고 말할 수 도 있겠다.
플러터는 tree구조로 되어 있다.
(대게 순차적으로 MyApp -> MeterialApp -> MyHomePage -> Scaffold 순으로 앱이 구성된다.)
+
Scaffold 안에는 AppBar -> Text로 구성이 되고,
Center -> Column -> (Image, TextField, Button) 이런 식으로 구성이 된다.
한 위젯 내에서 얼마든지 다른 child위젯들이 포함될 수 있다.
위젯은 부모 위젯 아래에 자식 위젯으로 구성될 수 있다는 의미이다.
Parent widget은 widget container라고도 부른다.
Stateless widgets vs Stateful widgets
위젯에는 Stateless Widget과 Stateful Widget 그리고 Inherited Widget 이렇게 크게
세 개로 나뉜다.
State의 사전적 의미는 상태라는 의미이다.
이 flutter에서는
Stateful -> Value 값을 지속적으로 추적하고 보존한다. (상태가 계속 움직이거나 변화가 있는 위젯)
Stateless는 이전 상호 작용의 어떠한 값도 저장하지 않는다. (상태가 없는 정적인 위젯)
Stateful widgets은
사용자의 interaction(상호작용)에 따라서 모양이 바뀐다.(라디오나 체크 버튼)
데이터를 받게 되었을 때 모양이 바뀐다.
Stateless Widgets은
스크린 상에 존재만 할 뿐 아무것도 하지 않는다.
어떠한 실시간 데이터도 저장하지 않는다.
어떤 변화(모양, 상태)를 유발하는 value값을 가지고 있지도 않다.
마무리
너무 필기만 하는 위주여서 깔끔하지 못하게 정리하였다..
원래 글을 이런 식으로 쓰지 않는데.. 아직 개념이 많이 잡히지 못해서
정확한 정리는 아직 어렵지만,
점차 나아지게 글을 쓸 예정이다.
내가 필기한 과정을 적는 것이 중점이기에 우선 이렇게 장기기억으로 남기기 위해
배운 내용을 정리해 보았다.