본문 바로가기

Swift44

[SwiftUI] ScrollView + AsyncImage + LazyLayout 트러블 슈팅 이번에 SwiftUI + ScrollView + ImageView 쓰면서 겪었던 트러블 슈팅을 정리해 보려고 합니다.  LazyLayout + AsyncImageLazyLoyout과 AsynImage를 쓰면서 문제가 있었습니다. LazyLayout에 할당된 AsyncImage가 이상하게 동작했습니다. 우리는 LazyLayout을 통해 사용자 화면에 나타난 AsyncImage를 부를 것 입니다. 하지만 AsyncImage를 loading하다가 에러가 생기거나 연결이 끊긴 경우에 자동으로 AsyncImage가 처리할 것으로 생각했지만 실제로는 그러지 않았습니다. 그리고 내부 URLSession.shared를 사용하여 이미지를 받아오기에, Cache정책이나 Detail한 부분에 대해서 설정하기 어려웠습니다. .. 2025. 3. 18.
[Swift] 왜 @objc 키워드를 사용해서 UIButton에 매핑해야 될까요? 글을 비판적으로 읽어주세요! 잘못된 부분이 있을수 있습니다.  개요글은 왜 UIButton과 같은 Component들이 function 과 매칭되기 위해 @objc키워드를 붙여야 하는지에 관해 궁금해서 글을 작성했습니다.  swift관점에서 @objc를 쓰는 이유Swift관섬에서 @objc를 쓰는 이유는, UIButton과 같은 UIKit컴포넌트들과 다양한 Class들이 Objective-C 기반이기 때문입니다. Class나 method를 적용할 떄 Objective-C에서 운용 가능하게 만듭니다. Swift는 정적으로 타입을 확인하고 매서드를 호출하지만 Ojective-C에서는 런타임에 접근합니다.  Runtime Introspection vs Reflection이 뭐예요?Objective-C에서 In.. 2024. 12. 29.
[Swift] escaping vs non-escaping 차이점에 대해서 글은 swift에서 function에서 escaping과 non-escpaing이 무엇이 다른지 기록하기 위해 작성되었습니다. 1. Escaping Colsure란?클로저는 함수의 인자로 전달되었지만 함수가 반환된 이후에 호출될 때, 이를 함수에서 벗어나는(escaping) 클로저라고 합니다. 만약 클로저가 함수의 매개변수 중 하나로 전달될 경우, 해당 클로저가 탈출 가능하다는 것을 나타내기 위해 매개변수의 타입 앞에 @escaping 키워드를 작성할 수 있습니다. 클로저가 escape할 수 있는 한 가지 방법은, 클로저가 함수 외부에 정의된 변수에 저장되는 경우입니다. 예를 들어, 비동기 작업을 시작하는 많은 함수들은 완료 핸들러(completion handler)로 클로저를 인자로 받습니다. 이러한 .. 2024. 12. 27.
[Architecture] MVC vs MVVM Key Differences with examples 정리 https://shakuro.com/blog/mvc-vs-mvvm Exploring MVC vs MVVM: Choosing the Right Architecture | ShakuroDive into the differences between MVC and MVVM architectures. Learn how to choose the best one for your project. Check out the article to learn more.shakuro.com  테스트 관점에서의 MVC vs MVVMMVC테스트 범위 제한: Model은 독립적으로 테스트할 수 있지만 Controller와 View의 테스트가 복잡.유닛 테스트 부족: Controller에서 비즈니스 로직을 다룰 경우 테스트 커버리지가 떨.. 2024. 12. 5.
Approach to load testing iOS app (stackoverflow 질문글 한국어 해석) https://stackoverflow.com/questions/34934322/approach-to-load-testing-ios-app Approach to load testing iOS appI did a search on this but couldn't find a match, possibly due to several meanings of the phrase "load testing"... but what we are trying to do is to make sure our App (which is a medical device thatstackoverflow.com 원문은 위에서 볼 수 있습니다. (문제시 삭제) Question"나는 이에 대해 검색을 해봤지만 일치하는 것을 찾지 못했습니다... 2024. 12. 3.
[iOS] 모듈화 하기 vs 그냥 살기. (주관적으로 느낀 모듈화 장점 3가지) 낙시성 제목 죄송합니다. 글은 오늘은 왜 모듈화를 해야 하는지에 대해서 이야기 할려 합니다. 이미 다른 글들에서 모듈화가 왜 좋은지에 대해서 잘 쓰여 있습니다.  글은 왜 모듈화를 해야하는지에 대해서 주관적으로 이야기 할려 합니다.   1. 뒤처지는 컴퓨터 사양개발을 하다보면 파일도 많아지고 사용하는 소스도 많아지게되면 계속해서 빌드시간이 늘어나게 됩니다. 빌드시간이 는다 라는 것은 생산성을 떨어뜨립니다. 사소한 변경을 보기 위해 오랜 빌드시간을 기다리는 자체가 고역입니다. Tuist로 모듈화를 한 이유는, 사소한 변경마다 10초 이상을 기다리는 스스로를 보았습니다. MacBook Air(M1)사용중이라 fan도 없어 항상 선풍기를 틀고 개발을 합니다. 맥북의 키보드 자판 위쪽 맨들맨들한 부분에 손을 가.. 2024. 11. 22.