분류 전체보기266 RunLoop.main vs DispatchQueue.main 문제 상황 콤바인을 사용하면서 scheduler를 설정할 때, 평소 Runloop.main과 DispatchQueue.main이 둘 다 Main Thread에서 동작한다는 공통점을 갖기 때문에 UI Update를 진행할 때 두 가지를 혼용해서 사용했었습니다. 하지만, 프로젝트를 진행하던 도중 tableView를 스크롤하는데 이미지를 포함하는 Reusable Cell이 한칸씩 변경되지 않고 스크롤이 종료된 시점에 한번에 셀의 이미지가 변경되는 현상이 발생하였습니다. 😂 그래서 해당 부분에 대한 공부를 시작했는데요~ 아래는 해당 현상 설명하기 위한 예제 프로젝트까지 준비되어 있으니 끝까지 잘 봐주세요 🙏 문제 해결 과정 처음에는 문제를 찾는데 시간이 걸렸었는데요 ..ㅠ Schduler의 Runloop라는 단.. 2023. 10. 16. String의 joined(separator:) DeepDive 문제상황 평소에 String을 사용할 때와 알고리즘 문제를 풀이할 때, String을 합치는 + 연산자와 joined() 함수에 대해 별 생각없이 사용하고 있었습니다. 그러다 문득, joined() 함수 내부도 + 연산자 를 사용한 코드 형태를 갖고있지 않을까? 라는 의문을 가지면서 해당 실험을 시작하게 되었습니다. 해결과정 joined() 함수 내부를 살펴봐야겠습니다! Swift의 github를 살펴봐야할 것 같습니다! 아래와 같이 구현되어 있네요? 모든 내용을 다 해석하기 보다는 핵심적인 내용만 보겠습니다..! internal func _joined(separator: String) -> String { // A likely-under-estimate, but lets us skip some of t.. 2023. 10. 14. 의존성 주입방법에 대한 고민과 DIContainer 도입과정 문제상황 첫번째 문제상황 프로젝트가 점점 비대해지면서(?) 사실 뷰컨은 아직까진 두개밖에 없지만.. 의존성 주입방법에 대해서 고민하고 찾아볼 수 밖에 없게 되었습니다. 이유인 즉슨, 현재는 SceneDelegate에서 뷰컨트롤러에 의존성을 주입해주고 있는데 뷰컨간의 이동이 생기게되면서 SceneDelegate 하나에서 의존성을 모두 주입할 수가 없는 노릇이었습니다. 예를들어, 만약 SceneDelegate에서 모든 의존성을 주입해주게 된다면 아래와 같은 상황이 발생하게 될겁니다. 물론, DIP를 사용해서 의존성을 역전시켜서 분리했지만 의존성 분리를 위해 ViewController들이 필요없는 ViewModel들을 갖고 있어야 된다면 DIP를 사용했다고 하더라도 의존성이 잘 분리되었다고 말할 수 있을까? .. 2023. 10. 9. [나의 앱][컴잇][업데이트] v1.0.2 (2022.08.09) UI관련 업데이트 1. Button UI 개선 iOS 14.0으로 버전을 낮추면서 기존의 Plain버튼이 지원되지 않아서 UI상에 버튼이름이 Default로 나타나는 현상 개선 기술적 업데이트 1. Auth Token 기존 : Token만료 시, 무한 로딩상태에 머무는 기술적 이슈가 존재 현재 : Token의 유효성을 판별하고 유효하다면 진행하고 토큰관련 에러 발생시 로그아웃이 되도록하여 토큰을 재발급 할 수 있도록 하였다. 2. URLSession -> Moya 기존 : URLSession을 사용해야 네트워킹 흐름파악에 도움이 될 것 같아서 사용 현재 : Token 관련 처리를 하려다 보니 매우 복잡함을 느끼고 Moya를 사용하면 간단하고 편리하다는 것을 알게되어서 Moya사용. 2022. 8. 12. 이전 1 2 3 4 5 6 7 8 ··· 67 다음