So it's been quite awhile since I've discussed anything about my little Adobe AIR project - with good reason, I'm a top-down programmer. If I don't know the language, I need to know enough to come up with a good plan of attack so that I'm not coding garbage that would have to be completely reprogrammed from scratch 2 months later (6 months? ...well...). In that end, I've been trying to find good documentation. The Adobe site had the v1.1 runtime documentation, but I couldn't find the newer v1.5 runtime docs. The library system had a book or two, so I took one out. It wasn't that great. Our library got one specifically for v1.5. It was better, but still not quite what I was looking for (though it made some more basic things easier to understand).
Eventually I found the v1.5 runtime documentation on Adobe's website. It was 433 pages long, in a compiled PDF. Yay. I fall asleep after reading two paragraphs. "This won't be easy," I thought to myself. Well, approximately 200 interruptions later, I finally finished the documentation and I've finished a basic mockup for the user interface. I intend for it to be (upon application instantiation) automatically positioned at the user's bottom right viewport. We'll probably set it in the Program's menu Startup folder.
Example mockup image:
Note: The hover property of the button is not set in this mockup (I rushed a little), and Safari's rounded corners (Adobe AIR uses a version of WebKit for it's HTML rendering engine) are much cleaner than Photoshop's.
Expected Features:
- CakePHP Web-based backend
- Adobe AIR application, can be installed on Linux, OSX, Windows
- Use jQuery JavaScript library with Adobe AIR
- XMLHTTPRequest to backend server from AIR app to add stats
- Dynamically builds buttons and tooltip from website database (will resize based on number of options available for specific desk)
- The "T", or text button, will show an overlay window that will allow for text-based information back to department head (requirement of this project)
- Backend will (eventually) provide numeric as well as graph/chart-type statistics
Once I convert this PSD image to a Safari/WebKit based layout, with jQuery functions tested, I'll start coding the Adobe AIR application, which will mostly handle window position on startup, drag/drop of the window, transparency and non-native GUI, and it will also check for network connectivity to the backend server. If it can't connect to the backend server, it will store the information in a SQLite database (stored in memory, not on disk) and synch information when network is available again. If the network isn't available by the time the application is shut down, I could *attempt* to store it to disk, but our computers this will be installed on are locked down, so I don't know how that will work. (I honestly didn't think of that until now.) However, I don't expect that to be an oft-happening occurance.