Aplicaţii Flex în Java?

Posted by admin on mai 4, 2009
Filed Under Tehnologie | 3 Comments

Oricât de curios ar suna, vestea asta cu siguranţă îi va bucura pe cei care şi-au dorit să lucreze pe platforma Flash şi în alt limbaj decât ActionScript. :) Este cu atât mai interesant faptul că iniţiativa nu vine ca un proiect izolat, făcut în timpul liber, ci va fi un feature de bază al viitoarei versiuni a platformei de dezvoltare Eclipse! (Ca un fapt divers, Eclipse este platforma pe care este construit şi Flex Builder-ul.)

Pentru cei interesaţi de un scurt background tehnic, Eclipse e4 este numele proiectului sub care sunt dezvoltate viitoarele versiuni ale componentelor de bază ale platformei. Printre ele există şi aşa numitul SWT (Standard Widgets Toolkit), care este o bibliotecă pentru realizarea de interfeţe grafice cross-platform. O aplicaţie SWT este o aplicaţie Java care creează componentele vizuale ca obiecte Java şi care iau forma şi comportamentul interfeţei grafice native platformei respective: pe Windows vor apărea componente native Windows, pe Linux vor fi widget-uri GTK, pe Mac va fi o interfaţă Cocoa, ş.a.m.d. Biblioteca este folosită în primul rând de Eclipse însuşi, pentru a-şi desena intefaţa grafică pe platformele pe care rulează, însă poate fi folosită independent de orice alt proiect.

Aplicaţii Flash în Java

Până acum, SWT era folosit exclusiv pentru aplicaţii desktop. Odată cu noua versiune de Eclipse, totuşi, SWT a fost extins şi în browser, şi prima platformă ţintită a fost Flash, prin intermediul Flex SDK. :D Cei mai sceptici dintre noi vor sări imediat în sus: bine, bine, dar cum poate rula o aplicaţie Java ca un SWF, în Flash?? Răspunsul este: folosind un compilator de Java to ActionScript – codul scris original în Java este tradus în cod ActionScript echivalent care foloseşte componentele MXML, care apoi este compilat cu Flex SDK într-un SWF. Sună a rocket science :) , dar uite că au reuşit să-l facă, iar rezultatele preliminare sunt destul de impresionante. În primul milestone, au reuşit să prezinte o sesiune de debugging făcută pe codul original Java (şi nu cel intermediar ActionScript), şi au venit cu o suită de exemple care ilustrează funcţionalitatea componentelor. Următorul milestone a venit cu posibilitatea de specificare de teme pentru componente şi cu o funcţie utilă de deployment al aplicaţiilor.

Lucrurile nu sunt nici pe departe finalizate, totuşi. Compilatorul este pe alocuri instabil, consuma pe moment destul de multe resurse şi nu se descurcă cu compilarea codului care accesează clase diferite de cele de bază şi cele oferite de biblioteca SWT. Mai mult, procedura curentă de instalare pentru Eclipse e4 + SWT este destul de anevoioasă, deşi satisfacţia vederii codului tău Java rulând ca aplicaţie Flash compensează din plin efortul de setup :D În fine, primul preview stabil pentru Eclipse e4 şi SWT/Browser Edition este planificat pentru vara aceasta, iar release-ul oficial pentru Eclipse 4 este aşteptat anul următor. Aşteptăm şi noi să vedem cu ce o să mai vină în plus :)

Ștefan

Share

Comments

3 Responses to “Aplicaţii Flex în Java?”

  1. Adinel on mai 4th, 2009 11:05

    @Stefan
    Hmm… Vestea buna ne-a “lovit” inca din februarie :) pe blog-ul lui Ted Patrick
    Incercati tutorialul! It’s fun :D !

  2. Cristian Pascu on mai 4th, 2009 12:26

    Daca Google a avut interesul sa puna Java peste JavaScript, cu siguranta exista un potential serios. Poate chiar Adobe o a investeasca resurse in asta. Va creste enorm de mult potentialul adoptarii platformei Flash si frameworkului Flex. MXML este super tare, ActionScript este un limbaj OK, dar cand vine vorba de refactoring si de gestionarea proiectelor mari, Java are marele avantaj al unor IDE capabile, ca sa nu mai vb de multimea de programatori Java disponibili.

    Pe scurt spus, MXML+Java ar fi aur curat. SWT simplu nu m-ar atrage asa mult.

    Cristian

  3. Cristian Pascu on mai 4th, 2009 12:30

    Ah, se pare ca exista si alte planuri in ceea ce priveste un markup language pentru SWT:
    http://wiki.eclipse.org/E4/DeclarativeUI/XWT

Leave a Reply