1.  ListView와 Column의 차이


- ListView는 많은 위젯들을 표시하는 데 사용되며, 백엔드 호출이나 API 호출과 같이 데이터를 반환하는 용도로 최적화되어 있다.
- Column은 앱 위젯의 메인 구조와 같은 것에 사용되며, 여러 섹션을 쌓거나 세 개의 위젯을 쌓을 때 사용된다.
- ListView에서는 화면에 보이는 위젯만 마운트되고 그려지는 반면, Column에서는 모든 자식 위젯이 마운트되고 그려진다.

2. ️Flutter ListView의 활용법과 옵션 설명


- ListView를 사용하여 스크롤 가능한 리스트를 만드는 방법을 소개합니다.
- axis 옵션은 리스트의 자식 위젯들이 *세로(Column) 혹은 가로(Row)로 배열*되는지 결정합니다.
- 기본적으로는 세로로 배열되는데, 이는 대부분의 경우 데이터베이스나 API 호출로부터 데이터를 가져올 때 수직 스크롤을 사용하기 때문입니다.
- spacing 옵션은 자식 위젯들 사이의 간격을 설정하는데, *패딩 대신 item spacing 옵션을 사용*할 수도 있습니다.
- 이 외에도 spacing을 변수로 설정하거나, 시작과 끝에만 간격을 주는 등 유연한 간격 설정이 가능합니다.

3. FlutterFlow의 ListView에서 사용 가능한 옵션과 옵션 활용 예시


- 쉬운 말로, ListView에서 shrink wrap 옵션을 활성화 할 경우, 자식 요소 수에 맞게 ListView의 크기가 동적으로 변경됨.
- 또한, 옵션 중에서는 ListView의 scroll controller, 자식 요소의 방향을 설정하는 것이 가능함.
- FlutterFlow에서 많이 사용하는 chat interface를 예로 들어, ListView의 옵션을 활용하여 채팅 내용을 보여줄 수 있음.
- 이러한 옵션과 ListView의 활용은 FlutterFlow에서 편리한 UI 제작을 도와줌.

ListView와 Column의 차이점은 무엇인가요?
 
ListView는 많은 위젯들을 표시하는 데 사용되요.
백엔드 호출이나 API 호출과 같이 데이터를 반환하는 용도로 최적화되어 있어요.
반면에 Column은 앱 위젯의 메인 구조와 같은 것에 사용돼요.
여러 섹션을 쌓거나 세 개의 위젯을 쌓을 때 주로 사용돼요.
ListView에서는 화면에 보이는 위젯만 마운트되고 그려지지만, Column에서는 모든 자식 위젯이 마운트되고 그려져요.
Flutter ListView 활용법
ListView를 사용해서 스크롤 가능한 리스트를 만드는 방법을 알려드릴게요.
axis 옵션은 자식 위젯들이 세로(Column) 혹은 가로(Row)로 배열되는지 결정해요.
보통 수직 스크롤을 사용하기 때문에 디폴트는 세로로 배열됩니다.
spacing 옵션을 사용하면 자식 위젯들 사이의 간격을 설정할 수 있습니다.
패딩 대신 item spacing 옵션을 사용할 수도 있어요.
또, 시작과 끝에만 간격을 주는 등 유연한 간격 설정이 가능합니다.
FlutterFlow의 ListView에서 어떤 옵션을 사용할 수 있고, 어떻게 활용할까요?
간단히 말하면, shrink wrap 옵션을 활성화 하면 ListView의 크기가 동적으로 변경됩니다.
또한, 스크롤의 공간을 설정하는 scroll controller와 자식 요소의 방향을 설정하는 옵션도 있습니다.
FlutterFlow에서 채팅 인터페이스를 제작하면서, ListView를 이용하여 채팅 내용을 보여주는데 활용할 수 있습니다.
이러한 옵션들과 ListView의 활용은 FlutterFlow에서 UI 제작이 간편하게 가능하도록 도와줍니다.

