TEST RUN<>
102007<><>

Adobe Flex 3 beta

Flash za programere

Bez obzira na to što je Flash već godinama prisutan kao standard za animaciju na Internetu, mali broj korisnika zaista je svestan mogućnosti koje on pruža za izradu web aplikacija. Kada se govori o Flashu, prvo što padne na pamet jesu baneri, animirani sajtovi, i u skorije vreme online video. Osnovni razlog zbog kojeg su svi potencijali Flasha relativno slabo iskorišćeni leži u nepostojanju kvalitetnog razvojnog okruženja za izradu Flash aplikacija.

Adobe (ranije Macromedia) Flash je pre svega alat za dizajnere i animatore. Iako je u njemu moguće razviti i kompletnu web aplikaciju, taj posao je dosad, najblaže rečeno, bio mučan. U želji da promeni situaciju i Flash približi programerima, Macromedia razvija Flex Server 1.0 a ubrzo zatim i Flex Server 1.5. Flex Server je bio Java EE (Enterprise Edition) aplikacija koja je omogućavala generisanje Flash sadržaja na serveru. Sa njim u paketu dolazilo je pet licenci za prvu verziju Flex Buildera, razvojnog okruženja za izradu Flex aplikacija. Na taj način je prvi put od njegove pojave bilo moguće napraviti Flash prezentaciju samo korišćenjem programskog kôda. Iako je naišao na dosta pozitivnih ocena, Flex nikada nije zaživeo u potpunosti. Osnovni problem bila je previsoka cena koja je iznosila čitavih 15.000 dolara po procesoru na kojem se izvršava. Kada se uzme u obzir to da retko koji ozbiljan web server ima manje od dva procesora, a da ozbiljne web aplikacije koriste i po nekoliko servera, sasvim je jasno zašto je malo ko mogao sebi da priušti takav luksuz, pa Flex nije uspevao da dostigne veću popularnost.

Kada je Adobe preuzeo kompaniju Macromedia, počinju velika ulaganja u dalji razvoj Flash tehnologije. Razvija se nova verzija Flash playera, znatno naprednija od svih prethodnih. Prvi proizvod koji je iskoristio sve prednosti nove tehnologije bio je Flex 2. Poučen greškama iz prošlosti, Adobe je odlučio da Flex približi znatno većem broju korisnika, pa je čitavu tehnologiju podelo na više komponenti po principu „za svakog ponešto”.

Srž Flexa čini Flex SDK (Software Development Kit). U okviru njega dolazi sve što vam je potrebno za izradu Flex aplikacije. SDK se sastoji od kompajlera, debagera, frameworka (biblioteke klasa) i pomoćnih alata. Flex SDK uvodi u upotrebu dva nova programska jezika, MXML i ActionScript 3. MXML je proširenje standardnog XML-a i koristi se pre svega za definisanje izgleda korisničkog interfejsa. Prilikom kompajliranja, MXML se prvo prevodi u ActionScript, što znači da je aplikaciju moguće napisati i samo u AcrionScriptu, ali se upotrebom MXML-a razdvaja kreiranje interfejsa od programske logike. Na taj način programski kôd postaje pregledniji, samim tim ilakši za održavanje i izmene. ActionScript 3 je programski jezik zasnovan na specifikaciji ECMAScript. Sve što se definiše u MXML-u kontroliše se pomoću ActionScripta. Po sintaksi najsličniji je JavaScriptu, što ga čini bliskim velikom broju web developera.

Flex SDK je u potpunosti besplatan. U okviru njega dolazi i izvorni kôd čitavog frameworka, a Adobe planira da do kraja godine čitav SDK prebaci u Open Source.

Flex Builder je razvojno okruženje zasnovano na platformi Eclipse (o kojoj smo pisali u prošlom broju). Pošto je on glavni alat za izradu Flex aplikacija, biće detaljnije opisan naknadno.

Live Cycle Data Services (ranije Flex Data Sevices) je komponenta Flexa namenjena pre svega velikim poslovnim (enterprise) korisnicima. To je deo koji je najviše nalik prvoj verziji Macromedia Flexa, i po načinu rada, a nažalost i po ceni. Iako sa sobom nosi neke stvarno izvanredne mogućnosti kao što su Flex messaging i data sinhronizacija, cena koja se kreće od šest do dvadeset hiljada dolara po procesoru čini ga nepristupačnim najširem broju (ovdašnjih) korisnika.

