[iOS] TCA(The Composable Architecture) 입문기
·
Apple/iOS
안녕하세요! 피피아노입니다 🎵 최근 관심 있는 회사들의 채용 공고와 기술 블로그를 살펴보다가 TCA(The Composable Architecture)를 사용하는 곳들이 생각보다 많다는 것을 알게 되었습니다. 특히 제가 지원하고 싶은 회사에서도 TCA를 사용하고 있었습니다. 단순히 이력서에 한 줄 추가하기 위한 공부가 아니라, 실제로 해당 회사와 관련된 프로젝트를 TCA로 구현해보면서 이 기술을 제대로 이해하고 싶었습니다. 그래서 본격적으로 TCA를 학습하게 되었고, 이번 글에서는 그 과정에서 배운 내용들을 정리해보려 합니다. TCA란?TCA는 The Composable Architecture의 줄임말로, Point-Free에서 일관성 있고 이해하기 쉬운 방식으로 애플리케이션을 구축하기 위해 제작한 "..
[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가 앱 ..