Infinite Loop View를 {점진적으로} 만들기(iOS & Swift)

Jongwon Woo
2 min readSep 4, 2019

--

만들고 싶은 것

카드 더미에서 카드를 한 장씩 꺼내고 쌓는 것처럼 보이고, 그 카드 더미가 시작과 끝이 없기를 바라는 요구사항을 받았습니다.

데이터 구조로 이중 원형 연결 리스트를 사용하고, 뷰 3개를 돌려가면서 사용해서 완성했습니다.

소스 코드는 여기에 있습니다. https://github.com/jongwonwoo/CodeSamples/tree/master/InfiniteView

끝.

사실 이중 원형 연결 리스트를 사용하고 새로운 뷰를 만든 것에 대해서 쓰려던 건 아니에요. 점진적으로 개발하기에 대한 짧은 이야기를 하려고요.

Infinite loop view를 만든 과정은 이래요. 데이터 구조는 배열에서 시작했고, 배열이 연결 리스트처럼 보이도록 인터페이스만 추상화했고, 이중 원형 연결 리스트를 만들었고, 다시 다듬었죠. 그리고 뷰는 Collection View를 검토했다가 버렸고, 뷰 3개를 붙였고, 스와이프 제스쳐만 지원했고, 뷰를 돌아가며 재사용하도록 고쳤고, 스와이프 대신 팬 제스쳐를 붙였고, 뷰 이동 속도를 계산해서 애니메이션이 자연스럽도록 다듬었어요.

한마디로 충분히 생각하고, 작게 시작해서 많이 반복하는 과정을 거친거죠.

작지만 점진적이고 반복적인 과정은 요구사항을 눈에 보이고 손에 잡히도록 만들 수 있어요. 빠르게 피드백받고 목적을 분명히 하고 실행에 집중할 수 있도록 도와주기도 하고요.

크고 불분명한 요구사항이나 어려워보이는 기능을 개발하기 전에 이런 과정을 생각해보면 시작하는 마음이 조금은 편해질거라고 생각합니다. :-)

--

--