일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- uiscrollview
- ribs
- ios
- uitableview
- UICollectionView
- swift documentation
- clean architecture
- Protocol
- 애니메이션
- map
- Human interface guide
- collectionview
- MVVM
- HIG
- UITextView
- Clean Code
- 클린 코드
- rxswift
- tableView
- swiftUI
- RxCocoa
- Observable
- Refactoring
- 리팩토링
- 리펙토링
- 리펙터링
- SWIFT
- Xcode
- 스위프트
- combine
- Today
- Total
목록foreground (5)
김종권의 iOS 앱 개발 알아가기
* 타이머 종류 - foreground에서만 동작하는 Timer - background에서도 동작하는듯한 Timer Foreground에서만 동작하는 Timer 변수 하나를 선언해놓고 RxSwift의 연산자 interval(_:scheduler:) 사용 // ViewController.swift private var currentCount = 0 private func setupOnlyForegroundTimer() { let timer = Observable.interval( .seconds(1), scheduler: MainScheduler.instance ) timer.withUnretained(self) .do(onNext: { weakSelf, countValue in weakSelf.curre..
1. DeepLink (딥 링크) - 앱 푸시, APNs (Apple Push Notification service ) 개념 2. DeepLink (딥 링크) - URL Scheme, URLComponents, Foreground, Background, Not Running 기초 개념 3. DeepLink (딥 링크) - FCM(Firebase Cloud Messaging) remote 푸시 사용 방법 4. DeepLink (딥 링크) -Dynamic Link (다이나믹 링크) 사용 방법 (Firebase, 공유하기 기능) 5. DeepLink (딥 링크) - URL Scheme과 Dynamick Link를 이용한 딥 링크 처리 방법 cf) Push Notification 처리 관련 메소드 총 정리 글은..
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 ..