'no code low code > flutterflow' 카테고리의 다른 글

20 - stack widget  (0) 2024.03.12
19-컨테이너  (0) 2024.02.08
18- 정렬  (0) 2024.02.08
17- 히든 위젯  (0) 2024.02.08
15-유연한 위젯과 확장 위젯 비교  (0) 2024.02.08

 

스택 | FlutterFlow 대학

1. ️Stack 위젯을 사용하여 위젯을 쌓아 올리거나 겹쳐서 배치할 수 있다.
- Stack 위젯은 위젯들을 *쌓아올리는 방식으로 배치*할 수 있는 기능을 제공한다.
- Stack은 행 또는 열과 같이 옆으로 배치하는 것이 아닌, 위젯들을 *서로 겹쳐서 배치*한다.
- Stack 위젯을 사용할 때 주의해야 할 점은 *스택 순서*인데, 보이는 순서와 반대이다. 즉, 맨 아래에 있는 위젯이 위로 가는 것이다.
- Stack 위젯에는 자식 위젯이 *맨 위부터 추가되는데*, 이는 실제로는 맨 아래에 나타난다.

2. Flutter에서 Stack 위젯을 사용하여 Container 위젯이 쌓이는 과정 설명
- Flutter에서 Stack 위젯은 크기가 없으므로, 자식 위젯의 크기에 따라 크기를 정함
- 자식 위젯이 없으면, 암묵적으로 크기가 적용됨
- 내부 정렬을 조정하기 위해 default child alignment를 지정할 수 있음
- default child alignment를 지정하지 않으면, 자식 위젯이 왼쪽 상단에 추가됨
- 하지만, default child alignment를 조정하면, 더 다양한 위젯을 만들 수 있음

3. Stack 위젯 속성 파악 및 디자인 활용
- Container 위젯을 Stack의 property로 활용 가능해 하여 다양한 배치에 응용 가능함을 확인
- 디자이너들이 활용하는 hinting 기능 소개
- hinting 기능을 적용한 예시 중 Stack이 리스트뷰와 함께 사용되어, 화면 밖에 있는 컨텐츠 존재를 시각적으로 알려준다는 설명

4.  다양한 디자인 요소들을 공간을 효율적으로 활용하며 정리하는 패턴들
- 원래는 스크롤을 이용하여 공간 부족 문제를 해결하지만, '스택(Stack)'을 사용하여 디자인 요소들을 겹치게 함으로써 정보를 정리할 수 있다.
- 디자이너가 자주 빠지는 함정 중 하나인 공간을 다 채우려는 경향을 피하고요, 스택을 사용하여 디자인 요소들을 정리하면 불필요한 혼잡함을 방지할 수 있다.
- 또한 스택을 사용하여 이미지를 배경으로 사용할 때, 텍스트가 가독성이 떨어지는 문제를 그라디언트나 채우기 색상으로 조정할 수 있다.
- 스택을 사용하여 여러 요소들을 겹치게 하는 '레이어링(Layering)' 패턴도 흔히 사용된다.

5.  웹디자인에서 사용하는 peeking 기법과 FlutterFlow의 사용.
- peeking은 디자인 기법 중 하나로, 사용자가 마치 화면 안으로 들어오거나 벗어나는 듯한 느낌을 준다.
- 이 기법은 일반적으로 웹 디자인에서 많이 사용된다. 보통 웹 디자인에서는 물체를 배치하는데, 물체를 옆이나 위아래로 놓거나 안에 넣는 것으로만 생각된다.
- 하지만 peeking 기법을 사용하여 다른 구역에 어울리는 물체를 비추게 하면 보다 역동적인 디자인을 구현할 수 있다.
- FlutterFlow에서는 Stack 위젯으로 peeking 디자인 기법을 구현할 수 있다.

