Combine 이용해서 API로 JSON 다운받기
·
SwiftUI
Combine은 Publisher와 Subscriber를 만들어 비동기적 이벤트를 처리하는 프레임워크입니다 Combine이란 시간이 지남에 따라 변화하는 비동기적 이벤트, 데이터에 대응하여 데이터를 처리하는 프레임워크입니다. 앞으로 작성할 Combine 코드에 대해 쉽게 접근하기 위해서는 다음과 같은 순서를 보면서 쉽게 이해할 수 있을 것 같습니다.1. 어떤 데이터를 구독할 것인지 결정합니다가장 먼저 어떤 구조의 데이터를 받을 것인지를 결정해야합니다. 아래는 URL로부터 받을 모델을 정의한 코드입니다.struct PostModel: Identifiable, Codable { let userId: Int let id: Int let title: String let body: Strin..
싱글톤
·
SwiftUI
싱글톤이란 프로젝트 전체에서 하나밖에 존재하지 않는 유일한 클래스의 인스턴스를 의미합니다 싱글톤이란?싱글톤은 디자인 패턴에서 생성 패턴에 해당하며 프로그램 내의 하나의 인스턴스만 생성하여 어디서든 해당 인스턴스를 접근할 수 있도록 해줍니다.  싱글톤을 사용하는 이유는?싱글톤을 사용하게 된다면 하나의 인스턴스만 생성하기 때문에 메모리의 사용량이 줄어들어 메모리 사용을 최적화할 수 있습니다.여러 곳에서 같은 인스턴스를 사용하기 때문에 리소스의 사용을 줄일 수 있습니다.싱글톤을 사용했을 때 단점은?싱글톤은 전역 상태를 유지하기 때문에 테스트가 어려울 수 있습니다. 즉 하나밖에 존재하지 않는다는 장점이 단점이 될 수 있다는 뜻입니다.싱글톤을 사용하게 된다면 다른 클래스들이 싱글톤 인스턴스에 의존하게 되므로 코드..
NSCache 인터넷으로 가져온 데이터 캐시에 임시 저장하기
·
SwiftUI
NSCache는 메모리가 아닌 캐시에 데이터를 임시 저장할 때 사용됩니다 NSCache 구성NSCache는 딕셔너리처럼 구성되어 있습니다.class NSCache : NSObject where KeyType : AnyObject, ObjectType : AnyObject 이미지를 저장하기 위한 NSCache 사용하기이미지를 저장하기 위한 NSCache를 사용하기 위해서는 다음과 같이 선언해주는데 NSCache는 Objective-C 때 사용됐던 타입으로 현재 Swift의 String 타입을 모릅니다. 그렇기 때문에 NSString 을 사용해야 합니다.var imageCache: NSCache 캐시에 몇개의 데이터를 갖을지 설정countLimit를 사용하면 캐시에 몇개의 데이터를 갖을 수 있을지 설정할 수..
RotationGesture 제스처로 돌리기
·
SwiftUI
RotationGesture는 제스처를 통해서 각도를 돌릴 수 있습니다 사용 방법은 MagnificationGesture와 동일하게 .gesture에서 RotationGesture를 설정하고 .onChange와 .onEnded 메서드를 사용하여 각도를 조절중일 때와 아닐 때 동작하는 코드를 작성하면 됩니다. struct ContentView: View { @State var angle: Angle = Angle(degrees: 0) var body: some View { Text("iOS-Developer") .font(.largeTitle) .fontWeight(.semibold) .foregroundSty..
MagnificationGesture 로 확대 축소하기
·
SwiftUI
MagnificationGesture를 사용하면 화면 또는 사진 등을 확대 축소할 수 있습니다  onChanged는 확대 및 축소할 때 감지되는 값에 따라서 value의 값이 달라집니다.onEnded는 확대 및 축소 동작을 완료했을 때 실행됩니다.struct ContentView: View { @State var currentAmout: CGFloat = 0 @State var lastAmount: CGFloat = 0 var body: some View { VStack(spacing: 10) { HStack { Circle().frame(width: 35, height: 35) Text(..
@ViewBuilder 로 커스텀 뷰 만들기
·
SwiftUI
@ViewBuilder는 평소에서 NavigationLink 또는 Button 같이 이미 사용하고 있습니다   위에서 확인했으면 어떤 식으로 사용해야되는지 느낌이 올 것입니다. @ViewBuilder는 키워드의 이름처럼 뷰를 만들수 있게 해주는데 이 뷰는 클로저를 통해서 구현됩니다. @ViewBuilder는 사용자가 커스텀 뷰를 만들 때 사용될 수 있습니다. @ViewBuilder 사용 전예를 들어 다음과 같이 구현할 수 있는 코드가 있습니다. 아래 코드처럼 구현하게 된다면 하드코딩되어 있어 내용들을 매번 바꿔야합니다.struct HeaderViewRegular: View { let title: String let description: String? let iconName: St..
ytw_developer
'SwiftUI' 카테고리의 글 목록 (14 Page)