iOS Networking Standards
Priority: P0
Implementation Guidelines
URLSession (Native)
- •Tasks: Use
dataTaskPublisher(Combine) ordata(for:delegate:)(async/await). - •Configuration: Use
URLSessionConfiguration.defaultfor standard tasks andephemeralfor private browsing/clearing cache. - •Request Building: Use
URLComponentsandURLQueryItemto build URLs safely. Never use string interpolation for parameters.
Alamofire (Standard Third-Party)
- •Session: Maintain a singleton or DI-injected
Sessioninstance. - •Request: Use
.validate()to automatically check for 200..299 status codes. - •Encoding: Use
JSONParameterEncoder.defaultfor body parameters.
Best Practices
- •Codable: Use
Codablefor JSON mapping. Prefersnake_casetocamelCasedecoding strategies if the API follows snake_case. - •Retriers & Adapters: Use
RequestInterceptorfor adding Auth headers (Bearer) and handling token refresh (401). - •SSL Pinning: Implement using
ServerTrustManagerfor production security.
Anti-Patterns
- •Main Thread completion:
**No UI updates in background task**: Always jump to Main thread/MainActor. - •Raw Mapping:
**No manual JSONSerialization**: Use Codable. - •Missing Timeout:
**No indefinite wait**: Always set a reasonable timeoutInterval (e.g., 30s).