Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
ZveřejnilAgáta Burešová
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?
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.