오늘은 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 수식어로 뷰에 여백추..
blendShapes 란? ARFaceAnchor에서 얼굴 표정, 움직임에 관련된 정보를 제공하는 딕셔너리. 선언 var blendShapes: [ARFaceAnchor.BlendShapeLocation : NSNumber] { get } ARFaceAnchor.BlendShapeLocation 눈, 코, 입 등 다양한 얼굴 요소에 대한 식별자로, 해당 요소의 움직임을 설명하는 수치값으로 사용함. 선언 struct BlendShapeLocation ARFaceAnchor에서 제공하는 blendShapes 딕셔너리는 특정 얼굴 요소의 움직임과 관련하여 감지된 얼굴의 표정을 나타냅니다. 딕셔너리의 각 키에 해당하는 값은 0.0(중립)에서 1.0(최대 이동) 사이의 중립을 기준으로 한 요소의 현재 위치를 나타..
GCD (Grand Central Dispatch) - DispatchQueue란? 앱의 기본 스레드 또는 백그라운드 스레드에서 작업 실행을 직렬 또는 동시에 관리하는 개체. 정의 class DispatchQueue: DispatchObject 디스패치 큐는 애플리케이션이 블록 객체 형태로 작업을 제출할 수있는 FIFO 큐이다. 디스패치 큐는 작업을 직렬 또는 동시에 실행합니다. 디스패치 큐에 올라온 작업은 시스템에서 관리하는 스레드 풀에서 실행됩니다. 앱의 기본 스레드를 나타내는 디스패치 큐를 제외하고 시스템은 작업을 실행하는 데 사용하는 스레드에 대해 보장하지 않습니다. 작업 항목을 동기 또는 비동기 적으로 예약할 수 있습니다. 작업 항목을 동기적으로 예약하면 해당 항목이 실행을 마칠 때까지 코드가 ..
1. 프로토콜(Procotol)이란? - 프로토콜(Protocol)은 특정 역할을 수행하기 위한 메서드, 프로퍼티, 기타 요구사항 등의 청사진을 정의합니다. - 구조체, 클래스, 열거형은 프로토콜을 채택(Adopted)해서 특정 기능을 수행하기 위한 프로토콜의 요구사항을 실제로 구현할 수 있습니다. - 어떤 프로토콜의 요구사항을 모두 따르는 타입은 그 프로토콜을 준수한다(Conform)고 표현합니다. - 타입에서 프로토콜의 요구사항을 충족시키려면 프로토콜이 제시하는 청사진의 기능을 모두 구현해야 합니다. 즉, 프로토콜은 기능을 정의하고 제시할 뿐이지 스스로 기능을 구현하지는 않습니다. 2. 정의 - Protocol 키워드를 사용하여 정의합니다. protocol protocolName { /* 정의부 */..
- Total
- Today
- Yesterday
- Reactivex
- ARKit
- blendshapes
- Lottie
- GraphDB
- 코코아팟
- cocoapods
- 안드로이드
- disposeBag
- SwiftUI
- ios
- Kotlin
- rxswift6
- coreml
- infallible
- 카카오인턴십
- 프로그래머스
- 알고리즘
- SWEA
- Swift weak
- rxswift
- Swift
- 백준온라인저지
- UIHostingController
- 백준
- Swift unowned
- boj
- DispatchQueue
- C++
- 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 |