일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Refresh
- struct
- segue
- Git
- Switch
- SWIFTUI
- IOS
- escaping
- list
- array
- apns
- singleton
- class
- http
- 고차함수
- 글또
- 화면전환
- calendar
- protocol
- 회고
- Observer
- viewlifecycle
- self
- mvvm
- ScrollView
- error
- SWIFT
- uikit
- PushNotification
- NotificationCenter
- Today
- Total
목록IOS (94)
seong_hye, the developer
모두 데이터와 뷰 상태를 연결하기 위한 속성 래퍼이다이들은 각각의 역할과 적용 범위, 생명주기가 다르기 때문에 구분해서 사용하는 것이 중요하다 📘 ObservableObjectSwiftUI에서 클래스 기반 상태를 뷰와 연결해주는 핵심 프로토콜뷰가 해당 객체를 구독하고 내부 값이 바뀌면 뷰가 자동으로 업데이트됨주로 크래스를 기반으로하는 뷰모델을 만들 때 사용함 🔹예시// 상태 객체 선언class CounterModel: OBsrvableObject { @Published var count = 0}// 뷰에서 연결struct TestView: View { @ObservedObject var viewModel: CounterModel var body: some View { VStack { ..

📘 Toast사용자가 앱을 조작할 때 화면 하단에 잠깐 표시되는 알림 메시지 🔹 기본 Toast 생성 방법➡️ toast struct toast 메시지를 보여줄 기본 틀struct Toast: Equatable { var message: String //보여줄 메시지 var duration: Double = 1.5 // 보여질 시간 var width: Double = 300 // toast 가로 크기} ➡️ toastViewtoast를 화면에 어떻게 보여줄 지 보여주는 뷰struct ToastView: View { var message: String var width = CGFlat(200) var onCancelTapped: (() -> Void) var b..

❗️ "Index out of range" error 해결 ❗️Swift에서 가장 자주 마주하게 되는 오류라고 할 수 있음 Index out of range = 배열이나 컬렉션의 범위를 벗어난 인덱스에 접근할 때 발생하는 에러 🔹 자주 발생하는 원인- 인덱스를 하드코딩 했는데 값이 없을 경우let arrays = [1, 2, 3, 4, 5]for i in 0...5 { // error ~> 갯수는 5개지만 인덱스는 0~4까지임} - 빈 배열에서 접근 시도var arrays = []print(arrays[0]) // error ~> 아직 값이 들어오지 않았음 - 비동기 작업에서 배열 변경 후 접근var arrays = []arrays.getArray()...if ( ... ) { arrays.remove..
📘 Error Code시스템, 네트워크, API, 앱 내부 등에서 발생한 오류의 종류를 숫자로 식별하기 위한 코드상황에 따라 의미가 다르지만, 일반적으로 범주를 나눔 🔹 HTTP 에러 코드 (100~599)가장 알려진 에러코드네트워크 통신 (REST API)에서 사용됨범위의미예시1xx정보100: Continue2xx성공200: OK, 201: Created3xx리다이렉트301: Moved Permanently, 304: Not Modified4xx클라이언트 오류400: Bad Request, 401: Unauthorized, 404: Not Found5xx서버 오류500: Internal Server Error, 503: Service Unavailable📌 서버와 클라이언트 간의 HTTP 응답 상..
📘 SwiftUI - View Life CycleSwiftUI의 View는 선언형(Declarative) 방식이기 때문에 UIKit과는 전혀 다른 생명주기를 가지고 있음SwiftUI는 상태(State)나 환경(Environment)의 변화에 따라 뷰를 다시 생성하고 그리기 때문에UIKit처럼 언제 뷰가 생성되고 사라지는가보다는 상태 변화에 따라 어떤 동작을 해야 하는가에 초점이 맞춰져 있음 🔹SwiftUI View Lifecycle 핵심 개념개념설명상태 기반@State, @Binding, @ObservedObject 등이 바뀌면 뷰가 재계산(re-render)됨구조체 뷰SwiftUI의 View는 구조체라서 상태 변경 시마다 새로운 뷰가 생성되는 것처럼 보임시스템 주도뷰 생성 / 파괴 시점을 직접 제어..
📘UIKit - View Life Cycle (뷰 생명주기)UIKit에서의 View Life Cycle은 UIViewController가 화면에 나타나고 사라질 때어떤 메서드 순서로 호출되는 지를 의미한다. 🔹 전체 흐름🔍일반적인 호출 순서 (화면이 나타날 때)init() // 생성자 (코드에서 직접 호출 시)|loadView() // 뷰 계층을 생성 (직접 구현 가능)|viewDidLoad() // 뷰가 메모리에 로드도니 직후 (1회만 호출)|viewWillAppear() // 뷰가 나타나기 직전 (매번 호출)|viewDidAppear() // 뷰가 화면에 나타난 직후 (매번 호출) 🔍 화면이 사라질 때viewWillDisappear() // 뷰가 사라지기 직전|viewDidDis..
UIKit에서는 프로젝트가 만들어지면 AppDelegate와 SceneDelegate가 생성되듯이https://programming-seonghye.tistory.com/57 UIKit) AppDelegate & SceneDelegate 알아보기UIKit을 사용하기 위해 프로젝트를 만들게 되면만들어져있는 기능들에 대해 알아보려 한다📘 AppDelegateiOS 앱의 생명 주기(lifeCycle)와 시스템 이벤트를 관리하는 핵심 클래스앱이 실행될 때부터 종programming-seonghye.tistory.com SwiftUI에서 생성되는 App에 대해 알아보자📘App ProtocoliOS 14부터 도입된 앱 생명주기를 선언적으로 정의하는 새로운 진입점(entry point)@main과 함께 사용되어 ..

📘 SnapKitiOS 앱 개발에서 사용하는 Auto Layout을 코드로 쉽게 작성할 수 있게 해주는 Swift 전용 DSL(도메인 특화 언어) 라이브러리 SnapKit = NsLayoutConstraint를 간결하고 읽기 쉬운 코드로 작성할 수 있도록 도와주는 Swift 라이브러리 🔹 사용 방법 - XCode > File > Add Packages Dependencies...URL : https://github.com/SnapKit/SnapKit - CocoaPods로 패키지 다운로드pod 'SnapKit'🔹 예제import SnapKitlet box = UIView()vew.addSubview(box)box.snp.makeConstraints { make in make.top.equalToS..