A complete guide for Javascript engineers

Entwicklung von Tizen-Apps für Samsung Smart TV: Eine Anleitung für Javascript-Entwickler

Dieser Artikel erzählt von den erstaunlichen Abenteuern der JS-Entwickler in der Welt des Betriebssystems Tizen OS. Er behandelt das schrittweise Einrichten der Arbeitsumgebung, den Anschluss eines Samsung Smart-TVs mit Fernbedienung und natürlich die Entwicklung einer App für den Tizen Store - mit Beispielen und Stolperfallen.

Wenn ihr also auch der Meinung seid, dass Javascript die beste Programmiersprache ist, weil sie fast überall eingesetzt werden kann - vom Smart TV zu Hause bis zum Space X-Raumschiff — … dann hoffen wir, dass unsere Entwicklungserfahrung für Sie von Nutzen sein wird.

Sie sind also ein Frontend-Entwickler, und vor Ihnen steht ein großer, schöner 65-Zoll-Fernseher von Samsung mit Tizen-Betriebssystem. Und er steht da nicht ohne Grund, denn Sie müssen eine TV-Anwendung mit Javascript entwickeln: mit einem HLS-Player oder DASH-Streams von einigen Anbietern, ein bisschen DRM und ein paar anderen Akronymen, von denen Sie noch nicht so genau wissen, was sie bedeuten. Nichts Kompliziertes, nichts Unmögliches.

Sie kommen nicht darum herum, Sie müssen sich damit beschäftigen. Lassen Sie uns gemeinsam mit dem Ingenieurteam von Promwad die Sache angehen.

 

Installieren der Software und Einrichten der Umgebung

Als erstes müssen Sie von der offiziellen Website das Tizen Studioherunterladen. Lesen Sie vor dem Download den Abschnitt Prerequisites, der die Systemanforderungen und benötigten Komponenten beschreibt, um nicht schon am Anfang ins Stolpern zu geraten.

Tizen Studio ist eine integrierte Entwicklungsumgebung (IDE) zur Softwareentwicklung für Tizen OS, in der Sie reale und virtuelle Geräte erstellen, Plattformen verbinden, Zertifikate erstellen und Anwendungen ausführen können.

Optional können Sie die VSCode Extension for Tizen hinzufügen, um die Verwaltung mit der IDE zu ermöglichen, ohne den Editor zu verlassen. 

Hier die Anleitung für Mac auf der Apple Silicon Plattform

Wenn Sie einen neuen ARM64-basierten Mac haben, können Sie Tizen Studio wie folgt installieren:

  • Rechtsklick im Finder auf die heruntergeladene Datei
  • Wählen Sie “Paketinhalt anzeigen”
  • Gehen Sie dann zu Contents/Resources/Java
  • Entpacken Sie die Datei tizen-sdk.zip
  • Kopieren Sie den Ordner tizen-sdk/jdk ins Verzeichnis ~/.package-manager/
  • Führen Sie die heruntergeladene Datei aus

Wenn alles geklappt hat, sollten Sie nach Abschluss der Installation den Paket Manager im Tizen Studio öffnen und folgende Erweiterungen hinzufügen:

  • Samsung Certificate Extension
  • TV Extension Tools
  • und die aktuelle Plattform (derzeit ist es die TV-Extension-6.0).

Der Downloadgeschwindigkeit nach zu urteilen, werden die Pakete direkt von koreanischen Servern heruntergeladen. Um die Wartezeit zu verkürzen, können Sie sich inzwischen über die Unterschiede von HLS und DASH sowie PlayReady und Widevine informieren ...

(... 6 Stunden später)

 

Den Fernseher in den Entwicklermodus umschalten

Wir können jetzt den Fernseher in den Entwicklermodus schalten und ihn zum Tizen Studio hinzuzufügen.

Gehen Sie dazu auf Apps und drücken Sie die magische Sequenz 1, 2, 3, 4, 5 auf der Fernbedienung. Daraufhin öffnet sich das Fenster für den Entwicklermodus.

