Archiv pro měsíc May, 2007

Zajímavé linky 4

Finally, the ability to develop your UI once and then deploy it as a web application and/or a desktop application without writing > any additional code should be enough to get any developer or manager interested.

Myslím, že projekt jSeamless rozhodně stojí za prozkoumání.

Jsem rád, že jsem po týdnu stráveném ve Vinohradské nemocnici (operace slepého střeva) zase „zpátky“. Ovšem ani v nemocnici jsem nezahálel – pročítal jsem si Complete Java 2 Certification Study Guide Fifth Edition.

Celý článek Přidat komentář 28. May 2007

Pár střípků o JavaFX

Tak to vypadá, že je AJAXu odzvoněno. Alespoň takhle to prezentuje Sun. Na konferenci JavaOne Sun oznámil zrození nové RIA technologie – JavaFX.

Pár střípků o JavaFX

  • stačí doinstalova malou knihovnu a JavaFX aplikace poběží na všech přístrojích (počítačích, mobilních telefonech), kde je nainstalována Java SE nebo Java ME. V případě mobilních přístrojů je to kompletní operační systém, který zahrnuje linuxový kernel a nativní servisy.
  • není vidět zdrojový kód aplikace tak jak je tomu v případě AJAXu, který je realizován klientským javasriptem
  • JavaFX aplikaci lze používat i v offline módu
  • používá vlastní skriptovací jazyk – JavaFX Script
  • odpadá problém s kompatilitou javascriptového kódu pro různé prohlížeče jak je to mu u AJAXu
  • JavaFX aplikace splňují heslo write once and run anywhere (napiš jednou a spušť kdekoliv). Stejný skript bude tedy možné spouštět na PC, digitální TV a mobilních telefonech.
  • JavaFX Script (původní jméno F3)) je staticky typovaný. Má compile-time kontrolu kódu. Lze v něm používat java kód – importovat třídy, vytvářet objekty…
  • součástí prvního releasu JavaFX bude interaktivní GUI builder (v současnosti již hotov)
  • co se týče deploymentu JavaFX na klienty chystá Sun nový model – základní balík knihoven bude velmi malý a další potřebné části se budou doinstalovávat „lazy“.

Konkurenti JavaFX

AJAX
rodina technologií, které mají společní název AJAX (Asynchronous JavaScript and XML) a umožňují asynchronní volání zdrojů na serveru na pozadí klasické HTML stránky.
Apollo
projekt Apollo pochází z dílny Adobe.

Apollo is the code name for a cross-operating system runtime being developed by Adobe that allows developers to leverage their existing web development skills (Flash, Flex, HTML, JavaScript, Ajax) to build and deploy rich Internet applications (RIAs) to the desktop.

Macromedia Flash
Macromedia Flash není přímým konkurentem JavaFX. Flash byl zpočátku používán na vytváření animací. Později dostal dobrou podporu pro práci s daty. Ovšem co se robustnosti nelze jej s Javou srovnávat.
SilverLight
Projekt SilverLight pochází z dílny Microsoftu.

Microsoft® Silverlight™ is a cross-browser, cross-platform plug-in for delivering the next generation of .NET based media experiences and rich interactive applications for the Web. Silverlight offers a flexible programming model that supports AJAX, VB, C#, Python, and Ruby, and integrates with existing Web applications. Silverlight supports fast, cost-effective delivery of high-quality video to all major browsers running on the Mac OS or Windows.

Odkazy

Celý článek 3 komentářů 15. May 2007

Magické JSFL - rychlé seznámení s rozšířením Flash IDE

Dnešní článek bude pro ty, kdo programují v ActionScriptu a speciálně pak použíjí rozšíření flashe JSFL.

Co je JSFL

JSFL je rozšížení Macromedia Flashe, pomocí kterého píše můžete psát skripty, jejichž spuštěním se vykonávají operace přimo ve Flash IDE – tedy ne při runtimu SWF souborů, ale při jejich vývoji. API JSFL umožňuje vytvářet soubory podobně jako kdybyste je tvořili přímo ve Flash IDE.

Malý výčet možností JSFL:

  • možnost importovat objekty do knihovny
  • možnost vytvářet movieclipy (lze používat i naimportované objekty z knihovny)
  • lze stavět celou timelinu (přidávat framy i vrstvy)
  • do stage lze vkládat objekty z knihovny a nastavovat jim vlastnosti (lze vkládat i komponenty)
  • sestavené soubory lze exportovat
  • přidávat vlastní tlačítka do toolboxu

