# devicekit/DeviceKit

DeviceKit is a value-type replacement of UIDevice.

Repository: https://github.com/devicekit/DeviceKit
Canonical: https://ross.abutalabs.com/products/devicekit
Language: Swift
License: MIT
License Family: permissive
Topics: swift, ios, tvos, device, device-family, simulator, battery-level, battery-state, swiftpm, hacktoberfest
Last push: 2026-05-22T14:39:34+00:00

## Health v2 (maintenance only)
Score: 74/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 83, release rhythm 49, longevity 100
- inputs: {"age_days": 4210, "days_push": 103, "days_rel": 183, "gap_med": 172, "n_releases_24m": 4}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 4728, forks 464 (observed 2026-08-28T04:08:57.641385+00:00)

## What it is
DeviceKit is a Swift library providing a value-type replacement for Apple's UIDevice class. It offers device identification, family detection, simulator detection, battery metrics, and various hardware capabilities for iOS, tvOS, and watchOS apps.

## Use cases
- detect which iPhone or iPad model the app is running on
- check battery level and battery state in an iOS app
- determine if code is running on a simulator
- detect available biometric sensors like Touch ID or Face ID
- get screen size, PPI, and display metrics
- check available disk space at runtime
- detect Low Power Mode or Guided Access sessions
- identify Apple Pencil support

## When to choose
- you need device model identification beyond what UIDevice exposes
- you want a Swifty, value-type API instead of UIDevice's singleton
- you need simulator detection for testing or analytics
- you support iOS, tvOS, or watchOS and need unified device info

## When to avoid
- you only need basic UIDevice information and don't mind the class-based API
- you target platforms outside Apple's ecosystem
- you need runtime hardware queries not covered by DeviceKit's feature list

## Facets
- artifact type: library
- maturity: stable
- function: sdk, developer-tools
- domain: mobile-development, developer-tools
- platform: -
- tags: uidevice, device-identification, simulator-detection, battery, value-type, tvos, watchos, ios, swift, mobile

## Member repositories
- devicekit/DeviceKit (main) score 74

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:08:57.641385+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T18:19:02.886855+00:00, confidence not recorded.
  - readme: https://github.com/devicekit/DeviceKit (fetched 2026-08-28T04:08:57.641385+00:00, sha 72dc04eeeaa0)
- Data as of 2026-08-30T08:39:29.467469+00:00.