Wenn Sie eine erweiterte Fernbedienung mit Ziffernblock besitzen, haben Sie Glück. Mit einer Mini-Fernbedienung müssen Sie sich ein wenig anstrengen: Öffnen Sie mit der 123-Taste den Ziffernblock auf dem Bildschirm und bewegen Sie sich mit den Navigationstasten.

Switching your TV to Developer Mode

Oben - erweiterte Fernbedienung mit Ziffernblock und Richtungstasten für fortgeschrittene Benutzer und Entwickler, unten - Smart-TV-Fernbedienung mit Navigationstasten in der Mitte

Geben Sie im Pop-up-Fenster des Entwicklermodus die IP-Adresse Ihres Computers ein, auf dem Sie Tizen Studio installiert haben, starten Sie Ihren Smart TV neu und voilà - Sie können den Device Manager öffnen und Ihren großen und schönen 65-Zoller hinzufügen.

 

Ihren Fernseher im Device Manager zur IDE hinzufügen

Adding your TV to the IDE via Device Manager

Gerätemanager mit angeschlossenem TV

Es müssen mehrere Bedingungen erfüllt sein, damit das Fernsehgerät erfolgreich zum Gerätemanager hinzugefügt werden kann:

  • Der Fernseher wurde in den Entwicklermodus geschaltet
  • Im Fenster des Entwicklermodus wird die korrekte IP-Adresse unseres Arbeitsrechners mit installiertem Tizen Studio angezeigt
  • Die Geräte befinden sich in einem gemeinsamen Netzwerk: LAN, WiFi oder VPN.

[Optional] Nachdem Sie ein TV-Gerät in Tizen Studio hinzugefügt haben, können Sie seine eindeutige DUID kopieren, was das spätere Erstellen eines Zertifikats erleichtert. Wenn Sie mehrere Fernseher verbunden haben, ist es besser, alle DUIDs in eine Textdatei zu schreiben - eine DUID pro Zeile.

 

Tizen-Emulator und Web-Simulator

Der Tizen Emulator ist ein fast vollwertiger Ersatz für ein reales Gerät. Er unterstützt die Emulation von Prozessor, Speicher, Peripheriegeräten, Ereignissen, Codecs und Grafiken. Er bietet jedoch keine Unterstützung für DRM oder Werkzeuge für die digitale Rechteverwaltung.

Wir empfehlen Ihnen, die Version 4.1.2 herunterzuladen und den Emulator damit zu verwenden - er läuft schneller und benötigt weniger Speicherplatz. Sie finden ihn im Archivbereich der TV Extension for Tizen SDK.

Eine vollständige Liste der Unterschiede zwischen Emulator und realem Gerät finden Sie im entsprechenden Abschnitt auf developer.tizen.org

Der Web Simulator ist eine schlanke Version des Emulators in Chrome. Es gibt praktisch keine API, und der Rest wird mit JS simuliert, wobei nur Stub-Werte zurückgegeben werden. Sie können damit verschiedene Geräteauflösungen und einige grundlegende Dinge testen, aber die Einschränkungen überwiegen die Möglichkeiten.

 

Ein Zertifikat hinzufügen und im TV installieren

Als nächstes müssen wir Zertifikate mit dem Certificate Manager erstellen. Sie werden benötigt, um die Anwendung auf einem Fernseher oder Emulator zu installieren und im Tizen Store zu veröffentlichen. Es gibt zwei Arten von Zertifikaten - Tizen und Samsung.

Certificate type selection window in Certificate Manager

Auswahl des Zertifikatstyps im Zertifikatsmanager.

Um Apps auf dem Fernseher zu installieren, wählen Sie das Samsung-Zertifikat aus. Dazu müssen Sie ein Konto im Seller Office erstellen, einem speziellen Bereich für Tizen-Entwickler auf der Samsung-Website.

A special section for Tizen developers on the Samsung website

Neue Konten werden manuell bestätigt, daher müssen Sie ein wenig warten - das ist die größte Unannehmlichkeit beim Erstellen des ersten Zertifikats. Standardmäßig erhalten Sie die Stufe Public, die für die meisten Aufgaben ausreicht.

