A NSURLCache subclass for handling all web requests using NSURLRequest, enabling offline functionality and content caching in iOS/macOS apps.
EVURLCache is a NSURLCache subclass for iOS and macOS that handles all web requests using NSURLRequest, including those from UIWebView. It solves the problem of apps needing to function offline or with limited connectivity by caching web content and allowing preloaded assets. The library provides configurable caching strategies, respects HTTP headers, and supports large file sizes for robust offline experiences.
iOS and macOS developers building apps that require offline functionality, such as content-heavy applications, news readers, or tools that need to work without an internet connection. It's also useful for developers who want to preload web content in their apps for immediate usability after installation.
Developers choose EVURLCache because it offers a simple, drop-in solution for advanced caching needs without requiring manual network handling. Its compatibility with libraries like AFNetworking and Alamofire, along with support for UIWebView, makes it versatile. The ability to preload content and configure cache behavior programmatically provides greater control over app performance and user experience.
a NSURLCache subclass for handling all web requests that use NSURLRequest
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables apps to function without an internet connection by serving cached content, with preloading options via the /PreCache folder for immediate usability after App Store download.
Respects Cache-Control, Pragma, and Access-Control-Max-Age headers for cache validation, ensuring alignment with web standards and server directives.
Allows setting maximum file size and total cache size via EVURLCache.MAX_FILE_SIZE and MAX_CACHE_SIZE, giving developers fine-grained control over storage limits.
Works with any NSURLRequest-based download, including UIWebView and popular libraries like Alamofire and AFNetworking, without requiring changes to networking code.
Files are loaded completely into memory before being written to disk, which can cause performance issues or crashes when caching large media files, as admitted in the README limitations.
Requires CocoaPods version 0.36 or later for framework support, limiting integration in projects using other dependency managers or targeting iOS versions below 8.0 without manual file copying.
The library targets Swift 3.0, as shown in the README badges, which may not be compatible with newer Swift versions without modifications, posing maintenance and migration challenges.