일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- mvvm
- SWIFT
- Switch
- 화면전환
- apns
- Observer
- calendar
- SWIFTUI
- NotificationCenter
- 글또
- error
- IOS
- Git
- escaping
- CoreImage
- PushNotification
- self
- Refresh
- segue
- class
- struct
- http
- ScrollView
- Animation
- 고차함수
- list
- singleton
- uikit
- viewlifecycle
- array
- Today
- Total
목록My P_Life (121)
seong_hye, the developer
notification은 쉽게 말하면 앱에서 오는 알림이다iOS에서는 크게 두 가지로 나뉘어 진다- NotificationCenter : 앱 내부에서 메시지를 주고 받는 방법- Push Notification : 외부 서버에서 사용자 기기로 보내는 알림 이 내용에 대해 자세히 알아보자 📘 NotificationCenter앱 내부에서 이벤트를 전달하는 "게시 - 구독(Pub - Sub)" 방식의 메시지 시스템 🔹 사용 예시✅ 알림 보내기 (Post)NotificationCenter.default.post(name: .testNotification, object: nil) ✅ 알림 수신 (Add Observer)NotificationCenter.default.addObserver(forName: .tes..
UIKit을 사용하기 위해 프로젝트를 만들게 되면만들어져있는 기능들에 대해 알아보려 한다📘 AppDelegateiOS 앱의 생명 주기(lifeCycle)와 시스템 이벤트를 관리하는 핵심 클래스앱이 실행될 때부터 종료되기까지의 흐름을 제어하며,앱 수준의 이벤트(ex_푸시 알림, 백그라운드 진입, 외부 URL 열기 등)를 처리하는 데 사용 AppDelegate = iOS 앱 전체의 실행 상태와 시스템 이벤트를 처리하는 앱 생명 주기 관리자 클래스🔹기본 구조import UIKit@mainclass AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWi..

📘 SwiftUI - 화면 맨 위로 올라오기어플을 사용하다보면 스크롤 하다가 버튼을 눌러 화면의 맨 위로 올라오도록 하는 경우를 볼 수 있다해당 경우를 어떻게 구현했는지 정리해보려 한다. 🔹 기본 개념- ScrollViewReader: 뷰에 스크롤 위치 조작 기능을 부여할 수 있음 - .id( id 값 ) : 스크롤 목표 위치에 식별자를 붙임- .scrollTo( id 값 ) : 해당 위치로 스크롤 이동이 가능함🔹List에 버튼을 통해 위로 올리기struct ContentView: View { @State private var showButton = false let items = Array(1...100) var body: some View { ScrollviewR..
확장(Extension)이란?기존 클래스, 구조체, 열거형 타입에 새로운 Property, Method, Initializer 등을 추가하는 것으로,원본 타입(소스 코드)에 접근하지 못하는 타입들도 확장해서 사용할 수 있음extension이란 키워드를 사용하여 확장함 사용하는 이유? 원본 소스 코드에 대한 액세스 권한이없는 유형을 확장하는 기능이 포함 (소급-모델링 retroactive modeling)예) Int, String, Double 등 애플이 미리 만들어 놓은 타입에 확장도 가능[ Struct에선 self를 사용할 때 mutating 키워드 필요 ]class Person { var id = 0 var name = "이름" var email = "1234@gmail.com" ..

❗️ "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으로 내보..