Networking
일반적인 작업들이 기기 내부에서만 이뤄지는 것과는 달리.
네트워킹은 데이터가 외부로 전송되고, 외부에서 전송받기도 하기 때문에 여러 외부적 요인을 고려해야 한다.
특히 한 곳에 고정되어 사용되지 않는 모바일은 더더욱 중요하다.
Gideline
- 가능한 한 High-Level Api를 사용할 것
- 필요한 데이터만 전송할 것
- Cache를 적극적으로 활용할 것
- 비동기 방식으로 구현할 것. 만약 동기 방식으로 구현해야 한다면 mainThread를 점유하지 않도록 할 것
- Hostname을 사용할 것
- HTTPS를 사용할 것. IPV4를 사용하지 않도록 하고, 특정 HW를 위해 사용해야 한다면 관련된 정보를 함께 제출할 것
API
URLSession
일반적인 네트워크 기능
URLSession은 기존의 NSSession을 완전히 대체한다.
- APIRequest
- File Transfer
- Authentication
WebKit
HTML의 표시
- Display Web Contents
- Browser Features
- Script Injection
GameKit
P2P 게임의 구현
- Bluetooth, Wi-Fi Lan Connection
- Game Center Integration
- Voice Chat
MultipeerConnectivity
P2P 게임의 Utillity 기능
- Wi-Fi
- P2P Wi-Fi
- Bluetooth Personal Area Netwok
Bonjour
화면공유, 음악 스트리밍
- Automatic discover of device and services on local network
CFNetwork
소켓통신 (DSD 소켓 비권장)
- Access network Service
- Handle changes in network configurations
Network
iOS 12 이상의 소켓통신, URLSeesion의 본체
- Direct Access to TLS, TCP, JDP
'학습 노트 > iOS (2021)' 카테고리의 다른 글
204. App Transport Security (ATS) (0) | 2022.07.08 |
---|---|
203. Display Web Contents (0) | 2022.07.06 |
201. Migration (0) | 2022.07.06 |
200. Performance & Debugging (0) | 2022.06.30 |
199. Context Synchronization (0) | 2022.06.29 |