가이드라인
Use High-Level APIs
- 소켓X
- 직접 보안부분까지 개발해야 함
- 구현하기 어려움
- URL session O
Transfer only as much data as required
Use Caches
Cancellation도 구현
Use Asynchronous APIs
- 속도나 대역폭에 따라 느린 반응 발생 가능하기 때문에 메인 스레드를 블록해서는 안됨
- 굳이 동기화가 필요하다면 백그라운드 스레드에서 진행
Use Hostnames
- url 등
- IP주소는 비추천
- IPV4와 관련된 API는 사용 금지, 이를 위반하면 앱 심사 통과 못할 확률 높음
- DNS 보안, 인증서 검증같은 보안이 추가되기 때문에 안전
Use HTTPS
Apple API 프레임워크
URLSession
- API Request
- File Transfer
- Authentication
NSURLConnection을 대체하는 API. NSURLConnection 은 옛날 방식이기 때문에 절대 사용 X
Webkit
- Display web content
- Browser Features
- Script Injection
HTML에 필요한 출력 구현되어 있음
GameKit
- Bluetooth
- Wi-Fi LAN Connection
P2P 접속, 음성 통신 구현 가능
- Game Center Integration
- Voice Chat
MultipeerConnectivity
- Wi-Fi
- P2P Wi-Fi
- Bluetooth Personal Area Network
Bonjour
- Automatic discovery of devices and sevices on a local network
에어드랍과 같이 주변에 있는 기기를 자동으로 인식하는 기능 구현 시 사용
CFNetwork
Network
- 소켓 통신
- Direct access to TLS, TCP, and UDP
URLSession도 내부적으로는 이 프레임워크를 사용