A lightweight Swift library to detect the exact device model (e.g., iPhone 15 Pro) and platform.
DeviceGuru is a Swift library that detects the exact hardware model and platform of Apple devices, such as iPhone 15 Pro or iPad Air. It solves the problem of accurately identifying device specifics for analytics, feature toggling, or adaptive user interfaces. The library is optimized for performance and supports mocking in tests.
iOS, macOS, tvOS, and watchOS developers who need precise device information for analytics, conditional feature delivery, or UI/UX adaptations based on hardware capabilities.
Developers choose DeviceGuru for its lightweight design, high accuracy in device identification, and performance improvements—version 10.0.0 is 10x faster. It also offers testability with mock support, ensuring reliable development workflows.
DeviceGuru is a simple lib (Swift) to know the exact type of the device, e.g. iPhone 6 or iPhone 6s. Please ⭐️ this repo on the top right corner to make this repo popular.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Returns specific hardware names and codes, such as iPhone 6 vs. iPhone 6s, enabling precise analytics and feature gating as demonstrated in the usage example.
Version 10.0.0 is optimized to be 10x faster than previous releases, reducing app overhead and improving efficiency as highlighted in the release notes.
Supports mocking in unit tests, allowing reliable simulation of different devices for testing device-specific logic, a feature explicitly mentioned in the library.
Minimal overhead with a straightforward API and easy installation via SPM, CocoaPods, or Carthage, making it quick to add to projects.
Major updates like version 10.0.0 introduce breaking changes, requiring manual code adjustments as acknowledged in the README, which can disrupt development workflows.
Focuses only on device model and platform detection, lacking built-in features for OS version, screen metrics, or other system attributes that developers might need.
Requires running a generator script to update the device list for new models, which may not be automated and relies on developer intervention for timely updates.