일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ScrollView
- 회고
- singleton
- calendar
- 화면전환
- list
- escaping
- Switch
- http
- uikit
- Git
- protocol
- class
- viewlifecycle
- error
- NotificationCenter
- mvvm
- self
- array
- 글또
- 고차함수
- IOS
- struct
- apns
- PushNotification
- SWIFT
- segue
- SWIFTUI
- Observer
- Refresh
- Today
- Total
목록IOS (94)
seong_hye, the developer

❗️ "Receiver () has no segue with identifier" error 해결 ❗️ 이 오류는 스토리보드에서 특정 identifier를 가진 segue가 존재하지 않는데 코드에서 해당 segue를 호출하려 할 때 발생하게 된다는 걸 알게 되었다. 이 문제를 해결하기 위해 해본 활동을 정리해보려 한다✅ 해결 방안 ➡️ 1. 스토리보드 segue의 Identifier 확인- 스토리보드에서 문제되는 ViewController를 선택- segue 연결선을 클릭- 오른쪽 Attributes Inspector에서 Identifier 확인 - 코드에서 사용하는 식별자와 정확하게 일치해야 함 (대소문자 구분!) ➡️ 2. segue가 실제로 연결되어 있는지 확인- Ctrl + 드래그 또는 Inter..

📘 FirebaseGoogle에서 제공하는 모바일 및 웹 애플리케이션 개발 플랫폼앱 개발에 필요한 다양한 백엔드 기능을 빠르게 구현할 수 있도록 도와줌서버를 직접 구축하지 않고도 인증, 데이터베이스, 알림, 분석 등을 활용할 수 있어 스타트업, 개인 개발자, 프로토타입에 자주 사용됨 Firebase = 서버 없이 앱의 백엔드 기능을 클라우드에서 처리할 수 있게 해주는 플랫폼 🔹 주요 기능기능설명Authentication이메일/ 비밀번호, SNS, Apple, Anonymous 로그인 지원Firestore / Realtime Database클라우드 기반 NoSQL 데이터베이스Cloud Storage이미지 / 동영상 등 파일 저장Cloud Messaging (FCM)푸시 알림 서비스Analytics사용자..
📘 Swift - NSCache이미지를 활용하다보면 메모리가 걱정되게 되는데 이때 사용하게 되는 NSCache에 대해 알아보자 🔹NSCache란? key - value 형태의 메모리 캐시를 쉽게 구현할 수 있도록 제공되는 클래스주로 이미지나 계산 비용이 큰 데이터를 임시로 저장하고 자동으로 제거하여 성능 개선.여러 스레드에서 동시에 접근해도 안전(Thread - safe)🔹기본 사용 예제let cache = NSCache()// 캐시에 저장cache.setObject(image, forKey: "example" as NSString)//캐시에서 가져오기if let cachedImage = cache.object(forKey: "example") { imageView.image = cachedImag..

📘 LottieJSon 기반 애니메이션 파일을 앱, 웹, React Native 등 다양한 플랫폼에서 실시간으로 재생할 수 있게 해주는 라이브러리디자인 도구인 Adobe After Effects에서 만든 애니메이션을 Bodymovin 플러그인을 통해 JSON으로 내보내고 이를 Lottie로 앱에 넣어 재생하게 됨 Lottie = After Effects 애니메이션을 앱에서 부드럽게 실행하는 도구🔹 Lottie의 특징항목설명애니메이션벡터 기반 애니메이션 (JSON) 재생 가능퍼포먼스가볍고 빠름 (GIF보다 효율적)플랫폼 지원iOS, Android, Web, React Native, Flutter 등디자이너 친화디자이너 -> AE로 만든 애니메이션을 그대로 사용 가능JSON 파일Bodymovin으로 내보..

📘 KingfisherSwift에서 널리 사용되는 이미지 다운로드 및 캐싱 라이브러리특히 URL 기반 이미지 로딩을 간단하게 처리할 수 있고.내부적으로 강력한 메모리/디스크 캐싱, 다운로드 관리, 프리페치, 리사이징, 리사이클링 등을 제공 Kingfisher = Swift에서 이미지 URL을 비동기 로딩 + 캐싱까지 한 번에 해주는 라이브러리 🔹 주요 기능기능설명URL 이미지 다운로드imageView.kf.setImage(with: URL) 한 줄로 가능메모리 + 디스크 캐싱자동으로 처리 (옵션 조정 가능)SwiftUI 지원.kfImage 뷰로 간편하게 사용 가능이미지 가공리사이징, 블러, 라운딩, 필터 등 적용 가능프리페칭다가올 이미지 미리 다운로드재사용 최적화셀 재사용 상황에서 매우 효율적프로그레..

📘 Swift) Picker & DatePicker사용자의 선택을 입력받는 기본적인 선택 UI 컴포넌트 🔹Picker (일반 선택 목록 - 드롭다운, 휠 등)사용자가 리스트 중 하나를 선택할 수 있도록 함import struct ContentView: View { @State private var selectedMedia = "드라마" let medias = ["드라마", "영화", "애니메이션", "TV쇼"] var body: some View { Picker("미디어 선택", selection: $seletedMedia) { // 반복문을 사용하는 경우 ForEach(medias, id: \.self) { media in T..
📘 SwiftUI - 하단 RefreshScrollView나 list를 다루다보니 앱의 마지막에 도착했을 때 refresh를 추가하고 싶어지는 경우가 있었다이 때 해결방안을 정리해두려 한다.🔹하단 갱신 방법 ✅ ScrollView에서 하단 감지 후 refresh 구현ScrollView { LazyVStack { ForEach(.., id: \.self) { item in .. } if isLoading { ProgressView() .padding() } else { GeometryReader { geometry in Color.clear ..

UIKit 에서는 COllectionView를 활용그렇다면 SwiftUI에서는 어떻게 할 수 있을까?📘 LazyVGrid & LazyHGridUICollectionView처럼 그리드 형태의 레이아웃을 수직(V) - 수평(H) 방향으로 스크롤 할 수 있게 해주는 컴포넌트 게으른(Lazy) 방식으로 화면에 보이는 셀만 그려서 성능을 높이는 방식 🔹 기본 코드✅ 세로 2열 컬렉션 뷰let columns = [GridItem(.flexible()), GridItem(.flexible())] //2열ScrollView { LazyVGrid(columns: columns, spacing: 15) { ForEach(0.. ✅ 가로 2열 컬렉션 뷰let rows = [GridItem(.fixed(100)),..