Multiplatform desktop alkalmazás fejlesztése HTML5 platformra - node.js és Chromium alapokon

2016-2017 tavasz

Téma leírása

A HTML5-ről mindenkinek megvan a véleménye – mondanak jót is, rosszat is, de ami egyértelmű, hogy manapság megkerülhetetlen. A Flash ellen indított hadjárat eredményeként a kliensoldali webes stack – beleértve CSS3-at, a natív élményt elősegítő böngésző API-kat és a hihetetlen teljesítménynövekedésen átesett JavaScript motorokat – korábban elképzelhetetlen színvonalú alkalmazások kifejlesztését teszi ma már lehetővé: a böngészőben szöveget vagy táblázatokat szerkeszthetünk, diagramokat rajzolhatunk, vagy akár lövöldözhetünk kedvünkre.

Mivel a HTML5 természeténél fogva multiplatform, ráadásul a CSS3 beépített animációs és rugalmas layout képességeinek köszönhetően az igényes UI kialakításában nyújtott segítsége sok szempontból még a natív platrofmokat is lekörözi, természetesen jön a gondolat, hogy szakítsuk ki a böngészőből, és használjuk fel asztali alkalmazás fejlesztésére is!

Ehhez két dologra van szükségünk: egy önállóan futtatható böngészőablakra, és egy JavaScriptből is elérhető API készletre, ami a böngésző számára rejtett, de desktop alkalmazásban alapvető funkcionalitás elérésére szolgál (pl. fájlrendszer elérése). Előbbit a Chromium, utóbbit a node.js adja számunkra. Az alkalmazás "lelkét" pedig a jól ismert webes frameworkokre alapozva írjuk – használhatunk Angular.js-t, preprocesszált nyelveket (pl. CoffeeScript, TypeScript, Less vagy Sass stb.), de mindez már teljesen opcionális.

NW.js architektúra

Két keretrendszer terjedt el ezeken az alapokon: az NW.js (korábbi nevén Node-Webkit) és az Electron (korábbi nevén Atom Shell). Előbbire a kétes hírű filmorientált torrentkliens, a Popcorn Time alapozott, utóbbira pedig olyan "nagy nevek" építenek, mint az Atom, a Slack, a Visual Studio Code és az Avocode.

Popcorn Time

A Te feladatod, a számodra szimpatikus keretrendszer kiválasztása és munkakörnyezet kialakítása után, egy tetszőleges funkcionalitású, de mindenképpen gazdag megjelenésű desktop alkalmazás elkészítése, törekedve a multiplatform működésre (Windows, Ubuntu és lehetőleg Mac OSX). A konkrét specifikáció alapvetően te fantáziádra van bízva, de az első konzultáción közösen is kitalálhatunk valamit.

Feltételek

  • HTML5, CSS3 és JavaScript legalább haladó ismerete.

Maximális létszám: 3 fő