데이터 통신 기초와 JSON
Dart에서 JSON 데이터 변환 형식
- 데이터를 주고 받을 때 JSON형식의 String으로 주고 받음
직렬화
- Dart 객체 → Map → String
역직렬화
- String → Map → Dart 객체
class 에 fromJson named 생성자 , toJson 메서드 구현해서 사용
class User {
User({
required this.name,
required this.age,
});
String name;
int age;
User.fromJson(Map<String, dynamic> map)
: this(
name: map['name'],
age: map['age'],
);
Map<String, dynamic> toJson() {
return {
"name": name,
"age": age,
};
}
}
MVVM 아키텍쳐 알아보기
📚 StatefulWidget
- 사용자 클릭, 로직 처리
- 데이터 요청해서 데이터 받음
- 받은 데이터 가공 및 상태 업데이트
- 화면 업데이트
- StatefulWidget에서 많은 역할 수행 ⇒ 코드 지저분해짐
📚 MVVM 동작원리
- ViewModel 구독(변경되는지 바라보고 있음)
- 사용자 클릭했으니 처리해!
- 로직 처리
- 데이터 요청해서 데이터 받음
- 받은 데이터 가공 및 상태 업데이트
- 자신의 상태가 바뀌었다고 알림 (View가 누군지는 모름)
- 뷰는 ViewModel을 구독하고 있기 때문에 상태가 바뀌었다는걸 감지. 화면 업데이트!
데이터 레이아웃 들어가서 파일 끄집어내고 찾아내야되고
파일을 왔다갔다하는 복잡한 단점이 존재하긴 함...
but 팀에서 각자 역할이 나뉘어져 있듯이,
기존 Stateful 위젯으로 모두 관리하던 부분을 분담하는 역할 중 하나
데이터와 UI 역할을 나눠서 충돌의 위험성을 줄이는 역할
개발속도/효율성 부분에서 간단한 프로젝트에서 MVVM을 권장하지는 않지만,
나중에 20~40페이지정도 복잡해졌을때는 코드 관리가 힘들어짐
MVVM을 도입하면 데이터 처리 역할이 따로 분리되기 때문에 데이터 관련 수정 용이하고
페이지별로 작업을 나누지 않아도 충돌이 적어짐
코드간의 의존성을 줄이는 과정을 용이하게 하는 역할로 MVVM이 아니더라도
평소 코딩을 할때 의존성을 줄이는 과정 중요함
Stateless Widget vs Stateful Widget 복습
Stateless Widget
화면이 로드될 때 한 번만 그려지는 State가 없는 위젯으로
변경이 필요한 Data가 없는 것을 의미하며
이벤트 또는 사용자 상호 작용에 의해 동작하지 않는다.
Stateful Widget
위젯이 동작하는 동안 Data 변경이 필요한 경우
화면을 다시 그려서 변경된 부분을 위젯에 반영하는 동적인 위젯으로
이벤트 또는 사용자 상호 작용에 의해 동작한다.
예를 들어 축구 게임의 경우 점수를 나타내는 위젯은
골이 들어갈 때마다 변경해야 돼서 Stateful Widget 사용이 필요하다.
또는 체크 박스에 따라 화면을 변경하는 등
이렇게 동적으로 화면 변화가 필요한 경우
하면 Stateful Widget을 사용해야 한다.
'공부 일기 > TIL' 카테고리의 다른 글
Flutter 창업반 6주차 TIL1 - Dart 언어 특수문자 사용법, 동기/비동기 특강 (1) | 2024.12.02 |
---|---|
Flutter 창업반 5주차 TIL2 상태 관리 패키지(RiverPod), VS Code 단축키 (1) | 2024.11.29 |
Flutter 창업반 3주차 TIL2 - 라이브러리 이용, 동기/비동기 (3) | 2024.11.08 |
Flutter 창업반 3주차 TIL1 - 예외처리, 오류 (0) | 2024.11.08 |
Flutter 창업반 2주차 TIL5 - Dart 프로그래밍 복습 (1) | 2024.11.01 |