--- icon: material/keyboard --- #### Debug Drawer ```kotlin // wrap your app content inside the drawer like following val drawerState = rememberDebugDrawerState() ComposeAppTheme { DebugDrawer( enabled = BuildConfig.DEBUG, // if disabled the drawer will not be created at all, in this case inside a release build... drawerState = drawerState, drawerContent = { // drawer content }, content = { // your wrapped app content } ) } ``` #### Example Drawer Content ```kotlin @Composable private fun Drawer(drawerState: DebugDrawerState) { DebugDrawerBuildInfos(drawerState) DebugDrawerActions(drawerState) DebugDrawerDeviceInfos(drawerState) // lumberjack module for logs DebugDrawerLumberjack( drawerState = drawerState, setup = DemoLogging.fileLoggingSetup, mailReceiver = "feedback@gmail.com" ) // kotpreferences module for delegate based preferences (another library of mine) DebugDrawerRegion( image = { Icon(Icons.Default.ColorLens, null) }, label = "Demo Preferences", drawerState = drawerState ) { DebugDrawerDivider(info = "Boolean") DebugDrawerSettingCheckbox(setting = DemoPrefs.devBoolean1) DebugDrawerSettingCheckbox(setting = DemoPrefs.devBoolean2) DebugDrawerDivider(info = "Enum") DebugDrawerSettingDropdown(setting = DemoPrefs.devStyle,items = DemoPrefs.UIStyle.values()) } // manual checkboxes, dropdowns, infos DebugDrawerRegion( image = { Icon(Icons.Default.Info, null) }, label = "Manual", drawerState = drawerState ) { // Checkbox var test1 by remember { mutableStateOf(false) } DebugDrawerCheckbox( label = "Checkbox", description = "Some debug flag", checked = test1 ) { test1 = it } // Button DebugDrawerButton( image = { Icon(Icons.Default.BugReport, null) }, label = "Button (Filled)" ) { // on click } // Dropdown val items = listOf("Entry 1", "Entry 2", "Entry 3") var selected by remember { mutableStateOf(items[0]) } DebugDrawerDropdown( modifier = modifier, label = "Items", selected = selected, items = items ) { selected = it } // Sectioned Button val items2 = listOf("L1", "L2", "L3") val level = remember { mutableStateOf(items2[0]) } DebugDrawerSegmentedButtons( selected = level, items = items2 ) // Info DebugDrawerInfo(title = "Custom Info", info = "Value of custom info...") } } ```