목록Swift/UIKit 개발 노트 (57)
HIT해

프로젝트가 거의 마무리 단계까지 왔다. 눈사람의 몸통, 눈, 코, 입, 맵을 몇가지를 제외하고는 모두 직접 만들었지만 사용 방법을 따로 정리하지 않아 제작할떄마다 헷갈렸다. 그래서 블렌더를 사용하며 자주 사용한 기능들을 정리하며 만들어보려한다. 흔히 집에서 볼 수 있는 냉동실의 모습을 기반으로 제작해보기로했다. 도형 만들기Shift + A면삭제Tab(에디트모드) - 삭제할면 클릭 후 X -> Face 선택 구분선 추가Ctrl+R구분선 추가 후 S를 누르면 굴곡을 주고 E를 누르면 면을 생성한다 두께 조절면을 선택한후 E를 눌러 안쪽으로 밀어도 되지만 이러면 바깥에서 보았을떄 푹 파여보인다. Object Mode -> Modifier Properties -> Add Modifier > Solidify..

SwiftUI에서 UIKit를 함께 사용하는 UIViewRepresentable 프로토콜은 iOS 개발자라면 절대 피해갈 수 없는 관문이라 생각한다. 왜 자주 사용하는 걸까. SwiftUI는 선언적이고 상태 관리가 쉬운 이점을 가진 반면 UIKit만큼 다양한 라이브러리가 없고 TextField 만 만들어봐도 제약이 많다는 것을 알 수 있다. 그럼 SwiftUI에서 UIKit 기능을 사용할 수 있게 해주는 UIViewRepresentable 프로토콜에 대해서 알아보자.UIViewRepresentable이란?UIKit뷰를 SwiftUI에서 사용할 수 있게 해주는 프로토콜이다. 두가지 메서드가 필요한데makeUIView(context:): UIKit뷰 생성updateUIView(_:context:): Swif..

모바일 데이터베이스를 활용해서 걸음수와 현재 속도를 저장 및 불러오는 기능까지 만들었고. 눈덩이가 굴러가는 듯한 모션 만들어야했다. 1. 눈덩이가 회전하는게 느껴지도록 좀더 질감있게 만들기. 2. 속도에따라 회전하는 배경을 추가하기 3. 눈사람 몸통부분을 굴린다면 나뭇가지손이나 단추를 추가해서 회전하는것처럼 보이기 4. 눈사람 얼굴 부분이라면 얼굴이 회전하는걸 보이게하기 우선 단순하게 장식없는 눈사람 만들기 앱을 구현하는것이 목표였기떄문애 1번 방법부터 진행해보았다. 눈덩이가 회전하는게 느껴지도록 좀더 질감있게 만들기.눈사람을 조금 울퉁불통하게 만들고 질감이 느껴지도록 만들어도 컴포넌트안에서 보이는 눈의크기는 작고, 질감만으로 회전하는 듯한 모습을 보여주기는 어려웠다. dae 파일에서 scn 파일로 변환..

Realm 은 모바일에 최적화된 오픈소스 데이터베이스다. CoreData보다 가볍고 실시간 데이터처리 + 간단한 모델을 사용할때 더 적합하다고하여 프로젝트에 적용하고자 공부해보고자 한다. https://github.com/realm/realm-swift GitHub - realm/realm-swift: Realm is a mobile database: a replacement for Core Data & SQLiteRealm is a mobile database: a replacement for Core Data & SQLite - realm/realm-swiftgithub.com 공식 사이트를 통해 알아보았다. Realm의 장점1. 직관적이고 객체 지향적이며 ORM이 필요없다.2. 가볍고, 메모리, 디..
패키지에 관련한 문제가 발생했을떄 뜨는 오류다. 나의 경우 RealmSwift를 설치했는데 계속 오류가 발생했다. 첫번째 해결방법Xcode - File - Package - Reset 여전히 문제였다 두번째 해결방법프로젝트 - General - Framework - Embeded 확인Embeded & Sign으로 설정해주면 오류 해결 완료~

프로젝트 기획이번 겨울에도 어김없이 눈이 내렸다. 달라진 점이 있다면 어릴적엔 눈사람을 만들고 녹지 않길 바라며 냉동고에 보관했던 것이었다. 그래서 이틀동안 간단하게 만들어보았다. 눈사람 어플리케이션~~ 그날의 걸음 수에 따라 눈사람 크기가 결정되고 냉동고에 눈사람을 저장할 수 있는 어플리케이션이다. WeatherKit로 날씨를 불러오고 HealthKit로 걸음수를 불러오고 CoreLocation으로 현재위치를 불러왔다. 그리고 CloudKit에 그날그날 걸음수를 기록해 냉장고에 저장된 눈사람 정보를 불러오는 식으로 만들어보았다. 처음 기획의도는 포켓몬GO 처럼 걸을때마다 걸음수를 기록해서 눈사람 몸통이 굴러가는 모션을 주려고 했으나 너무 빠른 주기로 걸음수를 확인하다보니 CPU 사용량이 너무 커졌고..

개발 배경 및 문제 상황SwiftUI와 SceneKit을 사용하여 3D 오브젝트(돌)의 애니메이션을 구현했습니다. 기존에는 사용자가 화면에서 돌을 직접 터치했을 때만 애니메이션이 동작했지만, 돌 프로필 조회와 애니메이션 액션이 겹치는 문제가 발생했습니다. 이로 인해 외부 UI 버튼으로도 동일한 애니메이션을 제어할 필요성이 생겼습니다. 문제는 기존 코드에서 3D 오브젝트 애니메이션이 UIKit의 터치 이벤트에만 연결되어 있어 SwiftUI의 버튼 등 다른 UI 요소에서 같은 애니메이션을 트리거하기 어려웠다는 점입니다. 이를 해결하기위해 Delegate 패턴을 활용했습니다. Delegate 패턴이란?Delegate 패턴은 객체 간의 통신을 위한 디자인 패턴으로, 한 객체가 특정 작업을 다른 객체에게 위임하는..
취업준비와 팀프로젝트를 겸행하다보니 프로젝트가 지체되어 아쉬움이 남았다. 서버를 올리기전까지 백엔드 팀원이 로컬 서버를 열어야 api 동작 테스트를 할 수 있었고 새로운 기술인 TCA를 독학해서 상태관리를 하다보니 이게 맞는 방법일까 스스로에게 의구심이 들기도했다. 그래서 2월안에 개인프로젝트를 완성시키고자 마음 먹었다. RxSwift를 사용하고 팀프로젝트에서 완성시킨 3D 툴을 사용하고 SwiftData와 CloudKit를 활용해서 백엔드를 대체해보고자 한다. Todomate 처럼 일정을 손쉽게 관리하되 그날 그날 달성한 일정들을 3D 메달 표시해주어 사용자에게 특별한 추억을 선사하는 그런 어플을 만들어보자.