On this page
Overview
DeviceKit is a Swift value-type replacement and complement for UIDevice. It exposes the current device model and family, simulator state, battery information, display metrics, Touch ID and Face ID availability, disk capacity, eSIM support, and other hardware characteristics.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Identify the current model, device family, and simulator state
Device.current returns the real or simulated device model, while properties such as isPhone, isPad, isPod, and isSimulator expose family and environment checks.
Sources: [2]
Best fit
Fits iOS apps that need UI or feature behavior based on device capabilities
It is useful for device-specific UI, diagnostics, support screens, and simulator exclusions without spreading UIDevice-related checks throughout the application.
Sources: [2]
Before adoption
Version 5.9.0 adds September 2026 devices, while its SwiftPM manifest requires iOS 13+
Version 5.9.0 adds iPhone 18 Pro/Pro Max, Apple Watch Series 12, Apple Watch Ultra 4, and related metadata. The README lists general support from iOS 11, but the 5.9.0 Package.swift declares iOS 13+, tvOS 13+, and watchOS 4+ for SwiftPM.
Official sources
- [1]devicekit/DeviceKit — GitHub repository(2026-10-06)
- [2]DeviceKit 5.9.0 — README(2026-10-06)
- [3]DeviceKit 5.9.0 — Package.swift(2026-10-06)
- [4]DeviceKit 5.9.0 release(2026-10-06)
- [5]DeviceKit MIT license(2026-10-06)
Supplemental curator note
DeviceKit fits iOS apps that need device-aware UI, diagnostics, or support information without scattered UIDevice checks. Version 5.9.0 adds the September 2026 iPhone and Apple Watch models.
Try it in 3 steps
- 1
Add DeviceKit 5.9.0 with SwiftPM
Pin version 5.9.0, including the September 2026 device updates.
.package(url: "https://github.com/devicekit/DeviceKit.git", exact: "5.9.0") - 2
Read the current device
Device.current returns the current hardware or simulator model.
import DeviceKit let device = Device.current - 3
Inspect family and simulator state
Use the same value to inspect the model, device family, and simulator state.
print(device) print(device.isPhone) print(device.isSimulator)
Growth
Growth trends · Last 30 days
4,733 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 6
- Open PRs
- 24
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- swift
- ios
- tvos
- device
- device-family
- simulator
- battery-level
- battery-state
- swiftpm
- hacktoberfest
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- CryptoSwift10,580 Stars
3 shared tag(s) · 1 shared category(s) · Same language
use AES, ChaCha20, SHA, HMAC, KDFs, and other cryptographic primitives in pure Swift
Swift - KeychainAccess8,253 Stars
3 shared tag(s) · 1 shared category(s) · Same language
use Swift APIs for Apple Keychain storage, accessibility, and Face ID protection
Swift - CocoaLumberjack13,321 Stars
3 shared tag(s) · 1 shared category(s)
route one DDLog API to console, os_log, rolling files, and custom loggers on Apple platforms
Objective-C - Firebase Apple SDK6,926 Stars
3 shared tag(s) · 1 shared category(s)
integrate Firebase authentication, databases, messaging, Crashlytics, and other services into Apple apps
C++ - Swift Async Algorithms3,713 Stars
2 shared tag(s) · 2 shared category(s) · Same language
add merge, combineLatest, debounce, throttle, and other time/order algorithms to AsyncSequence
Swift - Tauri111,593 Stars
2 shared tag(s) · 2 shared category(s)
Combine a web frontend and Rust native layer into desktop and mobile apps using system WebViews
Rust
Report incorrect information
Tell us if any listing information is incorrect or outdated.