{"id":17163312,"url":"https://github.com/noppefoxwolf/debugmenu","last_synced_at":"2025-04-13T13:24:12.777Z","repository":{"id":37793373,"uuid":"319060621","full_name":"noppefoxwolf/DebugMenu","owner":"noppefoxwolf","description":null,"archived":false,"fork":false,"pushed_at":"2023-10-03T18:19:23.000Z","size":10178,"stargazers_count":104,"open_issues_count":0,"forks_count":7,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-05-02T05:45:55.435Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/noppefoxwolf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-12-06T15:06:04.000Z","updated_at":"2024-02-04T23:49:51.000Z","dependencies_parsed_at":"2023-10-16T04:22:09.678Z","dependency_job_id":"1b79aa93-9196-48a5-947b-048892334c19","html_url":"https://github.com/noppefoxwolf/DebugMenu","commit_stats":{"total_commits":135,"total_committers":7,"mean_commits":"19.285714285714285","dds":"0.18518518518518523","last_synced_commit":"43c3dff69ddb0f12697bcc33d2a5c13c877996b1"},"previous_names":[],"tags_count":46,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noppefoxwolf%2FDebugMenu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noppefoxwolf%2FDebugMenu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noppefoxwolf%2FDebugMenu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noppefoxwolf%2FDebugMenu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/noppefoxwolf","download_url":"https://codeload.github.com/noppefoxwolf/DebugMenu/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248718931,"owners_count":21150662,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-14T22:48:36.994Z","updated_at":"2025-04-13T13:24:12.771Z","avatar_url":"https://github.com/noppefoxwolf.png","language":"Swift","readme":"\n\u003e [!WARNING]\n\u003e DebugMenu will be archive soon.\n\u003e Please try new [noppefoxwolf/ContentLauncher](https://github.com/noppefoxwolf/ContentLauncher).\n\n# DebugMenu\n\n![](https://github.com/noppefoxwolf/DebugMenu/blob/main/.github/example.gif)\n\n## Installation\n\n### Swift Package Manager\n\nSelect File \u003e Swift Packages \u003e Add Package Dependency. \n\nEnter https://github.com/noppefoxwolf/DebugMenu in the \"Choose Package Repository\" dialog.\n\n```swift\n.package(url: \"https://github.com/noppefoxwolf/DebugMenu\", from: \"2.0.4\")\n```\n\n## Usage\n\n### UIKit based\n\n```swift\n#if DEBUG\nDebugMenu.install(windowScene: windowScene, items: [\n    ViewControllerDebugItem\u003cColorViewController\u003e(),\n    ClearCacheDebugItem(),\n    UserDefaultsResetDebugItem(),\n    CustomDebugItem()\n], dashboardItems: [\n    CPUUsageDashboardItem()\n])\n#endif\n```\n\n### SwiftUI based\n\n```swift\n@main\nstruct App: SwiftUI.App {    \n    var body: some Scene {\n        WindowGroup {\n            Root.View(\n                store: .init(\n                    initialState: .init(),\n                    reducer: Root.reducer,\n                    environment: .debug\n                )\n            ).debugMenu(debuggerItems: [\n                ViewControllerDebugItem\u003cColorViewController\u003e(),\n                ClearCacheDebugItem(),\n                UserDefaultsResetDebugItem(),\n                CustomDebugItem()\n            ], dashboardItems: [\n                CPUUsageDashboardItem()\n            ])\n        }\n    }\n}\n```\n\n## Custom debug item\n\n```swift\nstruct CustomDebugItem: DebugItem {\n    let debugItemTitle: String = \"Custom item\"\n    let action: DebugItemAction = .toggle { UserDefaults.standard.bool(forKey: \"key\") } action: { (isOn, completions) in\n        let updater = Updater()\n        do {\n            await updater.update()\n            return .success(message: \"Updated\")\n        } catch {\n            return .failure(message: \"Faild to update\")\n        }\n    }\n}\n```\n\n## Custom dashboard item\n\n```swift\npublic class CustomDashboardItem: DashboardItem {\n    public init() {}\n    public func startMonitoring() {}\n    public func stopMonitoring() {}\n    public let fetcher: MetricsFetcher = .text {\n        let formatter = DateFormatter()\n        formatter.dateFormat = \"HH:mm:ss\"\n        return formatter.string(from: Date())\n    }\n    public var title: String = \"Date\"\n}\n```\n\n# Exclude DebugMenu in production\n\nRead following article.\n[Linking a Swift package only in debug builds](https://augmentedcode.io/2022/05/02/linking-a-swift-package-only-in-debug-builds/)\n\n# How to use\n\n## Open DebugMenu\n\nTap floating bug button.\n\n## Show Dashboard\n\nLongpress floating bug button, and tap `Show widget`.\n\n# License\n\nLicense\nDebugMenu is released under the MIT license. See LICENSE for details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoppefoxwolf%2Fdebugmenu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnoppefoxwolf%2Fdebugmenu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoppefoxwolf%2Fdebugmenu/lists"}