Flex Data Visualization Package je skup komponenti namenjen vizuelnoj prezentaciji podataka. To je komercijalni paket koji košta oko 400 dolara, a u okviru njega dolaze AdvancedDataGrid i komplet Charting komponenti. AdvancedDataGrid služi za tabelarni prikaz podataka, a Charting komponente za generisanje različitih dijagrama. I ovaj proizvod je namenjen pre svega poslovnim korisnicima.

Najveća prednost Flexa je što se aplikacije napisane u njemu izvršavaju u Flash plejeru. Pored toga što je Flash plejer ubedljivo najrasprostranjenija virtuelna mašina trenutno (preko 90% svih računara na Internetu već ima instaliran Flash player 9, a preko 98% ima Flash player 6 ili noviji), Flash aplikacije izgledaju i izvršavaju se identično, bez obzira na to koji browser ili operativni sistem koristite. Osnovni problem klasičnih web prezentacija, od čistog HTML-a do AJAX-a (vidi umetak u ovom broju) jeste to što među različitim browserima ne postoji standard po pitanju načina prikazivanja stranice ili podržanih JavaScript komandi i CSS tagova. To donosi dodatan posao i prilikom izrade i prilikom testiranja web aplikacije. U slučaju Flasha taj problem ne postoji, pa slogan koji je Sun osmislio za Javu a koji glasi „Write once, run everywhere” (piši jednom, pokreni svuda) i ovde može da se primeni u potpunosti.

Bez obzira koliko dobro vaša aplikacija služila svrsi za koju je napisana, opšti utisak koji korisnik, to jest klijent stekne prilikom njene upotrebe može presudno da utiče na dalji uspeh. Aplikacija mora da bude vizuelno dopadljiva, intuitivna, a broj koraka da bi se neka radnja izvršila treba da bude sveden na minimum. Pojedine studije su pokazale da su određene web prodavnice prelaskom na AJAX uvećale broj ostvarenih prodaja čak do 30 posto – samo time što su eliminisale čekanje koje je bilo potrebno da se generiše i učita nova stranica posle određene akcije korisnika. Ovo je u Flexu podignuto na još viši nivo, pošto se čitava aplikacija učitava prilikom njenog startovanja, i jedino čekanje koje se javlja tokom upotrebe jeste onda kad je potrebno da se proslede ili preuzmu podaci od servera. Ovakav način rada, gde se deo aplikativne logike sa servera prebacuje na klijentski računar, može znatno da umanji troškove hostinga jer se smanjuje ostvareni protok i serversko opterećenje, što posebno dolazi do izražaja kod aplikacija koje dnevno obavljaju ogroman broj transakcija.

Za razmenu podataka sa serverom, Flex poseduje čitav dijapazon mehanizama. Tako je serveru moguće pristupiti pomoću najosnovnijeg HTTP zahteva, koristeći napredne tehnologije kao što su XML-RPC i SOAP, ili nekim od protokola koji su ekskluzivni za Flash i Flex, kao što su Flash Remoting i Flex Messaging. Zahvaljujući tome, postojeće web aplikacije veoma je lako prebaciti u Flex, bez ikakvih izmena serverskog kôda. Pored toga, nova verzija Flasha donosi podršku za binarne sockete, tako da je moguća direktna komunikacija sa chat i mail serverima, ili čak sa database serverima kao što je MySQL.

Pošto u potpunosti koristi sve prednosti koje donosi nova verzija Flash playera (ovo se pre svega odnosi na znatno unapređenu virtuelnu mašinu), brzina kojom se Flex programi izvršavaju bez premca je među web aplikacijama. Flash player 9 je skoro deset puta brži od prethodne verzije i znatno brži od JavaScripta. Ovo posebno dolazi do izražaja kada je potrebno prikazati i obraditi veliku količinu podataka. Takođe, Flash se već nametnuo kao standard za prikaz multimedijalnih sadržaja na Internetu, pa je veoma lako aplikaciju obogatiti audio ili video sadržajem bez korišćenja dodatnih tehnologija.

Opšti utisak koji se stiče radom u Flex aplikaciji mnogo više podseća na korišćenje programa pisanih za desktop nego na web prezentaciju. Iako vizuelne komponente Flexa već same po sebi izgledaju veoma lepo, velika pažnja posvećena je njihovoj prilagodljivosti specifičnim zahtevima dizajna. Tako je izgled komponente moguće promeniti programski, korišćenjem CSS stilova ili izmenom skinova. Adobe intenzivno radi na integraciji Flexa sa svojim paketom proizvoda namenjenih dizajnu, tako da je već sad moguće definisati izgled aplikacije u Photoshopu ili Fireworksu i onda sve to izvesti u Flex radi dalje upotrebe.

