Claudiu Persoiu

Blog-ul lui Claudiu Persoiu


Archive for 6 November 2009

Adobe AIR

without comments

Saptamana trecuta a trebuit sa realizez un mic proiect. Cerinta era scurta: interoperabilitate. Avand in vedere ca nu am folosit niciodata Adobe AIR am zis ca este o oportunitate buna sa incerc.

Rezultatul este o mica aplicatie de project management. Pentru server am folosit PHP + SOAP + Zend Framework, pentru client am folosit Adobe AIR cu JavaScript.

Serverul l-am rezolvat in cateva linii:

<?php
// clasa de autoload pentru Zend Framework
include 'Zend/Loader/Autoloader.php';

// clasa care va rezolva cererile SOAP
include 'SOAP.class.php';

// initializez autoloader
Zend_Loader_Autoloader::getInstance();

// daca se cere fisierul WSDL pentru descriere
if(isset($_GET['wsdl'])) {
 $autodiscover = new Zend_Soap_AutoDiscover();
 $autodiscover->setClass('test');
 $autodiscover->handle();
// daca se face un request SOAP
} else {
 $soap = new Zend_Soap_Server("http://localhost/soap/index.php?wsdl");
 $soap->setClass('test');
 $soap->handle();
}

?>

Descriptorul se construieste automat folosind comentarile de tip PHP Documenter din clasa care se ocupa de apelurile SOAP, in acest caz clasa se numeste “test”.

Acum ca am trecut de partea usoara m-am apucat de clientul Adobe AIR urmand acesti pasi simpli:

  • Descarcat si instalat Aptana Studio
  • Instalat plug-in Adobe AIR
  • New project -> Adobe AIR
  • and voila! Codarea poate incepe!

Adobe AIR foloseste ca motor pentru JavaScript Webkit. Suna cunoscut? Webkit este folosit de Safari si Google Chrome. Deci codul JavaScript nu trebuie sa fie compatibil decat cu Webkit!

Evident exista un “dar” si un plus. “Dar”-ul este ca exista niste restrictii, de exemplu “eval” nu se poate folosi decat pentru decodare de JSON, iar textul introdus intr-un element direct (ca text) nu poate fi rulat:

div.innerHTML = "<a onclick=\"alert('ceva')\" href=\"#\">click</a>";

Link-ul va ajunge in element dar nu va rula nimic la onclick pentru ca paramentul a fost trimis ca text.

Asta a fost un dezavantaj destul de mare pentru mine, dar am reusit sa gasesc o alternativa construind elementele html folosind DOM si adaugand actiuni cu addEventListener.

Pe scurt Adobe AIR are formula:

Adobe AIR = (Webkit)Web Development - security + air framework.

Mi se pare foarte usor de dezvoltat in Adobe AIR pentru un Web Developer care vrea sa realizeze o aplicatie desktop.

Evident nu este foarte rapid si nu mi se pare o solutie buna pentru programe foarte complexe. Dar daca vine vorba aplicatii medii si mici, daca ar trebui sa aleg intre Adobe AIR si PHP GTK de exemplu, prima varianta mi se pare mult mai viabila si usor de folosit!

Pana la urma proiectul a fost gata in mai putin de 3 zile iar grafica a iesit genial! Nici nu pare o aplicati facut folosind doar HTML si JavaScript!

Written by Claudiu Persoiu

6 November 2009 at 11:44 PM