
빈번하게 갱신되는 화면의 경우 어떻게 성능 테스트를 할 수 있을까요? 눈으로 확인했을 때 화면이 버벅이면서 보이거나 끊김 현상이 보이면 당연히 성능이 안 좋다고 판단할 수 있겠지만, 눈으로 확인하는 데는 정확성이 부족할 수 있고 미묘한 차이를 캐치하기 어려울 수 있습니다. 아무래도 가장 좋은 건 데이터, 즉 수치로 확인하는 것이죠. XCode12부터 UI와 관련된 성능 이슈를 파악하는데 도움을 주는 Instruments - Animation Hitches가 도입되었습니다. 아래 내용은 WWDC21 Hitch 관련 세션을 보고 정리한 글입니다. 일반적으로 디스플레이를 갖는 디바이스의 경우 주사율을 갖습니다. iOS 디바이스의 경우 보통 60Hz의 주사율을 갖고 이는 1초에 60번 화면이 갱신됨을 의미합니다..

오늘은 다양한 디버깅 방법에 대해 알아볼까 합니다. 구구절절 작성하기보다는 핵심만 간결하게 작성해보도록 하겠습니다 ㅎㅎ 1. 콘솔 창 메시지 확인 런타임 에러 발생 시, 앱 종료와 함께 앱이 종료된 이유를 콘솔 창을 통해 확인할 수 있습니다. 2. 디버거 활용 (Breakpoints & lldb) 두 번째 방법은 Breakpoints와 lldb를 활용하는 것입니다. 잘 사용하기 위해서는 디버깅 툴 바에 대해 이해하고 넘어갈 필요가 있습니다. 툴 바 설명 Disable/enable breakpoint: 브레이크 포인트 활성화/비활성화 . Pause/continue execution: 프로그램 실행 중지/이어서 실행 (만약 다음 breakpoint가 있다면 해당 breakpoint에서 멈추게 됩니다.) St..

2020/10/26 - [Swift&iOS/iOS] - [iOS] Cell을 재사용 시 생기는 문제점들과 해결 방법에 이어서 오늘은 셀을 재사용함으로써 생기는 조금 더 심화적인 문제를 다뤄보려 합니다. 이전 글에서는 셀의 index 별로 터치 됐다 안됐다를 기준으로 하트 버튼의 상태를 변경해 줬었는데요. 이제 하트 버튼이 동작하도록 해볼 예정입니다. 셀 안에 스위치, 체크박스, 하트(좋아요)와 같은 버튼등이 들어가게 되면 상황이 조금 골치 아파집니다. 셀을 재활용하기 때문에, 누르지도 않은 인덱스에 버튼이 눌려져 있다던가 아니면 눌렀는데도 버튼이 안 눌려져 있다던가... 다음 보시는 것처럼 스크롤 몇 번 해보면 아주 뒤죽박죽 난장판이 됩니다. ㅜㅜ 이 문제를 해결하기 위해서는 사용자가 버튼을 눌렀을 때 ..