데이터 로직은 아래와 같습니다.
어디서든 선택한 날짜를 전체 EnvironmentObject로 관리합니다.
선택된 날짜를 기반으로 CoreData에서 선택된 날짜에 해당하는 월간 데이터를 모두 가져옵니다.
월간 데이터는 모든 그래프의 상위 뷰인 ReportBoardView에 필터링해서 넘깁니다.
월간 데이터를 Daily, Weekly, Monthly, check에 내려보냅니다.
각 Daily, Weekly, Monthly, check가 렌더링 될 때(init할 때) 각자에 맞게 가공합니다.
선택한 날짜가 바뀔 수 있음으로 해당하는 View에서 사용하는 pickedData는 각각 EnvironmentObject로 관리해서 보고 있다가 바뀔 경우 무조건 View가 새롭게 렌더되도록 합니다.
Motivation
목업 데이터가 아니라 실제로 코어 데이터에 있는 데이터를 활용하도록 만들었습니다.
Key Change
데이터 로직은 아래와 같습니다. 어디서든 선택한 날짜를 전체 EnvironmentObject로 관리합니다. 선택된 날짜를 기반으로 CoreData에서 선택된 날짜에 해당하는 월간 데이터를 모두 가져옵니다. 월간 데이터는 모든 그래프의 상위 뷰인 ReportBoardView에 필터링해서 넘깁니다. 월간 데이터를 Daily, Weekly, Monthly, check에 내려보냅니다. 각 Daily, Weekly, Monthly, check가 렌더링 될 때(init할 때) 각자에 맞게 가공합니다. 선택한 날짜가 바뀔 수 있음으로 해당하는 View에서 사용하는 pickedData는 각각 EnvironmentObject로 관리해서 보고 있다가 바뀔 경우 무조건 View가 새롭게 렌더되도록 합니다.
To Reviewers
힘들었는데 그래도 뿌듯하네용. 코드 자체는 리팩토링이 많이 필요해보입니다.