iOS 4

[UIKit] Command SwiftCompile failed with a nonzero exit Code 오류 해결

1. 문제상황댓글 안에 있는 드롭다운 버튼을 클릭했을 때 Input 이벤트 로직을 정의하고 있었다. 드롭다운 내에는 top, bottom 두개의 버튼이 들어가있고, 내 댓글인지 아닌지의 여부도 반영하면 총 4가지의 분기처리를 해주어야 했다. Input { let commentDropdownDidTap: Observable}Output { let showCommentSpoilerAlertView: Observable Observable, Int)> let showCommentImproperAlertView: Observable Observable, Int)> let myCommentEditing: Observable let showCommentDeleteAlertView: Observabl..

iOS/UIKit 2024.11.15

[RxSwift] throttle과 debounce의 차이점을 알아보자!

사이드 프로젝트 개발 중, 코드리뷰로 버튼 input 이벤트에 대해 " throttle 말고 debounce 를 사용한 이유를 알 수 있을까요 ?! "라는 리뷰를 받았었다.음 .. 그러게요? 나 왜 debounce를 사용했지? throttle과 기능적 차이점은 어떤 게 있을까?잊지 않기 위해 글로 남겨보고자 한다.  debounce관찰 가능한 항목을 다른 항목을 방출하지 않고 특정 시간대를 경과한 경우에만 방출합니다.only emit an item from an Observable if a particular timespan has passed without it emitting another item. 내가 적용한 코드를 예시로 살펴보자. ViewModel 에서 Input으로 좋아요 버튼 클릭 이벤트를..

iOS/RxSwift 2024.10.17

[SwiftUI] Non-constant range: not an integer range

사이드 프로젝트 개발하는 도중, 서버에서 받아온 유저들의 랭킹 리스트들을 스크롤뷰에서 보일 수 있게 하는 과정에 Non-constant range: not an integer range 라는 경고문을 맞딱드렸다. homeViewModel의 totalRank를 RankingView에서 rankingList로 받아와 아래의 ForEach문에서 rankingList.indices 를 통해 인덱스로 접근하여 해당 배열을 순회하도록 했다.해당 경고가 어떤 의미의 경고인지 알아보고, 어떻게 하면 경고를 없앨 수 있을지 알아보자! 왜 ForEach(rankingList.indices)를 사용했을까?이유는 단순했다. 해당 스크롤뷰의 각 row에는 유저의 현재 등수, 유저의 닉네임, 점수 총 3개를 보여줘야 했다.이때 ..

iOS/SwiftUI 2024.06.12

[UIKit] ImageView.contentMode에 대해 알아보자!

자꾸 까먹는 나를 위해 .. !ImageView의 contentMode에 있는 scaleAspectFit, scaleAspectFill, scaleToFill에 대해 정리해보고자 한다!scaleAspectFit- 이미지 비율을 유지하면서 뷰의 사이즈에 맞게 이미지를 늘리는 옵션.- 이미지가 뷰를 꽉 채우지 못해서 남는 부분은 투명 처리가 된다. scaleAspectFill- 이미지 비율을 유지하면서 뷰의 사이즈에 맞게 이미지를 꽉 채우는 옵션.- 이미지의 어떤 부분은 잘려서 보일 수도 있다. scaleToFill- 전체 이미지가 다 나올 수 있도록 필요하다면 비율을 깨뜨리면서 뷰의 사이즈에 맞게 이미지를 꽉 채우는 옵션.- 이미지는 다 나오나 이미지의 비율이 깨질 수 있다.  정리 비율 유지화면 꽉 채움..

iOS/UIKit 2024.05.29