Lightweight Cocoa library for detecting Apple device models, screen sizes, and chip types across iOS, macOS, watchOS, and tvOS.
SDVersion is a lightweight Cocoa library that detects the exact model, screen size, and hardware specifications of Apple devices. It solves the problem of needing to tailor app behavior, layouts, or features based on the specific device a user is running, such as optimizing for different iPhone screen sizes or checking for Apple Silicon chips on macOS.
iOS, macOS, watchOS, and tvOS developers who need to implement device-specific logic, adaptive UI, or hardware-aware features in their apps.
Developers choose SDVersion for its comprehensive and up-to-date device database, simple API, and support across all Apple platforms without requiring complex manual detection code or external dependencies.
:iphone: Lightweight Cocoa library for detecting the running device's model and screen size.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Covers virtually every Apple device from iPhone 4 to iPhone 16, including niche models like the iPhone 16e and detailed chip types up to M4 Max, as shown in the extensive enum lists in the README.
Provides consistent methods (e.g., deviceVersion, deviceSize) across iOS, macOS, watchOS, and tvOS through separate but similarly named libraries like SDiOSVersion and SDMacVersion.
Includes a built-in Privacy Manifest for App Store compliance and uses only non-tracking system calls like utsname, avoiding user data collection.
Offers a minimal API that abstracts complex hardware identifiers, with clear examples for both Objective-C and Swift, reducing boilerplate code for device checks.
Requires library updates for new Apple devices; the README's contributing guidelines imply developers must manually add support, causing potential delays after hardware releases.
Detection is based on predefined enums, so it cannot dynamically identify unknown or future devices without code changes, limiting flexibility for edge cases.
Forces inclusion of separate libraries per platform (e.g., SDiOSVersion vs SDMacVersion), which can add unnecessary overhead if targeting only one OS or building a lean app.