WLED

ca.cgagnier.wlednativeandroid
by Zapstore Catalog

Take full control of your WLED smart lights and LED strips from your Android phone or tablet. The official WLED app automatically finds your lights on your home Wi-Fi and brings them together in one simple, fast dashboard. Toggle power, adjust brightness, pick colors and effects, or keep your lights up to date in just a few taps. Key Features: • Automatic Wi-Fi Discovery: Finds your WLED lights on your local network automatically with no complicated setup required. • Live Status & Controls: See your lights' current colors, brightness, and online status update instantly right from the device list. • Home Screen Widgets: Turn lights on or off, see their current state at a glance, or jump straight to a device from your home screen. • Quick Settings Controls: Switch your favorite lights on or off directly from your phone's notification shade without even opening the app. • Effortless New Device Setup: Connecting to a brand-new WLED controller's Wi-Fi network? The app detects it and opens the setup screen automatically. • One-Tap Device Updates: Get notified when new WLED software is available and update your controllers directly from the app (supports official WLED, QuinLED, and MoonModules). • Made for Phones, Tablets & Foldables: Adapts cleanly to any screen size with a split-screen layout for larger displays, plus Light and Dark modes. • Easy Organization: Give your lights custom names and hide seasonal or offline controllers until you need them again. Completely free and open-source.

First release: Nov 5, 2026, 1 total release.

Most recent release: Nov 5, 2026.

Repo

Appears in 0 app stacks.

0 sats / 0 zaps received in the past year.

Sats Received

Underlying data available via MCP: app_zaps, app_releases.

Zap Count

Underlying data available via MCP: app_zaps, app_releases.

