Alapfogalmak
Mint minden platform, a Firefox OS népszerűségét is döntően befolyásolja majd az elérhető appok minősége és száma. Nem jönnek a felhasználók, amíg nincsenek alkalmazások, nem éri meg a befektetést az alkalmazások elkészítése, amíg nincsenek felhasználók. A kör bezárult.
A Firefox OS esetében talán nem ilyen nagyon nehéz a döntés a tartalomszolgáltatók szempontjából, hiszen azoknak az entitásoknak, amelyeknek már van mobiloldaluk, már szinte van egy is webappjuk Firefox OS-hez. Ez azt jelenti, hogy pár apró kiegészítéssel akár néhány perc alatt elkészülhet az a webapp, amely már telepíthető és tesztelhető Firefox OS-szel szerelt készüléken. Az appok készítésének menete részletesen dokumentált. A webalkalmazások létrehozásához szükség lesz az eredeti weboldalra, amelyet picit módosítani kell. Ezen felül kell még egy manifest.webapp és egy valamilyen.appcache fájl is a szerverről megfelelő módon kiszolgálva, vagy a packed típusú alkalmazásba csomagolva.
App-típus gyorstalpaló
A Firefox OS az appokhoz különféle biztonsági szinteket rendel, függően attól, hogy mennyire megbízható az app. Az appok a terjesztés formája szerint lehetnek csomagolt (packed) vagy hosztolt (hosted) appok. A packed app minden szükséges összetevőt tartalmaz egy webapp fájlban, amely egy zip fájl.
A jéghegy csúcsán a certified appok vannak, amelyek telefon beépített alkalmazásai. Ilyet nem tud telepíteni a felhasználó, lényegében a firmware készítői, a szolgáltatók és a core rendszer fejlesztői képesek erre. Természetesen egy ilyen appra merge requestet beküldhet a Firefox OS github repóba bárki, de az appok ellenőrzése és jóváhagyása nagyon szigorú keretek között zajlik. Ezek az appok minden telefon-erőforráshoz hozzáférhetnek a meghatározott jogosultságok alapján. Az ilyen appok kizárólag packed formában léteznek.
Ez alatt vannak a privileged appok, mely a Firefox Marketplace-re beküldött és az ellenőrök által jóváhagyott alkalmazások csoportja. Ezek az appok is átesnek ellenőrzésen, amely után a felhasználók számára elérhetővé és telepíthetővé válnak. A privileged appok kevesebb jogosultsággal rendelkeznek, illetve a jogosultságok megadásának nagy részéről a felhasználók dönthetnek a telepítéskor, valamint a beállítások révén a későbbiekben is. Az ilyen appok kizárólag packed formában léteznek.
A hegy lábánál a sima alkalmazások vannak, amelyekben a rendszer nem bízik meg – mert nem ellenőrizték és hagyták jóvá az appok működését a Mozilla részéről. Az ilyen alkalmazások vagy packed, azaz egyetlen zip fájlba csomagoltak, vagy pedig hosted, azaz minden erőforrását távoli kiszolgálóról letöltő formátumban érheti el.
Az első tartalomszolgáltató appot nyilván ebben a hosted formában érdemes elkészíteni, de a továbbfejlesztések révén akár a privileged formátum is lehet a fejlesztés következő lépcsőfoka.
Bevezetés a webapp készítés tudományába.
Mitől lesz egy weboldal webapp?
A webappokat lényegében az különbözteti meg a weboldalaktól, hogy elérhető a készüléken lévő (vagy a számítógépre, telefonra telepített) Firefox számára egy manifest fájl, amely leírja, hogy hogyan kell az adott weboldalt kezelni webalkalmazásként: hol érhető el a tartalom, milyen jogosultságokat adjon a webappnak, mi a neve, hogyan lesz használható az app. Természetesen a távolról elérhető – hosted app, packed app, de még a Firefox Marketplace-re feltöltött és ellenőrzött privileged webapp – sem fér hozzá a telefon minden szolgáltatásához. A fájl lényegében egy JSON fájl, ami leírja az app működését. A fájl részletesebb leírása itt található.
Példa egy egyszerű „manifest.webapp” fájlra (UTF-8 karakterkódolás):
{
"name": "My
Content
App",
"description": "
MyContent for daily IT news
",
"launch_path": "/",
"icons": {
"128": "/img/icon-128.png"
},
"developer": {
"name": "
ITCompany
",
"url": "http://
itcompany
-homepage-here.org"
},
"default_locale": "en"
}
Ezzel már van egy webapp-kezdeményünk. Hogyan lehet ezt működövé varázsolni?
Útmutató
Kiszolgálás
A hosted formátumú manifest app kiszolgálásához szükség van a szerverbeállítások megváltoztatására is. A manifest kiszolgálása ugyanarról a helyről kell hogy történjen, a .webapp kiterjesztéssel a Content-Type fejlécnek pedig „application/x-web-app-manifest+json” értéket kell adni. Beállítási tippek és további leírás. A packed app esetén erre nincs szükség, mert ott minden összetevő egyetlen zip fájlban (webapp kiterjesztéssel) kerül letöltésre és telepítésre a telefonon vagy a böngészőben.
Mindig elérhetővé válni
Az alkalmazások általánosságban mindig futtathatóak, állandó internetkapcsolat hiányában is. A leggyakrabban felmerülő kérdések a webappokkal és a Firefox OS-szel kapcsolatban, hogy:
-
A webappok tényleg csak online működnek?
-
A Firefox OS-hez állandó internethozzáférés szükséges?
Válaszok röviden: Nem, a webappok internetkapcsolat nélkül is működőképesek lehetnek. A Firefox OS jól működik internetkapcsolat nélkül is.
Mindazonáltal az appok által elérhető tartalmak nem frissülnek, de a telefon gondoskodik a legutóbbi állapot megőrzéséről, amely aztán mindig elérhető lesz a felhasználónak. Az eljárás neve Application Cache (AppCache), megvalósításáról a HTML5 szabvány rendelkezik. Ezzel az eszközzel offline használat közben is használható marad az alkalmazás.
Az AppCache használatának több előnye is van:
-
az alkalmazás internetkapcsolat nélkül is használható marad
-
a webalkalmazás összetevői helyben tárolódnak, így gyorsabban betölthetők
-
az alkalmazás csak a megváltozott tartalmat tölti le, ezáltal csökken a kiszolgáló terhelése
Az AppCache használatához a webapp-ot így kell megváltoztatni:
<html manifest="example.appcache">
...
</html>
Ezek után létre kell hozni az appcache leíró fájlt, és fel kell tüntetni benne az összes fájlt, amit el szeretnénk tárolni az alkalmazásban. Például a következő módon:
CACHE MANIFEST
# v1 2011-08-14
# This is another comment
index.html
cache.html
style.css
image1.png
# Use from network if available
NETWORK:
network.html
# Fallback content
FALLBACK:
/ fallback.html
A fájlnevek mellett felfigyelhetünk arra, hogy 3 szekcióba vannak a fájlok csoportosítva:
-
CACHE: (vagy CACHE MANIFEST) – a rendszer letölti ezeket a fájlokat és eltárolja
-
NETWORK: – ezek a fájlok sohasem kerülnek eltárolása, mindig hálózati kapcsolat kell az elérésükhöz (például egy bejelentkezési oldal)
-
FALLBACK: – abban az esetben kerül megjelenítésre, ha nem elérhető a megadott oldal. A FALLBACK rész fájljainak megadása eltérő, hiszen meg kell adni, hogy milyen oldal elérési hibájakor, melyik oldalt jelenítsen meg a rendszer
A manifest fájt nem szabad betenni a CACHE-be, mert az app nem fogja az újabb manifest fájlokat letölteni, azaz az appot nem lehet automatikusan frissíteni.
Hosted app esetén itt is gondolni kell a fájl megfelelő MIME-type kiszolgálásról:
AddType text/cache-manifest .appcache
Továbbfejlesztési lehetőségek
Az így elkészült webappot vagy a hosted formában, távoli tartalomként tesszük elérhetővé, vagy packed formátumban letölthetővé tesszük a weboldalunkról vagy – a Firefox Marketplace-re feltöltve – a piactérről. Érdemes a produktumot alapvető ellenőrzéseknek alávetni, majd a Firefox OS Simulátorban vagy a böngészőben tesztelni. További hasznos eszközök is segítségünkre vannak.
A webapp továbbfejlesztésére számos módon történhet. Egyrészt a „manifest.webapp” fájlt tuningolhatjuk:
-
hozzáadhatjuk a Firefox OS által megjelenített 60x60 és 30x30 pixeles képeket (icons)
-
további nyelvek támogatását adhatjuk meg (locales)
-
a készülékforgatás hatásait adhatjuk meg (orientation)
-
engedélyt adhatunk a készülék speciális eszközeinek elérésére [WebAPI] (permissions)
-
és még sok minden más beállítást is elvégezhetünk
Továbbá telepítővel láthatjuk el az alkalmazást.
Adatok alkalmazásoldali tárolására esetleg használhatunk adatbázisokat, amelyek szintén a HTML5 specifikáció részét képezik. Az egyik legújabb megoldás az IndexedDB tároló.
Átalakíthatjuk a weboldalt, hogy reszponzív dizájnt használjon, vagy hozzáigazítjuk a webappok javasolt viselkedési elveihez. A felhasználóktól pénzt kérhetünk az alkalmazás telepítéséért vagy az alkalmazáson belül elérhető extra funkciókért, képességekért. Az alkalmazásnak Firefox OS-re jellemző külsőt adhatunk, felhasználva a rendszerre jelmező építőkockákat, CSS átmeneteket.
Összegzés
A belépés egy új platformra soha sem egyszerű, ám a Firefox OS esetében mégis kevesebb a probléma, mint általában megszokott. A tartalomszolgáltatók pár óra alatt működő appot készíthetnek a már meglévő weboldalakból. Az optimalizálás azért ennél több időt is igénybe vehet, de látható, hogy van lehetőség az alkalmazás tetszetős és hasznos továbbfejlesztésére is. Az első lépés megtétele tehát nem túl nagy befektetés egy mobiloldallal rendelkező weboldal számára – és ha beválik – a továbbfejlesztéshez is számos segítséget és hasznos eszközt kap a fejlesztő.