ios 131

[iOS] Memory Debug Graph 분석해 프로젝트 구조 개선

[iOS] Memory Debug Graph 분석하기 IT 동아리에서 2개월간 작은 서비스를 개발했다 기간이 짧았던 만큼 앱 규모도 작았지만, 그에 비해 메모리를 과다하게 사용하고 있다고 느껴졌다. SwiftUI + Combine을 기반으로 프로젝트를 작업 우선 처음으로 의심해 본 부분은 메모리 릭이 발생하는 것 같다고 생각해서, 메모리 릭을 체크해봤다. 우선 프로파일링을 열어서 Leak을 체크 Leaks에 체크되는 부분은 없었지만 무언가 계속 증가하고 있었다. 그래서 그 다음에 생각되었던 부분은 앱 구조에서 무거운 객체를 여러번 생성하는게 아닐까 싶었다. 실질 개발기간이 약 1개월이었기에 (첫 배포까지는 약 3주) 각 Repository 및 UseCase에서 각 객체를 독립적으로 생성했다. 개발 단계에..

iOS SwiftData in UIKit

iOS SwiftData in UIKit연관 포스팅[iOS CoreData 간단한 CRUD](https://rldd.tistory.com/587)[iOS SwiftData in UIKit](https://rldd.tistory.com/588)[iOS CoreData 이론](https://rldd.tistory.com/586)[iOS CoreData Relationships](https://rldd.tistory.com/661) 이번에는 SwiftData를 UIKit에서 사용해보자!CoreData를 학습하기 전에는 SwiftData가 진짜 어려웠는데, 지금은 훨씬 배우기 쉽다. SwiftData를 사용하면 CoreData와 개념적으로 부합하고 있어서 학습하는데 더 쉽게 느껴졌다.또한 SwiftData가 가..

iOS CoreData 간단한 CRUD

iOS CoreData 간단한 CRUD 가장 기초적으로 CRUD 수행해보자 연관 포스팅[iOS CoreData 간단한 CRUD](https://rldd.tistory.com/587)[iOS SwiftData in UIKit](https://rldd.tistory.com/588)[iOS CoreData 이론](https://rldd.tistory.com/586)[iOS CoreData Relationships](https://rldd.tistory.com/661) Core Data를 사용하기 위한 사전준비- 프로젝트 생성시이렇게 생성하면 AppDelegate와 SceneDelegate에 기본적으로 Core Data를 위한 코드가 추가됩니다.먼저 SceneDelegate에서는 백그라운드로 넘어갔을때 현재 컨..

iOS CoreData 이론

iOS CoreData 이론 CoreData에 대해서 알아봅시다.1편에서는 개념과 이론을 중점으로 서술하며, 코드 설명은 2편에서 이어집니다.연관 포스팅[iOS CoreData 간단한 CRUD](https://rldd.tistory.com/587)[iOS SwiftData in UIKit](https://rldd.tistory.com/588)[iOS CoreData 이론](https://rldd.tistory.com/586)[iOS CoreData Relationships](https://rldd.tistory.com/661) Core Data란?- 코코아 개발 환경을 통해 제공하는 인 메모리(In-Memory) 방식의 데이터 관리 프레임워크.- 이를 통해 데이터베이스 한경과 유사하게 데이터 CRUD과정..

[TCA] Effect #6 (WebSocket)

[TCA] Effect #6 (WebSocket) 목차 - 이번에 할 실습에 대한 설명 - 웹소켓 개념에 대해서 설명은 생략 - 나의 이전 작업에서의 웹소켓과 연관지어 생각해보기 - TCA WebScoket 예제 # 이번에 할 실습에 대한 설명 URLsession의 웹소켓용 API를 위한 간단한 Wrapper를 만들어 소켓 서버에 접속하여 테스트한 후 메시지를 전송 후 소켓 서버는 즉시 메시지를 클라이언트에게 회신. - 나의 이전 작업에서의 웹소켓과 연관지어 생각해보기 내가 개발을 처음 공부할 당시에는 웹소켓을 이렇게 많이 다루리라고 생각하지 못했는데, 메인으로 사용하고 있음. 처음 이론이 아닌 웹소켓을 접하게 된 것은 Kuring프로젝트에서 검색파트를 구현하면서 처음 알게 되었는데, 당시에는 StarS..

apple/TCA 2023.10.08

[TCA] FocusState

[TCA] FocusState TCA의 FocusState 사용방법 정리 - 목차 - FocusState 사용 예제 - FocusState 사용 예제 SwiftUI의 @FocusState는 TCA 라이브러리의 `bind` view Modifier를 통해 사용 - 자세한 부분은 코드의 주석을 확인 // MARK: - Feature domain struct FocusDemo: Reducer { struct State: Equatable { @BindingState var focusedField: Field? // ✅ 2. 포커스 스테이트로 사용할 bindingState를 선언 @BindingState var password: String = "" @BindingState var username: String..

apple/TCA 2023.09.27

[ARKit] #6 ARKit in iOS

ARKit in iOS iOS 디바이스 카메라 모션 기능 등 우리의 앱에서 증강 현실 경험을 생성하는 방법에 대해서 알아보자. # 장치 권한 확인(Verifying Device Support and User Permission) - 앱이 ARKit을 사용할 수 있고, 사용중에 그 권한이 있는지 확인해야 한다. - ARKit은 iOS 11.0 이상 그리고 A9 프로세서 이상이 필수적임. 몇몇 ARKit 기능들은 더 특정 디바이스의 더 최신버전이 필요함. ARKit은 또한 디바이스의 카메라를 사용하고, 그래서 iOS의 privacy 권한을 유저로부터 허용받아야 함. 장치의 호환성을 우리가 다루는 방법을 ARKit을 우리가 어떻게 사용하냐에 따라 다름. - 만약 후면 카메라를 이용한 AR의 기본적인 기능만 사..

[SceneKit] #4 SCNAction

SCNAction 시작하기 전 간단정리 SceneKit에서 명시적 애니메이션: Core Animation SceneKit에서 암시적 애니메이션: SCNTransaction SCNAction은?: 그룹핑, 시퀀스, 싱글 등 조합 가능. 연결한 모든 노드의 속성을 변경하는 간단하고 재사용 가능한 애니메이션. class SCNAction : NSObject SCNNode액션 이 연결된 객체의 구조와 내용을 변경하기 위해 액션을 사용하지만 액션을 사용하여 scene에 다른 변경을 줄 수 있음. SceneKit에서 액션은 사용자 입력에 따라 자주 변경되는 애니메이션 동작을 구현하는 쉬운 방법을 제공함. # Working with Actions action을 생성하기 위해서는 action과 관련이 있는 메서드의 클..

[SceneKit] #3 Animating SceneKit Content

#3 Animating SceneKit Content 내가 만든 지오메트리들에 이벤트나 애니메이션 등도 사용할 수 있다. # Base Code 일단 기본코드는 이렇게 여기서 하나하나 추가해보자. func make_image_control() { let scene = SCNScene() arSceneView.scene = scene // 카메라 생성 let cameraNode = SCNNode() cameraNode.camera = SCNCamera() cameraNode.position = SCNVector3(x: 0, y: 0, z: 5) scene.rootNode.addChildNode(cameraNode) // Capsule 생성 및 추가 let capsuleGeometry = SCNCapsule(..

[SceneKit] #2 Geometry 다뤄보기

#2 Geometry 다뤄보기 Geometry 다뤄보기 - 들어가기 전 간단정리 - Geometry: 우리가 원하는 어떤 물체 (ex. 정육면체, 구 등) - Material: 지오메트리 표면에 어떤 효과를 주는것 (ex. 이미지 넣기, 색 넣기 등) - Node: ARSceneView화면에 Geometry를 추가할건데, Node를 통해 좌표를 주어 넣을때 사용. # SCNGeometry 클래스 material이 정의된 표면에 Scene에 표시할 수 있는 3차원 모양(model 또는 mesh라고도 부름) SceneKit에서 SCNode 객체에 연결된 지오메트리는 Scene의 Visible 요소를 구성하며, 지오메트리에 연결된 SCNMaterial 객체는 그 모양을 결정합니다. # Working with ..