Note su Samsung SmartTV SDK

Questo documento nasce come una raccolta di appunti... Magari un giorno diventera' un documento serio ma al momento e' solo un riferimento su quanto ho scoperto per sviluppare sull'ambiente Samsung SmartTV (4.1) [NdE 2013-08 ora e' disponibile e consigliata la versione 4.5] sul mio Mac (10.6).

I modelli piu' completi e recenti di Samsung vengono definiti SmartTV poiche' possono ospitare applicazioni. Le applicazioni sono web-based, vengono scaricate sul TV da Internet e vengono eseguite dall'App Engine. L'installazione delle applicazioni, la loro cancellazione, ... viene gestita con l'Application Manager.
Dal punto di vista tecnico le applicazioni sono molto simili a pagine HTML ed utilizzano in modo significativo CSS e JavaScript. Inoltre le API fornite consentono un controllo delle varie funzioni della TV.
L'SDK descritto in questa pagina e' l'ambiente di sviluppo che consente di sviluppare le applicazioni per le Smart TV Samsung.

Installazione (su MAC)

Samsung pubblica l'SDK per Mac OS e Linux oltre che per Windows. Per Mac il formato e' un .pkg facilmente installabile rispondendo ad alcune semplici domande (eg. accettare la licenza e confermare il PATH) ma... non funziona! Con un click su "/Samsung_TV_SDK_4_Mac/"Samsung Smart TV SDK Editor" il messaggio risultante e' The alias "Samsung Smart TV SDK Editor " can't be opened because the original item can't be found. Il problema e' che si tratta di un'estensione di Eclipse... ed Eclipse va installato!

Oltre alla documentazione ufficiale di Samsung e' utile anche questa nota. Riassumendo ecco i passi da seguire:

  1. Registrarsi come utenti (e' gratis!) ed effettuare il login sul Samsung Developer Forum
  2. Scaricare Eclipse versione 3.7 (Indigo) e scompattarlo [NdE download]
  3. Scaricare ed installare l'SDK Samsung per Mac OS [NdE download]
  4. Spostare il file Eclipse.app sotto la directory su cui e' stato installato l'SDK (eg. ~/Samsung_TV_SDK_4_Mac/eclipse).
  5. Installare Virtual Box e configurare 2013_Smart_TV_Emulator_4_1 (2013_Smart_TV_Emulator.ovf) seguendo le istruzioni del sito Samsung
    1. Scaricare ed installare VirtualBox (4.2.12 for OS X)
    2. Scaricare l'Emulator Image per VirtualBox e decomprimerla ottenendo un file .ova [NdE download]
    3. Eseguire VirtualBox ed importare l'appliance (File->Import Appliance->Open Appliance-> scegliere il file .ova) [NdA richiede alcuni minuti]
    4. Impostare lo shared folder corretto (Settings->Shared Folders-> impostare ~/Samsung_TV_SDK_4_Mac/Apps) ed avviare la VM
  6. Eseguire Samsung Smart TV SDK Editor con un click sull'icona (~/Samsung_TV_SDK_4_Mac/Samsung Smart TV SDK Editor)
  7. Selezionare il workspace (tutte le Apps debbono essere in ~/Samsung_TV_SDK_4_Mac/Apps)
  8. Creare un progetto utilizzando un wizard (File->New->Project->Samsung Smart TV App-> Basic/Flash/JavaScript). Si puo' importare e modificare un'applicazione dallo store (File->Import->Samsung Smart TV Apps)
  9. Eseguire virtual box -> smart tv emulator -> Premere "Open App" e scegliere l'applicazione con il nome del progetto appena definito
Ovviamente per altri sistemi/versioni/ambienti... mutatis mutandis!

Il risultato dell'installazione sono l'IDE di eclipse e l'emulatore della TV con un'applicazione:

Architettura

Una Smart TV App e' un'applicazione che viene eseguita sul TV e che ha accesso alle risorse della Smart TV.

Le applicazioni sono web-based, vengono scaricate sul TV da Internet e vengono eseguite dall'App Engine. Sulla TV l'installazione delle applicazioni, la loro cancellazione, ... viene gestita con l'Application Manager.
Dal punto di vista tecnico le applicazioni sono simili a pagine HTML ed utilizzano in modo significativo CSS e JavaScript. Inoltre le API fornite consentono un controllo delle varie funzioni della TV.
Tuttavia oltre alle analogie sono presenti significative differenze.
L'App Engine non e' un browser e le pagine non sono legate tra loro con iperlink per navigare tra esse. Ogni applicazione ha una struttura specifica e precisa che va rispettata (eg. index.html, widget.info, config.xml, ...).
Le applicazioni vengono programmate in JavaScript ed e' disponibile un'ampia libreria di funzioni per interagire con il TV. Ovviamente sono particolarmente ricche le funzionalita' multimediali...

Sviluppo di un'applicazione

Per lo sviluppo di un'applicazione sul sito http://www.samsungdforum.com/Guide/ si trovano tutorial, applicazioni di esempio e la reference delle API.

In ogni caso lo sviluppo di un'applicazione, partendo dagli esempi disponibili, e' piuttosto facile grazie all'ambiente completo ed accessibile di Eclipse.

Un'applicazione minimale e' costituita dai file: config.xml index.html Sono inoltre richiesti i file JavaScript (eg. Main.js), i file CSS (eg. Main.css) e gli eventuali, ma praticamente sempre presenti, file con le immagini.

Test applicazioni

L'applicazione realizzata puo' essere provata sull'emulatore durante la fase di sviluppo. La modalita' e' molto semplice: la VM su VirtualBox condivide il Folder in cui si sviluppano le App e quindi il menu del bottone "Open App" riporta l'elenco di tutti i progetti Eclipse in sviluppo.

Arrivando alla fase finale di sviluppo dell'applicazione e' opportuno anche un test su una TV reale. L'ambiente sul TV presenta alcune differenze rispetto all'emulatore... in particolare:

Un'applicazione caricata direttamente dall'ambiente di sviluppo alla TV e' chiamata User Application. Creare una User Application puo' essere utile per effettuare un test dell'applicazione che si desidera pubblicare o, come nel mio caso, puo' essere il modo per visualizzare semplici applicazioni "personali".
Maggiori dettagli sul deploy in locale si trovano sulla documentazione ufficiale.

Link utili

Ho trovato utili i seguenti link:


Titolo: Note su Samsung SmartTV SDK
Livello: Avanzato (3/5)
Data: 14 Febbraio 2013
Versione: 1.0.2 - 14 Febbraio 2013
Autore: mail [AT] meo.bogliolo.name