일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- IOS
- NotificationCenter
- self
- protocol
- singleton
- apns
- Switch
- 글또
- class
- 화면전환
- SWIFT
- Observer
- array
- Git
- struct
- viewlifecycle
- 고차함수
- Animation
- ScrollView
- segue
- calendar
- mvvm
- error
- escaping
- uikit
- list
- http
- PushNotification
- Refresh
- SWIFTUI
- Today
- Total
목록SWIFTUI (29)
seong_hye, the developer
📘DispatchGroupGCD(Grand Central Dispath)의 기능 중 하나로, 여러 비동기 작업들을 그룹으로 묶어서전부 끝났을 떄를 감지하거나 동기적으로 기다렸다가 다음 코드르 실행할 때 사용 🔹기능- 여러 개의 비동기 작업(큐에 올라가는 블록)을 그룹핑- 모든 작업이 끝났ㅇ르 떄 알림(Notify)를 받거라, 동시 대기(Wait) 가능- 네트워크 요청, 파일 I/O, 연산 등 여러 작업을 동시에 처리하고 결과를 합쳐야 할 때 유용 🔹주요 메서드enter() / leave()그룹에 "작업 시작" 알림 ~> enter()그룹에 "작업 끝남" 알림 ~> leave()짝이 맞아야 함 (enter 호출 횟수 == leave 호출 횟수) gruop.notify(queue:closure)그룹 안..

📘 Path벡터 그래픽 기반 2D 도형을 정의하는 구조체직접 좌표를 찍고 연결해서 원하는 도형을 만들 수 있음🔹 기본 정의struct Path { var elements: [Path.Element] // 선, 곡선, 이동 등으로 이루어진 요소}🔹 명령어 🔍 시작 / 닫기함수설명 move(to: CGPoint) 경로의 시작점을 지정 (펜을 들어서 새 좌표로 이동) closeSubpath() 현재 경로를 닫음 (마지막 점 -> 시작점 자동 연결) 🔍 직선함수설명 addLine(to: CGPoint) 현재 위치에서 지정한 점까지 직선 추가addLines(_ points: [CGPoint]) 현재 위치에서 여러 점들을 차례로 직선으로 연결 addRect(CGRect) 사각형 추가 addRects([CG..

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

📘 matchedGeometryEffect두 개 이상의 뷰를 같은 것으로 인식시켜서 레이아웃이 바뀔 떄 자연스럽게 이어지는 애니메이션을 만들어주는 도구히어로 애니메이션 (Hero Animation) 이라고 불림 🔹개념SwiftUI는 상태 변경 시 View를 새로 다시 그림-> 일반적으로는 기본 뷰가 사라지고, 새로운 뷰가 나타나는 전환이 일어남matchedGeometryEffect(id:in:)을 사용하면, 두 뷰를 같은 ID로 묶어서 SwiftUI가 "같은 요소"라고 인식SwiftUI는 위치, 크기, 모양, 클리핑, 코너 반경 등을 자동으로 보간해줌🔹문법.matchedGeometryEffect(id: "sharedID", id: namespace)id: 같은 그룹 안에서 고유하게 뷰를 매칭시킬 식..
📌 Ambiguous use of toolbar 📌보통 SwiftUI의 .toolbar 수정자 (오버로드가 여러 개)와 내 코드/ 프레임워크의 이름 충돌 또는 모호한 클로저 형태 때문에 생김 ✅ 옳은 toolbar 사용 방법.toolbar {... } 안에 무엇을 넣는지에 따라 여러 오버로드가 매칭될 수 있음항상 배치와 래퍼 타입을 명시하는 것이 필요 ➡️ 단일 버튼일 경우NavigationStack { Text("test") .toolbar { ToolbarItem(placement: .navigationBarTrailing) { Button("Save") {...} } }} ➡️ 여러 버튼일 경우.toolbar { Toolbar..

📘 Transition뷰의 존재 유무의 변화를 애니메이션뷰를 이동할 때의 개념보다는 뷰를 보여지게 하거나 사라지게 하는 애니메이션의 개념.transition(_:)으로 선언하여 사용 가능들어가는 인수는 AnyTransition트랜지션이 실행되려면 상태 변경을 애니메이션으로 감싸야 함withAnimation { ... } 또는 .animation🔍 AnyTransition.opacity페이드 인 / 아웃.scale확대 / 축소로 등장 / 퇴장.move(edge: .top/.bottom/.leading/.trailing)가장자리에서 슬라이드.slide부모의 leading -> trailing로 슬라이드 (언어 방향성 영향).identity트랜지션 없음 (디버그, 조건부 조합에 사용)🔹결합 및 비대칭 기..

📘자동 업데이트새로운 버전이 있을 때 사용자에게 알리고 업데이트를 유도하는 기능에 대해 정리해보려 함 🔹기본 흐름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..