Skip to content

Instantly share code, notes, and snippets.

@BrentMifsud
Last active October 31, 2022 18:50
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save BrentMifsud/dab24388bf79700cecee3265f9a98800 to your computer and use it in GitHub Desktop.
Save BrentMifsud/dab24388bf79700cecee3265f9a98800 to your computer and use it in GitHub Desktop.
Extension on PreviewDevice that includes all available devices
import SwiftUI
/// Static properties for all preview devices.
///
/// Usage:
///
/// ```swift
/// struct TestView_Previews: PreviewProvider {
/// static var previews: some View {
/// Group {
/// TestView()
/// .previewDevice(.iPhone13ProMax)
/// }
/// }
/// }
/// ```
extension PreviewDevice {
static let iPhone4s: PreviewDevice = "iPhone 4s"
static let iPhone5: PreviewDevice = "iPhone 5"
static let iPhone5s: PreviewDevice = "iPhone 5s"
static let iPhone6Plus: PreviewDevice = "iPhone 6 Plus"
static let iPhone6: PreviewDevice = "iPhone 6"
static let iPhone6s: PreviewDevice = "iPhone 6s"
static let iPhone6sPlus: PreviewDevice = "iPhone 6s Plus"
static let iPhoneSE_1stGen: PreviewDevice = "iPhone SE (1st generation)"
static let iPhone7: PreviewDevice = "iPhone 7"
static let iPhone7Plus: PreviewDevice = "iPhone 7 Plus"
static let iPhone8: PreviewDevice = "iPhone 8"
static let iPhone8Plus: PreviewDevice = "iPhone 8 Plus"
static let iPhoneX: PreviewDevice = "iPhone X"
static let iPhoneXs: PreviewDevice = "iPhone Xs"
static let iPhoneXsMax: PreviewDevice = "iPhone Xs Max"
static let iPhoneXʀ: PreviewDevice = "iPhone Xʀ"
static let iPhone11: PreviewDevice = "iPhone 11"
static let iPhone11Pro: PreviewDevice = "iPhone 11 Pro"
static let iPhone11ProMax: PreviewDevice = "iPhone 11 Pro Max"
static let iPhoneSE2ndGen: PreviewDevice = "iPhone SE (2nd generation)"
static let iPhone12Mini: PreviewDevice = "iPhone 12 mini"
static let iPhone12: PreviewDevice = "iPhone 12"
static let iPhone12Pro: PreviewDevice = "iPhone 12 Pro"
static let iPhone12ProMax: PreviewDevice = "iPhone 12 Pro Max"
static let iPhone13Pro: PreviewDevice = "iPhone 13 Pro"
static let iPhone13ProMax: PreviewDevice = "iPhone 13 Pro Max"
static let iPhone13Mini: PreviewDevice = "iPhone 13 mini"
static let iPhone13: PreviewDevice = "iPhone 13"
static let iPhoneSE_3rdGen: PreviewDevice = "iPhone SE (3rd generation)"
static let iPhone14: PreviewDevice = "iPhone 14"
static let iPhone14Plus: PreviewDevice = "iPhone 14 Plus"
static let iPhone14Pro: PreviewDevice = "iPhone 14 Pro"
static let iPhone14ProMax: PreviewDevice = "iPhone 14 Pro Max"
static let iPodTouch_7thGen: PreviewDevice = "iPod touch (7th generation)"
static let iPad2: PreviewDevice = "iPad 2"
static let iPadRetina: PreviewDevice = "iPad Retina"
static let iPadAir: PreviewDevice = "iPad Air"
static let iPadMini2: PreviewDevice = "iPad mini 2"
static let iPadMini3: PreviewDevice = "iPad mini 3"
static let iPadMini4: PreviewDevice = "iPad mini 4"
static let iPadAir2: PreviewDevice = "iPad Air 2"
static let iPadPro_9_7: PreviewDevice = "iPad Pro (9.7-inch)"
static let iPadPro12_9_1stGen: PreviewDevice = "iPad Pro (12.9-inch) (1st generation)"
static let iPad_5thGen: PreviewDevice = "iPad (5th generation)"
static let iPadPro_12_9_2ndGen: PreviewDevice = "iPad Pro (12.9-inch) (2nd generation)"
static let iPadPro10_5: PreviewDevice = "iPad Pro (10.5-inch)"
static let iPad_6thGen: PreviewDevice = "iPad (6th generation)"
static let iPad_7thGen: PreviewDevice = "iPad (7th generation)"
static let iPadPro_11_1stGen: PreviewDevice = "iPad Pro (11-inch) (1st generation)"
static let iPadPro_12_9_3rdGen: PreviewDevice = "iPad Pro (12.9-inch) (3rd generation)"
static let iPadPro_11_2ndGen: PreviewDevice = "iPad Pro (11-inch) (2nd generation)"
static let iPadPro_12_9_4thGen: PreviewDevice = "iPad Pro (12.9-inch) (4th generation)"
static let iPadMini_5thGen: PreviewDevice = "iPad mini (5th generation)"
static let iPadAir_3rdGen: PreviewDevice = "iPad Air (3rd generation)"
static let iPad_8thGen: PreviewDevice = "iPad (8th generation)"
static let iPad_9thGen: PreviewDevice = "iPad (9th generation)"
static let iPadAir_4thGen: PreviewDevice = "iPad Air (4th generation)"
static let iPadPro_11_3rdGen: PreviewDevice = "iPad Pro (11-inch) (3rd generation)"
static let iPadPro_12_9_5thGen: PreviewDevice = "iPad Pro (12.9-inch) (5th generation)"
static let iPadAir_5thGen: PreviewDevice = "iPad Air (5th generation)"
static let iPadMini_6thGen: PreviewDevice = "iPad mini (6th generation)"
static let AppleTV: PreviewDevice = "Apple TV"
static let AppleTV4K: PreviewDevice = "Apple TV 4K"
static let AppleTV4KAt1080p: PreviewDevice = "Apple TV 4K (at 1080p)"
static let AppleTV4K_2ndGen: PreviewDevice = "Apple TV 4K (2nd generation)"
static let AppleTV4KAt1080p_2ndGen: PreviewDevice = "Apple TV 4K (at 1080p) (2nd generation)"
static let AppleWatch_38mm: PreviewDevice = "Apple Watch (38mm)"
static let AppleWatch_42mm: PreviewDevice = "Apple Watch (42mm)"
static let AppleWatchSeries2_38mm: PreviewDevice = "Apple Watch Series 2 (38mm)"
static let AppleWatchSeries2_42mm: PreviewDevice = "Apple Watch Series 2 (42mm)"
static let AppleWatchSeries3_38mm: PreviewDevice = "Apple Watch Series 3 (38mm)"
static let AppleWatchSeries3_42mm: PreviewDevice = "Apple Watch Series 3 (42mm)"
static let AppleWatchSeries4_40mm: PreviewDevice = "Apple Watch Series 4 (40mm)"
static let AppleWatchSeries4_44mm: PreviewDevice = "Apple Watch Series 4 (44mm)"
static let AppleWatchSeries5_40mm: PreviewDevice = "Apple Watch Series 5 (40mm)"
static let AppleWatchSeries5_44mm: PreviewDevice = "Apple Watch Series 5 (44mm)"
static let AppleWatchSE_40mm: PreviewDevice = "Apple Watch SE (40mm)"
static let AppleWatchSE_44mm: PreviewDevice = "Apple Watch SE (44mm)"
static let AppleWatchSeries6_40mm: PreviewDevice = "Apple Watch Series 6 (40mm)"
static let AppleWatchSeries6_44mm: PreviewDevice = "Apple Watch Series 6 (44mm)"
static let AppleWatchSeries7_41mm: PreviewDevice = "Apple Watch Series 7 (41mm)"
static let AppleWatchSeries7_45mm: PreviewDevice = "Apple Watch Series 7 (45mm)"
static let AppleWatchSE_40mm_2ndGen: PreviewDevice = "Apple Watch SE (40mm) (2nd generation)"
static let AppleWatchSE_44mm_2ndGen: PreviewDevice = "Apple Watch SE (44mm) (2nd generation)"
static let AppleWatchSeries8_41mm: PreviewDevice = "Apple Watch Series 8 (41mm)"
static let AppleWatchSeries8_45mm: PreviewDevice = "Apple Watch Series 8 (45mm)"
static let AppleWatchUltra_49mm: PreviewDevice = "Apple Watch Ultra (49mm)"
static let mac: PreviewDevice = "Mac"
static let macCatalyst: PreviewDevice = "Mac Catalyst"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment