Swift
4 posts
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의 중요성 타입 안전성: 제네릭을 사용하면 다양한 타입에 대해 동일한 작업을 수행할 수 있으면서도 …

Swift 객체지향프로그래밍(OOP) 이란?

객체(Object) 란? CS에서 객체는 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에 자신의 속성을 가지고 있고 다른것과 식별 가능한 것을 말합니다. 즉 컴퓨터로 예를 들면 키보드, 마우스, 스피커 등이 객체가 될 수 있고, 이것들은 각각 입력, 소리출력, 인터페이스 조작 등의 기능이 포함 됩니다. 객체지향 프로그래밍 (OOP, Object Oriented Programming) 객체들의 상호작용으로 서술하는 프로그래밍 기법 현실세계의 객체를 소프트웨어 객체로 설계 하는 것 특징 객체지향 프로그래밍은 소프트웨어를 개발할 때 현실 세계의 객체를 모델링하고, 이러한 객체들 간의 상호 작용을 중심으로 프로그래밍하는 방법론입니다. 재사용성: 상속을 통해 코드의 재사용성을 높일 수 있다. 생산성 향상: 잘 설계된 클래스를 만들어서 독립적인 객체를 사용함으로써 개발의 생산성을 향상시킬 수 있다. 자연적인 모델링: 일상생활에서 모습의 구조가 객체에 자연스럽게 녹아들었기 때문에 …