Building StatusNet Desktop from source
Contents |
[edit] Requirements
- Linux, Windows, or Mac system
- Appcelerator's Titanium Developer Studio package
- This contains the open-source Titanium runtime libraries and build/packaging/debug interface.
- git
[edit] Fetching source
Grab the source from http://www.gitorious.org/statusnet-client per standard directions there.
[edit] Importing project
Once you've set up Titanium Developer and checked out the source code, click the 'Import Project' button on the Titanium toolbar and select the 'StatusNet Desktop' directory inside your checkout.
[edit] Source layout
The StatusNet Desktop client is built using Appcelerator's open-source Titanium platform, which uses WebKit to provide a basic OS-independent HTML/JavaScript environment, extended with a runtime library allowing more direct system access than a web browser allows.
Within the 'StatusNet Desktop' folder are various bits; most of the guts of the app will live under the 'Resources' folder:
- .html files with skeleton layout for each window/dialog
- various images, stylesheets, etc
- platform-specific core startup code
- view/ subfolder with desktop-specific frontend code
- model/ subfolder with platform-independent backend code
Front-end code for other platforms is included in the same repository; to build the mobile clients see Building StatusNet Mobile from source.
[edit] Building and running
Select the app from the developer studio's sidebar, pick the 'Test & Package' tab, and push 'Launch'!
You can also build & launch from the command line (todo: add the secret sauce)
[edit] Debugging
The developer studio app has a debug console, but it's a bit flaky currently; be prepared for a LOT of debug console noise. :( When running from the studio, you can also right-click and activate WebKit's inspector, however the console in there has been a bit flaky in my experience.
[edit] Packaging
One of Appcelerator's extra goodies for the Titanium platform is hosted package/installer building and distribution. If you're not, you know, StatusNet Inc, it probably won't let you upload build packages under our package's id. :)
However you should be able to recreate the project under your account, with your own application ID, slap all the source code in, and be ready to go. You also should be able to build packages locally, but I'm not sure offhand how to do it.