Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. iOS
  3. SDVersion

SDVersion

MITObjective-C5.0.0

Lightweight Cocoa library for detecting Apple device models, screen sizes, and chip types across iOS, macOS, watchOS, and tvOS.

GitHubGitHub
1.3k stars210 forks0 contributors

What is SDVersion?

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.

Target Audience

iOS, macOS, watchOS, and tvOS developers who need to implement device-specific logic, adaptive UI, or hardware-aware features in their apps.

Value Proposition

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.

Overview

:iphone: Lightweight Cocoa library for detecting the running device's model and screen size.

Use Cases

Best For

  • Adapting UI layouts for specific iPhone or iPad screen sizes
  • Implementing features exclusive to certain device models (e.g., iPhone Pro models)
  • Optimizing graphics or assets for Retina vs non-Retina displays on macOS
  • Detecting Apple Silicon chips to enable native performance optimizations
  • Creating device-specific onboarding or tutorials in apps
  • Gathering analytics on device types used by your app's user base

Not Ideal For

  • Projects targeting non-Apple platforms (e.g., Android, Windows, or web)
  • Apps requiring real-time device detection for unreleased or custom hardware without library updates
  • Teams prioritizing zero-dependency solutions who can rely solely on Apple's built-in APIs like UIDevice
  • Swift-only codebases that avoid Objective-C interoperability and prefer native Swift concurrency models

Pros & Cons

Pros

Comprehensive Device Database

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.

Unified Cross-Platform API

Provides consistent methods (e.g., deviceVersion, deviceSize) across iOS, macOS, watchOS, and tvOS through separate but similarly named libraries like SDiOSVersion and SDMacVersion.

Privacy-First Design

Includes a built-in Privacy Manifest for App Store compliance and uses only non-tracking system calls like utsname, avoiding user data collection.

Lightweight and Simple

Offers a minimal API that abstracts complex hardware identifiers, with clear examples for both Objective-C and Swift, reducing boilerplate code for device checks.

Cons

Manual Update Dependency

Requires library updates for new Apple devices; the README's contributing guidelines imply developers must manually add support, causing potential delays after hardware releases.

Static Enum Limitations

Detection is based on predefined enums, so it cannot dynamically identify unknown or future devices without code changes, limiting flexibility for edge cases.

Platform-Specific Bloat

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.

Frequently Asked Questions

Quick Stats

Stars1,304
Forks210
Contributors0
Open Issues9
Last commit5 months ago
CreatedSince 2014

Tags

#ios#objective-c#tvos#device-detection#watchos#swift#screen-size#apple-silicon#macos

Included in

iOS51.7k
Auto-fetched 9 hours ago

Related Projects

DeviceKitDeviceKit

DeviceKit is a value-type replacement of UIDevice.

Stars4,713
Forks463
Last commit23 days ago
DeviceDevice

Light weight tool for detecting the current device and screen size written in swift.

Stars1,729
Forks204
Last commit1 month ago
MotionKitMotionKit

Get the data from Accelerometer, Gyroscope and Magnetometer in only Two or a few lines of code. CoreMotion now made insanely simple :octocat: :satellite:

Stars1,081
Forks130
Last commit8 years ago
NFCPassportReaderNFCPassportReader

NFCPassportReader for iOS 13

Stars854
Forks328
Last commit6 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub