본문 바로가기

Developer46

[iOS] ARKit(1) - OverView, Setting 요즘 그래픽스 관련 서적을 참고하고 Metal 관련 코드를 공부하고 있다. 그러다가 집중력이 흐려질땐 내부적으로 Metal 기능을 사용하고 있는 ARKit, RealityKit과 같은 프레임워크를 경험하면서 Top - Down 방식으로 접근해보는 것도 도움이 될 것이라 판단했다. ARKit ARKit 프레임워크의 주요 목적은 증강 현실(AR) 경험을 개발하는 것이며 제공하는 기능은 다음의 4가지다. motion trackingworld tracking환경의 표면, 크기, 형태를 파악디스플레이 편의성ARKit의 차별화된 기능: 마커리스 추적ARKit의 특징 중 하나는 markerless tracking 이다. 추적 카드(마커)도 필요 없이 주변 환경을 파악하고, 가상 콘텐츠를 실제 환경에 자연스럽게 어우러.. 2024. 1. 21.
컴퓨터 그래픽스 - Rasterizer(1) fovy는 시야각(field of view angle)을, aspect는 종횡비(aspect ratio)를, n과 f는 각각 근접 클리핑 평면(near clipping plane)과 원거리 클리핑 평면(far clipping plane)의 위치를 나타낸다. 이러한 값들은 카메라가 어떻게 3차원 공간을 '보는지'를 결정하는데 사용됨. clip space의 각 정점을 자신의 w좌표로 나누면 Cartesian coord의 정점으로 변한다. 이것은 원근법을 구현하는 효과를 가지며 원근 나눗셈이라고 한다. w는 동차 좌표(Homogeneous coordinates) 시스템에서의 한 요소임. 이렇게 얻은 Cartesian 좌표를 Normalized device coordinates 또는 NDC라고 한다. NDC(N.. 2024. 1. 13.
[Error] Couldn`t be opened 상황 : 새로운 맥북(M1 Pro 16)을 받아서 기존 프로젝트를 clone했는데 위와 같은 에러가 발생하며 실행되지 않음. 추론 : 1. 이전에 push한 코드에서 충돌이 발생한 경우. 2. Xcode 버전 문제 해결 : Xcode Update를 통해 해결. 프로젝트 파일을 실행시켜보니 위와 같은 에러 메시지로 버전 문제라는 것을 명시해줌. 2023. 7. 4.
[iOS] Compositional Layout & Sticky Header를 적용하면서(UIKit) 새로운 사이드 프로젝트의 MainPage의 뷰를 맡아서 구현해보려고 합니다. UIKit으로 구현해야할 뷰의 대략적인 모습은 아래와 같습니다. 가로 방향의 카드 리스트 형태의 뷰, 세로방향의 판매품목 리스트 형태의 뷰, 가로 방향의 유저 프로필 리스트 등의 다양한 특징을 가진 셀들이 하나의 리스트 뷰 안에 들어가야합니다. 또한 중간에 Sticky Header형태의 탭바가 들어가 있어서 해당 섹션의 리스트가 보일때 탭바는 스크롤시 사라지지 않고 상단에 유지되어야합니다. 처음엔 UIKit으로 구현하게 된다면 NestedScrollView로서 UITableView를 사용하였고 그 안에 각각의 셀의 뷰에 UICollectionView, TableView를 배치하여 구현하였습니다. 하지만 일반 TableView와 .. 2023. 3. 10.
[SwiftUI] FileImporter 권한 요청 아래와 같은 코드로 파일을 import하여 csv파일의 데이터를 단어장으로 가져오려고 하였다. 하지만 아래와 같은 에러가 발생하게 된다. The file “TestCSVFiles.csv” couldn’t be opened because you don’t have permission to view it. 권한이 없다는 문제였으며 아래 함수를 사용하여 권한 접근 문제를 해결할 수 있다. let fileURL = URL(fileURLWithPath: "/path/to/file") if fileURL.startAccessingSecurityScopedResource() { // Access the file // ... fileURL.stopAccessingSecurityScopedResource() } else.. 2023. 2. 9.
[iOS] Swinject를 적용해보면서... - 의존성 주입 Dependency Injection, Inversion 한창 Android를 공부할 당시 DI 라이브러리로 Hilt와 Koin 중에 무엇을 쓸지 고민했던 기억이 납니다. 제 사견으로 iOS에서는 보편적으로 쓰이고 유명한 DI라이브러리는 잘 못들어본 것 같습니다. 안드로이드가 상대적으로 자료가 더 많아서 그럴수도 있겠지만요. 그동안 싱글톤으로 DI Provider를 만들어서 처리해왔는데 이참에 알아보려합니다. 나름대로 주변 개발자 or 팔로우한 개발자 or 검색을 통해 알바본 바로는 Swinject가 많이 보이더군요. https://github.com/Swinject/Swinject GitHub - Swinject/Swinject: Dependency injection framework for Swift with iOS/macOS/Linux Dependency.. 2023. 1. 15.
[iOS] Rx 다시 정복(1) feat. Rx Study발표 - 에이젠 이전에도 Rx에 대해 포스팅한 적이 있습니다. 그때보다 더 쉽게 더 자세하게 간지러웠던 부분까지 다시 정리해보려고 합니다. CMC에서 알게된 iOS 개발자분들과(8기, 10기, 11기) 취업을 목표로 스터디를 시작하게 되었습니다. 주제는 세션마다 바꿀 예정이구요. 첫 주제는 RxSwift가 되었습니다. 프로젝트에 RxSwift를 적용해본 경험이 있던 제가 먼저 자연스럽게 첫 발표를 맡게 되었습니다. 막상 Rx가 처음이신 분들께 설명해보려고 하니 이전에 정리한 글과 공식문서의 설명은 마음에 들지 않더군요. ㅎㅎㅎ RxSwift는 반응형 프로그래밍 프레임워크라고 소개됩니다. 반응형 프로그래밍 패러다임. 반응형 프로그래밍을 가능하게 해주는 도구죠. 그리고 함수형 프로그래밍과 결합하여 더 반응성이 좋은 앱을 만.. 2022. 12. 19.
728x90