Die Stufe Partner eröffnet mehr Möglichkeiten, aber um sie zu erhalten, müssen Sie eine Quest im Seller Office durchlaufen und zwei Wochen bis zwei Monate auf die Bestätigung warten. (Das war schon vor der COVID-19-Pandemie so!)

Die Stufe Platform ist für Normalsterbliche nicht zugänglich.

Das Tizen-Zertifikat wird NUR zum Testen der Anwendung im Emulator benötigt. Sein Hauptvorteil ist, dass es die freie Wahl lässt. Man kann es sowohl in der Stufe Public als auch in der Stufe Partner mit seiner erweiterten API verwenden. Eine Registrierung und SMS sind nicht nötig

Als Ergebnis werden Sie ein Profil mit zwei Zertifikaten haben - Autor und Distributor.

Wichtig: Verlieren Sie Ihr Zertifikat (in der Datei author.p12) und das Passwort nicht, machen Sie sofort ein Backup, bewahren Sie es an einem sicheren Ort auf, senden Sie es an den Kunden. Ohne Zertifikat können Sie die App im Tizen Store nicht aktualisieren.

Ein Tipp für Tizen-Entwickler: Bevor Sie das Zertifikat erstellen, aktivieren Sie den Fernseher im Gerätemanager, dann wird seine DUID automatisch zum Distributor-Zertifikat hinzugefügt.

Tizen developer's tip

The Promwad's profile with two certificates for Tizen OS: author and distributor.

Das Zertifikat wird benötigt zum:

  • Signieren der wgt-Datei, die auf dem Gerät oder Emulator installiert werden soll
  • Veröffentlichen der Anwendung im Tizen Store
  • Festlegen der Zertifikatsstufe, die bestimmt, welche Funktionen aus der Geräte-API Ihnen zur Verfügung stehen

Weitere Informationen über Zertifikate finden Sie hier:

Der letzte Schritt ist die Installation des Zertifikats im TV-Gerät. Sonst können Sie Ihre Anwendung im Fernseher nicht installieren. Sie benötigen das Samsung-Zertifikat. Erledigt!

Installing the certificate on your Smart TV

Installation des Zertifikats im TV-Gerät

 

Entwicklung von Web-Apps für Tizen: Varianten und (Un-)Benutzbarkeit

In Tizen gibt es zwei Arten von Webanwendungen: lokale (packaged) und Serveranwendungen (hosted).

Eine typische Packaged Application wird auf Ihrem Fernseher installiert und speichert alle Ressourcen lokal - Stile, Skripte, Vorlagen, Bilder, config.xml, usw. Beim Entwickeln und Debuggen einer solchen Anwendung müssen Sie darauf warten, dass die wgt-Datei erstellt, heruntergeladen und auf dem Gerät installiert wird. Das Schreiben von Stilen, das Entwickeln neuer Module oder das Debuggen des Players kann mühsam und frustrierend sein, und die Wiederherstellung des Kontexts ist zeitaufwändig.

Lucky owners of the Samsung Partner level certificate can choose a hosted application. The TV acts as a resource loader, and the development process goes as the usual browser-based one. To work with hosted applications, you will need to do two things:

Die beste Lösung in der Anfangsphase ist die Entwicklung für Desktop-Chrome. Bei der Erstellung von HTML-Layouts und der Fehlersuche in der Navigation kann man auch auf einen Fernseher verzichten.

Glückliche Besitzer eines Zertifikats der Stufe Partner können die Hosted Application wählen. Der Fernseher lädt dann selbständig alle Ressourcen, und der Entwicklungsprozess ähnelt dem browserbasierter Anwendungen. Um mit Serveranwendungen zu arbeiten, müssen Sie zwei Dinge tun:

  1. Fügen Sie dem Projekt Ihren bevorzugten HTTP-Server mit der Option Autoreload hinzu.
  2. Erstellen Sie ein leeres Projekt in Tizen Studio und ergänzen Sie einen Redirect auf die IP des lokalen Computers in der Datei index.html.

