프로젝트 배경
1) 문제점
- 사용자가 취침 시점을 인지하지 못하고 수면 타이밍을 놓치는 경우가 빈번함
- 수면 앱을 직접 실행하지 않으면 현재 상태를 확인하기 어려움
- 알림 중심의 수면 관리 방식은 반복 사용 시 무시되거나 효과가 감소함
2) 프로젝트 목표
- 즉각적인 상태 인지: 앱 실행 없이 잠금 화면에서 현재 수면 준비 상태를 확인할 수 있도록 구현
- 시간 기반 행동 유도: 취침까지 남은 시간을 단계적으로 안내하여 자연스러운 행동 전환 유도
- 지속 노출 구조: iOS Live Activity를 활용한 지속적인 상태 표시 구조 설계
3) 주안점
- 잠금 화면 환경에 최적화된 정보 구조: 제한된 공간에서도 핵심 정보가 전달되도록 UI 설계
- 시간 흐름 기반 상태 설계: 단순 카운트다운이 아닌, 상태 전이를 중심으로 한 UX 설계
- 시스템 리소스 안정성: Live Activity 업데이트 조건을 명확히 분리하여 불필요한 갱신 최소화
- 사용자가 취침 시점을 인지하지 못하고 수면 타이밍을 놓치는 경우가 빈번함
- 수면 앱을 직접 실행하지 않으면 현재 상태를 확인하기 어려움
- 알림 중심의 수면 관리 방식은 반복 사용 시 무시되거나 효과가 감소함
2) 프로젝트 목표
- 즉각적인 상태 인지: 앱 실행 없이 잠금 화면에서 현재 수면 준비 상태를 확인할 수 있도록 구현
- 시간 기반 행동 유도: 취침까지 남은 시간을 단계적으로 안내하여 자연스러운 행동 전환 유도
- 지속 노출 구조: iOS Live Activity를 활용한 지속적인 상태 표시 구조 설계
3) 주안점
- 잠금 화면 환경에 최적화된 정보 구조: 제한된 공간에서도 핵심 정보가 전달되도록 UI 설계
- 시간 흐름 기반 상태 설계: 단순 카운트다운이 아닌, 상태 전이를 중심으로 한 UX 설계
- 시스템 리소스 안정성: Live Activity 업데이트 조건을 명확히 분리하여 불필요한 갱신 최소화
핵심 기능

메인 UI와 Live Activity 기반 수면 타이밍 표시
메인 화면과 잠금 화면에서 취침까지 남은 시간을 실시간으로 확인 가능합니다.
출발 임박, 출발 시간 도달, 지연 상태를 색상과 메시지로 직관적으로 표현해줍니다.
시작, 업데이트, 종료 시점을 명확히 제어합니다.
출발 임박, 출발 시간 도달, 지연 상태를 색상과 메시지로 직관적으로 표현해줍니다.
시작, 업데이트, 종료 시점을 명확히 제어합니다.

