<aside> ✏️ 2022.09.21
기능을 더 추가하기에는 조금 애매한 .. 느낌이 있어서 .. 일단 지금까지 구현한 코드에 대해서 개선을 좀 하고 .. 현재의 기능에서 더 디벨롭할 수 있는 부분을 찾아서 구현했다.
만약 데이터가 없는 경우에는 empty 뷰를 보여주도록 했고, 지도의 타입/테마도 적용해보았다.
그리고 서버 연결을 할 때 상태가 불안정해서 데이터를 잘 받아오지 못하면 앱이 강제종료 되는 이슈가 있었기에 앱을 진입할 때부터 이를 막을 수 있도록 했다. (여기서 궁금한 것은 처음 진입은 인지할 수 있는데, background → foreground는 어떻게 하지? 라는 생각이 든다..) + 서버 통신 시 로딩 인디케이터를 통해서 연결중이라는 것을 시각적으로 보여주었다.
지도 화면이 다 구현했다고 생각할 때 꼭 .. 문제가 있어서 .. 다시 한번 차근차근 봤다.
</aside>
쏘카와 그린카가 모두 0개일 경우 0개라고 보여주는 것보다 현재 대여할 수 있는 나눔카가 없다는 것을 보여주는 것이 보다 친화적이라고 생각했다.
그래서 Empty 뷰를 만들고 현재 대여할 수 있는 나눔카가 하나도 없을 때 이 뷰를 보여주는 것을 구현했다.
private lazy var emptyView = UIView().then {
$0.addSubviews(emptyLabel)
$0.backgroundColor = R.Color.white
$0.isHidden = true
}
private var emptyLabel = UILabel().then {
$0.text = """
현재 대여할 수 있는 나눔카가 없어요 :(
주변의 다른 지점을 찾아볼까요?
"""
$0.textColor = R.Color.gray100
$0.numberOfLines = 0
$0.textAlignment = .center
}
이렇게 empty의 요소를 선언하고
var hasData: Bool = true {
didSet {
emptyView.isHidden = hasData ? true : false
collectionView.isHidden = hasData ? false : true
}
}