<!DOCTYPE html>

<html>

<head>

<title>MyApp</title>

<meta http-equiv="refresh" content="0;url=http://YOUR_IP">

</head>

<body></body>

</html>

Fertig! Der Fernseher fungiert nun als Web-Browser.

Der Hauptnachteil dieser Lösung ist die reduzierte Web-API des Gerätes. Das ist kritisch, wenn Sie z. B. die DUID ihres Gerätes benötigen, um es mit dem Backend zu verbinden.

webapis.productinfo.getDuid()

Cannot read property 'getDuid' of undefined

In der Zwischenzeit bleibt die Tizen-API vollständig verfügbar: Sie können RCU-Tasten hinzufügen, die Lautstärke steuern usw.

tizen.tvinputdevice.registerKey("ChannelUp");

success

 

Womit Samsung Smart TV-Apps entwickeln

1. Javascript (ES5 and ES6)

Seit 2017 unterstützt Tizen teilweise die dritte Generation von Javascript (ES6). Die volle Unterstützung wurde für die 2018er Modelle implementiert. Um Überraschungen zu vermeiden, empfehlen wir, die Spezifikation zu lesen:

https://developer.samsung.com/smarttv/develop/specifications/web-engine-specifications.html#javascript-es6

Für alte Hasen: Verwenden Sie vanilla.js oder transpilieren Sie den Code.

2. React

Die Antwort ist ja. Wir haben es nicht ausprobiert, aber eine Anleitung finden Sie auf Stackoverflow. Es ist etwas anspruchsvoll, aber man kann es schaffen.

3. React Native

Wenn Sie ein React-Native-Entwickler sind, sollten Sie ReNative ausprobieren.

 

Mit Chromium und Webkit Webapps auf Tizen ausführen

Tizen benutzt die Chromium-Engine, um Webanwendungen auszuführen. Dies gilt für die TV-Geräte ab 2017. Bei Modellen von 2015 und 2016 laufen die Apps auf der Webkit-Engine, und obwohl sie mittlerweile veraltet sind, werden sie noch vielfach in den Haushalten benutzt. Nach und nach entfernt Samsung diese aus seinem App-Store. Zum Beispiel können Sie heute kein Produkt mehr für 2015er-Fernseher freigeben.

Die Version der Engine glänzt nicht mit Neuerungen und kann nicht aktualisiert werden. Das Modell 2021 benutzt die Version Chromium M76, die vor zwei Jahren veröffentlicht wurde.

Die Realität ist, dass Sie mit der Chromium-Version M47 aus dem Jahr 2015 arbeiten müssen, um aktuelle Geräte zu unterstützen. Was haben Sie eigentlich im Jahr 2015 gemacht? Genau...

Wem das nicht ausreicht, der darf sich über die Unterstützung von 2016er Fernsehern mit Webkit durch die mysteriöse Revision r152340 freuen. Aber reden wir lieber über erfreuliche Dinge.

 

Web-Apps auf Tizen debuggen

Zum Debuggen können Sie Chrome DevTools verwenden, allerdings nicht aktueller als Version 79. Das liegt daran, dass Google an einem kalten Februarmorgen im Jahr 2020 die Unterstützung für Custom Elements V0 ab Version 80 entfernt hat, und diese Entwickler-Tools seitdem nicht mehr mit Tizen kompatibel sind.

Workarounds wie “Gehen Sie zu Einstellungen > Tizen Studio > Web > Chrome > Extra Parameter” und fügen Sie --enable-blink-features=CustomElementsV0 --user-data-dir=/tmp/tmpchromeuser hinzu, funktionieren nicht.

Unsere Wahl ist, die Version 79 aus dem Archiv www.slimjet.com/chrome zu installieren und die automatische Aktualisierung zu deaktivieren.

Für einen Fernseher von 2016 mit Webkit reichen die Chrome DevTools v62 oder so. Es besteht aber eine hohe Wahrscheinlichkeit, dass der Bildschirm auf Ihrem Fernseher einfriert, wenn Sie in den DevTools auf die “falsche” Taste drücken.

 

