카테고리 없음

til - 250514

GREEN나무 2025. 5. 14. 16:57
728x90

오늘 할 일

💠1주차 목요일 flutter

 

오늘 한일

💠비동기, 특수 위젯 : https://ashen99.tistory.com/814

💠화면전환(navigater) : https://ashen99.tistory.com/813

💠리스트뷰 및 그리드뷰 학습, 상태 관리 소개 (StatefulWidget) : https://ashen99.tistory.com/812

💠레이아웃 문제 - ListView + Column : https://ashen99.tistory.com/816

💠

못한 것

💠1주차 금, 2주차 월요일 학습의 실습 - 프로젝트 구현

 


🗓️ TIL - Flutter UI 비동기 처리와 스타일 구성의 이해


📦 FutureBuilder와 StreamBuilder의 결정적 차이

"1번 일어나는 일이냐, 지속적으로 흐르는 데이터냐?"

  • FutureBuilder는 단발성 비동기 작업(Future)에 특화된 위젯. API 요청, 로컬 DB 읽기, 초기화 로직 등에 적합.
  • 반면 StreamBuilder는 여러 번 이벤트가 발생하는 상황, 예를 들어 실시간 위치 추적, 채팅, WebSocket, Firebase 등에 적합.
  • 핵심은 데이터의 성격을 먼저 판단하는 것이고, 거기에 맞는 위젯을 써야 안정적인 앱이 된다는 것.

✅ 인사이트:

"비동기 처리도 결국 상태 관리다. 매 프레임을 설계하는 것처럼 데이터 흐름도 설계하자."


🎨 Container.color vs decoration.color

"의도를 명확히 해야 Flutter도 올바르게 그려준다."

  • Container에 color와 decoration을 동시에 지정하면 color는 무시된다. 이유는 Flutter가 decoration을 우선 처리하기 때문.
  • 단순한 배경색만 필요하면 color, 테두리나 그림자 등 복합 스타일이 필요하면 BoxDecoration(color: ...)를 사용해야 한다.

✅ 인사이트:

"겹치는 속성을 주지 말고, 목적에 따라 ‘한 경로’로만 스타일을 설정하자. Flutter는 명확한 지시를 원한다."


🍎 Cupertino 위젯의 의미

"디자인도 플랫폼 친화력이 경쟁력이다."

  • Cupertino는 iOS 스타일의 UI 컴포넌트를 의미하며, iOS 사용자에게 더 자연스럽고 익숙한 UX를 제공할 수 있음.
  • Material 위젯만 사용하면 안드로이드스럽고, Cupertino를 함께 고려하면 양쪽 사용자를 모두 존중하는 앱이 된다.

✅ 인사이트:

"크로스 플랫폼 개발자라면 ‘디자인 정체성’까지 신경 써야 진짜 사용자 경험을 설계하는 것이다."


🧠 오늘의 총정리

  • Flutter의 핵심 위젯은 기능보다 **맥락(Context)**을 먼저 이해해야 제대로 쓸 수 있다.
  • UI는 코드가 아니라 명확한 의도로 구성된다.
  • 플랫폼 친화적인 설계는 ‘디자인 감성’이 아니라 ‘사용자 중심 설계’의 출발점이다.

✏️ 다음 목표

  • StreamBuilder로 WebSocket 실시간 처리 실습해보기
  • 상태관리 기법(Provider, Riverpod)과 비동기 위젯의 결합 구조 탐색