[SwiftUI] 프로그램 차단 기능
·
SwiftUI/개발
작업 내용 프로그램 사용성 검증을 하기 위해서 우리의 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로 값을 주어..
[SwiftUI] 애플스토어 앱 클론코딩(스크롤)
·
SwiftUI/개발
애플스토어 스크롤 피그마로 받은 UI 디자인 개발 부분 Scroll 길이 계산 (애플스토어 앱 참고) UIScreen.main.bounds.height 사용 (GeometryReader도 가능) PreferenceKey 프로토콜 사용 기능 : SwiftUI의 레이아웃 시스템에서 뷰의 크기, 위치 또는 다른 사용자 정의 정보와 같은 데이터를 수집하고 공유하기 위해 사용 디바이스의 높이를 측정 enum, switch 사용하여 색상마다 View를 다르게 그려줌 Scroll Animation .onPreferenceChange(OffsetPreferenceKey.self) { value in currentHeight = value print("currentHeight: \\(value)") // 현재 디바이스 ..
[SwiftUI] 알람 앱 클론코딩
·
SwiftUI/개발
아이폰 기본 알람 앱 피그마로 받은 UI 디자인 개발 부분 ObservableObject, @StateObject, @ObservedObject 사용하여 데이터 전달 MainView는 List를 사용하여 Scroll했을때 navigationTitle이 Header 가운데에 올라감 알람을 List에 append하는 방식 알람 모델 클래스 class AlarmModel: Identifiable,ObservableObject { let id : UUID = UUID() var time: String var amPm: String var date: Date @Published var alarmActive: Bool // MARK: CREATE ALARM LIST init(date: Date) { self.dat..
[SwiftUI] 애플스토어 앱 클론코딩
·
SwiftUI/개발
애플스토어 앱 소개(애플 상품 소개및 구매 어플) 피그마로 받은 UI 디자인 개발 부분 Swipe Promotion Interaction 구현 (애플스토어 앱 참고) TapView중 page style를 사용하여 구현 Indiactor 구현 Swipe Product Interaction 구현 (애플스토어 앱 참고) Geometry Reader와 offset을 이용하여 구현 Model을 만들어서 컴포넌트화 Swipe Animation GeometryReader { geo in // 전체넓이에서 공백 넓이만 뺀 값 let width = geo.size.width - (trailingSpace - spacing) // 두번째 카드 일 때 양 옆 카드의 끝을 똑같이 보여주는 넓이 값 let adjustMentW..
[SwiftUI] 출쓱 앱 클론코딩
·
SwiftUI/개발
출쓱 앱 소개(애플 디벨로퍼 아카데미에 출석 관리 어플) 피그마로 받은 UI 디자인 잘 몰랐던 문법 () -> Front**는 클로저 타입을 나타냄 제네릭 func count(numbers: [Number]) { } 매개 변수화된 타입(Parameterized Type)을 만들기 위해 사용되는 기능 함수나 클래스에서 사용할 데이터 타입을 미리 지정하지 않고, 함수 또는 클래스를 호출할 때 전달되는 인자에 따라 동적으로 타입을 결정 코드의 재사용성과 유연성,타입의 안정성 보장 Flashcard(front: {CardFrontView()}, back: {CardBackView()}) Flashcard 구조체를 생성하는 방법 중 하나 front와 back 프로퍼티에 앞면(CardFrontView)과 뒷..
[SwiftUI]Tab Animation
·
SwiftUI/개발
안녕하세요 bulmang입니다!! 😄 오늘은 아카데미에 가기전에 다시 Swift 개발 공부를 어느정도 해야 될 것 같아서 인강을 듣고 공부하여 블로그에 정리를 하려고 합니다. 앱 설명 SwiftUI로 개발한 코드이며 Tab Animation에 대한 앱입니다. 앱 기능 선형 보간 공식을 이용하여 두 지점 사이의 값을 추정할 때 그 값을 두 지점과의 직선 거리에 따라 선형적으로 결정하는 방법이다. 이미지를 넘길때 Rectangle을 사용하여 indicator 넓이와 위치를 정하여 움직여준다. 문법 TabView: 탭을 구성하고 각 탭에 대한 콘텐츠를 추가 할 수 있음 GeometryReader: 화면에 보여지는 뷰(View)의 크기 및 위치 정보를 제공하는 뷰 자식 뷰에 대한 레이아웃 정보를 제공하므로, 자..