Apps in Seller Office und Tizen Store veröffentlichen

Es ist an der Zeit, Ihre Anwendung im Tizen Store zu veröffentlichen. Dazu müssen Sie ein paar Dinge vorbereiten bzw. von Ihrem Kunden anfordern:

1.  Anwendungslogos gemäß den UX-Handbüchern:

  • Ein bildschirmfüllender Splash-Screen mit zwei Ebenen: das Logo selbst im PNG-Format mit transparentem Hintergrund (Größe: 1920x1080 Pixel, maximal 300 kB)
  • Ein Icon für Suchergebnisse (Größe: 512x423 Pixel, maximal 300 kB)
Application logos according to the UX manuals
 

2. Bildschirm-Screenshots Anwendung in voller Größe - 4 Bilder

Full-size screenshots of the main application screens
 

3. Eine DOC-Datei in englischer Sprache mit einer Beschreibung der Bildschirmfotos und der Funktionen Ihrer Anwendung gemäß der folgenden Checkliste:

  1. UI-Struktur, die die Navigation zwischen den Bildschirmen Ihrer App zeigt.
  2. Anwendungsfälle, die zeigen, wie die Hauptfunktionen Ihrer App genutzt werden.
  3. Menüs und Funktionen - Kennzeichnung und Beschreibung der Hauptfunktionen.
  4. Fernbedienung - Beschreibung der Funktionen, die den Tasten der Fernbedienung zugeordnet sind
  5. Sprachoptionen - Kennzeichnung der unterstützten Sprachversionen

In dieser offiziellen Checkliste für Entwickler scheint alles streng vorgegeben zu sein, aber die Praxis zeigt, dass ein einfaches Dokument mit UI-Screenshots und der Beschreibung der Hauptfunktionen und Tasten ausreichend ist.

4. Geben Sie die Version Ihrer Anwendung in der config.xml an und bereiten Sie eine signierte wgt-Datei vor.

Wir sind startklar! Der Rest der Aufgabe erfordert keine vorherige Vorbereitung. Sie können direkt zur Registrierung übergehen.

Web-app registration
 

Nach erfolgreichem Abschluss der Registrierung beginnt der manuelle Testprozess durch Samsung. Deren Mitarbeiter fügen die gefundenen Fehler in den internen Bug-Tracker ein und hängen dort Videos an, in denen mit stummen Gesten auf die Fehler hingewiesen wird.

Schließlich taucht die Anwendung im Samsung Store auf, auch wenn sie kleinere Mängel aufweist, wie z.B. “Viele der Kanäle funktionieren nicht” oder “Schwarzer Bildschirm mit Ladebalken sichtbar”. :-)

Nur bei kritischen Mängeln wie “Unendlicher Ladevorgang” wird die App nicht an die Benutzern ausgeliefert.

The bug tracking system on Samsung's portal for Tizen developers

Die Fehlerverwaltung für Tizen-Entwickler auf Samsungs Portal

Nachdem Sie die kritischen Fehler behoben haben, können Sie Ihren Erfolg feiern! Die App kann nun über den Namen oder Stichwörter in der Smart TV-Suche gefunden werden.

 

Dokumentation für App-Entwickler von Tizen OS

Zum Glück gibt es die Dokumentation.

Allerdings wurde sie von verschiedenen Leuten zu verschiedenen Zeiten geschrieben, so dass sich die Namenskonventionen und der Stil von Dokument zu Dokument ändern und die Anleitungen nicht funktionierenden Code enthalten. Eine eindrucksvolle Illustration: im Beispiel zur Verwendung des eingebetteten Players gibt es einen ärgerlichen Tippfehler: webapi statt webapis. Ironischerweise befindet sich der Fehler im Abschnitt über die DRM-Einstellungen! Wir sind uns sicher, dass wir nicht die Einzigen waren, die dieses Problem an das Seller Office gemeldet haben, aber drei Jahre später ist das Problem immer noch nicht behoben.

 

