Determine the type of handheld device on Flutter. Like if the device is a Tablet or is iPhoneX or later or has notch.


//Get the physical device size
print( Device.size );
//Quick methods to access the physical device width and height
print("Device Width: ${Device.width}, Device Height: ${Device.height}");

//To get the actual screen size (Which is same as what MediaQuery gives)
print( Device.screenSize );
//Quick methods to access the screen width and height
print("Device Width: ${Device.screenWidth}, Device Height: ${Device.screenHeight}");

//Check if device is tablet
if( Device.get().isTablet ){
    //do something large

//Check if device is at least an iphone x
// NOTE: This detects up to Iphone 12 pro max
if( Device.get().isIphoneX ){
    //Do some notch business

// For a generic notch test use
if( Device.get().hasNotch ){
    //Do some notch business

//Other utility methods
print( Device.get().isPhone );
print( Device.get().isAndroid );
print( Device.get().isIos );

//So to check for iPad for instance
if( Device.get().isIos && Device.get().isTablet ){
    //make the font larger :)

Device.get() will return only one instance so not need to save it except for brevity

You should try not to store a reference for Device.get() because it now responds to changes and orientations