Ekhoo/Device
43.6
Weak · 1 October 2026
791
lines of production code
Swift
primary language
1
measurement over time
What this system is
This system is a lightweight Swift library designed to detect the current Apple device model, type, and screen size across iOS, macOS, and tvOS platforms. It provides a unified API for identifying specific hardware variants, such as iPhone and iPad generations or Mac models, along with their corresponding screen dimensions. The framework supports integration via Swift Package Manager and CocoaPods, offering example applications to demonstrate usage on both iOS and macOS targets.
Features
Add Xcode schemes for iOS and macOS targets
The project now includes dedicated Xcode schemes for both the iOS (Device) and macOS (Device macOS) targets. This enables developers to build, run, test, profile, and archive the framework for both platforms directly from the Xcode IDE, ensuring consistent build configurations and launch settings for each platform.
Device.xcodeproj/xcshareddata · high confidence
Add iOS example app launch and main screens
The Example project now includes the initial storyboard files for the iOS application. A LaunchScreen storyboard provides a blank white splash screen, and a Main storyboard defines the primary view controller (ViewController) that serves as the app's entry point.
Example/Base.lproj · high confidence
Add macOS example application
Added a new macOS example project that demonstrates how to use the Device library to detect Mac hardware types (such as iMac, MacBook, MacBook Air, and MacBook Pro) and screen sizes (ranging from 11-inch to 27-inch) within a standard Cocoa application structure.
Example macOS · high confidence
Add macOS framework and example application
The project now includes a dedicated macOS target, building a separate Device.framework and providing an Example macOS application to demonstrate usage on macOS. This extends the library's availability beyond iOS, allowing developers to integrate device detection capabilities into macOS apps alongside their existing iOS implementations.
Device.xcodeproj · high confidence
Added macOS device detection capabilities
Introduced DeviceMacOS.swift to provide macOS-specific device identification, allowing users to determine the Mac model type (e.g., MacBook Pro, iMac) and screen size via the new \type()\ and \size()\ methods, as well as a combined human-readable \version()\ string.
Source/macOS · high confidence
Initial iOS example app demonstrating device detection
Added an iOS example project (Example/) that demonstrates how to use the Device library to identify the current device model, screen size, and device type. The app includes an AppDelegate, Info.plist, and a ViewController that prints the detected device details (e.g., iPhone, iPad, iPod, Simulator) and screen dimensions using the library's API, including helper methods for size comparison.
Example · high confidence
Initial release of Device macOS framework
This change introduces the initial structure for the Device macOS framework, including the main header file and the Info.plist configuration. The framework is set up with a bundle package type (FMWK) and initialized at version 1.0, providing the foundational metadata and public interface stubs for macOS device detection capabilities.
Device, Device macOS · high confidence
Initial release of device detection enums for iOS, macOS, and tvOS
This change introduces the core data models for device identification, adding \Size.swift\, \Type.swift\, and \Version.swift\ to the Source directory. These files define public enums for screen sizes (e.g., \screen6\_1Inch\, \screen12\_9Inch\), device types (e.g., \iPhone\, \iPad\, \iMac\), and specific hardware versions (e.g., \iPhone16Pro\, \iPadProM5\_11Inch\), enabling users to detect and differentiate between a wide range of Apple devices and their screen dimensions.
Source · high confidence
Initial workspace configuration for Device project
The Device project now includes an Xcode workspace configuration that references the main project file and enables the 32-bit warning check, establishing the foundational build environment for the application.
Device.xcodeproj/project.xcworkspace · high confidence
Behavioural changes
Expanded device support for latest iPhone, iPad, and simulator architectures
The iOS device detection library has been updated to recognize a wide range of new hardware models, including the iPhone 16 and 17 series (including Pro, Max, Air, and e variants), the iPhone 18 Pro and Pro Max, and the iPhone SE 3. iPad support now covers the iPad Air M2, M3, and M4 (11-inch and 13-inch), iPad Mini 7, and iPad Pro M4 and M5 (11-inch and 13-inch). Additionally, simulator detection has been extended to include the arm64 architecture, ensuring accurate identification on Apple Silicon Macs running iOS simulators.
Source/iOS · high confidence
Dependencies
Initial release of Device library v3.8.0 with Swift Package Manager support
The Device library is now available as version 3.8.0, introducing official support for Swift Package Manager via a new Package.swift manifest. This addition allows developers to integrate the library into their projects using Swift's native package manager alongside existing CocoaPods support. The library remains a lightweight Swift tool for detecting the current device and screen size, with the Package.swift configuration specifying support for iOS 9 and macOS 10.10 platforms and compatibility with Swift 4, 4.2, and 5 language versions.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 48 → 44 (-4.1)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 100 → 96 (-4.3)
- Architecture 82 (new)
- Maturity 50 → 52 (+1.8)
- Readiness 17 → 14 (-3.5)
- Security 100 → 100 (+0.0)
Resolved (1)
- Documentation: no usage examples (README.md)
New (8)
- Change coupling: Size.swift ↔ Version.swift (Source/Size.swift)
- Dependency hygiene PARTLY measured — SwiftPM pinning read, dependency currency NOT established
- Device.size (cyclomatic 26) (Source/iOS/Device.swift)
- Inconsistent parameter signature for type detection. iOS requires a detectSimulator boolean, while macOS does not accept any parameters.
- Inconsistent return type and parameter signature for version detection across platforms. iOS returns a typed Version object and accepts a simulator detection flag, while macOS returns a raw String and accepts no parameters.
- Low cohesion: AppDelegate (LCOM4 6) (Example/AppDelegate.swift)
- MethodTooLong: Device.getVersion (Source/iOS/Device.swift)
- Potential naming confusion or redundancy. 'isPod' is likely a typo for 'isPhone' or a specific internal term, but 'Pod' is not a standard device category like 'Pad'. If 'Pod' refers to a specific device class, it should be clearly distinct from 'Pad'. If it is a typo, it is a critical error.
Changes since last survey
- 1 commits — 1 feature/other, 0 fixes
By area
- Source/Version.swift — 1 commit
Notable commits
- change: Add iPhone 18 Pro and iPhone 18 Pro Max (#149)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
Ekhoo/Device was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 1 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit c5efafa1c0cbacae4efcf9a2c1bb165976a44d7a — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.