NFC 카드 태그 기반 수면 시작 트리거
사용자가 수면 전 등록된 NFC 카드를 태그하면, 앱들이 스크린타임으로 인해 잠기게 됩니다.
진행 단계
기획 및 요구사항 정의
2025.09.
건강한 수면습관을 형성할 수 있도록 유도하는 서비스를 만들기로 정하고 기획에 착수하였습니다.
컨셉을 "기차 여행"으로 설정하고, 수면 타이밍을 열차 출발로 메타포를 삼았습니다.
컨셉을 "기차 여행"으로 설정하고, 수면 타이밍을 열차 출발로 메타포를 삼았습니다.
UX/UI 구조 설계
2025.09.
메인 화면을 설계하고, 메인 화면의 핵심 정보를 앱을 켜지 않고도 확인할 수 있는 정보 구조 및 상태별 UI를 설계하였습니다.
메인 앱 및 Live Activity 개발
2025.09.
SwiftUI 기반의 Native iOS 앱 개발에 착수했습니다.
Activitykit 기반의 Live Activity 구현 및 상태 전이 로직을 개발하였습니다.
홍보를 위한 마케팅 랜딩페이지를 개발 및 배포하였습
Activitykit 기반의 Live Activity 구현 및 상태 전이 로직을 개발하였습니다.
홍보를 위한 마케팅 랜딩페이지를 개발 및 배포하였습
테스트 및 안정화, 리팩토링
2025.10.
시간 흐름 및 상태 전환 시나리오 테스트, lifecycle 안정성 검증을 진행했습니다.
유지보수 용이성과 가독성을 고려하여 리팩토링을 진행했습니다.
유지보수 용이성과 가독성을 고려하여 리팩토링을 진행했습니다.
프로젝트 상세
1) 포트폴리오 소개 :
[프로젝트 배경]
Sleeptrain은 사용자가 취침 시점을 놓치지 않도록 돕기 위해 수면까지 남은 시간을 "열차 출발 시간"이라는 메타포로 시각화한 수면 관리 앱입니다. 앱을 열지 않아도 현재 상태를 즉시 인지할 수 있도록 iOS Live Activity를 활용한 잠금 화면 실시간 표시 기능을 구현했습니다.
2) 작업 범위 :
- iOS Native 개발 전반
- Live Activity 및 Widget Extension 설계 및 구현
- SwiftUI 기반 Lock Screen UI 구성
- 시간 흐름 기반 상태 전이 로직 설계
- Live Activity lifecycle 관리(Start / Update / End)
3) 주요 업무 : 서비스 설계, 개발 및 홍보용 랜딩페이지 개발 및 배포
[주요 기능]
- Live Activity를 활용한 수면 타이밍 실시간 표시
- 취침까지 남은 시간에 따른 상태별 UI 제공
- 출발 1시간 전 / 30분 전 / 1분 전
- 출발 시각 도달
- 지연 상태 표시
- 상태 변화에 따른 색상 및 메시지 변화로 사용자 행동 유도
[주요 페이지]
- iOS 잠금 화면 Live Activity 화면
- 수면 전 / 수면 중 상태에 따른 Live Activity UI
- 서비스 홍보를 위한 랜딩페이지
4) 주안점 : 서비스 구축 시 중점이 되었던 사항
- 잠금 화면에서도 의미가 완결되는 정보 구조
- 앱 진입 없이도 현재 상태를 즉시 이해할 수 있도록 정보 밀도와 가독성에 집중
- 시간 흐름 기반 상태 설계
- 단순 카운트다운이 아닌, 상태 전이(State Transition)를 중심으로 한 구조 설계
- Live Activity 특성에 맞는 안정성 확보
- 불필요한 업데이트를 줄이고, lifecycle을 명확히 관리하여 시스템 리소스 낭비 최소화
- 사용자 행동을 유도하는 UI 표현
- 출발 임박 및 지연 상황을 색상과 메시지로 직관적으로 전달
[프로젝트 배경]
Sleeptrain은 사용자가 취침 시점을 놓치지 않도록 돕기 위해 수면까지 남은 시간을 "열차 출발 시간"이라는 메타포로 시각화한 수면 관리 앱입니다. 앱을 열지 않아도 현재 상태를 즉시 인지할 수 있도록 iOS Live Activity를 활용한 잠금 화면 실시간 표시 기능을 구현했습니다.
2) 작업 범위 :
- iOS Native 개발 전반
- Live Activity 및 Widget Extension 설계 및 구현
- SwiftUI 기반 Lock Screen UI 구성
- 시간 흐름 기반 상태 전이 로직 설계
- Live Activity lifecycle 관리(Start / Update / End)
3) 주요 업무 : 서비스 설계, 개발 및 홍보용 랜딩페이지 개발 및 배포
[주요 기능]
- Live Activity를 활용한 수면 타이밍 실시간 표시
- 취침까지 남은 시간에 따른 상태별 UI 제공
- 출발 1시간 전 / 30분 전 / 1분 전
- 출발 시각 도달
- 지연 상태 표시
- 상태 변화에 따른 색상 및 메시지 변화로 사용자 행동 유도
[주요 페이지]
- iOS 잠금 화면 Live Activity 화면
- 수면 전 / 수면 중 상태에 따른 Live Activity UI
- 서비스 홍보를 위한 랜딩페이지
4) 주안점 : 서비스 구축 시 중점이 되었던 사항
- 잠금 화면에서도 의미가 완결되는 정보 구조
- 앱 진입 없이도 현재 상태를 즉시 이해할 수 있도록 정보 밀도와 가독성에 집중
- 시간 흐름 기반 상태 설계
- 단순 카운트다운이 아닌, 상태 전이(State Transition)를 중심으로 한 구조 설계
- Live Activity 특성에 맞는 안정성 확보
- 불필요한 업데이트를 줄이고, lifecycle을 명확히 관리하여 시스템 리소스 낭비 최소화
- 사용자 행동을 유도하는 UI 표현
- 출발 임박 및 지연 상황을 색상과 메시지로 직관적으로 전달

앱의 전반적인 개요

수면 습관 설정 페이지

드림카드 태그 관련 페이지

앱 사용 방법에 대한 간단한 설명



