Designing IA for AI - Information Architecture Conference 2024
Building Desktop RIAs With PHP And JavaScript
1. Building Desktop RIAs with
PHP and JavaScript
Ed Finkler • funkatron.com • @funkatron
php|tek 09
2. What to expect
This is mainly a JavaScript talk
Compare JS and PHP
jQuery framework for JS examples
This is mainly a desktop app dev talk
Diffs between server app dev and desktop app dev
Examples of desktop app <-> server app interaction
6. JavaScript in AIR
Can use (almost) any
available JS libs/frameworks
No cross-domain
restrictions
security restrictions in app
sandbox ( eval() )
Access AIR APIs
Access standard Flash APIs
Use compiled AS3 libs
7. PHP vs JavaScript
JavaScript is fundamentally
different
JS is a functional
language
closures
first-order functions
Object model is totally
different
8. PHP vs JavaScript
Everything in JS is an object
Arrays are not associative – objects serve as
associative array equivalents
No include/require statements available
Event-driven model/asynchronous actions
Further reading:
– JavaScript: The Definitive Guide, David Flanagan
– JavaScript: The Good Parts, Douglas Crockford
9. 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
almost always asynchronous calls
10. JavaScript frameworks
Some stuff is a huge pain without the help of a
framework
Lots of choices
Must play well with AIR
eval usage gotchas
12. 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
13. PHP talking to AIR
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)
14. Example 1:
PHP duz yer math
Async calls using jQuery AJAX methods
Communicate via JSON
Flash
Zee Cloud
web server
Webkit
15. Example 2:
PHP 'shops yer pics
Uploading via Flash APIs
JSON based communication
Flash
Zee Cloud
web server
Webkit