요즘들어 눈이 왜이리 피곤한지, 불편해서 집중하기가 힘들다.
일단, 기능을 만들기에 앞서서 가장 힘든 UI 작업을 시작했다. 원래라면 기능 구현을 우선시 했겠지만, RxCocoa를 이용해서 버튼 클릭 시 데이터 바인딩, 클릭 시 발생하는 CoreData 저장 이벤트 및 Timer 시간 경과 저장 로직들을 구현하기 위해서는 UI를 우선적으로 구현하는 것이 더 나을 것이라는 생각이 들었다.
해당 코드는 임무(Timer)의 목록을 볼 수 있는 화면이다. titleView와 CollectionView로 구성되어있으며 활성화된 타이머와 커스텀 임무 목록이라는 두 개의 섹션으로 구성된다. 현재는 간단하게 표시할 정도로만 구현하고 추후 디테일을 짚으려고 생각 중이다. 상단 titleView의 + 버튼을 클릭하면 Mission을 생성할 수 있는 ViewController로 연결된다. 연결 로직은 RxCocoa를 사용해서 해당 버튼을 클릭했을 경우 navigation push를 진행하도록 했다.
private func bind(){
mainView.titleView.addButton.rx.tap
.subscribe(onNext: { [weak self] in
self?.navigationController?.pushViewController(CreateMissionViewController(), animated: true)
}).disposed(by: disposeBag)
}
+버튼을 클릭하면 넘어오는 페이지이다. 현재 아직 구현 중이며, collectionView 대신 StackView를 사용하여 구현하고자 한다. 이유는, 동적으로 셀의 개수를 반영할 필요가 없기 때문이다. 사실 CollectionView의 섹션을 구성하고 내부의 데이터를 넣는 것이 귀찮아서 해당 StackView를 이용하면 굳이 Section과 Cell을 생성하는 수고를 덜 수 있지않을까? 생각했지만, 별로 차이가 없는 것 같다. 오히려 오토레이아웃을 잡으면서 좀 더 스트레스 받고 시간도 더 걸리는 기분이다.
오늘은 UI 작업을 끝내진 못할 것 같다. 눈이 너무 피곤해서 충분히 휴식을 취하는 것이 좋을 것 같다고 생각한다. 내일 남은 UI 작업을 마무리하고 데이터관련 기능 구현도 시작할 예정이다.