Platforms

LG webOS platform notes

LG webOS TV development details: runtime environment, Luna Service, media playback, and app store submission.

LG’s webOS platform runs a Chromium-based web engine, similar in concept to Samsung Tizen but with its own set of APIs, device behaviors, and development workflows. If you are already building for Samsung, many of the patterns translate, but the platform-specific details differ enough to require separate attention.

webOS runtime environment

webOS TV apps are web applications that run inside a Chromium-based engine. Like Samsung, the Chromium version varies by TV model year, and the same compatibility concerns apply: you need to know which web platform features are available on your target devices.

Key differences from Samsung Tizen:

  • webOS uses Luna Service for system API calls instead of Tizen Web APIs
  • The app packaging format is .ipk (Debian-style) rather than .wgt
  • webOS supports the Magic Remote (a pointer-style remote) in addition to D-pad navigation
  • The development toolchain uses the webOS CLI (ares tools) rather than Tizen Studio

Luna Service APIs

Luna Service is webOS’s inter-process communication system. Your app calls Luna Service methods to access device capabilities:

com.webos.service.tv.display - Screen resolution, HDR capability, and display settings.

com.webos.service.connectionmanager - Network connection status and type.

com.palm.systemservice - System settings, language, country, time zone.

com.webos.applicationManager - App lifecycle, launch parameters, and app-to-app communication.

Luna Service calls are asynchronous. You make a request and receive a callback with the response. Error handling matters because some Luna Service calls may not be available on all webOS versions.

Magic Remote and input handling

LG’s Magic Remote is a Wii-style pointer remote that lets users point at the screen. This is unique among TV platforms and affects your UI design.

Your app should support both input modes:

  • Pointer mode: cursor-driven interaction, similar to a mouse. Buttons are click targets. Hover states are relevant.
  • D-pad mode: directional navigation without a pointer. Focus management becomes essential, just like on other TV platforms.

Some users prefer D-pad navigation even when a pointer remote is available. Your app needs to work well with both input methods. This typically means:

  • All interactive elements must be focusable via D-pad AND clickable via pointer
  • Focus indicators and hover states should be distinct but visually consistent
  • Scroll behavior should work with both D-pad (page scrolling) and pointer (drag scrolling)

Media playback on webOS

webOS supports HTML5 video with MSE for adaptive streaming. The MSE implementation is generally solid on recent webOS versions but, like Samsung, older model years may have quirks.

luna://com.webos.media provides native media control through Luna Service calls. This is LG’s equivalent of Samsung’s AVPlay - a platform-level media API that bypasses the web media stack. Some teams use it when the standard MSE path has issues on specific devices.

DRM support: Widevine is the primary DRM system on webOS. PlayReady is available on some models. As with all TV platforms, DRM behavior must be tested on real hardware because the DRM implementation is firmware-dependent.

Playback quirks to test for:

  • Buffer eviction behavior during long playback sessions
  • Subtitle rendering consistency across webOS versions
  • Audio track switching mid-playback
  • Trick play (seek) behavior near content boundaries
  • Resume from suspend (what happens when the TV goes to standby and comes back)

Memory and performance

LG smart TVs have similar hardware constraints to Samsung TVs: 1.5-3 GB of RAM total, with a significant portion consumed by the OS.

webOS-specific considerations:

  • The system can reclaim memory from backgrounded apps more aggressively than some other platforms. Do not assume your app’s state persists through a background/foreground cycle.
  • Image handling uses the same texture memory pool as the system UI. Loading too many high-resolution images can cause system-level UI sluggishness, not just app sluggishness.
  • The JavaScript heap limit is enforced. Profile memory on real devices, especially during long viewing sessions.

Development and debugging

ares CLI tools are LG’s command-line interface for webOS development:

  • ares-package - creates .ipk packages
  • ares-install - deploys packages to a device
  • ares-launch - launches an installed app
  • ares-inspect - opens the Web Inspector for debugging
  • ares-device - manages device connections

Developer Mode app must be installed on the TV from the LG Content Store. It enables developer mode and provides SSH access for CLI tool connections.

Web Inspector works the same way as on Samsung: full Chrome DevTools over a network connection. This is your primary debugging tool for UI, performance, and memory issues.

Emulator: LG provides a webOS TV emulator through their SDK. Like other TV emulators, it is useful for UI development but does not accurately reproduce media playback, DRM, or performance characteristics.

HDMI-CEC considerations

LG TVs actively use HDMI-CEC (Consumer Electronics Control) for device coordination. When a user presses a button on the TV remote to turn off the TV, or switches HDMI inputs, your app may receive lifecycle events.

Test these scenarios explicitly:

  • TV power off via remote while your app is playing video
  • HDMI input switch away from and back to the device running your app
  • TV volume control via CEC while your app has audio focus
  • External device (soundbar, receiver) sending CEC commands

CEC behavior is not perfectly standardized across all TV and external device combinations. You cannot test every permutation, but cover the common cases.

App submission to LG Seller Lounge

LG’s app store submission process goes through LG Seller Lounge:

Requirements:

  • Correctly packaged .ipk file
  • App icon and promotional images meeting LG’s specifications
  • Content rating information
  • Test account credentials for LG QA
  • Support for both Magic Remote and D-pad navigation

Common issues:

  • Magic Remote pointer interaction not working correctly on all interactive elements
  • App not handling the TV’s back button correctly
  • Resume from standby causing playback or state issues
  • Accessibility shortcomings

Review timeline: plan for 5-10 business days. As with other platforms, maintain a checklist of known requirements and test against them before each submission.

Cross-platform perspective

See how webOS fits into a multi-platform connected TV strategy.

Connected TV Development