일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Protocol
- map
- swiftUI
- 리펙토링
- 클린 코드
- MVVM
- ios
- 리팩토링
- SWIFT
- 스위프트
- swift documentation
- collectionview
- 리펙터링
- 애니메이션
- rxswift
- HIG
- Xcode
- RxCocoa
- uitableview
- UITextView
- combine
- Observable
- UICollectionView
- Human interface guide
- uiscrollview
- tableView
- Clean Code
- ribs
- clean architecture
- Refactoring
- Today
- Total
목록Background (12)
김종권의 iOS 앱 개발 알아가기
NotificationCenter 특정 코드에 데이터를 보내고 싶은 경우나, 특정 이벤트를 받고 싶은 경우 사용 post하는 부분과 addObserver부분이 존재 post: 노티 전송 addObserver: 노티 받는 입장 사용 방법 노티 구분은 Notification.Name 객체로 구분하므로, 사용할 노티 이름 설정 extension Notification.Name { static let print = NSNotification.Name("print") } post 부분 NotificationCenter.default.post(name: .print, object: nil) addObserver부분 (이벤트를 받을 부분) NotificationCenter.default.addObserver(self..
원리 Date()라는 것을 사용하여, 화면이 처음 등장한 시간 때를 기록 Timer의 scheduler에서 현재 시간과, 위의 기록된 시간을 비교하여 시간이 얼마나 지났는지 체크 위와 같이 하면, 사용자가 background에 갔다와도 시간이 흐른만큼 Timer에 반영 주요 코드 Timer객체를 전역에 선언 (Timer가 필요없을 때 invalidate시켜주기 위함) var timer = Timer() ... deinit { timer.invalidate() } 처음 화면이 들어난 시간을 기록하기 위해 Date형의 변수를 전역에 선언 var startTime: Date? Timer로직 함수 private func setTimer(startTime: Date) { DispatchQueue.main.asyn..
Rx를 쓰지 않고 NotificationCenter를 이용한 방법은 여기 참고 NotificationCenter를 쓰는 경우 화면이 background에서 foreground로 변하는 경우 AppDelegate에서 딥링크 처리시, 특정 화면에 event를 주입해주고 알림을 보내는 경우 사용준비 pod file에 아래 정보 입력 후 pod install pod 'RxSwift' pod 'RxCocoa' 기본 구조 (케이스: AppDelegate에서 home에 노티를 보내고 싶은 경우) NotificationCenter를 구별할 수 있는 key 정의 (타입은 NSNotification.Name(_ :String)) // Constants extension NSNotification.Name { static ..
1. GCD - Grand Central Dispatch API == GCD * Dispatch : 출격, 배포 GCD란 아래와 같은 기능을 쉽게 접근하여 일을 처리하는 API Thread 갯수 Multi, Single 코어 갯수 멀티, 싱글 동기화 sync, async 2. DispatchQueue - 큐에 담긴 각 아이템은 스레드 풀에 의해 처리됨 1) main : Main Thread에서 처리되는 Serial queue (모든 UI작업은 Main Queue에서 수행되어야 함) global : 전체 시스템에 공유되는 concurrent queue custom : serial queue를 만들고 싶을 때 사용, global queue에서 실행 2) Serial 이전 작업이 끝나면 다음 작업이 순차적으로..