Sunteți pe pagina 1din 17

Building Desktop RIAs with

PHP and JavaScript


Ed Finkler • funkatron.com • @funkatron
ZendCon 09 • #thistalksucks
What to expect
This is mainly a JavaScript talk
jQuery framework for JS examples
But we talk about PHP on the server and the
desktop, too
This is mainly a desktop app dev talk
Diffs between server app dev and desktop app dev
Examples of desktop app <-> server app interaction
Web runtimes
A browser engine environment used for building "local"
apps
Current web runtimes
AIR (adobe.com/go/air)
Desktop
Titanium (appcelerator.com)
Desktop
Mobile
Palm webOS
(developer.palm.com)
Mobile
We'll use AIR & Titanium
But others bear examination
JavaScript on the Desktop

Can use (almost) any


available JS libs/frameworks
No cross-domain
restrictions
security restrictions in app
sandbox (AIR only)
Desktop vs Server-side
PHP stack is built up/torn down every time
mem leaks not much of an issue
exec time < a few seconds max
almost always synchronous calls
Desktop apps are persistent
exec time can be hours or days
mem leaks a HUGE issue
lots of asynchronous calls
JavaScript frameworks

Some stuff in JS SUCKS without a framework


Lots of choices
jQuery pwnz yoo

jQuery is teh awesome (for some stuff)


but you can use anything
PHP is your server-side buddy
PHP
tubby jedi master

JavaScript
hyper frontman

Use 5.2 at least (you are, right?)


adds native JSON encoding/decoding
PHP talking to JS Desktop
Serve data structures instead of HTML
Use JSON

Use JSON

USE JSON
do not use XML (if you can avoid it)
set the correct mime type (application/json)
Example 1:
PHP duz yer math
Async calls using jQuery AJAX methods
Communicate via JSON

Flash
Zee Cloud
web server

Webkit
Example 2:
PHP 'shops yer pics
Uploading via Flash APIs
JSON based communication

Flash
Zee Cloud
web server

Webkit
PHP & jQuery:
THE UNHOLY UNION
Only works in Titanium Desktop
(0.7 or higher)
Also doable with Ruby and
Python
PHP support in Titanium is still a
work in progress
Additional resources
Adobe AIR for JavaScript Developers Pocketguide
http://www.tostring.org/
Developing Adobe® AIR™ Applications with HTML and Ajax
http://short.ie/ggd9tc
Titanium
http://appcelerator.com
http://codestrong.com
Titanium Forums
http://short.ie/d4ponk
Searchatron Source
http://short.ie/g9z6qt
Additional resources
DearZend.com source
http://github.com/funkatron/dearzend-server
http://github.com/funkatron/dearzend-client
Spaz Desktop Source
http://code.google.com/p/spaz/
Spaz webOS Source
http://github.com/funkatron/spaz-webos/
SpazCore
http://github.com/funkatron/spazcore
Questions?
@funkatron • funkatron.com • joind.in/922

S-ar putea să vă placă și