Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Mozilla z pohledu vývojáře David Majda, CZilla 2. 5. 2006 — prezentace na předmět Linux (SWI043) na MFF UK.

Podobné prezentace


Prezentace na téma: "Mozilla z pohledu vývojáře David Majda, CZilla 2. 5. 2006 — prezentace na předmět Linux (SWI043) na MFF UK."— Transkript prezentace:

1 Mozilla z pohledu vývojáře David Majda, CZilla majda@czilla.cz 2. 5. 2006 — prezentace na předmět Linux (SWI043) na MFF UK

2 Co se dovíte, aneb osnova historie Mozilly architektura Mozilly tvorba GUI, jazyk XUL jak si napsat rozšíření XULRunner, aneb světlé zítřky několik malých „lákadel“ vývoje po Mozillou (tvorba pluginů) minule dnes

3 Architektura aplikací Mozilly (2/2) NSPR JavaScript engine XPCOM XPConnect zpracování HTML, CSS, XML, XUL, XBL, RDF C C++ XML JS aplikace – GUIaplikace – komponenty pomocné knihovny (images, DB,…) C++

4 XUL (čti zůl) XML User Interface Language GUI zapsáno deklarativně v XML –jen jednou pro všechny platformy vzhled v CSS „oživeno“ JavaScriptem jako webové stránky  kdo umí tvořit webové stránky, umí i psát aplikace pod Mozillou

5 Rozšiřitelnost architektura snadno rozšiřitelná –nové XUL, CSS a JS soubory (bez rekompilace) –nové XPCOM komponenty (typicky nutná kompilace) –pro pohodlí sbalené do XPI balíčku, doplněné metadaty  rozšíření Zde jsme minule skončili

6 Struktura rozšíření install.rdf chrome.manifest plugins/... components/... chrome/ content/ skin/ locale/

7 Instalace rozšíření globální × pro konkrétního uživatele mnoho metod: –zkopírování XPI do adresáře extensions –„pointer“ na XPI z tohoto adresáře –záznam v registrech (Windows) –otevření v prohlížeči –… správce rozšíření –instalace/odinstalace –konfigurace, zakazování,…

8 XULRunner runtime prostředí pro běh XUL aplikací pouze infrastruktura nutná pro běh – XUL a XPCOM komponenty zajišťující funkcionalitu dodává aplikace lze sdílet mezi aplikacemi (ale není nutné) NSPR JavaScript engine XPCOM XPConnect zpracování HTML, CSS, XML, XUL, XBL, RDF C C++ XML JS aplikace – GUIaplikace – komponenty pomocné knihovny (images, DB,…) C++ XULRunner

9 Další lákadla vývoje pod Mozillou tag vylepšení JavaScriptu –funkcionální programování –E4X –iterátory a generátory (budoucnost) integrace Pythonu (budoucnost)

10 Tag vyznačuje ve stránce oblast pro kreslení samotné kreslení – JavaScript –bohaté 2D API podobné běžným grafickým toolkitům –umí i průhlednost, gradienty, vzorky, cesty, bézierovy křivky, transformace… vymyslel Apple, nyní pod křídly WHATWG  ukázka

11 JavaScript 1.6 a dál… (1/3) Funkcionální programování squares = [1, 2, 3].map(Math.sqrt); // [1, 4, 9] filtered = [12, 5, 8, 130, 44].filter( function(element, index, array) { return element >= 10 } ); // [12, 130, 44] function printElement(element, index, array) { alert("[" + index + "] is " + element); } [2, 5, 9].forEach(printElement); // [0] is 2 // [1] is 5 // [2] is 9

12 JavaScript 1.6 a dál… (2/3) E4X = začlenění syntaxe pro práci v XML/DOM přímo do JavaScriptu function createTable() { // vytvoříme E4X objekt pro dokument var doc = new XML(document); var mytablebody = doc..body.TABLE.TBODY; for (var j = 0; j < 2; j++) { // přidáme prázdný řádek tabulky mytablebody.TR[j] = ""; // přidáme buňky s obsahem for (var i = 0; i < 2; i++) mytablebody.TR[j].TD[i] = "cell is row " + j + ", column " + i; } // nastavíme tabulce hodnotu atributu border doc..body.TABLE.@border = 2; }

13 JavaScript 1.6 a dál… (3/3) Generátory, iterátory à la Python –JavaScript 1.7 js> function count(n) { for (var i = 0; i < n; i++) yield i; } js> g = count(10) [object Generator] js> g.next() 0 js> g.next() 1 js> two_to_nine = [i for i in g] 2,3,4,5,6,7,8,9 js> squares_to_20 = [i * i for i in count(20)] 0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,25 6,289,324,361

14 Integrace Pythonu důvod: přilákání vývojářů v Pythonu, využití knihoven půjde použít všude, kde dnes JavaScript –XUL, XPCOM,… v Gecko 1.9/Firefox 3.0

15 Kdy vyvíjet pod Mozillou? Když potřebujete… –multiplatformnost –práci s HTML/XML/CSS –síťové služby, web services –lokalizovatelnost –rychlý vývoj, časté změny –velké aplikace (XPCOM, modularizace) 

16 Kdy naopak Mozillu nepoužívat? Když chcete… –náročnou grafiku (work in progress) –hrubý výkon (částečně lze v C++ a XPCOM) –využívat všechny možnosti nativního GUI –přístup z kteréhokoliv počítače na světě (lepší je webová aplikace) 

17 Kam pro další informace http://developer.mozilla.org/ –centrum pro vývojáře Mozilly –velké množství dokumentace –wiki = rychlý vývoj, můžete se zapojit http://www.czilla.cz/vyvojari/ –rozcestník v češtině –dokumentace podstatně méně –také se můžete zapojit :-)

18 Dotazy?


Stáhnout ppt "Mozilla z pohledu vývojáře David Majda, CZilla 2. 5. 2006 — prezentace na předmět Linux (SWI043) na MFF UK."

Podobné prezentace


Reklamy Google