728x90
작업 내용
프로그램 사용성 검증을 하기 위해서 우리의 Target인 선생님들에게 MVP(Minimum Viable Product)를 UT(User Test)를 해야하는 작업이 생겼습니다.
UT를 진행하면서 UT동안만 프로그램을 사용할 수 있게 프로그램을 승인 및 차단하는 기능을 만들어야 합니다.
절차
- TimeFetcher클래스안에 있는 fetchTime함수를 이용하여 서버에서 Json파일을 디코딩 하여 시간(date)을 가져옵니다.
- formatterDate를 통하여 Date Type을 String Type으로 변경하여 currentTime 변수에 넣어줍니다.
- checkTimeFormat함수를 이용하여 currentTime시간을 settingHour시간안에 속해 있을때만isAbled를 true로 값을 주어 프로그램을 사용할 수 있도록 합니다.
- settingHour 아닐때면 isAbled를 false로 값을 주어 프로그램을 차단합니다.
- settingHour을 편하게 변경할 수 있도록 코드를 작성합니다.
예시
⚠️ 서버와 연결하지 않으면 고려해야할 부분이 많아지므로 서버와 연결하여 서버의 시간과 다르면 사용하지 못하게 만들었습니다.
18시~20시 (User A만 가능),
20시~22시 (USer B만 가능),
유저마다 시간을 변경하여 개개인 인터뷰 시간에 맞게 시간값을 변경할 수 있게 코드를 작성합니다.
View
DisabledView
- 유저 대상으로 하는 UserTest 에서 시간이 지나면 프로그램을 더 이상 사용하지 못하게 차단합니다
- switch case를 사용하여 서버에서 시간을 가져와 테스트 시간(2시간)동안 사용할 수 있도록 합니다.
- 인터넷 연결이 안되거나 시간이 지나면 “사용할 수 없습니다.” 라는 안내 문구가 나옵니다.
struct 및 class 설명
TimeFetcher Class
- 인터넷 시간 api 가져오기
Instance Properties
var currentTime: String
Instance Methods
func fetchTime()
- url 통신 후 decoding
func formatterDate(String) -> String
- date를 string type으로 변환
TimeResponse
- 시간 모델
Initializers
- init(datetime: String)
- init(from: Decoder) throws
Instance Properties
- let datetime: String
728x90
'SwiftUI > 개발' 카테고리의 다른 글
[Swift] 폴더 이름 중복 검사 (1) | 2023.10.28 |
---|---|
[SwiftUI] View가 멈추는 현상 (0) | 2023.10.25 |
[SwiftUI] 애플스토어 앱 클론코딩(스크롤) (0) | 2023.07.08 |
[SwiftUI] 알람 앱 클론코딩 (0) | 2023.07.07 |
[SwiftUI] 애플스토어 앱 클론코딩 (1) | 2023.05.30 |