본문 바로가기

🍎 iOS32

[RxSwift] Observable Observable 이란?Observable은 RxSwift에서 데이터의 스트림을 나타냅니다. 단순히 말하자면, Observable은 시간이 지남에 따라 여러 값을 방출할 수 있는 객체입니다. 이러한 값들은 사용자 입력, 네트워크 요청 응답, 파일 입출력 등 다양한 소스에서 발생할 수 있습니다. Observable은 세 가지 유형의 이벤트를 방출할 수 있는데, 이는 next, error, completed입니다.nextObservable이 새로운 데이터 요소를 방출할 때 발생합니다.Observable은 여러 개의 next 이벤트를 발생시킬 수 있습니다.error에러가 발생했을 때 방출되며, 이후에는 더 이상의 이벤트가 발생하지 않습니다.completedObservable이 모든 데이터 요소의 방출을 완료.. 2024. 6. 7.
[RxSwift] RxSwift란? iOS 개발자라면 RxSwift에 대해 들어본 적이 있을 것입니다. RxSwift는 Swift 언어에 반응형 프로그래밍을 도입하는 강력한 프레임워크입니다. 이번 포스트에서는 RxSwift의 핵심 개념을 설명하고, iOS 개발에서 RxSwift가 어떻게 유용하게 사용될 수 있는지에 대해 알아보겠습니다.RxSwift란?RxSwift는 비동기적이고 이벤트 기반의 코드를 관찰 가능한 시퀀스와 함수형 스타일의 연산자를 사용하여 구성할 수 있게 해주는 라이브러리입니다. RxSwift는 ReactiveX (Reactive Extensions) 패밀리의 일부로, 비동기 데이터 스트림을 다루기 위한 인기 있는 패러다임입니다. 주요 개념ObservableRxSwift의 핵심 단위입니다.Observable은 시간에 따라 이.. 2024. 6. 3.
[SwiftUI] Text Text A view that displays one or more lines of read-only text 한 줄 이상의 읽기 전용 text를 표시하는 뷰입니다. Text 뷰를 만들고 그 안에 표시할 텍스트를 지정합니다. import SwiftUI struct ContentView: View { var body: some View { Text("Hello, SwiftUI!") } } 텍스트 스타일 적용하기 .font()를 사용해 텍스트의 글꼴 크기와 스타일을 지정할 수 있습니다. Text("Hello, SwiftUI!") .font(.title) .title, .caption 등 사전에 정의된 텍스트 스타일을 사용할 수 있습니다. Text("Hello, SwiftUI!") .font(.system(s.. 2024. 4. 18.
[SwiftUI] Stack (VStack/HStack/ZStack) Stack 뷰를 수직 또는 수평으로 정렬하는 데 사용되는 컨테이너입니다. Stack을 사용해서 여러개의 뷰를 그룹화하고 레이아웃을 구성할 수 있습니다. VSatck 뷰를 수직으로 쌓는 스택입니다. 선언된 순서대로 뷰들은 위에서 아래로 쌓이게 됩니다. import SwiftUI struct ContentView: View { var body: some View { VStack { Text("First View") Text("Second View") Text("Third View") } } } Alignment VStack에서 alignment 매개변수를 통해 하위 뷰의 정렬 방법을 지정할 수 있습니다. .leading을 선택하면 왼쪽을 기준으로, .trailing을 선택하면 오른쪽을 기준으로, .cente.. 2024. 4. 8.
[SwiftUI] Property Wrappers Property Wrappers property wrapper는 프로퍼티에 custom 한 동작을 추가할 수 있는 기능입니다. 프로퍼티에 대한 접근을 래핑 하여 추가 로직이나 동작을 캡슐화 합니다. 이를 통해 코드의 재사용성, 가독성 및 유지 보수성을 향상시킬 수 있습니다. @State view의 상태를 관리하는 데 사용됩니다. view 내부 데이터가 변경되면 자동으로 view를 업데이트합니다. 가변 값으로 취급되며, 뷰가 생성될 때 해당 값이 초기화되고, 사용자 상호 작용 또는 외부 이벤트에 따라 값이 변경될 수 있습니다. 뷰 내부에서 사용되기 때문에 private으로 선언하는 것을 권장합니다. import SwiftUI struct ContentView: View { @State private va.. 2024. 4. 4.
[비동기 처리] 비동기 처리란? 비동기(Asynchronous) 비동기 처리 방식이란 작업을 독립적으로 동시에 실행할 수 있는 프로그래밍 개념입니다. 각 작업 완료될 때까지 기다릴 필요 없이 프로그램이 다음 작업을 수행할 수 있도록 합니다. 즉, 병렬적으로 작업(task)을 수행합니다. 비동기 처리 방식은 요청에 대한 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업을 할 수 있어 자원을 효율적으로 사용할 수 있습니다. 하지만 동기 방식보다 복잡하고 task의 실행순서가 보장되지 않는다는 단점이 있습니다. 비동기 코드 나중에 알 수 없는 시간에 호출될 수 있는 코드 바로 실행되지 않음 이후 라인에 있는 코드가 실행되는 것을 막지 않음 보통 클로저를 통해 해당 시점을 알려줌 completionHandler 혹은 completi.. 2023. 9. 18.
[SwiftUI] SwiftUI란? SwiftUI WWDC2019에서 발표한 프레임워크 모든 애플 플랫폼(iOS, iPadOS, macOS, watchOS, tvOS)에서 사용자 인터페이스를 만들 수 있게 해주는 개발 패러다임 최소한의 코드 만으로 Swift의 성능을 사용하여 모든 애플 플랫폼에서 사용할 수 있는 앱을 만들 수 있도록 도와줌 SwiftUI 4가지 원칙 선언형 프로그래밍 방식 각 과정을 어떻게 수행해야 할지가 아닌 무엇을 하고 싶은지를 정의하는 방식 개박자가 원하는 UI를 프레임워크에 설명하면 세부 구현은 프레임워크가 대신 처리 자동화 많은 기능을 자동으로 수행될 수 있도록 제공 autolayout 코드들이 제거, 화면 전환과 관련된 기능들도 자동화로 단순하게 구현 가능 조합 큰 view를 작은 view로 나누거나, view.. 2023. 3. 15.
Pinch Gesture 핀치 제스처(Pinch Gesture) 두 손가락으로 화면을 확대 / 축소할 때 사용하는 이벤트 화면 확대 / 축소 기능이 포함된 모든 앱에서 사용 가능 1. 레이아웃 구성 및 아웃렛 변수 추가 viewController에 image View를 추가하고 초기 이미지를 설정한다. 이후 image View에 대한 아웃렛 변수를 추가한다. 2. 핀치 제스처 구현 UIPinchGestureRecognizer 클래스 상수 pinch를 선언한다. 핀치 제스처가 인식되었을 때 실행할 메서드는 doPinch로 설정한다. view 객체의 addGestureRecognizer 메서드를 사용해 핀치 제스처를 등록한다. doPinch 메서드에서 핀치 제스처가 발생하면 image View를 핀치의 scale에 맞게 변환한다. .. 2023. 1. 13.
Swipe Gesture 스와이프 제스처(Swipe Gesture) 화면에서 수평 또는 수직 swipe동작을 감지하고, 이를 사용하여 콘텐츠를 탐색(navigation) swipe: 손가락으로 화면을 상하좌우로 미는 동작 1. 레이아웃 구성 및 아웃렛 변수 추가 상하좌우 네 가지 방향으로 swipe gesture를 보여주기 위해 4개의 image View를 추가한다. 4개의 image View에 대한 아웃렛 변수를 추가한다. 2. 변수 생성 및 초기 이미지 설정 상황에 따라 보일 이미지들의 이름을 변수에 저장해 둔다. viewDidLoad()에서 뷰가 나타날 때 보일 초기 이미지를 설정한다. 3. 한 손 Swipe Gesture 설정 setSwipeGesture() 함수를 생성해 viewDidLoad()에서 호출한다. 상하좌우 .. 2023. 1. 12.
Tap Touch Tap, Touch 터치는 화면을 만지는 모든 행위, 탭은 화면을 톡톡 두드리는 행위 touch는 네 가지 상태를 가짐 began은 터치를 시작할 때, moved는 드래그해서 움직일 때, ended는 손을 뗄 때, canceled는 터치가 취소될 때 이벤트가 발생 tap은 toches 세트 안에 포함됨 1. 레이아웃 구성 현재 상태를 나타낼 label과 탭과 터치 횟수를 나타낼 label 추가한다. 2. 아웃렛 변수 추가 3개의 label에 대한 아웃렛 변수를 추가한다. 3. 탭, 터치 기능 구현 각 터치 상태에 따른 함수를 구현한다. 각 함수에서 현재 발생한 이벤트의 종류를 출력한 후, 터치의 개수와 탭의 개수를 출력한다. 4. 시뮬레이터 확인 화면을 탭 하면 tapCount가 증가하며, touchC.. 2023. 1. 11.
반응형