Native App Development


This page is a stub.
Contributions to this page are welcome!

Many apps on webOS are web apps. Such as Hulu, Spotify and most of the apps on the LG Content Store.

Content-based apps can be built easily with web technologies. Go native when one of these is the point of the app:

You needWhy the web runtime will not do
UDP, or a raw TCP socketA web app gets HTTP and WebSocket, nothing lower
Low latency audio and videoThe media pipeline through libndl-directmedia is not reachable from a web app
OpenGL ESReal time rendering for a game or an emulator
Tight loops, or control over memoryA decoder, an emulator core, anything measured in frames
An existing C or C++ codebasePorting beats rewriting
Anything outside the app sandboxNeeds a rooted TV, see System Mods

Moonlight is the first three at once. It streams over UDP, decodes through the low level media API, and draws with SDL2. Chocolate Doom is the fifth: an SDL2 game that ported over largely unchanged.

Punktfunk is another game streaming client, and it is written in Rust. Native does not have to mean C or C++. It is on the homebrew repository, and needs webOS 5 or newer.

If none of those apply, a web app is less work and runs on more TVs. See Developing Web App.

Start from Developing Native App.