섹션을 보이고 숨기는 설정을 만들다
섹션이 많아서 복잡하다는 문제의 답을 구현했습니다. 문서별 설정, 기본값 설정, 그리고 준비 카테고리까지.
섹션을 보이고 숨기는 설정을 만들다
이전 글에서
지난 글에서 이런 이야기를 했습니다. 준비 섹션을 만들었더니 할 일 하나에 섹션이 다섯 개가 되었고, 화면이 복잡해졌다고. 방향은 정했지만 아직 구현하지 않았다고.
이번에 구현했습니다.
두 단계의 설정
섹션 가시성은 두 가지 레벨에서 제어됩니다.
문서별 설정. 할 일 하나하나에서 어떤 섹션을 보여줄지 정합니다. 톱바에 섹션 아이콘 버튼을 넣었습니다. 누르면 바텀시트가 열리고, 일정/분석/준비/회고/첨부 다섯 개의 토글이 나옵니다. 끄면 해당 섹션이 사라집니다. 다시 켜면 돌아옵니다. 내용이 있는 섹션은 토글 옆에 파란 점이 표시되어서, 무엇을 숨기고 있는지 알 수 있습니다.
기본값 설정. 새로 만드는 할 일에 어떤 섹션을 기본으로 보여줄지 정합니다. 설정 > 기본 문서 표시 설정에서 한 번 정해두면, 앞으로 만드는 모든 할 일에 적용됩니다. 기본값은 일정만 켜져 있습니다. 필요한 섹션만 기본으로 켜두면, 새 할 일을 열었을 때 깔끔합니다.
준비 카테고리도 같은 방식으로
준비 섹션 안에도 다섯 카테고리가 있습니다. 재료, 도구, 장소, 인력, 자격. 모든 할 일에 다섯 카테고리가 다 필요하진 않습니다.
준비 섹션의 토글 바에 설정 버튼을 넣었습니다. 누르면 카테고리별 토글이 나옵니다. 요리 관련 할 일이면 재료만 켜두고 나머지는 끕니다. 프로젝트 기획이면 인력과 장소만 켜둡니다.
기본값도 마찬가지입니다. 설정에서 어떤 카테고리를 기본으로 보여줄지 정할 수 있습니다. 기본은 재료만 켜져 있습니다.
각 섹션에 설명을 달다
토글 목록을 보면서 느꼈습니다. 이름만으로는 각 섹션이 뭘 하는 건지 바로 와닿지 않을 수 있겠다고.
그래서 각 토글 아래에 한 줄 설명을 추가했습니다.
- 일정 — 시간과 장소를 기록합니다.
- 분석 — 목표를 구체적으로 살펴봅니다.
- 준비 — 필요한 것들을 미리 확인합니다.
- 회고 — 어떻게 진행되었는지 돌아봅니다.
- 첨부 — 관련 자료를 추가합니다.
준비 카테고리에도 같은 방식으로.
- 재료 — 필요한 재료나 물품을 정리합니다.
- 도구 — 사용할 도구나 장비를 확인합니다.
- 장소 — 활동할 장소를 정합니다.
- 인력 — 함께할 사람을 확인합니다.
- 자격 — 필요한 자격이나 인증을 확인합니다.
기능의 이름보다 목적을 적었습니다. “이 섹션에서 무엇을 할 수 있는가”가 아니라 “이 섹션이 왜 존재하는가”를 담으려 했습니다.
Optimistic Update
토글을 누르면 서버에 저장합니다. 그런데 서버 응답을 기다리면 토글이 눌리는 느낌이 느립니다. 스위치를 눌렀는데 0.5초 뒤에 움직이면 답답합니다.
그래서 Optimistic Update를 적용했습니다. 토글을 누르면 즉시 로컬 상태를 바꾸고, 백그라운드에서 서버에 저장합니다. 서버가 실패하면 원래대로 되돌립니다. 사용자는 토글이 바로 반응하는 것만 봅니다.
지난 글의 질문들에 답하다
지난 글에서 던진 질문들이 있었습니다.
일정 섹션은 항상 보여야 할까?
아니요. 다른 섹션과 마찬가지로 숨길 수 있습니다.
처음 만든 할 일에 아무 섹션도 안 보이면 너무 허전하지 않을까?
기본값으로 해결했습니다. 일정 섹션은 기본으로 켜져 있습니다. 나머지는 꺼져 있지만, 설정에서 기본값을 바꿀 수 있습니다.
템플릿에서 생성한 할 일은 템플릿의 섹션 설정을 따라야 할까?
네. 템플릿에도 같은 섹션 설정이 있고, 생성된 할 일은 그 설정을 그대로 가져옵니다.
가볍게, 그리고 깊게
다섯 개의 섹션은 여전히 있습니다. 하지만 이제 다섯 개가 항상 보이지는 않습니다.
간단한 할 일을 열면 제목과 일정만 보입니다. 복잡한 프로젝트를 열면 분석, 준비, 일정, 회고가 펼쳐져 있습니다. 같은 앱이지만, 할 일의 깊이에 따라 다른 모습을 보여줍니다.
Minimal to Maximal. 이번에는 말로만이 아니라, 설정으로 구현했습니다.