*Stack 위젯*은 무엇인가요?
Stack 위젯은 위젯들을 쌓아올리는 방식으로 배치할 수 있는 기능을 제공해요.
위젯들을 서로 겹쳐서 배치한다는 특징이 있어요.
스택 순서에 주의해야 해요.
Stack 위젯에는 자식 위젯이 맨 위부터 추가되는데, 이는 실제로는 맨 아래에 나타나요.
Flutter의 Stack 위젯이란?
Flutter에서 Stack 위젯은 크기가 없으므로, 자식 위젯의 크기에 따라 크기를 정해요.
자식 위젯이 없으면, 암묵적으로 크기가 적용돼요.
내부 정렬을 조정하기 위해 default child alignment를 지정할 수 있어요.
default child alignment를 지정하지 않으면, 자식 위젯이 왼쪽 상단에 추가돼요.
하지만 default child alignment를 조정하면, 더 다양한 위젯을 만들 수 있어요.
Stack 위젯의 배치 활용 방법
Container 위젯을 Stack의 속성으로 활용가능해, 다양한 배치에 응용이 가능하다는 것을 확인했어요.
디자이너들이 사용하는 hinting 기능에 대해 소개하고, Stack과 리스트뷰를 함께 사용한 예시를 보며 컨텐츠 존재 여부를 시각적으로 알려준다는 것을 알게 되었어요.
스택(Stack)을 사용한 공간 활용 디자인 패턴
'스택(Stack)'을 사용하여 디자인 요소들을 겹치게 함으로써 정보를 정리할 수 있어요.
그러면서 디자이너가 자주 빠지는 함정 중 하나인 공간을 다 채우려는 경향을 피할 수 있어요.
텍스트가 가독성이 떨어지는 문제를 그라디언트나 채우기 색상으로 조정하거나, 여러 요소들을 겹치게 하는 '레이어링(Layering)' 패턴도 흔히 사용됩니다
 
Peeking 기법과 FlutterFlow에서의 활용
Peeking은 디자인 기법 중 하나로, 사용자가 마치 화면 안으로 들어오거나 벗어나는 듯한 느낌을 줘요.
웹 디자인에서 많이 사용되며, 다른 구역에 어울리는 물체를 비추어 역동적인 디자인을 구현할 수 있어요.
FlutterFlow에서는 Stack 위젯을 이용하여 peeking 디자인 기법을 구현할 수 있답니다.

'no code low code > flutterflow' 카테고리의 다른 글

21 - listview  (0) 2024.03.12
19-컨테이너  (0) 2024.02.08
18- 정렬  (0) 2024.02.08
17- 히든 위젯  (0) 2024.02.08
15-유연한 위젯과 확장 위젯 비교  (0) 2024.02.08
 
컨테이너의 역할은 무엇이 있나요?

컨테이너는 배경 스타일링 및 레이아웃에 자주 사용되며, 대개 컬럼, 로우 또는 그리드가 포함돼요.

배경색, 테두리, 모서리 둥글기, 테두리 색상 등 스타일링 가능하고, 박스 그림자, 네모 그림자 또는 elevation이라고도 하는 두 가지 서로 다른 드롭 샤도우, 그라데이션 또는 배경 이미지도 넣을 수 있어요.

섹션, 카드 또는 기타 콘텐츠를 스타일링하려면 이를 컨테이너로 감싸시면 됩니다.

 

 
배경 스타일링 예시에서 그라데이션 기능 설명

그라데이션이 적용된 배경 예시를 보여드리며, 각각의 색상 전환 지점을 0~1 사이 값으로 설정할 수 있답니다.

그림자도 추가 가능하며 디자인 요소에 따라서 각각의 스타일을 다르게 지정할 수 있어요.

특히, 그라데이션 옵션에서는 각도를 조절하여 배경에 다양한 변화와 화려함을 줄 수 있어요.

 

 
배경 이미지 사용 시 주의사항

