[Metal] Apple의 Metal 입문하기
·
Apple/Metal
안녕하세요! 피피아노입니다 🎵 iOS 개발을 하시는 분들 중에 그래픽이나 게임 관련을 작업하시는 분들이라면 한번 쯤은 들어보셨을 Metal에 대해서 포스팅을 작성해보려고 합니다. Metal은 2014년에 애플이 공개한 API로 그래픽 성능을 최대한 끌어올리기 위해 만든 API입니다. 물론 그 전에는 그래픽 성능을 끌어올리기 위한 방법이 없었던 건 아니고 OpenGL(Open Graphics Library)이라는 게 있었는데 2018년도부터 OpenGL이 deprecate가 되어서 더 이상 쓰이지 않게 되었습니다. OpenGL ES는 여러 플랫폼에서 동작하는 범용성을 추구합니다. 하지만 Metal은 애플 생태계에 특화되어 설계되었습니다.(애플이 만들었으니 당연한 말 같기도..) Metal의 핵심 구성 요..
[Metal] Metal API 알아보기
·
Apple/Metal
안녕하세요! 피피아노입니다 🎵이번 포스팅에서는 애플의 그래픽 API인 Metal에 대해서 포스팅을 해보려고 합니다. Metal이란?Metal은 Apple이 2014년에 발표한 저수준(low-level) 그래픽스 및 컴퓨팅 API입니다. iOS, macOS, tvOS 기기에서 GPU의 성능을 최대한 활용할 수 있도록 설계되었으며, OpenGL과 OpenCL을 대체하는 Apple의 통합 솔루션입니다. Metal의 핵심 목표는 CPU 오버헤드를 최소화하고 GPU와의 직접적인 통신을 가능하게 하여, 개발자들이 Apple 하드웨어의 잠재력을 완전히 끌어낼 수 있도록 하는 것입니다.주요 특징과 장점Metal API가 제공하는 핵심적인 이점들을 살펴보면, 먼저 극도로 낮은 오버헤드를 들 수 있습니다. 드로우 콜(d..
[SwiftUI] NavigationLink VS NavigationStack
·
Apple/SwiftUI
안녕하세요! 피피아노입니다 🎵 SwiftUI로 앱을 개발하다 보면 화면 전환(Navigation)을 구현해야 하는 순간이 반드시 있습니다. 이때 가장 많이 접하게 되는 2가지 개념이 NavigationLink와 NavigationStack입니다. 둘 다 화면 전환을 할 때 쓰이는 것까지는 알겠는데, 정확히 뭐가 어떻게 다르고 언제 뭘 써야 하는지 헷갈리기도 하고 이번 기회에 확실하게 알고 넘어가기 위해서 글을 정리하게 됐습니다. NavigationLink: 화면 전환 트리거NavigationLink는 네비게이션 프레젠테이션을 제어하는 뷰입니다. 쉽게 말해서 그냥 사용자가 탭하면 다음화면으로 이동하게 하는 버튼입니다. 애플 공식 문서에 적혀있는 내용을 보면 아래처럼 나와 있습니다."People clic..
[Swift] SwiftData 모델 구조 변경 시 런타임 에러 해결하기
·
Apple/Swift
안녕하세요! 피피아노입니다 🎵 SwiftData를 사용해서 앱을 개발하다 보면 한 번쯤 이런 경험을 하게 됩니다. 모델 구조를 살짝 바꿨을 뿐인데 앱이 실행되자마자 바로 런타임 에러가 발생하는 경우 말이죠. 물론 개발 중이라면 앱을 삭제하고 다시 설치하면 문제없이 돌아가지만, 출시된 앱이라면 “앱을 지우고 다시 설치하세요”라고 안내할 수도 없습니다. 그리고 무엇보다 매번 삭제하면서 앱을 빌드하고 테스트하기가 귀찮습니다... 그렇다면 이 문제는 왜 발생하고, 어떻게 해결해야 할까요? 원인 - SwiftData의 내부 구조SwiftData는 내부적으로 SQLite 기반의 데이터베이스를 사용합니다.@Model로 정의한 구조체는 단순한 Swift 타입이 아니라, SwiftData가 해당 구조를 읽어서 데이터베..
[visionOS] 공간 컴퓨팅을 위한 ARKit 알아보기
·
Apple/visionOS
안녕하세요! 피피아노입니다 🎵 이번 포스팅에서는 WWDC23 세션 중 하나인 공간 컴퓨팅을 위한 ARKit 세션을 정리해보려고 합니다. 자세한 내용은 아래 링크를 참고하시면 좋을 것 같습니다.https://developer.apple.com/kr/videos/play/wwdc2023/10082 공간 컴퓨팅을 위한 ARKit 알아보기 - WWDC23 - 비디오 - Apple DeveloperARKit의 추적과 씬 이해 기능을 사용해 몰입형 앱과 게임에 완전히 새로운 세계를 개발할 방법을 알아보세요. visionOS와 ARKit이 만나 어떤 식으로 사람의 주변 환경을 이해하는 앱을 만들 수 있게developer.apple.com그럼 바로 시작하겠습니다! 아키텍처의 변화새로운 설계 철학기존 ARKit가 앱 ..
[iOS] Object Capture: 온디바이스 3D 모델 제작하기
·
Apple/iOS
안녕하세요! 피피아노입니다 🎵 Apple은 iOS에서도 Object Capture를 사용할 수 있게 되었음을 발표했습니다. Object Capture는 다양한 각도에서 촬영한 이미지를 바탕으로 실제와 같은 3D 모델을 자동으로 만들어주는 API로, 이전에는 Mac에서만 가능했지만 이제 iPhone과 iPad에서도 직접 캡처와 모델 재구성이 가능합니다. 이번 글에서는 iOS에서 Object Capture가 어떻게 작동하는지, 개발자가 앱에 통합하는 방법, 그리고 실제 스캔과 모델 재구성 과정에서 고려할 점을 살펴보겠습니다.Object Capture란?Object Capture는 사진 측량(Photogrammetry) 기술을 기반으로, 여러 장의 2D 이미지를 분석해 3D 모델을 생성하는 API입니다. M..