프로젝트

[SwiftUI] 스위프트 UI로 타이머 어플 만들기(1)

lcho3878 2024. 4. 12. 19:31

스위프트UI를 공부하며 프로젝트에 녹여내어 보고 싶어서 프로젝트를 기획했다.

 

N사의 M게임은 사용하면 OO분간 특수한 효과들이 적용되는 아이템들이 있다.

 

대부분의 아이템은 30분간 효과가 지속되어 주기가 맞아 떨어지지만 15분, 2시간 처럼 주기가 맞지 않는 아이템들도 여럿 존재하기에

이를 위해서는 유저가 직접 지속시간을 지켜보며 효과가 끊이지 않도록 사용해주어야 하는 불편함이 있다.

 

웹사이트나 유튜브의 시간마다 소리가 나게 하는 기능들을 통해서 이런 불편함을 해소하지만, 모바일 앱으로 제작하여 푸쉬 알림, 워치 알림등을 사용한다면 좀 더 편하게 사용할 수 있지 않을까 라는 생각에서 시작해본다.

 

초기 UI 디자인은 고려하지 않고 기능 위주로 개발을 시작해보았다.

 

어려웠던 점 : 기존에는 Timer 클래스를 구현한 뒤, 여러 타이머 마다 각 객체를 할당하여 시간의 흐름을 제어하려고 했었으나, 반응 프로그래밍에서 Timer 배열 전체를 Observable 하도록 구현하여도, View 업데이트가 이루어지지 않았다.

 

해결 : Timer 객체를 하나만 생성한 뒤, 배열에는 알람을 원하는 시간단위를 저장하는 Times로 변경해주었다. Timer의 시간이 흐름에 따라 Times에 있는 각 Time들의 남은 시간을 계산해주었고, 이 남은 시간에 따라 알림을 생성할 수 있도록 변경하여 해결하였다.

 

해결해야할 문제 : 0초가 남게 되면 알림이 울리는 것이 아니라, 기존 목표시간(ex: 5, 9초)으로 바로 돌아간 뒤, 1초 후 알림이 울린다.

 

'프로젝트' 카테고리의 다른 글

[SwiftUI] 스위프트 UI로 타이머 어플 만들기(2)  (1) 2024.04.18
랜덤 고양이 어플(11)  (1) 2024.02.08
랜덤 고양이 어플(10)  (0) 2024.02.01
랜덤 고양이 어플(9)  (0) 2024.01.24
랜덤 고양이 어플(8)  (0) 2024.01.23