Releases

  • Nov 5, 2026 8.0.0
    ## What's New **WLED 8.0.0** unifies the official Android and iOS apps in a single Kotlin Multiplatform codebase while bringing major new features to both platforms: - **Home Screen Widgets, Siri & Shortcuts:** Interactive Home Screen widgets on iOS (with Liquid Glass support, Siri, Shortcuts, and Action button integration) and a refreshed Material 3 widget layout on Android featuring live Wi-Fi signal strength indicators and an ambient glow when lights are on. - **What's New Changelog:** Automatically view localized release notes after an update or revisit them anytime from Settings on both Android and iOS. - **Feature Parity on iOS:** OTA firmware updates for custom **QuinLED** and **MoonModules** boards alongside official WLED releases, theme selection, offline device grouping, automatic discovery controls, battery level indicators, and German & Simplified Chinese translations. - **Smoother Discovery & Real-Time Connections:** Shared mDNS discovery and WebSocket state management with a 60-second offline grace period, Android 17 local network permission support, a connection progress bar, and fixed WebView file uploads on Android. ## 🚀 New Features
    More…
    * Improve iOS widget initial configuration and unconfigured state (#296) @Moustachauve * Add curated short Google Play release notes and skill workflows (#297) @Moustachauve * Add /prepare-release skill for beta and production release preparation (#292) @Moustachauve * Show indeterminate loading bar at top of device WebView (#291) @Moustachauve * Replace iOS HTML error pages with native SwiftUI error view (#290) @Moustachauve * Add German and Simplified Chinese localizations to iOS (#289) @Moustachauve * Support localized What's New changelogs and store release notes (#287) @Moustachauve * Automate Android and iOS beta and production releases via GitHub Actions and Fastlane (#286) @Moustachauve * Display WiFi signal strength icon in Android and iOS widgets (#283) @Moustachauve * Polish Android Home Screen widget layout and Material 3 theme (#282) @Moustachauve * Polish iOS Home Screen widget layout and Liquid Glass support (#281) @Moustachauve * Add iOS Home Screen WidgetKit extension and live widget state sync (#272) @Moustachauve * Add iOS App Intents, widget views, and snapshot tests (#271) @Moustachauve * Bring iOS device list, edit, and OTA update UI to parity with Android (#269) @Moustachauve * Respect the automatic discovery setting and add it to iOS (#263) @Moustachauve * Add What's New changelog sheet on iOS and share version filtering logic. (#262) @Moustachauve * Style changelog sheet with pixel font, version cards, and floating action. (#261) @Moustachauve * Adopt shared UserPreferencesRepository and @Observable view models on iOS (#257) @Moustachauve * Adopt shared DeviceConnectionManager in iOS app (#239) @Moustachauve * Adopt shared DeviceConnectionManager on Android (#246) @Moustachauve * Add database persistence and firmware update polling to DeviceConnectionManager (#248) @Moustachauve * Implement core real-time DeviceConnectionManager in shared module (#247) @Moustachauve * Add multiplatform device connection and partitioning foundations (#237) @Moustachauve * Tune Gradle JVM options and modernize build performance settings (#240) @Moustachauve * Fetch device info on iOS through the shared DeviceApi (#234) @Moustachauve * Migrate iOS app persistence from Core Data to shared Room database (#231) @Moustachauve * Integrate native iOS application into monorepo and link Shared framework (#229) @Moustachauve, @sqrt0b1000, [@gemini-code-assist[bot]](https://github.com/apps/gemini-code-assist), [@google-labs-jules[bot]](https://github.com/apps/google-labs-jules) * Export Shared KMP module as an XCFramework for iOS consumption (#227) @Moustachauve * feat(kmp): migrate DeviceDiscovery (mDNS) to shared module for Android and iOS (#224) @Moustachauve * feat(kmp): implement IosNetworkConnectivityManager and iOS unit tests (Phase 4.3) (#222) @Moustachauve * feat(kmp): implement AndroidNetworkConnectivityManager and migrate :app (Phase 4.2) (#221) @Moustachauve * feat(kmp): define shared NetworkConnectivityManager interface and NetworkStatus model (Phase 4.1) (#220) @Moustachauve * refactor(kmp): migrate DataStore and UserPreferences to :shared (Step 3.6) (#219) @Moustachauve * refactor(kmp): migrate Ktor API clients, WebSockets, and ReleaseService to :shared (Step 3.5) (#218) @Moustachauve * refactor(kmp): migrate Room database, entities, and repositories to :shared (Step 3.4) (#217) @Moustachauve * feat(kmp): configure SKIE gradle plugin for swift interop in :shared (#216) @Moustachauve * refactor(kmp): migrate pure network DTOs, models, and utilities to :shared (#215) @Moustachauve * feat(kmp): scaffold :shared multiplatform module targeting android and ios (#214) @Moustachauve * feat(room): switch SQLite driver to BundledSQLiteDriver and update migrations for Room KMP (#206) @Moustachauve * feat(websocket): migrate to Ktor Client WebSockets and modernize state architecture (#205) @Moustachauve * refactor: migrate HTTP networking from Retrofit to Ktor Client (#200) @Moustachauve * feat: migrate navigation from Navigation Compose to Navigation 3 (#192) @Moustachauve * feat: Whats new view (#155) @Moustachauve ## 🐛 Bug Fixes * Keep reflective constructors for Glance widget workers and actions in R8 (#301) @Moustachauve * Request local network permission on Android 17 and prevent NSD picker loop (#293) @Moustachauve * Avoid blocking the main thread when loading the initial app theme (#294) @Moustachauve * Seed baseline changelog version when migrating from pre-8.0 installs (#285) @Moustachauve * Resolve Swift compiler warnings in Xcode across app and test targets (#270) @Moustachauve * Fix WebView file uploads and retain upload callbacks across configuration changes (#266) @Moustachauve * Fix iOS build warnings in Xcode (#241) @Moustachauve * Support unsigned 32-bit values for nightlight remaining time (#235) @Moustachauve * Merge main into dev (v7.0.1 hotfix sync) (#188) @Moustachauve * fix(widget): prevent crash when publishing widget previews (#156) @Moustachauve ## 🧰 Maintenance * Release 8.0.0 (#306) @Moustachauve * Record main (v7.0.1) merge ancestry in dev (#307) @Moustachauve * Prepare 8.0.0 release changelogs and translations (#305) @Moustachauve * Chore(deps): Bump gradle/actions from 6.4.0 to 6.4.1 (#302) [@dependabot[bot]](https://github.com/apps/dependabot) * Chore(deps): Bump com.google.devtools.ksp from 2.3.12 to 2.3.13 (#304) [@dependabot[bot]](https://github.com/apps/dependabot) * Chore(deps): Bump com.android.tools.screenshot:screenshot-validation-api from 0.0.1-alpha16 to 0.0.1-alpha17 (#303) [@dependabot[bot]](https://github.com/apps/dependabot) * Speed up the iOS CI check (#300) @Moustachauve * Migrate Compose screenshot testing to AGP 9.5 test suites (#299) @Moustachauve * Update libs.versions.toml (#298) @Moustachauve * Improve iOS widget initial configuration and unconfigured state (#296) @Moustachauve * Add curated short Google Play release notes and skill workflows (#297) @Moustachauve * Extract local network permission controller and refine retry flow (#295) @Moustachauve * Request local network permission on Android 17 and prevent NSD picker loop (#293) @Moustachauve * Avoid blocking the main thread when loading the initial app theme (#294) @Moustachauve * Add /prepare-release skill for beta and production release preparation (#292) @Moustachauve * Show indeterminate loading bar at top of device WebView (#291) @Moustachauve * Replace iOS HTML error pages with native SwiftUI error view (#290) @Moustachauve * Add German and Simplified Chinese localizations to iOS (#289) @Moustachauve * Move back changes to dev since we're not quite ready for a release yet. (#288) @Moustachauve * Support localized What's New changelogs and store release notes (#287) @Moustachauve * Automate Android and iOS beta and production releases via GitHub Actions and Fastlane (#286) @Moustachauve * Prepare unified 8.0.0 release for Android and iOS (#284) @Moustachauve * Display WiFi signal strength icon in Android and iOS widgets (#283) @Moustachauve * Polish Android Home Screen widget layout and Material 3 theme (#282) @Moustachauve * Remove unused Gradle dependencies and update Android and iOS packages (#280) @Moustachauve * Add iOS Home Screen WidgetKit extension and live widget state sync (#272) @Moustachauve * Add iOS App Intents, widget views, and snapshot tests (#271) @Moustachauve * Resolve Swift compiler warnings in Xcode across app and test targets (#270) @Moustachauve * Bring iOS device list, edit, and OTA update UI to parity with Android (#269) @Moustachauve * Use targeted device updates and markUpdateInstalled on Android (#268) @Moustachauve * Fix WebView file uploads and retain upload callbacks across configuration changes (#266) @Moustachauve * Upload failed screenshot diffs as a dedicated CI artifact (#265) @Moustachauve * Respect the automatic discovery setting and add it to iOS (#263) @Moustachauve * Add What's New changelog sheet on iOS and share version filtering logic. (#262) @Moustachauve * Style changelog sheet with pixel font, version cards, and floating action. (#261) @Moustachauve * Adopt shared UserPreferencesRepository and @Observable view models on iOS (#257) @Moustachauve * Add SwiftUI snapshot testing for the iOS device list screen (#260) @Moustachauve * Remove unused Android resources and exclude dev-only files from app binaries (#258) @Moustachauve * Add Compose Preview screenshot testing for the device list screen (#259) @Moustachauve * Unify device discovery handling and offline grace-period partitioning (#256) @Moustachauve * Remove stale firmware update strings from iOS String Catalog (#255) @Moustachauve * Wire iOS shared dependencies through isolated Koin containers (#254) @Moustachauve * Unify DeviceFirstContactService and address validation in :shared (#253) @Moustachauve * Migrate iOS firmware updates and releases to shared KMP module (#252) @Moustachauve * Update Gradle, Android, and iOS dependencies to latest compatible versions (#251) @Moustachauve * Update agent instructions, skills, and pre-commit guardrails (#250) @Moustachauve * Bump iOS minimum deployment target to 18.0 (#238) @Moustachauve * Optimize iOS check workflow and resolve test runner flakiness (#249) @Moustachauve * Tune Gradle JVM options and modernize build performance settings (#240) @Moustachauve * Migrate Android dependency injection from Hilt to Koin (#236) @Moustachauve * Declare thrown exceptions on DeviceApi for Swift callers (#233) @Moustachauve * Alphabetize String Catalog entries in Localizable.xcstrings (#232) @Moustachauve * Rename project and documentation references to WLED-App (#230) @Moustachauve * Integrate native iOS application into monorepo and link Shared framework (#229) @Moustachauve, @sqrt0b1000, [@gemini-code-assist[bot]](https://github.com/apps/gemini-code-assist), [@google-labs-jules[bot]](https://github.com/apps/google-labs-jules) * Optimize iOS CI workflow execution and cache Kotlin/Native toolchain (#228) @Moustachauve * Export Shared KMP module as an XCFramework for iOS consumption (#227) @Moustachauve * Update app dependencies and CI GitHub actions to latest stable versions (#226) @Moustachauve * ci: test and lint KMP :shared module across Android and iOS (#223) @Moustachauve * feat(kmp): implement AndroidNetworkConnectivityManager and migrate :app (Phase 4.2) (#221) @Moustachauve * feat(kmp): define shared NetworkConnectivityManager interface and NetworkStatus model (Phase 4.1) (#220) @Moustachauve * refactor(kmp): migrate DataStore and UserPreferences to :shared (Step 3.6) (#219) @Moustachauve * refactor(kmp): migrate Ktor API clients, WebSockets, and ReleaseService to :shared (Step 3.5) (#218) @Moustachauve * refactor(kmp): migrate Room database, entities, and repositories to :shared (Step 3.4) (#217) @Moustachauve * feat(kmp): configure SKIE gradle plugin for swift interop in :shared (#216) @Moustachauve * refactor(kmp): migrate pure network DTOs, models, and utilities to :shared (#215) @Moustachauve * feat(kmp): scaffold :shared multiplatform module targeting android and ios (#214) @Moustachauve * refactor(kmp): decouple Dagger Hilt from core repository, service, and domain classes (#213) @Moustachauve * Chore(deps): Update dependencies to latest stable versions (#212) @Moustachauve * refactor(kmp): decouple android.util.Log and semver4j using Kermit and KMP semver (#207) @Moustachauve * feat(room): switch SQLite driver to BundledSQLiteDriver and update migrations for Room KMP (#206) @Moustachauve * feat(websocket): migrate to Ktor Client WebSockets and modernize state architecture (#205) @Moustachauve * chore: enable detekt UnusedImports, coroutine, bug, and style rules (#204) @Moustachauve * refactor(test): modernize test suite to pure JUnit 5 and remove Robolectric (#203) @Moustachauve * chore: optimize GitHub Actions workflows and remove duplicate PR triggers (#202) @Moustachauve * Implement Selfie snapshot testing across model, serialization, and migration test suites (#201) @Moustachauve * refactor: migrate HTTP networking from Retrofit to Ktor Client (#200) @Moustachauve * chore: remove coderabbit configuration (#199) @Moustachauve * chore: enable parallel sync for Gradle 9.4+ (#198) @Moustachauve * refactor: replace DataStore Protobuf with kotlinx.serialization (#196) @Moustachauve * chore: bump targetSdk to 37 (#195) @Moustachauve * refactor: replace Moshi with kotlinx.serialization (#194) @Moustachauve * chore: remove deprecated compose-navigation skill (#193) @Moustachauve * feat: migrate navigation from Navigation Compose to Navigation 3 (#192) @Moustachauve * chore: update and reorganize android agent skills into categories (#191) @Moustachauve * chore(coderabbit): enable automatic reviews on dev branch (#190) @Moustachauve * Chore(deps): Update all dependencies, Kotlin, and Gradle to latest stable versions (#187) @Moustachauve * ci: optimize GitHub Actions cache and lint analysis (#189) @Moustachauve * Merge main into dev (v7.0.1 hotfix sync) (#188) @Moustachauve * Chore(deps): Bump gradle-wrapper from 9.4.1 to 9.5.0 (#166) [@dependabot[bot]](https://github.com/apps/dependabot) * Chore(deps): Bump kotlin from 2.3.20 to 2.3.21 (#164) [@dependabot[bot]](https://github.com/apps/dependabot), @Moustachauve * Chore(deps): Bump androidx.compose:compose-bom from 2026.03.01 to 2026.04.01 (#162) [@dependabot[bot]](https://github.com/apps/dependabot), @Moustachauve * Chore(deps): Bump navigationCompose from 2.9.7 to 2.9.8 (#163) [@dependabot[bot]](https://github.com/apps/dependabot), @Moustachauve * Chore(deps): Bump com.google.devtools.ksp from 2.3.6 to 2.3.7 (#165) [@dependabot[bot]](https://github.com/apps/dependabot), @Moustachauve * Chore(deps): Bump agp from 9.1.0 to 9.1.1 (#158) [@dependabot[bot]](https://github.com/apps/dependabot), @Moustachauve * Chore(deps): Bump org.jetbrains.kotlinx:kotlinx-serialization-json from 1.10.0 to 1.11.0 (#159) [@dependabot[bot]](https://github.com/apps/dependabot), @Moustachauve * Chore(deps): Bump com.google.protobuf from 0.9.6 to 0.10.0 (#160) [@dependabot[bot]](https://github.com/apps/dependabot), @Moustachauve * feat: Whats new view (#155) @Moustachauve ## Contributors @Moustachauve, [@dependabot[bot]](https://github.com/apps/dependabot), @sqrt0b1000, [@gemini-code-assist[bot]](https://github.com/apps/gemini-code-assist) and [@google-labs-jules[bot]](https://github.com/apps/google-labs-jules)