식권계산기 - 제 2 화: 가격설정기능
1.1버전에서는 식권의 가격을 설정할 수 있는 기능을 추가했다.
닭 잡는데 소 잡는 칼을 쓰다
아주 단순한 값을 저장하는 것이라서 UserDefaults를 사용하면 된다는 것을 이제와서 알았다.
내가 했던 방법은 앱의 도큐먼트 폴더에 plist를 생성하여 저장할 값을 encoding, 불러올 때 decoding하는 Codable 프로토콜을 적용한 것이다.
사실 이 방법은 테이블뷰를 배울 때 처음 알게된 데이터 저장 방법이었고 UserDefaults라는 방법이 있다는 것은 다른 사람의 개인 프로젝트를 구경하며 알게되었다.
식권 가격과 같은 아주 작고 귀여운 데이터는 UserDefaults를 활용하는것이 맞을 것 같다.
기존 Codable 프로토콜을 사용한 것은 지우고 UserDefaults를 활용하여 코드를 개선해보아야겠다.
공부한 내용
alert만들기, alert textfield 추가하기 (새 창으로 열기)
다음 업데이트
다크모드 대응
앱을 저녁에 실행해보니 다크모드가 자동 적용되면서 인디케이터를 비롯한 텍스트가 보이지 않는다. 텍스트 박스의 컬러도 의도하지 않게 바뀌었다.
Human Interface Guideline 적용
그리고 HIG를 보면 얼럿팝업을 실행한 상태에서 앱이 백그라운드로 들어갔을 때 “취소”버튼을 누른 상태로 화면을 바꿔야한다고 하는데 그부분을 적용하지 않았지만 역시 앱 심사는 통과된 것을 보면 대충 시험삼아 올려보는 녀석이구나 생각해서 Pass를 준게 아닐까한다 ㅎㅎ
사용자 편의성
현재 설정된 식권 가격을 화면에 표시하는게 계산하는 상황에서 신뢰성을 줄 것이다.
코드 개선
Codable프로토콜 대신 UserDefaults 사용하기
공부해야할 내용
- 다크모드 대응하기
앱이 백그라운드로 들어갈 때 Alert가 떠있다면 취소버튼 눌러주기- UserDefaults