Osnovni nedostatak Flexa jeste veličina frameworka. U zavisnosti od komponenti koje koristite, veličina aplikacije se kreće od 150 kilobajta naviše. Time se znatno umanjuje upotrebna vrednost kada su u pitanju „male” aplikacije (kontakt i registracione forme, login ekrani itd.), ali što je veći broj kontrola koje se koriste, to veličina aplikacije sporije raste. Tako na primer Fauxto (www.fauxto.com), aplikacija koja najviše podseća na online Photoshop, zauzima svega 558 kilobajta, što je stvarno malo ako se uzmu u obzir mogućnosti koje nudi. A sve zbog toga što sve kontrole imaju veliki deo zajedničkog kôda koji, kad se jedanput učita, može da se koristi neograničen broj puta. Problem veličine aplikacije može da se reši njenom podelom na takozvane module. Kod takvog načina izrade, osnova aplikacije se učitava prilikom pokretanja, a ostali moduli samo ako se ukaže potreba za tim, to jest kada korisnik pristupi određenom delu aplikacije. Međutim, ni prilikom ovakvog načina izrade ne može da se izbegne početni „udar” od 150 kilobajta koji je potreban da se učita osnova frameworka. U Adobeu su svesni ovog problema, tako da nova verzija Flash playera (pod kodnim nazivom moviestar), koja je već sad dostupna na labs.adobe.com, pored brojnih unapređenja na polju multimedije donosi nov i izuzetno napredan mehanizam za interno keširanje frameworka. U praksi to znači da, kad klijent jedanput pristupi Flex aplikaciji, Flash player preuzima i snima deo frameworka koji ta aplikacija koristi. Svaki sledeći put kad se pristupi toj ili bilo kojoj drugoj Flex aplikaciji, framework se pokreće iz keša (nezavisnog od keša browsera), tako da nema potrebe za ponovnim učitavanjem. Na taj način sa Interneta se downloaduje samo deo kôda koji je specifičan za samu aplikaciju, a on je uglavnom vrlo mali. Iz bezbednosnih razloga, a i da bi se sprečilo preopterećenje keša, Flash player čuva samo one komponente koje su deo izvornog Flex SDK-a i koje je potpisao Adobe.

Drugi problem nije vezan za sam Flex već za poimanje Flash playera kao medija za prikaz ozbiljnog internet sadržaja. Naime, godine zloupotrebe Flasha, prevashodno kao alata za izradu dosadnih animiranih banera, stvorile su određenu odbojnost prema svemu što se vezuje za ovaj program. Srećom, u poslednje vreme ova slika se menja, prevashodno zato što su Flex prihvatili veliki internet igrači kao što su Google i Yahoo.

Sve prednosti koje Flash player i Flex framework nose sa sobom bile bi beskorisne bez kvalitetnog alata u kojem bi se pisale aplikacije. Svestan toga, Adobe je ovom problemu pristupio krajnje studiozno. Kao polazna osnova je izabran Eclipse, koji se nametnuo kao zrelo i ozbiljno razvojno okruženje prilagođeno daljoj nadogradnji. Flex Builder koristi sve pogodnosti koje pruža platforma Eclipse.

Prva stvar koja se dešava po pokretanju setupa je instalacija Jave, koja se odigrava nezavisno od toga da li već imate instaliran JDK ili čak i ceo Eclipse. Na taj način možete da budete sigurni da će Flex Builder raditi, čak i ako u međuvremenu dođe do znatnih promena u okviru same Jave (kao što je prelazak iz Jave 5 u Javu 6). Nakon toga je potrebno izabrati tip instalacije. Ukoliko već imate instaliran Eclipse, možete instalirati samo Flex Builder plugin, u protivnom je tu takozvana stand-alone instalacija koja prvo instalira Eclipse pa zatim plugin. Instalacija ume da potraje, a ponekad se dešavalo da se (beta verzija) jednostavno zaglavi u nekom trenutku. Prekidanje i ponovno pokretanje instalacije uglavnom rešava problem.

 
Po pokretanju Flex Buildera potrebno je kreirati novi projekat (File: New: Flex Project). Time se pokreće wizard u kojem je potrebno uneti podatke o vašoj aplikaciji kao što su naziv, lokacija na kojoj će biti snimljeni radni fajlovi, kao i dodatna podešavanja poput servera koji koristite i putanje do dodatnih biblioteka. Radi lakšeg rada, u Flex Builderu postoje tri perspektive, to jest tri predefinisana izgleda razvojnog okruženja. To su Flex Development, Flex Debugging i Flex Profiling. Perspektiva Flex Development namenjena je razvoju aplikacije i u njoj se, bar u početku, provodi najviše vremena. Ona se sastoji od dva takozvana „pogleda” i to su Design i Source view. Korisnicima Dreamweavera biće potpuno jasno: Design view služi za definisanje izgleda aplikacije; u njemu se određuje vizuelni raspored komponenti, vrši podešavanje osobina svake komponente i definišu stanja (states) aplikacije. A sve što uradite u Design viewu automatski se prevodi u MXML kôd koji možete da pogledate u Source Viewu. Proces je dvosmeran, tako da će se i sve izmene koje izvršite na kôdu odraziti na izgled aplikacije.

