일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- PushNotification
- array
- 글또
- singleton
- mvvm
- http
- Refresh
- calendar
- SWIFTUI
- segue
- list
- struct
- Git
- uikit
- escaping
- 고차함수
- 회고
- 화면전환
- IOS
- apns
- class
- Observer
- NotificationCenter
- error
- viewlifecycle
- ScrollView
- Switch
- self
- protocol
- SWIFT
- Today
- Total
목록SWIFTUI (24)
seong_hye, the developer

📘 이미지(사진) 권한 설정iOS에서는 앱에 사진 창 또는 카메라를 사용하려고 할 때 권한 창을 통해 사용자의 동의를 얻어야만 한다권한 창을 띄우고 사용하는 방법에 대해 알아보려 한다 🔹 Info.plist에 권한 문구 추가 / Info 설정 창에서 권한 추가➡️ Info.plist에 사용될 키키 이름설명NSPhotoLibraryUsageDescription포토 라이브러리 읽기 / 저장 권한 요청 시 표시NSCameraUsageDescription카메라 사용 시 표시NSPhotoLibraryAddUsageDescription사진 라이브러리에 저장만 하는 경우 ➡️ Info 설정 창Info.plist가 아닌 Targets > Info 창에서 권한을 추가하는 방법🔹 권한 요청 및 상태 확인Photos ..

📘자동 업데이트새로운 버전이 있을 때 사용자에게 알리고 업데이트를 유도하는 기능에 대해 정리해보려 함 🔹기본 흐름1. 현재 앱 버전 확인Bundle.main.infoDictionary를 통해 현재 버전 추출 2. 서버 / API에서 최신 버전확인App Sotre API를 통해 버전 정보 확인 3. 버전 비교현재 사용자 어플 버전(1번 값)과 앱 스토어 버전(2번 값)을 비교 4. 사용자에게 업데이트 유도버전 비교(3번 값)가 다를 경우 앱스토어로 이동하도록 유도 🔹사용자가 사용중인 현재 버전 가져오기let current = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String else { return } 🔹서버(App Store..

📘 List와 CheckBoxList item에 그냥 checkBox를 넣게 되면 개별 계산이 안되는 경우가 있어서개별로 활동가능한 경우를 정리해두려 작성 🔹Item 데이터 모델struct Item: Identifiable { let id = UUID() let name: String var isChecked: Bool} 🔹List에 적용struct ContentView: View { @State private var items: [Item] = [ Item(name: "사과", isChecked: false), Item(name: "바나나", isChecked: false), Item(name: "오렌지", isChecked: false), ..

📘 Calendar 날짜별 장식이 있는 일정관리를 표시하고, 단일 날짜 또는 여러 날짜를 사용자가 선택할 수 있도록 제공하는 기능캘린더 뷰를 사용하여 사용자가 커스터마이징한 추가 정보(ex_ 스케줄)가 있는 특정 날짜 표시또한 캘린더 뷰를 사용하여 하나의 특정 날짜, 여러 날짜 또는 날짜가 없는 날짜를 선택 가능 🔹Calendar란Foundation 프레임워크의 구조체달력 시스템에 따라 날짜를 계산하고 연도/월/일/요일 등 구성 요소 추출 및 연산을 도와줌 ✅ 날짜 더하기 / 빼기let today = Date()let calendar = Calendar.current// 5일 후let fiveDaysLater = calendar.date(byAdding: .day, value: 5, to: toda..

📘List Drop DownList 내 항목을 눌렀을 때 드롭다운처럼 하위 항목이 펼쳐지는 UIExpandable List 또는 Accordion List라고 부름각 항목의 펼침 상태를 추적하는 플래그가 필요함🔹항목 모델 정의struct DataModel { let iconName: String let title: String var destination: AnyView}struct DropdownItem: Identifiable { let id = UUID() let title: TitleModel let details: [DataModel] var isExpanded: Bool = false}🔹메인 뷰 - List를 활용한 DropDown@Binding va..
📘Swift 구조적 특징Swift는 안전성, 성능, 현대적 문법을 모두 고려하여 설계된 언어로 다른 언어들과 구별되는 구조적 특징(structural characteristics)이 아주 뚜렷함 🔹정적 타입(Static Typing) 기반 언어변수의 타입이 컴파일 시점에 결정됨타입 추론도 가능하지만 실제로는 정적 타입 시스템let a: Int = 3 // type: Intlet one = 1 // type: Intlet a = "A" // type: Stringlet b: Character = "B" // type: Character ➡️ 장점컴파일 시 오류를 빨리 찾을 수 있음성능 최적화에 유리🔹값 타입(Value Type) 중심 구조struct, enum 등 값 타입(value ..

📘 오류 해결) List Refreshable 오류앱을 만들던 중 List가 Refresh 되지 않는 오류가 있었다처음 딱 떴을 때 refresh가 되었으면 좋겠는데 되지 않고 계속 문제가 되는 부분이 있어서시도해 본 여러 방법과 해결방안에 대해 작성해보려 한다.🔹 현재 어플 및 코드 축약윗쪽 탭바와 그에 맞게 아래 리스트를 둔 화면을 만들고 싶어서다음과 같은 코드를 활용해 아래 화면을 제작하였다VStack { ScrollView(.horizontal) { ... } TabView( .. ) { List { ... } .refreshable { ... } ... }} ❌ 문제 상황탭을 눌러 처음..