Quick Start
- Install Android SDK and Eclipse plugin: http://code.google.com/android/intro/installing.html
- Check out repositories
- https://code.dimagi.com/svn/rapidandroid/trunk/org.rapidandroid/
- https://code.dimagi.com/svn/rapidandroid/trunk/org.rapidsms.java/
- Right click on the org.rapidandroid project and run as -> android!
- For reference, the Android source repository is here: http://android.git.kernel.org/
Getting your Eclipse environment setup
So, we've broken the system down to two projects: trunk/rapidandroid/org.rapidandroid and
trunk/rapidjava/org.rapidsms.java
I've been following the JavaRosa eclipse environment instructions in getting my eclipse projects setup.
But the gist is, is you must checkout the org.rapidandroid and org.rapidsms.java into two separate directories.
Once checked out, eclipse should be able to recognize them as full fledged Eclipse projects.
From Subclipse, I just do a "check out as project" for each directory individually.
If they're both in your workspace all the dependencies from org.rapidsms.java that rapidandroid depends on will automagically be set ok.
Using the Code
The svn repository URL is:
https://code.dimagi.com/svn/rapidandroid/trunk
Note, your browser might scream at the certificate, don't worry, it's just us :)
The latest code is now on github!
http://github.com/dimagi/rapidandroid
The meat of the Android code is in trunk/rapidandroid/org.rapidandroid
This contains all the Android specific code. In eclipse you can check this out as an existing project and it'll be picked up as an Android application.
Note however, because it is an android project, there is a bit of a conflict when you check out from system to system. My original environment calls upon the android SDK in a certain path. This actually gets checked in at the moment so, if you're in a separate OS or have the android sdk path somewhere else, it might complain on checkout. This may need to be refactored in short order.
Also there's a dependency on a section of pure java code found in trunk/rapidjava
Check out the org.rapidsms.java as a separate project in your workspace and make sure the android project has knowledge of its existence.
in trunk/django, there's a simple django project that allows for the simple maintenance of form field and type definitions. There are some simple scripts for outputting the sql statement debugs as well as JSON representations of the data for bootstrap purposes.
Other things to note
Android has an excellent test framework put in place, however it's not readily clear (to me) how it integrates with Eclipse. Tests dependent on the android test classes don't run normally in JUnit, instead you need to run the adb command to run the tests off the emulator to test it within the Android context.
As such, there's a batch file that calls all the tests within the unittests/ directory in the Android project. It doesn't give you good debug interactibility, but with some filters you can at least see printouts in the DDMS->LogCat output window.
When wanting to debug tests, you'll need to make sure that the emulator (or your phone) has the latest code you just edited deployed onto it. My current method is to actually tell eclipse to debug the App, see it start up on the screen, then fire up the tests by running the runall.bat file. Then it'll connect to the process and run the tests.