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.