어크로스 캘린더 앱, 좀 더 많은 정보와 융통성

이번 1.11.0 버전 업데이트에 정말로 개발자 자신도 뿌듯해 할만한 기능이 들어갔다.
바로 월간뷰에 표시되는 일정, 할일 표시에 대한 부분이다.

어떻게 하면 월간뷰에서 조금 더 많은 정보를 표시할 수 있을까?
정보를 더 표시하더라도 기존의 정돈된 모습을 헤치지 말아야 하는데 그게 가능할까?

어크로스 월간뷰에서 일정, 할일 블럭 표시에 대한 많은 옵션을 제공한다.
그만큼 가장 많이 공들여서 작업한 부분이라 할 수 있다.
단지 지금까지는 표시되는 모든 블럭의 높이는 동일하다는 규칙을 기반으로 개발되었다.

블럭의 높이는 매우 중요한 요소이다!!!
블럭의 높이 -> 블럭의 갯수 -> 한 주의 높이 -> 월의 높이 -> 뷰의 전체 높이
위와 같은 순서로 계산되기 때문에 블럭의 높이가 정해지지 않고서는 아예 월간뷰를 표시할 수 없다.

Before 와 After 를 비교하면 큰 차이를 못 느낄 수도 있지만 몇번의 실패 끝에 제공하게 된 기능이다.

Before 에서 문제점
– 모든 블럭의 제목은 한줄만 표시한다.
– 모든 블럭의 높이는 모두 같다.
– “🚙Trip” 일정 블럭은 종일 일정이라서 시간을 표시하지 않는 규칙이 있는데 모든 블럭의 높이는 같다는 규칙으로 쓸데없이 두껍게 보인다.
– “Clean room” 할일 블럭은 한줄에 최대한 글자를 많이 표시하기 위해 character wrapping 규칙으로 “Clean r” 같이 보기 싫게 잘린다. 차라리 “Clean”만 표시되는게 더 나을거 같다.

After 에서 개선점
– 블럭의 제목이 2줄까지 보이게 하자
– 각각의 일정/할일 마다 적당한 블럭 높이를 각각 계산한다.
– 블럭 높이는 제목 길이, 시간 표시 옵션, 시간 스트링 크기, 불렛 ON/OFF 등 여러가지 사용자 옵션을 고려해서 아주 복잡하게 계산된다.
– 제목이 2줄인 경우 word wrapping 규칙을 적용한다.
– 각각의 블럭마다 제목에 맞춰 블럭의 높이가 다르게 제공되기 때문에 덜 단조롭다.

블럭마다 각각의 높이를 계산하고 계산된 높이를 바탕으로 한 주(Week)의 높이를 계산한다.
각각의 블럭 좌표와 주높이를 계산할 때 가장 나를 괴롭힌 옵션이 “Stick events to tops, tasks to bottom(일정을 위에, 할일을 아래에 고정)” 옵션이다. 이미 제공된 사용자 옵션을 없앨 수도 없다. 어찌 어찌 고통스럽게 블럭 좌표 계산에 성공했다.

제목을 2줄까지 표시하는 기능은 사용자 옵션으로 제공한다. 기존처럼 1줄로 깔끔하게 보이길 원하는 사용자는 그렇게 사용 가능하다. 어럽게 제공하게 된 기능인 만큼 많은 사용자분들이 사용하시면서 공감해 주시면 좋겠다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다