Devices class abstract final

The devices worth offering, which is not all of them.

A picker with a hundred entries is unusable. What a layout meets is a handful of size classes — small, standard, large, tablet, desktop — so this is one of each per platform, named after a device that sits in that class.

Every phone and iPad here is a real screen, because each one wears device_frame's hand-drawn body for it (device_frames.dart) and a body only fits the glass it was drawn around: test/device_frames_test.dart holds every row's size and ratio to its body's. The Android tablets, which device_frame draws none of, take its generic silhouette instead.

The safe areas and the keyboards are not the bodies'. They are what the platform reports on the OS that ships now — iOS 26.2 simulators and API 35 emulators — and the frame is handed ours, because those numbers move with the OS and not only with the glass: an iPad's status bar grew from 24 to 32 with iPadOS 26, an iPhone's landscape home indicator shrank from 21 to 20, and its landscape keyboard from 219 to 209. tool/measure_devices.dart takes every one of them again, and is what to run when a major OS ships.

Properties

hashCode → int
The hash code for this object.
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Constants

all → const List<Device>
Every offered device, in picker order.
androidBig → const Device
The large phone — a Pixel 9 Pro XL's screen.
androidMedium → const Device
Dropped with the 16:9 phones it stood for, which have left the shelves.
androidMediumTablet → const Device
androidSmall → const Device
The compact flagship — a Galaxy S25's screen.
androidSmallTablet → const Device
androidTall → const Device
The shape almost every current Android phone is — a Pixel 9's screen: tall, a punch hole in the status bar, a gesture bar eating the bottom.
defaultPhone → const Device
The phone anything gets when it has not said which: a scenario whose folder names none, a person in a world, a new scene's artboard, the previews web page. The screen most people are holding — see iphone16.
iPad → const Device
The iPad with a home button, whose status bar is all there is to avoid.
iPadPro13 → const Device
iphone12ProMax → const Device
iphone13 → const Device
iphone13Mini → const Device
Dropped, and answered by the nearest phone that stayed.
iphone16 → const Device
The Dynamic Island generation — the same screen as an iPhone 15, and the one most users are holding.
iphone16Plus → const Device
The large screen of the line that is not Pro — the same glass as a 15 Pro Max.
iphone16Pro → const Device
The screen the base iPhone 17 moved to as well — so the current standard size, not only the Pro's — with a status bar three points taller than a 16's.
iphone16ProMax → const Device
The largest iPhone screen there is — what a layout overflows on last and what a store listing wants first.
iphoneSe → const Device
linuxLaptop → const Device
linuxWindow → const Device
A Linux window, unscaled — which is still the common case there.
macbookPro → const Device
The screens these window sizes replaced.
smallWindow → const Device
wideMonitor → const Device
wideWindow → const Device
window → const Device
windowsLaptop → const Device
windowsWindow → const Device
A Windows window, at the scale Windows actually ships at.