배경 이미지를 사용할 때, 'Unsplash'에서 가져와 사용하는 방법이 소개되며 이미지를 캐싱하여 페이지를 로딩할 때 네트워크 요청 없이 바로 나타나게 할 수 있어요.

이미지의 적절한 표시를 위해 '박스 피트' 속성을 사용하여 컨테이너를 사용하여 최대 너비나 높이를 조절해서 콘텐츠가 너무 크거나 작아지지 않도록 할 수 있어요.

 
웹앱에서 max-width속성의 사용 예시는?

웹앱에서 max-width는 주로 수평 공간이 많은 경우 적용돼요.

섹션이 너무 넓어져서 가독성이 떨어지거나, 여러 섹션을 수평으로 배치해야 할 때 적용돼요.

모바일 기기에서도 작동하게 하려면 max-width 설정이 필수적이며, 대화면에서도 적절하게 보여주고자 한다면 max-width를 설정해야 해요.

반응형 디자인에서 작은 화면에 집중하기 때문에 큰화면을 고려하고 있는 경우 often overlooked or forgotten하지만, max-width 설정은 대화면에서의 레이아웃을 잡는 데 매우 유용해요.

 

 
컨테이너에 적용할 수 있는 애니메이션 기능은?

컨테이너에는 사용 가능한 멋진 애니메이션 기능이 있어요.

변수로 설정된 속성이 변경되면 자동으로 컨테이너에 애니메이션을 추가해요.

높이와 같은 변수로 설정된 속성은 동적으로 업데이트할 수 있어요.

사용자가 컨테이너를 클릭하면 컨테이너를 확대할 수 있어요.

 
페이지 높이값을 지정하는 방법은?

페이지 상태 변수를 사용하여, 컨테이너 높이 값을 정하는 방법을 설명해드릴게요.

State Management 탭에서 변수 이름, 방식, 초기값 등을 입력하고 확정한 후, 컨테이너 높이를 지정하는 코드를 작성하고 페이지 상태 변수를 지정해요.

작성이 끝나면, 검토하고 값을 확인할 수 있는 방법도 제공돼요.

또한 페이지 상태 변수는 매우 유용한 도구이며, 상태 관리 등 다양한 용도로 활용할 수 있다는 것도 알려드릴게요.

 

 
FlutterFlow에서 페이지 상태 설정하는 방법은?

애니메이션을 적용하기 전에 animation curve를 설정하는데, 이를 위해 이징 함수(easing function)를 설정합니다.

그 후에 액션 흐름 에디터(action flow editor)에서 새로운 액션을 추가합니다.

액션에서 설정한 값에 따라 동작하는데, 지금은 310으로 설정하고 있습니다.

이제 child alignment을 설정하는데, 이는 위와 같은 alignment를 기준으로 작동하여 항목을 정렬합니다.

FlutterFlow에서의 페이지 상태 설정이 완료되었으니, 이제 설정한 대로 동작하는지 확인해보세요.

'no code low code > flutterflow' 카테고리의 다른 글

21 - listview  (0) 2024.03.12
20 - stack widget  (0) 2024.03.12
18- 정렬  (0) 2024.02.08
17- 히든 위젯  (0) 2024.02.08
15-유연한 위젯과 확장 위젯 비교  (0) 2024.02.08

위젯을 정확한 위치에 배치하기 위한 align 속성의 역할은?

위젯을 원하는 위치로 정렬하기 위해 align 속성을 사용해요.

이 속성은 부모 컨테이너 안에 있는 위젯을 원하는 위치로 이동시키는 역할을 합니다.

CSS의 absolute positioning과 비슷한 역할을 한다고 할 수 있어요.

부모 컨테이너는 전체 너비와 높이를 차지하고, 그 안에는 100 x 100 크기의 컨테이너가 있으며, 정렬 속성은 upper left로 설정되어 있어요.

이렇게 설정된 속성을 조정하면 위젯을 그리드 안에서 원하는 위치로 이동시킬 수 있고, 조정된 값들은 실시간으로 변합니다.

