[SwiftUI] 프로그램 차단 기능

2023. 10. 6. 01:21·Swift/개발
728x90

차단 프로그램

작업 내용

프로그램 사용성 검증을 하기 위해서 우리의 Target인 선생님들에게 MVP(Minimum Viable Product)를 UT(User Test)를 해야하는 작업이 생겼습니다.

UT를 진행하면서 UT동안만 프로그램을 사용할 수 있게 프로그램을 승인 및 차단하는 기능을 만들어야 합니다.

절차

  1. TimeFetcher클래스안에 있는 fetchTime함수를 이용하여 서버에서 Json파일을 디코딩 하여 시간(date)을 가져옵니다.
  2. formatterDate를 통하여 Date Type을 String Type으로 변경하여 currentTime 변수에 넣어줍니다.
  3. checkTimeFormat함수를 이용하여 currentTime시간을 settingHour시간안에 속해 있을때만isAbled를 true로 값을 주어 프로그램을 사용할 수 있도록 합니다.
  4. settingHour 아닐때면 isAbled를 false로 값을 주어 프로그램을 차단합니다.
  5. 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

'Swift > 개발' 카테고리의 다른 글

[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
'Swift/개발' 카테고리의 다른 글
  • [Swift] 폴더 이름 중복 검사
  • [SwiftUI] View가 멈추는 현상
  • [SwiftUI] 애플스토어 앱 클론코딩(스크롤)
  • [SwiftUI] 알람 앱 클론코딩
bulmang
bulmang
모바일 개발자 도전
  • bulmang
    bulmang
    bulmang
  • 전체
    오늘
    어제
    • 분류 전체보기 (208)
      • 알고리즘 (68)
        • List (3)
        • Two Pointer (6)
        • Binary Search (4)
        • Prefix Sum (3)
        • Sort (4)
        • Brute Force (5)
        • Array (2)
        • String (4)
        • 프로그래머스 (12)
        • 백준 (9)
        • Queue (2)
        • Stack (2)
        • Recursion (12)
      • Computer Science (16)
        • Computer Architecture (6)
        • Operating System (5)
        • Network (2)
        • 기타 (2)
        • System Programming (1)
      • Swift (70)
        • 개발 (24)
        • 정리 (25)
        • 문법 (20)
      • Flutter (24)
      • 기타 (12)
        • 후기 (12)
      • Git (6)
      • Ios 오픈소스 (5)
      • UI 디자인 (5)
      • AppleScript (2)
  • 링크

    • Notion
    • Github
  • 태그

    riverpod
    코딩테스트
    피플
    Xcode
    협업
    Java
    알고리즘
    til
    문법
    백준
    컴퓨터구조
    SwiftUI
    today i learned
    Apple Developer Academy
    자료구조
    재귀
    FLUTTER
    Swift
    IOS
    개발
  • 최근 댓글

  • 최근 글

  • 인기 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.2
bulmang
[SwiftUI] 프로그램 차단 기능
상단으로

티스토리툴바