일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- await
- Dynamic Dispatch
- The Composable Architecture
- ios
- swift
- async/await
- @StateObject
- async
- 이것이나의다정입니다
- ScrollViewProxy
- Custom URL Scheme
- SwiftUI
- SFSafariView
- @ObservedObject
- @NameSpace
- AnyCancellable
- fileprivate
- @main
- Combine vs Async/Await
- Universal Link
- Static Dispatch
- matchedGeometryEffect
- Concurrency Programming
- App Thinning
- MVVM
- combine
- SwiftData
- architecture
- wwdc23
- ScrollViewReader
Archives
- Today
- Total
홍로그
UIWebView, WKWebView, SFSafariView 차이 본문
UIWebView
현재는 Deprecated 된 상태- UIKit 프레임워크의 일부
- 페이지 크기 조절 가능
- 약 3500개의 개체를 렌더링
- 90% CPU를 사용하여 렌더링
- 데이터가 쿠키에 저장되므로 다음 로딩 시간은 이전에 비해 적음
- 프로세스 내에서 실행. 웹에서 사용하는 메모리가 앱 사용 공간의 일부로 간주
- iOS에서 할당하려는 값을 초과하면 앱 자체가 운영체제에 의해 손상됨
WKWebView
- WebKit 프레임워크
- 약 8500개의 개체를 렌더링함으로써 UIWebView보다 두배이상의 성능
- 25% CPU를 사용하여 렌더링
- 데이터가 쿠키에 저장되지 않아 항상 로딩시간이 동일함
- 프로레스를 벗어나 별도의 스레드에서 실행하기 때문에 할당량을 초과해도 앱이 죽지 않음. (앱이 알림을 받고 페이지를 다시 로드하려고 시도함.)
- 서버 인증 문제를 지원함. 암호로 보호 된 웹 사이트의 사이트 자격 증명을 입력할 수 있음.
SFSafariView
- SafariServices 프레임워크
- 뒤로가기/ 앞으로 가기/ 공유 버튼 등 사파리의 기능을 이용할 수 있어서 더욱 다양한 동작들을 수행
- 웹주소 텍스트 필드를 편집할 수 없음
- https를 사용하여 페이지를 안전하게 로드할 때 잠금 아이콘을 표시
- 피싱이 의심되는 페이즈를 로드 할 때 경고 메시지 표시
- iCloud 키 체인에서 중요한 정보와 자격 증명을 안전하게 자동 완성 가능기존 아이폰의 safari 쿠키, 데이터 등을 공유
UIWebView | WKWebView | SFSafariView | |
Apple에서 권장하는 | ❌ | ✅ | ✅ |
컨텐츠 차단 | ❌ | ❌ | ✅ |
JavaScript Nitro Engine | ❌ | ✅ | ✅ |
기능 제어 권한 | ✅ | ✅ | ❌ |
UI / UX 앱 사용자화 | ✅ | ✅ | ❌ |
반응형
'iOS' 카테고리의 다른 글
inout / mutating (2) | 2023.05.26 |
---|---|
Swift final을 쓰는 이유 (0) | 2022.11.01 |
메모리 순환 참조 방식 ( Strong, Weak, Unowned ) (2) | 2021.04.18 |
iOS ARC (Automatic Reference Counting) (0) | 2021.04.18 |
UIViewController LifeCycle (0) | 2021.01.28 |