Roku a erupt în acești ultimi câțiva ani. Începând ca un startup modest în 2002 și lăudându-se acum cu peste 10 milioane de utilizatori, Roku este cel mai mare jucător de pe piața dispozitivelor de streaming pentru home media, vânzând 37% din toate dispozitivele de streaming anul trecut. Cel mai apropiat competitor este Chromecast, cu 19%. Deci, chiar dacă acest startup a reușit să se strecoare printre goliați precum Apple sau Google pe piața home media, a făcut acest lucru cu destul de mult succes.
În caz că nu ați mai auzit de Roku până acum, este o cutiuță mică, nu scumpă (de obicei sub 100 $), pe care o puteți conecta la televizorul vostru pentru a reda în flux videouri de pe diferite canale sau aplicații. Sarcina unui dezvoltator Roku este să programeze un canal pe care utilizatorul să îl poată deschide și de pe care să poată reda în flux materiale video pe televizor. Astfel că, dacă cineva valorifică, să spunem, un canal Youtube, el sau ea va face o aplicație prin care utilizatorii pot căuta și viziona conținut Youtube pe al lor Roku.
Când începeți să programați, veți realiza rapid că Roku, de fapt, nu are un simulator despre care să vorbim - orice cod pe care îl scrieți și doriți să îl testați trebuie încărcat pe un dispozitiv Roku real și apoi rulat pe aparat pentru a face debugging-ul. Dacă ați avut o zi grea la muncă și mai trebuie să lucrați și acasă la ceva, pregătiți-vă să luați dispozitivul acasă cu voi și să îl conectați la un televizor de rezervă pe care să sperăm că îl aveți prin preajmă. Debugging-ul se face prin plasarea comenzilor "stop" de-a lungul codului pentru a stabili punctele de întrerupere, apoi crearea unei sesiuni telnet pe dispozitivul Roku și trecerea la comenzi text în terminal. Este dureros, dacă sunteți obișnuiți cu o interfață de devirusare GUI, dar în mod cert se poate face.
Unul din lucrurile și mai interesante este că, în loc să adopte un limbaj existent, așa cum Android a făcut cu Java, echipa Roku a decis să meargă pe contraintuitiv și să facă mecanismul să funcționeze cu propriul său limbaj de codare patentat - Brightscript.
Acum, la o primă vedere, aceasta pare a fi greșeala tipică pe care o fac toți inginerii antreprenori atunci când creează un nou produs - decât să utilizeze ceva ce există deja și s-a dovedit că funcționează, ei reinventează roata deoarece asta iubesc ei să facă. Între timp, acest fapt are tendința de a cauza tot felul de probleme minore. Și, credeți-mă, Brightscript are destule din acestea. De la omiterea observațiilor când efectuează operațiile logice la introducerea unei multitudini de idiosincrasii, dezvoltarea unui limbaj de programare nou nouț este de fapt mult mai complexă decât pare la început.
Dar odată ce trecem peste tot oftatul exasperat și rotirea ochilor peste cap și peste "of, tipic"-urile pe care le manifestăm cu toții atunci când o companie face încă un limbaj patentat, vom putea observa că există de fapt destule motive pentru care Roku a făcut asta. Pentru început, ei nu mai trebuie să se îngrijoreze în legătură cu apariția unei noi versiuni a limbajului și cu necesitatea de a-și face upgrade la biblioteci în mod constant pentru a ține pasul. Ei au controlul deplin și total asupra modului în care limbajul interacționează cu software-ul lor. Brightscript trăiește sau moare după placul Roku.
În ceea ce privește lucrul efectiv cu acest limbaj, una din caracteristicile cele mai grozave ale Brightscript este dimensiunea sa. Acest limbaj este foarte mic. Întreaga bază a codului constă în numai aproximativ 90 de tipuri de clase. Aceasta înseamnă că dacă ești un Rokui-ist nou, este simplu să te deprinzi cu sforile și să poți pune laolaltă ceva cod ușor care funcționează mai mult sau mai puțin.
Cel mai interesant lucru este că Brightscript nu îți permite să îți formezi layout-ul pentru ecranele din aplicația ta. Da, chiar așa. Roku nu îți oferă control asupra locului unde să apară elementele de pe ecran sau cum să arate UI-ul tău. Alegi unul dintre cele 10 modele pe care Brightscript ți le oferă și îți treci informațiile pe el. De acolo, programul dispune și așază totul după cum știe, indiferent dacă ție îți place sau nu.
Într-un fel, există ceva eliberator în legătură cu asta. Scrierea unei aplicații devine super-ușoară, căci tot ce ai de făcut este să scrii ceva de genul:
poster = CreateObject(„roPosterScreen”)
contents = [
{
Title: „Show 1”
Description: „The hottest thing on TV”
}
{
Title: „Show 2”
Description: „The next hottest thing on TV”
}
]
poster.SetContentList(contents)
poster.Show()
Și ai deja o pagină care arată decent, cu două elemente pe ea, gata să funcționeze. Tot ce ține de stil va fi realizat conform modelelor prestabilite ale "roPosterScreen".
În același timp, acesta este și unul dintre lucrurile cele mai rele ale Roku. Dacă ai clienți care pun întrebări de genul "Este posibil să schimbăm acel mic…?" - obișnuiți-vă să spuneți "Nu". Și obișnuiți-vă să îl spuneți des, deoarece un lucru pe care Roku nu îl permite este personalizarea. De obicei, singurul aspect pe care Roku vă permite să îl schimbați este culoarea de fundal și câteva poziționări minore ale elementelor din bannerul din partea de sus a ecranului. În afară de acestea, nu mai puteți face nimic.
Orice altceva în plus pe lângă propria culoare de fundal necesită dezvoltarea unei interfețe utilizând clasa "roImageCanvas", unde trebuie să specificați fiecare căsuță, obiect text și coordonată a imaginii, lățime și înălțime. Apoi, dacă doriți să adăugați orice formă de animație, va trebui să redați totul manual. Nu mai este nevoie să spun, este nevoie de un efort sârguincios pentru a-ți construi propria interfață personalizată, iar aceasta nu este ceva ce să îți dorești cu adevărat să faci, decât dacă ai prea mult timp la dispoziție.
În ciuda acestor aspecte, ceea ce este promițător în legătură cu Roku este că industria dispozitivelor de streaming a înflorit în ultima perioadă. Un studiu al Parks Associates arată că numărul locuințelor din US care posedă un dispozitiv de streaming a crescut cu 63% de anul trecut, de la 13% la 21%. Același raport mai prezice și faptul că companiile vor vinde până la 86 milioane de dispozitive de streaming în 2019. Și dat fiind faptul că Roku deține o mare parte din această industrie, există o mare posibilitate ca cererea de programatori Roku să cunoască o creștere în următorii doi ani.
Văzând cât de rapid a evoluat piața dispozitivelor de streaming, a învăța să programezi pentru vreunul devine din ce în ce mai viabil. Dacă poți tolera defectele platformei, popularitatea lui Roku face ca învățarea lui să fie o opțiune evidentă. Deși încă în faza incipientă, ascensiunea meteorică a Roku promite multe pe viitor.