
오늘은 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를 채택해줍니다. 그 후, ..

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 큐이다. 디스패치 큐는 작업을 직렬 또는 동시에 실행합니다. 디스패치 큐에 올라온 작업은 시스템에서 관리하는 스레드 풀에서 실행됩니다. 앱의 기본 스레드를 나타내는 디스패치 큐를 제외하고 시스템은 작업을 실행하는 데 사용하는 스레드에 대해 보장하지 않습니다. 작업 항목을 동기 또는 비동기 적으로 예약할 수 있습니다. 작업 항목을 동기적으로 예약하면 해당 항목이 실행을 마칠 때까지 코드가 ..

애플 HIG 에 ActionSheet는 "현재 컨텍스트와 관련된 두 개 이상의 선택 항목을 표시하는 특정 유형의 경고"라고 설명합니다. iOS 에서 ActionSheet 는 UIAlertController를 이용해 만들 수 있습니다. let actionSheetController = UIAlertController(title: "제목", message: "메세지", preferredStyle: .actionSheet) //제목, 메세지 없이 let actionSheetController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet) 먼저 UIAlertController에서 actionSheet 스타일을 선택해 Act..

오늘은 iOS 앱에 Lottie 애니메이션을 추가하는 법에 대해 학습하겠습니다! Lottie란 ? Airbnb에서 개발한 JSON형태로 애니메이션을 사용할 수 있는 라이브러리입니다. 주로, 모바일 앱을 실행할 때 splash screen 등을 구현하기 위해 사용됩니다. Lottie Behind the scenes of our new open-source animation tool airbnb.design 먼저, XCODE project를 생성한 후 CocoaPods을 통해 'lottie-ios'를 설치해줍니다. CocoaPods은 홈페이지에서 install, get started 또는 링크한 글을 따라서 설치해주시면 됩니다. CocoaPods.org CocoaPods is built with Ruby a..
- Total
- Today
- Yesterday
- SWEA
- ios
- 백준
- DispatchQueue
- cocoapods
- SwiftUI
- UIHostingController
- rxswift
- 코코아팟
- Swift unowned
- 알고리즘
- Swift
- 프로그래머스
- C++
- 안드로이드
- Swift weak
- coreml
- Lottie
- 카카오인턴십
- disposeBag
- rxswift6
- blendshape
- 백준온라인저지
- boj
- GraphDB
- infallible
- ARKit
- blendshapes
- Reactivex
- Kotlin
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |