일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- tableView
- map
- Xcode
- swift documentation
- 리펙토링
- Observable
- uiscrollview
- 스위프트
- SWIFT
- 리펙터링
- 리팩토링
- uitableview
- MVVM
- swiftUI
- UICollectionView
- UITextView
- collectionview
- ribs
- combine
- HIG
- 애니메이션
- Protocol
- clean architecture
- Human interface guide
- Clean Code
- ios
- Refactoring
- rxswift
- 클린 코드
- RxCocoa
- Today
- Total
목록딥링크 (7)
김종권의 iOS 앱 개발 알아가기
UserInfo란? 푸시 데이터가 담겨있는 json 형태를 [AnyHashable: Any]형태로 있는 자료형 {"aps":{"alert":"test","badge":"1"}} ex) 시스템 푸시를 클릭했을때 동작하는 델리게이트 메소드에서 userInfo 획득 func userNotificationCenter( _ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void ) { let userInfo = response.notification.request.content.userInfo print(userInfo..
1. 위젯 Widget 사용 방법 - WidgetKit, WidgetFamily 2. 위젯 Widget 사용 방법 - API 데이터 로드와 위젯UI 업데이트 3. 위젯 Widget 사용 방법 - 위젯 딥링크 구현 방법 (widgetURL, scenePhase, sheet) 4. 위젯 Widget 사용 방법 - 위젯 이미지 로드 방법 5. 위젯 Widget 사용 방법 - Provisioning Profile 등록 (WidgetExtension) Widget 준비 2번 포스팅 글에서 구현한 위젯 코드 준비 import WidgetKit import SwiftUI import Intents struct Provider: IntentTimelineProvider { func placeholder(in conte..
URL과 URI 구분 URI(Uniform Resource Identifier): 특정 리소스 식별자 URL(Uniform Resource Location): 특정 리소스 위치 URI의 방법중 하나가 URL URL의 구조 scheme: 사용할 프로토콜 host: 접근할 서버의 호스트 이름 path: 접근할 서버의 경로에 대한 정보 query: 접근할 대상에 전달하는 추가적인 정보 (= 파라미터) Swift에서 URL 접근 let urlString = "https://ios-development.tistory.com/ios?page=1&item=2" guard let url = URL(string: urlString) else { return } // url의 기본 요소 접근 url.absoluteStri..
1. Local Notification (로컬 푸시, 로컬 노티) - 사용 방법 2. Local Notification (로컬 푸시, 로컬 노티) - badge (뱃지) 숫자 처리, 딥링크 처리 * 1번 까지 진행한 노티 코드: https://github.com/JK0369/ExLocalPush1 Badge 숫자 처리 로컬 푸시의 뱃지는 수동으로 처리 // iOS 13 이하나 SceneDelegate가 없는 경우 func applicationDidBecomeActive(_ application: UIApplication) { UIApplication.shared.applicationIconBadgeNumber = 0 } // iOS 13 이상, SceneDelegate가 존재할 때 func sceneWi..
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 처리 관련 메소드 총 정리 글은..
딥링크란? "Deep"한 "Link", 화면속의 특정 부분으로 이동 할 수 있는 링크를 의미 사용자가 "새로운 메세지가 왔습니다"와 같은 push알림을 받고 그 부분을 탭했을 때, 메세지 화면으로 바로 이동 (딥링크가 없었다면 로그인 -> 메인화면 -> 메세지 화면으로 이동) 카카오톡에서 카카오맵의 특정 위치 link를 탭한경우, 카카오맵이 켜지면서 바로 특정 위치로 이동 원리: 서버에서 앱에 URL전송 -> 앱에서 URL을 가지고 문자열을 파싱하여, 특정 화면으로 화면전환 iOS에서 딥링크의 종류 URL Scheme를 이용한 방식 URL Scheme란? iOS는 기본적으로 샌드박스 환경이므로 다른 앱에 정보 전달하기가 어려움 (이 때 Xcode에서 Scheme을 정해두면, 해당 Scheme로 시작하는 ..
* XCoordinator를 이용하여 모든 화면에서 NavigationController하나를 공유하며 화면전환 하는 방법 + 딥링크를 고려한 코드 스타일 적용 Xcoordinator개념편은 여기 참고 사전 지식 - XCoordinator에서는 strongRouter와 UnownedRouter가 있는데, 자식들을 계속 참조하며 잃지 않으려면 strongRouter로 사용 단, push와 같이 Transition을 반환하게 되면, strongRouter이후에 unownedRouter로 전달해도 참조를 잃지 않음 - Coordinator에서 다른 Coordinator로 이동 시키려면, addChild(_:) -> Transition함수를 정의하여 이 값을 리턴해야지만 deeplink가 가능한 구조 addCh..