Hilfreiche Hinweise für Tizen-Entwickler

1. Registrierung und Unterstützung für die Tasten der Fernbedienung

Das erste, womit Sie sich bei der Entwicklung von Tizen-basierten Apps beschäftigen müssen, ist die Registrierung der Tasten der Fernbedienung. Standardmäßig sind einige Tasten in der App nicht verfügbar, Sie müssen sie erst registrieren.

Einzeln:

tizen.tvinputdevice.registerKey('MediaPlayPause');

Oder im Paket:

const keys = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "ChannelUp", "ChannelDown", "MediaPlay", "MediaPause", "MediaFastForward", "MediaRewind", "Exit"];

tizen.tvinputdevice.registerKeyBatch(keys, successCb, errorCb);

Es ist besser, die Schaltflächen VolumeUp, VolumeDown und VolumeMute nicht zu registrieren, da ihre native Funktionalität sonst eine Programmbearbeitung über die API erfordert.

Der Rest ist einfach. Klicks werden in der Anwendung mit einem Listener abgefangen:

document.body.addEventListener('keydown', handleKeyDown);

wobei im Parameter handleKeyDown der Tastencode übergeben wird.

2. Nützliche Funktion in Tizen und Webapi

Eine Liste mit nützlichen Funktionen für Tizen-Entwickler:

tizen.systeminfo.getCapability("http://tizen.org/feature/network.ethernet");

tizen.systeminfo.getCapability("http://tizen.org/system/model_name");