또한, 이 값들을 수동으로 편집하여 더 정밀한 제어가 가능해요.


2D 그리드를 사용하여 레이아웃 위치 지정, align 속성이란?

2D 그리드를 사용하여 레이아웃의 위치를 지정하며, 중앙은 0, 오른쪽은 1, 위쪽은 -1, 아래쪽은 1을 기준으로 해요.

align은 부모 요소를 기준으로 자식 요소의 위치를 조정하는 데 주로 사용되며, 선택된 아이콘의 위치를 지정하는 예제가 있어요.

프라이머리 레이아웃에는 컬럼이나 로우 같은 메인 레이아웃 위젯이 주로 사용되며, align은 보조적인 레이아웃 속성에 적합합니다.


Align 위젯은 주로 어떤 상황에서 사용되나요?

Column을 주로 사용하고, Align 위젯을 사용하여 정렬을 조절해요.

Widget 자체에 align을 사용하는 것이 좋고, 부모에게 align을 주는 것은 피하는 것이 좋아요.

Align 위젯은 주로 Stack 위젯이나 Container와 함께 사용돼요.

여러 위젯을 중첩하는 경우 Stack 위젯을 사용하고, 일반적으로 위젯 위쪽에 요소를 배치하게 돼요.

'no code low code > flutterflow' 카테고리의 다른 글

20 - stack widget  (0) 2024.03.12
19-컨테이너  (0) 2024.02.08
17- 히든 위젯  (0) 2024.02.08
15-유연한 위젯과 확장 위젯 비교  (0) 2024.02.08
13-속성 패널 (property panel)  (0) 2024.02.08
 
FlutterFlow의 숨겨진 위젯이란?

UI Builder에 표시되지 않는 '패딩(padding)', '확장(expansion)', '정렬(alignment)'과 같은 속성은 실제로는 위젯이에요.

Flutter에서는 위젯을 컨테이너 내부에 래핑하여 표현하고, FlutterFlow에서도 이런 위젯을 숨기는 대신 속성으로 노출시켜 사용성을 높이고 보다 쉽게 접근할 수 있게 제공하는 거에요.

 
 
FlutterFlow의 위젯 트리 작업의 효율성은 어떻게 증가하나요?

위젯 트리에서 위젯들을 찾고 변경하기 어려워지고, 위젯을 드래그하고 재정렬할 때 지저분해질 가능성이 있어요.

FlutterFlow는 이러한 문제를 해결하기 위해 위젯들을 속성으로 노출시킴으로써 작업을 정리하고 빠르게 처리할 수 있도록 도와줘요.

특히 패딩과 같은 속성은 주로 웹 디자인 배경에서는 소유하는 위젯의 속성으로 생각하는 편인데, FlutterFlow는 이를 고려하여 이러한 속성을 숨긴답니다.

이렇게 함으로써 디자이너와 개발자들에게 편의와 작업 효율성을 제공해줘요.

 
위젯 배치를 이해하기 위해 필요한 것은?

주축 정렬과 교차 축을 이해하는 게 필요해요.

예시로 설명하여 이해를 도와줄게요.

정렬 위젯을 감싸는 Align 위젯이 가로로 가득 차면, 자식 위젯들도 가로로 가득 차게 배치돼요.

가로로 가득 차게 배치된다는 것은 Align 위젯 문서를 통해 확인했죠.

만약 위젯 간 중간에 다른 위젯이 있다면 레이아웃을 이해하기 어려울 수 있어요.

이 때 코드를 확인하면 문제를 해결할 수 있어요.

'no code low code > flutterflow' 카테고리의 다른 글

19-컨테이너  (0) 2024.02.08
18- 정렬  (0) 2024.02.08
15-유연한 위젯과 확장 위젯 비교  (0) 2024.02.08
13-속성 패널 (property panel)  (0) 2024.02.08
12- 위젯 소개  (0) 2024.02.08
 
