어제의 목표
- 3,5번 아이콘 클릭시 기능 구현
- 로그인 했을시 우측상단의 아이콘 정리 완료(화면 전환까지 가면 굳!)
- 팔레트 중 하나를 드래그앤 드롭을 통해 팔레트내의 위치 변경 가능
5번 아이콘(팔레트에서 색상 잠금) 기능을 구현하였다. 단지 기능을 구현하는것과 더불어 지금 있는 모델을 수정 보완하였다!
* 5가지 색이 있는 List 셔플 -> 10가지의 색이 있는 리스트에서 중복 없이 랜덤으로 5개 뽑아서 제시
드래그앤 드롭을 통해서 아이템의 변화를 주는것은 생각했던것 보다 시간이 많이 걸릴것으로 예상 된다.
오늘 기능을 구현하며 새로운 사실을 또 하나 배우게 되었다.
void main() {
List<int> a = [1,2,3];
List<int> b = a;
List<int> c = a.toList();
a.shuffle();
print(a); // [3, 1, 2]
print(b); // [3, 1, 2]
print(c); // [1, 2, 3]
}
b와 c에 똑같이 a를 할당하고 난 후에 a를 shuffle했다. 그리고 난 후에 a,b,c를 출력하여 봤는데 b의 값이 바뀌었고, c는 셔플하기 전 값과 동일하게 나왔다.
똑같이 a를 b와 c에 지정을 해주었는데 값이 다른 이유가 뭘까?
일단 toList의 개념부터 확인을 해보자
toList 개념을 통해서도 확인할 수 있지만 b에는 a를 할당한 것이고 c에는 [1,2,3]을 할당한 것이다.
그렇기에 a를 shuffle했을때 b의 값 또한 바뀌지만 c는 바뀌지 않는 것이다.
이러한 점을 모르고 아이템 잠금 기능을 구현하려다 많은 시간을 소모하였다. 숲을 볼 줄 아는 능력도 중요하지만 가끔은 나무들 또한 잘 볼 줄 알아야 한다는 것을 느끼게 되었다.
- 로그인시 우측 상단의 위젯 변경(1순위)
- 팔레트 저장하는 팝업 작성
- 팔레트 , 색상 DB에 저장하는 Function 작성