Dok razvoj aplikacije bude napredovao, počeće da se pojavljuju greške koje nisu u vezi s kôdom već sa aplikativnom logikom i koje je zbog toga znatno teže otkriti. Tu na scenu stupa Flex Debugging. U slučaju greške do koje je došlo prilikom izvršavanja programa, ili na mestu koje vi definišete, izvršavanje se prekida i kontrola se vraća Flex Builderu, ali u perspektivi koja je prilagođena traženju i otklanjanju grešaka. U debug modu moguće je pregledati stanje aplikacije u memoriji zajedno sa vrednostima svih promenjivih u trenutku prekida, ili ručno izvršavati liniju po liniju kôda u potrazi za greškom.

Flex profiling služi za pronalaženje i otklanjanje takozvanih uskih grla u kôdu i optimizaciju aplikacije. Ovo je opcija koja je tek uvedena u Flex Builder i čija je funkcionalnost u najmanju ruku ograničena. Međutim, ako se uzme u obzir da se radi o prvoj beta verziji Flex Buildera 3 i da se očekuju još dva međuizdanja do pojave stabilne verzije početkom sledeće godine, to se ne može uzeti za zlo. Uostalom, beta verzije i služe da se pronađu i otklone greške pre nego što finalni proizvod ugleda svetlo dana.

Sa razvojem Flexa, Adobe je na velika vrata ušao u svet web aplikacija, kojim sada dominira neprikosnoveni AJAX. Sada se u bitku uključuju Sun i Microsoft sa svojim alternativama Flash playeru. Iako je Flash player prilično napredovao u poslednje dve godine, dodatna konkurencija je primorala Adobe da „doda gas” i u trenutku kad vi ovo čitate verovatno se već pojavila deseta generacija Flash playera. Kada su u pitanju web tehnologije, naredni period izvesno će da bude izuzetno zanimljiv, a najveće koristi od toga imaće upravo krajnji korisnici, kojima će opšti ugođaj prilikom korišćenja Interneta biti podignut na novi, znatno viši nivo.

Đorđe RADAKOVIĆ

 
Adobe Flex 3 beta
Šta mislite o ovom tekstu?
ACD Systems ACDSee Pro 2
AKVIS Coloriage 5.0.423
IntuiSphere Cariboost Premium Edition Personal 2.0.33
Serif MoviePlus 5
Icon Craft 4.14, Pretty Icon Maker 1.5, IconBuilder 2, Microangelo Toolset 6, aaICO, IcoFX 1.5

Flex SDK 3 beta 1
Potrebno:
Windows / Linux / Mac OS X
Veličina:
67 MB
Cena:
SDK je besplatan

Flex Builder 3 Beta
Potrebno:
Windows / Mac OS X
Veličina:
273/233 MB (Windows/Mac OS X)
Cena:
beta verzija, proba 30 dana
Adresa:
labs .adobe .com
Home / Novi brojArhiva • Opšte temeInternetTest driveTest runPD kutakCeDetekaWWW vodič • Svet igara
Svet kompjutera Copyright © 1984-2018. Politika a.d. • RedakcijaKontaktSaradnjaOglasiPretplata • Help • English
SKWeb 3.22
Opšte teme
Internet
Test Drive
Test Run
PD kutak
CeDeteka
WWW vodič
Svet igara



Naslovna stranaPrethodni brojeviOpšte informacijeKontaktOglašavanjePomoćInfo in English

Svet kompjutera