
공부해야겠단 생각한 지는 꽤 오래되었지만 제대로 진도를 나가지 못했던 (수학의 정석 집합 부분만 너덜한 것처럼..) RxSwift를 제대로 공부하고 정리해보려고 합니다! 먼저 RxSwift란, Swift로 구현되어 iOS 앱 개발 등에 활용할 수 있는 Reactive Extensions 표준입니다! 그럼 ReactiveX는 뭘까요? ReactiveX 공식 홈페이지에서 "ReactiveX is a library for composing asynchronous and event-based programs by using observable sequences. " ReactiveX는 관찰 가능한 시퀀스를 사용하여 비동기 및 이벤트 기반 프로그램을 구성하기 위한 라이브러리라고 설명합니다. 즉, RxSwift는 ..

오늘은 Swift Generic의 개념과 기본적인 활용법에 대해 정리해보겠습니다. 문서에 따르면 'Generic을 사용하면 정의한 요구 사항에 따라 모든 유형에서 작동할 수 있는 유연하고 재사용 가능한 함수 및 유형을 작성할 수 있습니다. 중복을 피하고 그 의도를 명확하고 추상적인 방식으로 표현하는 코드를 작성할 수 있습니다.' 라고 정의되어 있습니다. 그리고 Swift의 가장 강력한 기능 중 하나이고, Swift 표준 라이브러리의 대부분은 Generic으로 만들어졌다고 합니다. 우리가 인지하지 못한 부분에서도 제네릭을 사용하고 있는데, 예를 들어 Swift의 Array, Dictionary 유형은 모두 Generic Collection이라고 합니다. 아래와 같이 제네릭을 활용하지 않고 두 Int 변수를..

오늘은 UI개발을 할 때마다 헷갈렸던 Frame과 Bounds의 (x,y)에 대해 정리해보겠습니다. 애플 공식 문서는 Frame을 'The frame rectangle, which describes the view’s location and size in its superview’s coordinate system.' 라고 정의합니다. 현재 뷰의 위치와 크기를 '슈퍼 뷰의 좌표계'를 기준으로 설명한다는 의미인데요. 그리고 Bounds는 'The bounds rectangle, which describes the view’s location and size in its own coordinate system.'라고 정의합니다. 현재 뷰의 위치와 크기를 '(현재 뷰의) 자체 좌표계'를 기준으로 설명한다고 합..

SwiftUI에서 수식어는 이전의 뷰를 감싼 새로운 뷰를 만들어내고, 그 다음 수식어는 다시 그 뷰를 감싸는 형식입니다. 그렇기 때문에 수식어를 적용하는 순서에 따라 결과가 크게 달라지는 경우도 있고, 영향을 받지 않는 경우도 있습니다. Text("🐶🐱🐰🦊").font(.largeTitle) .background(Color.yellow) // background 우선 적용 .padding() 1) 텍스트 생성 2) 텍스트와 크기가 동일한 노란색 배경 추가 3) padding 수식어로 뷰에 여백추가 Text("🐶🐱🐰🦊").font(.largeTitle) .padding() // padding 우선 적용 .background(Color.yellow) 1) 텍스트 생성 2) padding 수식어로 뷰에 여백추..

1. 프로토콜(Procotol)이란? - 프로토콜(Protocol)은 특정 역할을 수행하기 위한 메서드, 프로퍼티, 기타 요구사항 등의 청사진을 정의합니다. - 구조체, 클래스, 열거형은 프로토콜을 채택(Adopted)해서 특정 기능을 수행하기 위한 프로토콜의 요구사항을 실제로 구현할 수 있습니다. - 어떤 프로토콜의 요구사항을 모두 따르는 타입은 그 프로토콜을 준수한다(Conform)고 표현합니다. - 타입에서 프로토콜의 요구사항을 충족시키려면 프로토콜이 제시하는 청사진의 기능을 모두 구현해야 합니다. 즉, 프로토콜은 기능을 정의하고 제시할 뿐이지 스스로 기능을 구현하지는 않습니다. 2. 정의 - Protocol 키워드를 사용하여 정의합니다. protocol protocolName { /* 정의부 */..

SwiftUI에서 View protocol View { associated type Body: View var body: Self.Body { get } } View 타입은 UIView와 달리 프로토콜로 선언된다. Typealias Body = Never Body는 무한 재귀호출이 일어나지 않도록 Never 타입이 사용된다. UIHostingController Class UIHostingController : UIViewController where Content : View UIHostingController는 UIViewController를 상속받고, 뷰 프로토콜을 준수하는 제네릭 매개변수 Content를 전달받는 제네릭 클래스. 즉, SwiftUI를 이용해 만들어진 뷰를 UIKit의 개발환경에서 사..

애플 HIG 에 ActionSheet는 "현재 컨텍스트와 관련된 두 개 이상의 선택 항목을 표시하는 특정 유형의 경고"라고 설명합니다. iOS 에서 ActionSheet 는 UIAlertController를 이용해 만들 수 있습니다. let actionSheetController = UIAlertController(title: "제목", message: "메세지", preferredStyle: .actionSheet) //제목, 메세지 없이 let actionSheetController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet) 먼저 UIAlertController에서 actionSheet 스타일을 선택해 Act..
Swift의 클로저는 다양한 표현법을 사용할 수 있습니다. 먼저, 기본적인 클로저의 표현법을 통해 구성한 함수입니다. func calculate(a: Int, b: Int, method: (Int, Int) -> Int) -> Int { return method(a, b) } var result: Int 클로저의 다양한 표현법에 대해 알아보겠습니다. 1. 후행 클로저 - 클로저가 함수의 마지막 전달인자일 때, 마지막 매개변수 이름을 생략한 후 함수 소괄호 외부에 클로저를 구현할 수 있습니다. result = calculate(a: 10, b: 10) { (left: Int, right: Int) -> Int in return left + right } print(result) // 20 출력 2. 반환타..
- Total
- Today
- Yesterday
- rxswift
- Swift unowned
- UIHostingController
- 알고리즘
- SwiftUI
- ARKit
- rxswift6
- coreml
- Swift
- ios
- 백준
- 안드로이드
- infallible
- disposeBag
- Lottie
- SWEA
- 카카오인턴십
- Swift weak
- DispatchQueue
- Kotlin
- GraphDB
- 프로그래머스
- 코코아팟
- C++
- cocoapods
- boj
- blendshapes
- Reactivex
- blendshape
- 백준온라인저지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |