공부해야겠단 생각한 지는 꽤 오래되었지만 제대로 진도를 나가지 못했던 (수학의 정석 집합 부분만 너덜한 것처럼..) 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의 대표적인 고차함수인 map, filter, reduce에 대해 정리해보도록 하겠습니다. 먼저 고차함수(Higher-order function)은 '다른 함수를 전달인자로 받거나 함수 실행의 결과를 함수로 반환하는 함수'를 뜻합니다. Swift의 함수(Closure)는 일급 객체이기 때문에 함수의 전달인자로 사용할 수 있으며, 함수의 결과값으로 반환할 수 있습니다. 이제 Swift 표준 라이브러리 컨테이너 타입(Array, Set, Dictionary)에 구현되어있는 고차함수인 map, filter, reduce에 대해 알아보겠습니다. 1. map map은 애플 공식 문서에 '시퀀스의 요소에 대해 주어진 클로저를 매핑한 결과를 포함하는 배열을 반환한다'고 정의되어있습니다. map의 파라미터인 ..
오늘은 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.'라고 정의합니다. 현재 뷰의 위치와 크기를 '(현재 뷰의) 자체 좌표계'를 기준으로 설명한다고 합..
ARKit - ARFaceAnchor 인식 기능에 얼굴표정에 대한 감정이 학습된 mlmodel을 활용한다고 가정하겠습니다. sceneView로 ARFaceAnchor를 인식하는 방법은 BlendShapes 활용 때와 동일하게 진행합니다. * 참고 : iOS - BlendShapes 활용하기 let model = try! VNCoreMLModel(for: CNNEmotions().model) 그 후, 사용할 mlmodel을 ViewController에 선언해줍니다. func renderer(_ renderer: SCNSceneRenderer, didUpdate node: SCNNode, for anchor: ARAnchor) { guard let sceneView = renderer as? ARSCNVie..
CoreML이란? 머신러닝 모델을 앱에 통합할 수 있는 Apple의 프레임워크 CoreML을 사용하여 머신러닝 모델을 앱에 통합합니다. CoreML은 모든 모델에 대해 통합된 표현을 제공합니다. 앱은 CoreML API와 사용자 데이터를 사용하여 예측하고 모델을 훈련하거나 미세 조정합니다. CoreML은 도메인별 프레임워크 및 기능의 기반입니다. CoreML은 이미지 분석을 위한 비전, 텍스트 처리를 위한 자연어, 오디오를 텍스트로 변환하는 음성, 오디오에서 소리를 식별하는 소리 분석을 지원합니다. CoreML은 Accelerate 및 BNNS와 같은 낮은 수준의 기본 요소뿐만 아니라 Metal Performance Shader도 기반으로 합니다. 참고자료 : https://developer.apple...
blendShapes를 활용할 head.scn 에셋과 그 안에 leftEye라는 chileNode가 있다고 가정합니다. * 일반적인 .dae 3D 에셋을 XCODE로 불러오면 .scn 파일로 변환할 수 있습니다. @IBOutlet var sceneView: ARSCNView! var headNode: SCNNode? var leftEyeNode: SCNNode? 먼저, ARKit과 SceneKit을 import 해줍니다. 그리고 화면을 나타낼 sceneView, 에셋을 연결할 headNode와 leftEyeNode를 SCNNode로 선언합니다. override func viewDidLoad() { sceneView.delegate = self } ARSCNViewDelegate를 채택해줍니다. 그 후, ..
SwiftUI에서 수식어는 이전의 뷰를 감싼 새로운 뷰를 만들어내고, 그 다음 수식어는 다시 그 뷰를 감싸는 형식입니다. 그렇기 때문에 수식어를 적용하는 순서에 따라 결과가 크게 달라지는 경우도 있고, 영향을 받지 않는 경우도 있습니다. Text("🐶🐱🐰🦊").font(.largeTitle) .background(Color.yellow) // background 우선 적용 .padding() 1) 텍스트 생성 2) 텍스트와 크기가 동일한 노란색 배경 추가 3) padding 수식어로 뷰에 여백추가 Text("🐶🐱🐰🦊").font(.largeTitle) .padding() // padding 우선 적용 .background(Color.yellow) 1) 텍스트 생성 2) padding 수식어로 뷰에 여백추..
- Total
- Today
- Yesterday
- infallible
- disposeBag
- ios
- C++
- coreml
- 코코아팟
- rxswift6
- Kotlin
- 백준온라인저지
- SWEA
- SwiftUI
- GraphDB
- boj
- 백준
- 알고리즘
- blendshapes
- blendshape
- Swift weak
- Lottie
- ARKit
- 프로그래머스
- 안드로이드
- rxswift
- 카카오인턴십
- Swift
- DispatchQueue
- Reactivex
- UIHostingController
- cocoapods
- Swift unowned
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |