Hi Marc,
Finally I have a reasonably stable version of an Android REPL that matches the iOS version that accompanied Gambit v4.6.2, and am working toward v4.6.5.
In testing the UI changes, I ran across some interesting Android problems around trying to evaluate Javascript synchronously. I think I have that fixed now, and so keeping the iOS and Android user interfaces synced via webviews continues to look viable (if a bit painful at times). I'll try to take some time to play with the Sencha Touch stuff and come up to speed on it, if you think that represents a better way to go forward with the UI.
Before pushing anything to github I wanted to ask if you had any additional thoughts about structuring and maintaining these iOS and Android versions. I had planned to just create examples/android, but I wonder if you now want to decouple these from the main Gambit release as "apps" or "contrib" or something, as you indicated below.
My changes to scheme code are restricted to intf.scm and program.scm. I have one C source file (gambit-android-jni.c) for the JNI (Java to native code interface) stuff, and of course I don't use AppDelegate.m/h or ViewController.m/h.
I'll include build scripts and instructions for build via Ant and Eclipse. The source layout for Gambit for Android looks like:
├── assets ├── bin │ ├── classes │ │ └── org │ │ └── keithflower │ │ └── gambit │ └── res │ ├── drawable-hdpi │ ├── drawable-ldpi │ └── drawable-mdpi ├── gen │ └── org │ └── keithflower │ └── gambit ├── libs │ └── armeabi ├── obj │ └── local │ └── armeabi │ ├── objs │ │ └── gambit │ └── objs-debug │ └── gambit ├── res │ ├── drawable-hdpi │ ├── drawable-ldpi │ ├── drawable-mdpi │ ├── layout │ ├── menu │ └── values └── src └── org └── keithflower └── gambit
Regards,
Keith
On Mar 12, 2012, at 12:10 PM, Marc Feeley wrote:
On 2012-03-12, at 2:38 PM, Keith Flower wrote:
For my little Gambit for Android app
https://play.google.com/store/apps/details?id=org.keithflower.gambit
the GUI is Java, Gambit is compiled with the Android Native Development Kit, and JNI is the bridge.
I'm testing to release a new version that incorporates all of Marc's nice recent iOS changes.
That's nice to hear.
I've has several inquiries about using Gambit to develop iOS apps, and some people are attracted by the possibility of easily porting Gambit apps between mobile platforms. I also looked into this in the context of the Hacking Health hackathon, and even got the Sencha Touch toolkit (http://www.sencha.com/products/touch) working with Gambit REPL. It is a simple way of developing native-looking mobile applications. Rewriting the Gambit REPL user-interface with Sencha Touch would make the UI identical on iOS and Android, and allow other developers to eaily build nice UIs with it, without using native methods.
It would be nice if we could find a way to merge the source codes so that we can keep the iOS and Android versions in sync more easily. Perhaps Gambit REPL has grown too much in complexity to qualify as an iOS "example" and it should be in a separate category (app? product? software? contrib?) and then it would make sense to support more than iOS.
I'm open to the idea of giving write access to the git repository to motivated contributors. So if you are motivated please let me know.
Marc