IOS
-
Tuist 설치하기iOS/Tuist 2024. 6. 3. 00:52
모듈화 작업을 위해 Tuist를 설치해보았다. 그런데 Tuist를 설치하기 위해서는 mise를 먼저 설치해야 했다. mise는 Tuist 버전을 설치하고 관리 및 활성화 하는 도구라고 한다.(CocoaPod을 사용해 라이브러리를 설치, 관리하는 것과 비슷하다고 생각됨) mise 설치하기 터미널에서 아래 명령어를 입력한다. curl https://mise.run | shchmod +x ~/.local/bin/mise~/.local/bin/mise --version 그럼 아래처럼 터미널에 보이게 된다. mise를 터미널에 연결하기 그리고는 mise를 터미널에 연결하는 작업을 해야하는데,bash, zsh, fish 각자 맞게 설정한다. echo 'eval "$(~/.local/bin/mise act..
-
TCA BindingiOS/TCA 2024. 3. 5. 22:16
강의를 듣다가 새로운 것을 발견하여 기록한다. 기존에 TCA 아키텍처 기반으로 TextField의 text를 받아올 때 다음과 같이 사용했었다. 1) import SwiftUI import ComposableArchitecture struct SomethingView: View { let store: StoreOf @State var email: String = "" var body: some View { WithViewStore(self.store, observe: { $0 }) { viewStore in VStack { TextField("이메일을 입력하세요", text: $email) .padding() .onChange(of: email) { viewStore.send(.textChanged($0..
-
TCA ToastiOS/TCA 2024. 3. 4. 15:02
State, Action, Reducer를 이용하여 TCA를 어느정도 사용할 줄은 알지만Effect 처리 하는 방법에 대해 공부가 필요하다. case .nameButtonTapped: state.name = "hello Mr.L" return .none 일반적으로 View에서 Action을 호출해서 State을 변경시키고 종료시키는 것이 많긴하지만,만약 Timer나 API 호출이 필요하다면 return .none 으로 끝나서는 안된다. 오늘 예제에서는 Toast Message를 3초간 띄워주고 없애는 것을 해보려고 한다. View에 아래와 같이 Button과 Toast로 띄워줄 Text를 만들어보자Text는 isShowToast가 true일 때 보여줄 예정이다. Button("Toast 보이기") { v..
-
TCA 1.0 The BasiciOS/TCA 2024. 3. 3. 00:23
TCA(The Composable Architecture) 1.0을 정리해보자.(글을 쓰고 있는 지금 현재 TCA 버전 1.9.1이 최신 버전이라는 것은 비밀..😱) 일단 TCA는 선언형 UI인 SwiftUI와 잘 맞는 아키텍처로 알려져있고, 또 단방향 Flow라는 특징을 가지고 있다. 간략하게 설명하면 View에서 어떤 action이 들어오면 TCA Store 내부 Action에서 State를 변경 시켜주고, 그 변경된 State를 SwiftUI View에서 감지하여 화면이 업데이트 되는 방식이다. (대충 위의 그림과 같은 데이터의 방향성을 가진다. (출처: https://www.merowing.info/multi-store-tca/)) 기존 1.0 버전 이전에서는 State, Action, Reduc..
-
사진 Exif에서 날짜 데이터 가져오기iOS/Did 2020. 3. 10. 15:09
사진의 create date를 가져와야해서 방법을 찾아보았다. (다운받은 사진은 뭔가 다른방법이 필요한 것 같다..ㅠ) 원래는 imagePickerController delegate method의 info를 이용하여 다음과 같이 create date를 구할 수 있다. 그런데 phAsset 키가 안보인다...(기존에는 info[UIImagePickerControllerPHAsset] as? PHAsset로 사용했었는데..) func getCreateDate(by info: [UIImagePickerController.InfoKey : Any]) -> Date? { guard let asset = info[.phAsset] as? PHAsset else { return getExifDate(by: info)..
-
AR SessioniOS/AR 2019. 7. 26. 04:04
안녕하세요 dely입니다:) 오늘은 ARSession 객체에 대해 정리해보겠습니다. ARSession은 객체는 ARKit의 모션 추적 및 이미지 처리를 담당합니다. (CMMotionManager와 AVCaptureSession을 관리하는 클래스: Image data와 Motion data를 조합하여 ARFrame을 생성, cf, VIO(Visual Inertial Odomery)를 이용한 CV연산으로 위치를 추적해 ARFrame을 만들어낸다고 합니다.) - AR Session Configuration ARSession을 시작하기 전에 AR Session Configuration을 만들어야합니다. 이것은 실제 세계와 가상 3D 세계 사이의 연결을 설정하는 데 사용됩니다. 모션 추적 및 이미지 처리를 하는 ..
-
Add red triangleOpenGL/iOS_Metal 2018. 10. 13. 11:48
안녕하세요 dely입니다:) 저번 글에서 Metal로 노란색으로 배경 채우기에 이어 빨간색 삼각형을 추가해보겠습니다. (참고영상: Working with Triangles in Metal) 오늘의 목표!! 이번에는 빨간색 삼각형을 추가로 그려주기 위해 vertex개념과 shader를 이용해보려 합니다. 1. 삼각형 vertex 추가 및 pipelineState와 vertexBuffer 프로퍼티 선언 그려줄 삼각형 위치를 vertices 배열로 지정해줍니다. 화면의 중점이 (0, 0)이고, 좌측하단이 (-1, -1), 우측상단이 (1, 1)입니다. 여기서 눈에 보이는 것은 2d지만 사실상 3d 형태이기 때문에 x, y, z 축을 입력합니다. var vertices: [Float] = [ 0, 1, 0, -..