안녕하세요.
|
iOS 개발자 황성진입니다.

thumbnail
Swift Delegate Pattern 이란?

들어가기 앞서 기존 SwiftUI 로 입문을 한 입장에서 Delegate Pattern 이란 단어가 약간 생소하였다. 왜 뷰간에 데이터 전달을 하는데 Delegate Pattern을 사용하는거지? SwiftUI에선 State, Binding으로 전달하면 되는데? 이런 의문을 갖고 공부를 하기 시작했다. ViewController간 데이터를 주고 받는 방식 Swift에선 ViewController간의 데이터를 주고 받는 방법이 여러가지가 있다. 직접 프로퍼티에 접근 함수를 통한 접근 Segue Delegate Closure NotificationCenter 이렇게 다양한 방법들이 있는데 이번엔 Delegate 에 대해서 공부해보았다. 그래서 Delegate가 뭘까? UIKit에서 가장쉽게 접하는 예제는 UITableView를 구현하기 위해서 UITableViewDateSource와 UITableViewDelegate를 채택하여 사용한다. 근데 막상 사용하는 입장에서 이것에 대해 …

SwiftUI KingFisher 와 Async Image 사용 비교

들어가기 앞서 Xcode 프로젝트 Assert에 이미지를 추가하여 이미지를 로드하는 경우도 있지만, 네트워킹을 통해 웹의 이미지를 로드하는 경우는 일일이 이미지를 저장하여 불러오는 것이 불가능하다. 이때 Kingfisher 또는 Async Image 를 사용하면 웹 이미지를 보여줄 수 있다. Async Image는 SwiftUI가 iOS 15부터 제공하는 새로운 기능으로, URL에서 이미지를 비동기적으로 로드하고 캐시하는 역할을 합니다. 이로 인해 이미지 로딩 및 표시가 더욱 원활하고 성능이 향상됩니다. Kingfisher는 Swift 기반의 이미지 다운로딩 및 캐싱 라이브러리로, UIKit 및 SwiftUI에서 사용할 수 있습니다. Kingfisher를 사용하면 더 많은 커스터마이제이션과 기능을 활용할 수 있습니다. AsyncImage 이미지를 비동기적으로 로드하고 표시하는 뷰입니다. Async Image는 SwiftUI에서 도입된 이미지 로딩 및 표시를 위한 내장된 컴포넌트입…

Swift Generic에 대서

들어가기 앞서 해당 제네릭에 대해 작성된 내용은 야곰님의 스위프트 프로그래밍: Swift 5 책의 내용을 제가 이해할 부분과 추가로 알아간 내용에 대해 정리했습니다. Generic에 이란? Swift에서 제공하는 강력한 기능 중 하나로 제네릭을 이용해 코드를 구현하면 어떤 타입에도 유연하게 대응할 수 있습니다. 또한 제네릭으로 구현한 기능과 타입은 재사용하기도 쉽고, 코드의 중복을 줄 일 수 있습니다. 야곰님의 책에 언급된 내용에 따르면 수많은 라이브러리에서 제네릭을 채택하고있다고 합니다! 제네릭은 기본적으로 타입 또는 메서드의 이름 뒤의 홀화살괄호 기호 <> 사이에 제네릭을 위한 타입 매개 변수를 써주어 제네릭을 사용할 것임을 표시합니다. 제네릭을 사용하고자 하는 타입 이름 <타입 매개변수> 제네릭을 사용하고자 하는 함수 이름 <타입 매개변수> (함수 매개변수…) Generic의 중요성 타입 안전성: 제네릭을 사용하면 다양한 타입에 대해 동일한 작업을 수행할 수 있으면서도 …

URLSession 과 Alamofire 비교해서 사용하기

URLSession 이란? Swift의 URLSession은 네트워크 작업을 수행하는 데 사용되는 API 중 하나입니다. URLSession은 URL을 통해 데이터를 가져오거나 전송하는 기능을 제공하며, 네트워크 요청 및 응답을 처리하는 데 유용합니다. URLSession은 비동기적으로 작동하며, 앱의 성능을 향상시키는 데 도움이 됩니다. URLSession은 기본적으로 세 가지 주요 작업을 수행합니다: 데이터 가져오기 (Data Fetching): 웹에서 데이터를 가져오는 데 사용됩니다. 주로 GET 요청과 함께 사용됩니다. 데이터 전송 (Data Task): 서버에 데이터를 전송하는 데 사용됩니다. 주로 POST 또는 PUT 요청과 함께 사용됩니다. 다운로드 작업 (Download Task): 파일이나 큰 데이터를 다운로드할 때 사용됩니다. Alamofire 란? Alamofire는 Swift로 작성된 네트워킹 라이브러리로, URLSession을 기반으로 한 HTTP 요청 및…