tizen.systeminfo.getPropertyValue("ETHERNET_NETWORK”, successCb, errorCb);

webapis.productinfo.getFirmware()
"T-KTM2DEUC-1202.3"

webapis.productinfo.getModel()
UNU7400"

webapis.productinfo.getVersion()
"3.0"

webapis.productinfo.getRealModel()
"UE43NU7400"

webapis.productinfo.getModelCode()
"18_KANTME_UHD"

webapis.productinfo.getLocalSet()
"EU_LITHUANIA"

 

Kuriose Geschichten von unseren Promwad-Kunden

Fall 1: Unterstützung der Sprachsteuerung (Korea vs. den Rest der Welt)

Die Sprachsteuerung ist völlig unbeholfen und schamlos zugleich. Eigentlich sollte es so funktionieren: Sie sagen zu Ihrer Fernbedienung “TV, ich möchte einen Kaffee” und 10 Minuten später liefert Ihnen ein Kurier das Getränk. Der Hersteller schreibt zwar recht nett, dass man “allgemeine Sprachbefehle registrieren kann, die einen Listener aufrufen, wenn der Benutzer sie ausspricht”, aber hinter jedem “kann” steht ein “muss”. Wie so oft sind hier zwei Probleme zu einem verschmolzen: die Notwendigkeit, Befehle im Voraus registrieren zu müssen und die schlechte Spracherkennung. Wenn Sie oder Ihr Kunde also auf die Idee kommen, eine Sprachsteuerung hinzuzufügen, sollten Sie darauf vorbereitet sein, im Wörterbuch für “Lauter” nicht nur die Synonyme, sondern auch ähnlich klingende Wörter wie “Laura” zu ergänzen.
 
In der koreanischen Version der TV-Bedienoberfläche funktioniert natürlich alles viel besser. Aber um eines ihrer Sprichwörter zu benutzen: “Womit soll der Hund wedeln, wenn er keinen Schwanz hat?”

Fall 2: Schneller Übergang innerhalb der App und Deep Link

Der Preis in der Kategorie “am wenigsten genutztes Feature” geht an die Smart Hub Preview, die Ihnen einen direkten Zugriff auf die internen Bereiche der App ermöglicht. Mit dieser Art der Verlinkung können Sie Inhalte hervorheben oder Ihre Nutzer direkt zu einem Lieblingsbereich leiten.

The scheme shows an example of featured content

Die Abbildung zeigt ein Beispiel für Featured Content, d.h. die Hervorhebung empfohlener Inhalte für den Benutzer (aus dem Englischen to feature - hervorheben)

 

Fall 3: Fehler im MPD-Streaming nach 50 Tagen

Bei der Portierung eines Projekts auf Tizen 4.0 für ein Modell 2017 hatten wir ein Problem: Bei der Wiedergabe von Live-Übertragungen (MPD-Streaming) funktionierte der Ton nicht. Die Tasten Lauter/Leiser/Stumm und die Soundsteuerung über die API halfen nicht. Auf anderen Plattformen - zum Beispiel LG Smart TV (WebOS) - gab es kein Problem. Auch der Link zum MPD-Stream und der Inhalt der Datei bereiteten keine Probleme - alle Tags und Direktiven wurden von Tizen unterstützt.

Wir hatten auch Ton in unseren Test streams.

Unseren Verdacht erregte schließlich die Direktive availabilityStartTime, die einen Nullpunkt auf der Zeitachse bestimmt und standardmäßig auf die Unix-Epoche, d. h. 1970-01-01T00:00:00Z, eingestellt ist.

Es stellte sich heraus, dass in Streams mit einem Wert von availabilityStartTime größer als 49,7 Tagen der Ton fehlte oder während des Abspielvorgangs verschwand. Und das ließ sich gut erklären, denn 49,7 Tage oder 2.147.483.647 Millisekunden oder 2**32 entspricht dem maximalen positiven Integer-Wert in 32-Bit-Systemen (Number.MAX_SAFE_INTEGER). Kurz gesagt, es handelte sich um einen Fehler im Multimedia-Stack des Tizen OS, und wir konnten nichts dagegen tun.

Wie wurde das Problem gelöst? Am nächsten Tag aktualisierte der Fernseher die Firmware automatisch auf Version 1251, und der Fehler war verschwunden.

 

 

Fazit

Tizen hält einen soliden Marktanteil, die Plattform entwickelt sich weiter, neue Versionen von Fernsehern und Software kommen auf den Markt. Gleichzeitig wird die Entwicklung nicht einfacher oder komfortabler, sondern bleibt frustrierend. Der Versuch, eine einzige Plattform für alle Geräte zu schaffen, hinterlässt zwiespältige Gefühle.

Das größte Problem ist die Dokumentation und ihre Benutzerfreundlichkeit. Sie deckt alle Versionen für alle Geräte auf einmal ab - Web und native Apps - und ist unvollständig und voller Fehler.

Die Website developer.tizen.org ist quälend langsam (3-8 Sekunden) und hat sich in den letzten Jahren nicht verändert. Die Suche ist so umständlich, dass es bequemer ist, mit Google zu suchen und zum ersten Treffer zu gehen. Dabei muss man aber darauf achten, dass sich der Artikel oder die Anleitung genau auf Ihren Fernseher und auf die Webversion der Anwendung bezieht. Das automatische Umschalten einer Seite auf die koreanische Version geschieht regelmäßig.

Die Foren für Tizen-App-Entwickler sind voll mit typischen Problemen. Antworten mit veralteten Links führen in 99% der Fälle zu “pagenotfound”, und die Kommunikation mit dem Seller Office ist in 100% der Fälle nutzlos. Sie werden höchstwahrscheinlich drei Wochen warten, um eine Antwort zu erhalten, die für die Frage irrelevant ist. Und das für 30% Ihres Gewinns, wenn Sie eine kostenpflichtige Anwendung freigeben.

Das Testen ähnelt einer Lotterie. Einen funktionierenden Player für Videostreaming zu programmieren, vielleicht noch mit DRM-Unterstützung oder Werbung, ist eine anspruchsvolle Aufgabe für Fortgeschrittene. Nicht umsonst bewirbt Tizen den kostenpflichtigen Drittanbieter NexPlayer als “den einzigen von Samsung empfohlenen Videoplayer” - Sie sollten ihn verwenden.

Wir vermuten, dass einige Stellen unserer Anleitung Ihren berechtigten Unmut erregt haben und Sie davon Abstand nehmen, Tizen zu benutzen. Trotzdem, wenn die Dinge einfach wären, wäre dieser Artikel nicht geboren worden, also schließen wir ihn mit einer positiven Anmerkung ab: Tizen OS steht weltweit auf Platz 1 der Betriebssysteme für Smart TV. Letztes Jahr deckte es 13 % des globalen Marktes ab und in Großbritannien sogar 30 %. Und den jüngsten Prognosen zufolge wird Samsung diese Position nicht verlieren.

Selbst in den USA und Kanada, wo die Rangliste der Smart-TV-Betriebssysteme anders aussieht als in allen anderen Regionen (dort wird Roku bevorzugt), ist Tizen zusammen mit Amazon Fire TV immer noch unter den Top drei. Wenn Sie oder Ihre Kunden also planen, Apps für ein breites internationales Publikum zu veröffentlichen, kommen Sie an Tizen nicht vorbei, trotz aller Beschwerden der Front-End-Entwickler, die JS-Code für dieses Betriebssystem schreiben müssen. Zumindest wir bei Promwad haben die Erfahrung gemacht, dass jede nachfolgende App-Entwicklung und Veröffentlichung im Tizen Store einfacher war als die vorherige.

Oder wie das Sprichwort sagt “Ohne Fleiß kein Preis” (koreanisch: 노력 없이는 이득도 없다).

Danke fürs Lesen!

 

Mehr über Smart-TV-Apps

 

 

 

Unsere Projekte

 

Entwicklung von industriellen Bedienfeldern Wir haben das industrielle und mechanische Design entworfen, die Software entwickelt, die Hardware und den Prüfstand für die Funktionstests entworfen.

Fischfinder

Fischfinder Wir haben ein modernes Industriedesign und eine moderne Konstruktion für den Fischfinder der nächsten Generation entwickelt

DECT base station, VolP gateway, WiFi router, Office PBX, Server
Modem 7-in-One-Gerät Wir haben einen fortschrittlichen VoIP-Modem-Router entwickelt und für die Massenproduktion vorbereitet, der alle Arten von Bürokommunikation bietet
selection of materials, enclosure design and structure, manufacturing of Breathalyzer
Lapka Alkoholtester Wir haben einen Atemalkoholmonitor mit extremer Härte des Außengehäuses und des Innengehäuses gegen Korrosion entwickelt
We developed the design and structural layout of an enclosure for binoculars
Fernglas für Stadien Wir haben das Design und das Gehäuse für Ferngläser mit diskreter Vergrößerungsstärke entwickelt und die Prototypen hergestellt
development and manufacturing of access control system reader
SOFAZ ACS-Lesegerät Wir haben das Design und die Struktur des Gehäuses für einen Leser eines Zugangskontrollsystems entwickelt und dann das fertige Produkt in Produktion genommen
promwad have designed a digital IPTV STB with DVB-T and DVB-S/S2 support, based on the SMP8654 processor by SigmaDesigns

IPTV STB mit DVB-T / S / S2Wir haben eine digitale IPTV-STB mit DVB-T- und DVB-S / S2-Unterstützung entwickelt, die auf dem SMP8654-Prozessor von SigmaDesigns basiert

5D cinema hardware and software complex at the order of a company which supplies animatronics

5D video hardware+softwareWir haben im Auftrag eines Unternehmens, das Animatronik liefert, einen 5D-Kino-Hardware- und Softwarekomplex entwickelt

IPTV STB design for SmartLabs
SmartLabs IPTV set-top box Wir haben eine Reihe von IPTV-Set-Top-Boxen entwickelt, die eine Lizenzabdeckung für alle proprietären Codierungsstandards für Audio und Video gewährleisten
Smart home multimedia controller

Smart House Controller Wir haben den HDMI-CEC-Controller für die Verwaltung eines Multimedia-Heimkomplexes entwickelt: Kino, Tuner, Videorecorder und andere Geräte

The development of portable black box for an automobile
OBD-II Fahrzeugdatenlogger Wir haben einen tragbaren Automobilrekorder zur Steuerung und Diagnose des technischen Zustands entwickelt ("Black Box" für ein Automobil).