You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
그날의 감정을 대신 표현해주는 돌 캐릭터와 함께 기록하고 쌓을 수 있는 감정일기 앱
"소중한 기억들을 돌에 새겨 차곡차곡 쌓아보세요."
개발환경
기간: 2024.09.10 ~ 2024.10.02 (약 4주)
인원: 1명
📷 ScreenShot
메인화면
달력화면
일기상세
일기작성
일기열람
📌 주요기능
일기 작성/수정/삭제: 일기를 위한 기본적인 CRUD를 할 수 있습니다.
돌 쌓기: 유저가 작성한 작성한 일기의 감정 돌 캐릭터가 메인 화면에 쌓입니다. 쌓인 돌들은 디바이스의 움직임에 맞춰 굴러갑니다.
달력 기능: 달력을 통해 한눈에 일기현황을 파악할 수 있으며 일기를 열람하거나 새 일기를 작성할 수 있습니다.
월간/연간 리스트로 일기 열람
리스트 형태로 일기를 열람하고 지정한 연/월로 조회할 수 있습니다.
일기검색기능
예정된 업데이트
사진 추가기능
음성 녹음기능
🧰 기술스택
분야
기술 스택
🎨 UI
SwiftUI
♻️ 반응형 프로그래밍
Combine
📦 데이터베이스
RealmSwift + Repository 패턴
🎸 기타
SpriteKit CoreMotion
🛠️ 주요 기술 상세
SpriteKit, CoreMotion 을 활용한 RockStackScene 구현
해당하는 달의 일기를 각각의 일기 데이터를 가진 SKNode로 생성하여
physicsBody에 현실과 유사한 물리법칙을 적용
CMMotionManager 을 활용하여 디바이스 움직임에 따라 node가 움직이도록 구현
SceneWrapper
현재 월별 데이터 관리 및 업데이트를 담당하며 Scene과 다른 객체 사이의 중개자 역할
현재 보고있는 달(currentMonth)이 변화할 때 DiaryRepository로부터 해당 달의 일기 데이터를 RockStackScene 및 CustomCalendarView에 반영
RealmSwift 을 활용한 실시간 데이터베이스 동기화
@ObservedResults와 @ObservedRealmObject 프로퍼티 래퍼를 사용해 데이터가 변경될 때마다 자동으로 UI가 업데이트되도록 구현