Flutter에서 확장(expansion) 옵션은 어떤 것이 있나요?

컬럼이나 로우에 자식 위젯을 넣으면 expansion이라는 속성이 추가됩니다.

확장(expansion)은 디폴트, 유연(flexible), 확장(expanded) 세 가지 옵션으로 나뉘며, 화면 구성 요소의 너비가 고정되어 있을 때는 디폴트를 사용하면 되지만, 나머지 공간을 채우고 싶을 때에는 유연(flexible) 또는 확장(expanded)를 사용합니다.

이러한 확장(expansion) 속성은 컬럼과 로우에서만 볼 수 있습니다.

 
FlutterFlow에서 Column과 Row에서 flexible과 expanded의 차이점은 무엇인가요?

Column과 Row에서 expanded를 사용하면 위젯은 추가 공간을 항상 모두 채우게 된다고 해요.

하지만, flexible은 위젯이 추가 공간보다 커지면 오버플로를 방지하면서 최대 너비를 설정해준다고 해요.

이렇게 하면 위젯이 부모 위젯에서 주어진 공간보다 커지면 계속 확장될 때 생기는 오류를 방지할 수 있어요.

이를 통해 어떻게 하면 오버플로 없이 추가 공간을 적절히 활용할 수 있는지, 실용적인 예시까지 살펴볼 수 있어요.

 

 
*Flutter UI*에서 overflow를 다루는 방법 2가지는?

채팅 UI를 예시로 들어 Flexible Expanded를 사용한 과정을 설명합니다.

Flexible는 실제 텍스트의 길이를 고려해 최대 너비를 지정해줍니다.

따라서 너비를 넘어가면 자동으로 다음 라인으로 넘어가게 됩니다.

다른 방법인 Expanded는 Flexible과 비슷하지만, 남은 공간을 채우기 위해 강제로 차지합니다.

이에 따라 만약 적은 양의 텍스트가 있다면 여전히 전체 길이를 가지게 됩니다.

어떤 방법을 사용할 지는 디자인에 따라 다르다는 점 참고해주세요.

 

 
Expanded와 Flexible 위젯의 차이점은 무엇인가요?

Expanded와 Flexible의 주요한 차이점은, 사용자가 원하는 공간 차지 비율 설정에 있어요요.

Expanded는 남은 공간을 차지하기 위해 사용되고, Flexible은 오버플로 에러를 방지하면서 공간을 유연하게 처리해요요.

추가적인 속성인 Flex값을 설정할 수도 있는데요요.

Expanded는 두 개 이상의 자식 위젯을 동일 비율로 확장할 때 사용하고, Flexible은 유연하게 오버플로 처리를 하고 싶을 때 사용해요요.

 

 
FlutterFlow에서 Flex 값은 어떤 역할을 하는가?

Flex 값은 각 자식 위젯이 공간을 어떻게 나눌지 지정할 수 있는 기능이에요.

Expanded 속성이 설정된 두 개의 컨테이너가 있는 행(Row)이 있다고 가정해보면, 오렌지 컨테이너는 첫 번째 컨테이너의 공간의 두 배만큼 차지하도록 하려면 첫 번째 컨테이너에는 flex 값 1을 주고, 오렌지 컨테이너에는 flex 값 2를 주면 되요.

flex 값은 가감이 가능한데, 여기서는 총 flex 값이 3이므로 오렌지 컨테이너는 2/3, 보라색 컨테이너는 1/3을 차지합니다.

하지만 flex 값은 flexible 또는 expanded 속성의 제약 내에서 작동한다는 것이 중요합니다.

'no code low code > flutterflow' 카테고리의 다른 글

18- 정렬  (0) 2024.02.08
17- 히든 위젯  (0) 2024.02.08
13-속성 패널 (property panel)  (0) 2024.02.08
12- 위젯 소개  (0) 2024.02.08
11-page & storyboard  (0) 2024.02.08

+ Recent posts