combine9 [iOS] SOPT - Swift 에러 핸들링 with Combine + Clean Architecture 사건의 발단 작년부터 계속 개발 중인 프로젝트에서 에러 핸들링에 대한 필요성이 계속 커져가고 있었습니다. 동아리원들을 위한 앱인데 사용자가 점점 늘어나서 수백 명이 되었고 팀원들 모두 전혀 예상하지 못했던 여러 가지의 버그가 발생하기 시작했습니다. SOPT 에서는 매주 토요일마다 세미나가 열리는데 이 때 동아리원들이 출석 체크를 쉽게 하도록 도와주는 기능을 추가되어 배포된 상태였습니다. 출석 시간인 토요일 14시에 무조건 앱이 잘 동작해야만 하는 상황이었는데....,,... 역시나 첫 대규모 사용인데 무사히 넘어갈리가 없었다...ㅎㅎ 그동안 에러 처리를 제대로 안했기 때문에 발생하는 일들이었고 당연하게도 에러 처리가 부족했기 때문에 버그를 잡는 것도 쉽지 않았습니다. 사진을 보면 다들 네트워크 오류라는 .. 2023. 7. 30. iOS UIScrollView 키보드 show/hide 시 스크롤 처리 UIScrollView를 사용해 폼 형식의 뷰를 구현하다 보면 사용자가 입력을 할 때 생기는 키보드 만틈 뷰를 올려줘야 하는 상황이 발생한다. 즉, 사용자가 TextField를 터치하여 입력을 시작하면 ScrollView가 키보드의 높이만큼 자동으로 스크롤되어 사용자가 입력중인 TextField가 키보드에 가려지지 않도록 해야한다. 사실 이 문제를 해결하는 코드는 구글링을 하면 많이 나오고 복붙하면 바로 사용이 가능하다. 하지만, 이번에 구현한 방식은 흔히 사용하는 코드를 Protocol로 만들어서 재사용성을 높인 방식이다. Keyboard의 등장에 따른 UI 처리는 여러 VC에서 중복으로 필요한 경우가 많고 이럴 때 마다 필요한 코드를 매번 VC에 넣게되면 VC의 크기가 커지게 된다. 이는 우리가 지양.. 2023. 3. 15. Combine 중복 바인딩 문제 (tableViewCell) 관련 PRhttps://github.com/sopt-makers/SOPT-iOS/pull/66문제 상황위와 같은 뷰에서 각 cell의 체크 박스(버튼)의 토글 이벤트를 combine으로 활용하여 VC와 바인딩하려고 한다.이 때,위처럼, 버튼 클릭을 해도 토글이 되지 않고 다시 원상태로 돌아오는, 정확히 말하면 두번 토글되어 본래 상태로 돌아오는 문제가 발생했다.VC에서 cell의 publisher를 구독하여 print 해보면 클릭하면 이벤트가 연속해서 2번 발생하는 상황이었다. 코드VCpublic func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { guard.. 2023. 2. 15. 이전 1 2 다음