Z uvedených usecasů vyplývá, že lze například jednoduše spuštěním JSFL skriptu vytvořit SWF soubor, ve kterém budou naimportovány vaše fotografie a například i použity vaše komponenty.

Pokud máte například data v XML a chcete je převést do FLA souboru nebo dokonce přímo do SWF stačí vám napsat XML to JSFL convertor a o převod JSFL do SWF se již postará Flash IDE. Proces, který jsem teď popsal je velmi podobný tomu jak pracují JasperReports – zde je na začátku jrxml soubor, který se převede na předkompilovaný jasper soubor. Processingem jasper souboru (a nastavením modelu) dostaneme výsledný soubor – například PDF.

Nový soubor není nutné vytvářet od nuly. Můžete si otevřit už připravený template (s naimportovanými objekty knihovně) a pouze je částí nových dat doplnit.

Možnosti spouštění JSFL kódu

Existuje několik možností jak spouštět JSFL API.

Spuštění JSFL souboru

Můžete si napsat soubor, který obsahuje JSFL kód a uložit jej s koncovkou jsfl. Soubory s touto koncovkou jsou asociování s Flash IDE, takže když na něj poklepete ve vašem oblíbeném file manageru dojde k jejich spuštění.

Přímé zavolání JSFL kódu z ActionScriptu

Kdo čte pozorně narazil teď na věc které ho zarazila – mluvil jsem o tom, že JSFL má své místo během authoringu a ne při runtimu SWF souboru. Flash IDE umožňuje spouštět vlastní commandy – SWF soubory, které jsou umístěny ve speciálním adresáři. V případě Windows XP je to C:\Documents and Settings\USER_NA­ME\Local Settings\Data aplikací\Macro­media\Flash 8\en\Configura­tion\WindowSWF.

var numLibItems = MMExecute("fl.getDocumentDOM().library.items.length");
var message = numLibItems + " items in library";
MMExecute('fl.trace("' + message + '");');
Volání JSFL funkcí z ActionScriptu

Můžete si napsat knihovní JSFL funkce do jsfl souboru a pak je volat přímo z ActionScriptu.

Malá ukázka: Volání JSFL souboru přímo z ActionScript kódu

var result = MMExecute("fl.runScript("file:///C|/testScript.jsfl", "foo", "world");
");
var message = numLibItems + " items in library";
MMExecute('fl.trace("' + message + '");');

Volaná metoda v JSFL souboru:

function foo(str) {
    return "Hello " + str;
}

Pokud vynecháte název funkce a její parametry spustí se celý JSFL soubor.

V případě druhé i třetí možnost je použita funkce MMExecute. V případě embednutého volání JSFL kódu z ActionScriptu jste však velmi svázaní. Je to pomalé a nepřehledné. Switchuje se mezi dvěma kontexty. Volání metod uložených v exerních JSFL má tu výhodu, že je lze upravovat bez nutnosti znovu kompilovat SWF soubor, ze kterého jsou volány.

Ještě bych zmínil jednu nevýhodu – jako parametry JSFL funkcí můžete používat jenom primitives – čísla, řetězce a proměnné typu bool. Pokud chcete poslat něco složitějšího musíte si sami naimplementovat serializaci.

Funkce MMExecute vrací návratovou hodnotu volané funkce – ale opět pouze její „string representation“.

Nakonec ještě jedna důležitá maličkost – pro spouštění jsfl souborů musíte mít nainstalované Flash IDE.

Závěr

JSFL je mocný nástroj – umožňuje pomocí API přistupovat k Flash IDE. V současnosti spouštíme JSFL skripty, které mají přes 150 000 řádků a jejich provádění trvá více jak 20 minut (na nejvýkonnějších strojích). Výsledkem je SWF soubor, na který už nemusí lidská ruka sáhnout a který by klasickou (ruční) cestou trval desítky hodin.

Odkazy

Celý článek Přidat komentář 9. May 2007


Kalendář

May 2007
M T W T F S S
« Apr   Jun »
 123456
78910111213
14151617181920
21222324252627
28293031  

Články podle měsíců

Kategorie

Locations of visitors to this page