개인 프로젝트 - Coolors 클론 진행상황(07/29)

Chocomilk·2021년 7월 29일
0

1. 개인 프로젝트 진행 현황


어제의 목표

  • 3,5번 아이콘 클릭시 기능 구현
  • 로그인 했을시 우측상단의 아이콘 정리 완료(화면 전환까지 가면 굳!)
  • 팔레트 중 하나를 드래그앤 드롭을 통해 팔레트내의 위치 변경 가능
    5번 아이콘(팔레트에서 색상 잠금) 기능을 구현하였다. 단지 기능을 구현하는것과 더불어 지금 있는 모델을 수정 보완하였다!
    * 5가지 색이 있는 List 셔플 -> 10가지의 색이 있는 리스트에서 중복 없이 랜덤으로 5개 뽑아서 제시
    드래그앤 드롭을 통해서 아이템의 변화를 주는것은 생각했던것 보다 시간이 많이 걸릴것으로 예상 된다.

2. 프로젝트 진행에 따른 소회(?),반성

오늘 기능을 구현하며 새로운 사실을 또 하나 배우게 되었다.


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는 바뀌지 않는 것이다.


이러한 점을 모르고 아이템 잠금 기능을 구현하려다 많은 시간을 소모하였다. 숲을 볼 줄 아는 능력도 중요하지만 가끔은 나무들 또한 잘 볼 줄 알아야 한다는 것을 느끼게 되었다.

3. 내일의 목표

  • 로그인시 우측 상단의 위젯 변경(1순위)
  • 팔레트 저장하는 팝업 작성
  • 팔레트 , 색상 DB에 저장하는 Function 작성
profile
어제보다 한 발짝 더 나아가려는 Flutter 개발자

0개의 댓글