여전히 파이널 프로젝트의 기획을 진행하고 있다.
오늘 오전 중으로 프로젝트를 시작할 수 있을 듯했으나 놓쳤던 요소들과
와이어 프레임을 보면서 생긴 의문점들을 해결하다보니 오늘 하루도 기획과 회의만 계속하게 됐다.
코드 관련해서 공부를 하지 못했지만,
Branch 전략, 와이어프레임 관련 정리 더불어 UISearchBar와 Then에 대한 내용을 듣게 됐다.
새로운 관점과 공부해볼 키워드가 생겼다는 점이 즐거웠는데, 조금만 정리해본다!
Rebase를 통해 Git Commit History를 Linear하게 유지하는 방법이 있었다.
그동안 개개인 브랜치를 생성하고 해당 브랜치의 깃 커밋을 매일 밤에 병합하는 과정을 거쳤었는데,
생각보다 깔끔한 구조를 가져갈 수 있는 방법이 있다는 점이 인상적이었다.
크게 보면 차이점은 없지만, 한 브랜치별로 모든 커밋이 기록된다는 점이 생각보다 지저분해보인다는 단점이 있었는데, rebase를 활용해서 한번 브랜치를 짜보는 도전을 해보는 것도 좋아보인다.
가장 큰 단점은 하나의 브랜치로 이전 깃 히스토리를 연결하는 과정을 거치다보니, 특정 시점 이전의 커밋 기록들은 없어질 가능성이 있다는 점이 가장 골치 아픈 부분이 아닐까 싶다.
기획 단계에서 UISearchBar에 대해 이야기가 나왔다.
단순히 textfield처럼 값을 입력받고 해당 값을 다른 viewController로 던져 줄 수 있는 거로 생각했던 것과 달리, UISearchBar은 별도로 채택하여 활용하는 UIViewController이 필요했다.
해당 ViewController에서 검색한 값에 대한 연관 검색어를 정리할 수 있는 함수를 적용할 수 있었다.
관련해서는 별도로 공부를 해봐야겠다!
autoLayoutConstraint의 코드 길이를 줄이고 코드 가독성을 높이기 위해 우리는 SnapKit을 사용했다.
Then은 UIComponent를 선언할 때 클로저 내에서 반복되는 UIComponent 선언을 방지하고자 사용하는 프레임워크였다.
그동안 일반적으로 아래와 같이 컴포넌트를 생성했었다.
let newLabel: UILabel = {
let label = UILabel()
label.backgroundColor = UIColor.red
label.text = "이렇게 만들었다."
return label
}()
위를 보면 newLabel이라는 UILabel을 생성하기 위해 클로저 내부에 UILabel을 다시 한번 선언하여
newLabel의 속성들을 적용해야했다. 하지만 Then을 사용하면 이 repetition이 줄어드는 것이다!
let newLabel = UILabel().then {
$0.backgroundColor = UIColor.red
$0.text = "이렇게 만들었다."
}
then을 사용하게 되면 컴포넌트 선언부터 return을 해야하는 번거로움을 줄일 수 있으며
$0을 활용해서 명확하게 newLabel이 UILabel이라는 것을 직관적으로 이해할 수 있게 돕고 있었다.