V posledním desetiletí zažívá velký rozmach streamování přes internet, které je nejrychleji rostoucí formou zábavních médií. Podle prognóz by v tomto desetiletí nemělo dojít k poklesu růstu. Proto neváhejte a naskočte na vlak k úspěšnému streamování, který odstartoval Netflix.
Netflix je lídrem v oblasti streamování OTT and SVOD. Společnost byla založena v roce 1997 a své webové stránky spustila v roce 1998. V průběhu roku 2000 se Netflix zaměřil na vývoj stránky pro online streamování videa. V roce 2008 konečně uvedl na trh produkt, který je tu s námi dodnes. Tato cesta nebyla snadná. Nyní je však Netflix gigantem, který produkuje vlastní seriály, pořady a filmy.
Podle zpráv z roku 2020 činil hospodářský výsledek společnosti Netflix 1,2 miliardy amerických dolarů. Čemu tedy Netflix vděčí za svoji popularitu? Zřejmou odpovědí je, že filmy a seriály má rád každý a mít jich několik na jednom místě za rozumnou cenu je přinejmenším velmi pohodlné. Netflix je však výhodný i z jiného důvodu. Netflix je pravděpodobně na každém zařízení, které znáte a které je schopné přehrávat video při připojení k internetu. A právě na tuto část jeho úspěchu se zaměřím.
Jak možná víte, každá aplikace na webu má dvě hlavní části, a to tzv. „frontend“ a „backend“. Toto rozdělení je klíčem k tomu, aby aplikace běžela plynule, dynamicky a bezpečně.
„Frontend“ je část aplikace na straně klienta, tedy ta část, kterou uživatelé vidí přímo při spuštění aplikace. V tomto článku se zaměřím hlavně na frontend, protože u aplikace ve stylu Netflixu je to část, která se nejvíce liší od jiných vývojových řešení, s nimiž jste se mohli setkat v minulosti.
Oproti frontendu je „backend“ ta část softwaru, kterou uživatel nevidí. Spravuje požadavky od uživatele, přístup k datům z databáze atd. Velmi důležitý a složitý je mimo jiné i backend streamovacích aplikací, jeho vývoj se však nemusí tolik lišit od vývoje backendu obecně.
Jedním z klíčových prvků, které vedly k úspěchu Netflixu, je skutečnost, že jeho aplikace je dostupná na všech běžných platformách. To ale nejde jen tak, a pokud se každá platforma vyvíjí zvlášť, je to také velmi nákladné. Jak tedy tento problém zjednodušit? Platformy lze rozdělit do dvou skupin: platformy s nativní codebase a platformy založené na HTML5. Díky tomuto rozdělení se v problému zorientujeme lépe.
Platformy jako Android, iOS nebo Roku jsou pro dosah vaší aplikace velmi důležité. Abyste však publikum těchto platforem oslovili, budete muset pro každou z nich vyvinout samostatnou aplikaci. Důvodem jsou omezení daná operačními systémy těchto zařízení. Naštěstí ne všechny platformy mají tyto specificka.
Mnoho platforem spouští své softwarové programy jako webové aplikace HTML5. Týká se to například nejběžnějších webových prohlížečů, herních konzolí (XBOX nebo PlayStation), chytrých televizorů a přehrávačů blu-ray. S ohledem na to lze programy pro všechny tyto platformy vyvíjet současně jako multiplatformní projekt se změnami pouze v oblastech, kde je nějaké nastavení nebo omezení specifické pro dané zařízení.
Nyní se zaměřím pouze na aplikaci HTML5, protože u ostatních platforem by to pravděpodobně chtělo vždy vlastní článek. Chcete-li vytvořit program v jazyce HTML5, musíte se nejprve rozhodnout, zda chcete použít existující rámec, nebo se rozhodnete pro vlastní řešení, například s využitím vanilla HTML, Web GL nebo JS za pomoci React. Obě tyto možnosti mají svá pozitiva i negativa, a proto mi dovolte, abych je prošel.
Hlavní výhodou frameworků je to, že zajišťují strukturu aplikace. Při vytváření aplikace se tak nemusíte tolik zabývat architekturou.
To je sice skvělé, ale zároveň vás to omezuje, protože zvolený framework umí jen tolik, kolik je jeho obecná funkčnost. To znamená, že když narazíte na problémy specifické pro danou aplikaci, budete při řešení framework muset obejít, což podkopává celou jeho myšlenku. Nebo vás to bude stát nějakou strukturální oběť.
To je problém, který je větší při používání uzavřených frameworků (např. Nautilus) než frameworků open-source (např. Lightning), u kterých lze problémy snáze řešit s vývojáři frameworku.
Na druhou stranu mohou frameworky značně urychlit vývoj. Pokud aplikaci potřebujete rychle, může to být ta správná cesta. V REMOTE ORIGIN máme zkušenosti i s prací ve frameworcích, jako je Lightning.
Další možností je použití plain HTML s JavaScriptem. Na začátku je to náročnější, protože musíte být opatrnější, pokud jde o architekturu aplikace.
To znamená, že vývoj trvá déle než při použití frameworku. Odměnou za to však je, že nejste nijak omezeni. To znamená, že můžete aplikaci plně optimalizovat a přizpůsobit jak po stránce strukturální, tak po stránce vykreslování komponent.
A právě na tento styl vývoje se REMOTE ORIGIN zaměřuje. Využíváme naše zkušenosti a připravenou codebase k vytvoření plně přizpůsobených a optimalizovaných multiplatformních aplikací.
Nyní byste tedy měli mít představu o možnostech vývoje aplikace podobné Netflixu. Já bych se teď rád zmínil o některých částech aplikace, které byste neměli podceňovat.
Asi nejzřetelnější je přehrávání, protože na něm aplikace závisí. Musíte věnovat čas a úsilí vytvoření robustního přehrávače, který nebude mít problémy s přehráváním žádného z běžných typů streamů jako třeba DASH nebo HLS. Pokud chcete v aplikaci mít live streaming, budete k tomu pravděpodobně potřebovat speciální přehrávač, který se bude starat o jeho chod. Jde o spoustu práce a mít jednoduchý přehrávač, který by fungoval bez problémů po celou dobu, je podstatě nemožné.
Druhou nejdůležitější věcí je navigace uvnitř aplikace. Skladba komponent musí být přirozená a hlavně přepínání mezi nimi musí jít rychle a pohotově. Pokud je navigace pomalejší, celkový zážitek uživatele se výrazně zhorší.
Možná ne tak zřejmá je dlouhodobá kontrola kvality. Postupem času dostávají zařízení nové aktualizace firmwaru, vaše aplikace má nové funkce atd., což může znamenat, že se výkon aplikace může změnit.
Abyste se ujistili, že vše funguje správně, měli byste aplikaci vyzkoušet na zařízeních, na kterých má běžet. Skvělým způsobem, jak toho důsledně dosáhnout, je využít automatické testování, které však může být u televizorů a dalších zařízení problematické, protože je třeba simulovat dálkové ovládání.
REMOTE ORIGIN má vlastní framework a zařízení, které to dokáže za vás. Neváhejte se na nás tedy obrátit.