본문 바로가기

분류 전체보기298

[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.
[Swift] 자동 참조 카운트 자동 참조 카운트(ARC, Automatic Reference Counting)앱의 메모리 관리를 위해 사용자동으로 참조 횟수를 관리하기 때문에 대부분의 경우에 메모리 관리에 신경쓸 필요가 없고 ARC가 자동으로 사용하지 않는 인스턴스를 메모리에서 해지특정 경우에 ARC에서 메모리 관리를 위해 코드의 특정 관계에 대한 정보를 필요로 함참조 횟수는 클래스 타입의 인스턴스에만 적용되고 구조체, 열거형 등 값 타입에는 적용되지 않음 ARC 동작새로운 클래스 인스턴스를 만들 때 마다 ARC는 인스턴스 정보를 담는데 필요한 크기의 메모리를 할당메모리는 인스턴스에 대한 정보와 관련된 저장 프로퍼티 값을 갖고 있음인스턴스가 더이상 사용되지 않을 때 ARC는 그 인스턴스가 차지하고 있는 메모리를 해지해 공간을 확보AR.. 2024. 4. 2.
[Swift] 제네릭 제네릭(Generics)유연하고 재사용 가능한 함수와 타입의 코드를 작성하는 것을 가능하게 함인자값의 타입만 다르고 동일한 기능을 수행하는 함수를 하나로 만들 수 있음 제네릭 함수(Generic Functions)함수명 뒤에 타입 이름 placeholder인 T를 선언하고 a,b 파라미터를 T로 선언func swapTwoValues(_ a: inout T, _ b: inout T) { let temporaryA = a a = b b = temporaryA}var someInt = 3var anotherInt = 107swapTwoValues(&someInt, &anotherInt)// someInt is now 107, and anotherInt is now 3var someString .. 2024. 4. 2.
[Swift] 프로토콜 프로토콜(Protocols)어떤 기능에 필요한 요구사항을 선언해두는 것클래스, 구조체, 열거형에 의해 채택프로토콜 문법protocol SomeProtocol {// protocol definition}프로토콜을 따르는 타입을 정의하기 위해서는 타입 이름 뒤에 콜론(:)을 붙이고 프로토콜 이름을 적음프로토콜을 채택할 때는 프로토콜에 정의된 요구사항을 반드시 구현 해야만 함 struct SomeStructure: FirstProtocol, AnotherProtocol { // structure definition goes here}class SomeClass: SomeSuperclass, FirstProtocol, AnotherProtocol { // class definition goes her.. 2024. 3. 29.
[Swift] 에러 처리 에러의 표시와 발생enum VendingMachineError: Error { case invalidSelection case insufficientFunds(coinsNeeded: Int) case outOfStock}throw VendingMachineError.insufficientFunds(coinsNeeded: 5) 에러 처리에러가 발생한 함수에서 리턴값으로 에러를 반환해 해당 함수를 호출한 코드에서 에러를 처리하도록 하는 방법do-catch 구문을 사용하는 방법옵셔널 값을 반환하는 방법assert를 사용해 강제로 크래쉬를 발생시키는 방법에러를 발생시키는 함수 사용하기어떤 함수, 메소드 혹은 생성자가 에러를 발생시킬 수 있다는 것을 알리기 위해 throw 키워드를 함수 선언.. 2024. 3. 28.
[Swift] 옵셔널 체이닝 옵셔널 체이닝nil일 수도 있는 프로퍼티나, 메소드 그리고 서브스크립트에 질의(query)를 하는 과정만약 옵셔널이 프로퍼티나 메소드 혹은 서브스크립트에 대한 값을 갖고 있다면 그 값을 반환함만약 값이 nil이라면 nil 반환 강제 언래핑의 대체로써의 옵셔널 체이닝옵셔널 값 뒤에 물음표(?)를 붙여서 표현 가능옵셔널을 사용할 수 있는 값에는 프로퍼티, 메소드 그리고 서비스크립트가 포함옵셔널 값을 강제 언래핑하기 위해 뒤에 느낌표(!)를 붙이는 것과 유사강제 언래핑을 했는데 만약 그 값이 없으면 런타임 에러 발생옵셔널 체이닝을 사용하면 런타임 에러 대신 nil이 반환class Person { var residence: Residence?}class Residence { var numberOfRo.. 2024. 3. 26.
반응형