I've temporarily given up on using Gambit on Android as it seems to fail almost immediately. I have now downloaded the IOS version. Am I correct that there is no way to access any IOS SDK functions? For example, it appears that set-webView-content is not there (as it is in the Android version). I presume this is due to Apple's restrictions on apps. Perhap someone has a version for jailbroken devices?
Also when I type (exit) in the REPL on IOS, I get: "To exit, press the sleep button for 5 seconds then the home button for 10 seconds." What is that all about?
Afficher les réponses par date
Hi,
The Gambit mobile app is not designed to develop other mobile apps with a GUI. For that you will need to work with the desktop version and interface the GUI elements with gambit FFI (interface between Gambit and C). Once you have such an interface with the native GUI widgets you can develop you app interactively on the device (if you run a remote REPL on the device) or in a simulator and at the end you compile your scheme program to C and package the whole thing.
The LambdaNative project (that Marc pointed to you) provides you with all the stuff you need to develop a multi-platform app (supporting at least Android and iOS). The only caveat is that to be multiplatform they had to develop their own set of widgets (in OpenGL) so the apps don’t use the native widgets. It is a great starting point anyway since it will give you the scripts needed to build and package apps for all platforms.
I hope this explains you more the options you have.
François Magnan
On 2013-12-05, at 22:33, Fuchs Ira ihf@bit.net wrote:
I've temporarily given up on using Gambit on Android as it seems to fail almost immediately. I have now downloaded the IOS version. Am I correct that there is no way to access any IOS SDK functions? For example, it appears that set-webView-content is not there (as it is in the Android version). I presume this is due to Apple's restrictions on apps. Perhap someone has a version for jailbroken devices?
Also when I type (exit) in the REPL on IOS, I get: "To exit, press the sleep button for 5 seconds then the home button for 10 seconds." What is that all about?
Gambit-list mailing list Gambit-list@iro.umontreal.ca https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
Thank, that is very helpful. My problem now is that I can't get the version of Gambit for Android to work on my Samsung S4 running 4.2. It runs on the Nexus 7 but freezes almost immediately on the phone.
On Dec 6, 2013, at 9:04 AM, Francois Magnan wrote:
Hi,
The Gambit mobile app is not designed to develop other mobile apps with a GUI. For that you will need to work with the desktop version and interface the GUI elements with gambit FFI (interface between Gambit and C). Once you have such an interface with the native GUI widgets you can develop you app interactively on the device (if you run a remote REPL on the device) or in a simulator and at the end you compile your scheme program to C and package the whole thing.
The LambdaNative project (that Marc pointed to you) provides you with all the stuff you need to develop a multi-platform app (supporting at least Android and iOS). The only caveat is that to be multiplatform they had to develop their own set of widgets (in OpenGL) so the apps don’t use the native widgets. It is a great starting point anyway since it will give you the scripts needed to build and package apps for all platforms.
I hope this explains you more the options you have.
François Magnan
On 2013-12-05, at 22:33, Fuchs Ira ihf@bit.net wrote:
I've temporarily given up on using Gambit on Android as it seems to fail almost immediately. I have now downloaded the IOS version. Am I correct that there is no way to access any IOS SDK functions? For example, it appears that set-webView-content is not there (as it is in the Android version). I presume this is due to Apple's restrictions on apps. Perhap someone has a version for jailbroken devices?
Also when I type (exit) in the REPL on IOS, I get: "To exit, press the sleep button for 5 seconds then the home button for 10 seconds." What is that all about?
Gambit-list mailing list Gambit-list@iro.umontreal.ca https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
On Dec 5, 2013, at 10:33 PM, Fuchs Ira ihf@bit.net wrote:
I've temporarily given up on using Gambit on Android as it seems to fail almost immediately. I have now downloaded the IOS version. Am I correct that there is no way to access any IOS SDK functions? For example, it appears that set-webView-content is not there (as it is in the Android version). I presume this is due to Apple's restrictions on apps. Perhap someone has a version for jailbroken devices?
Also when I type (exit) in the REPL on IOS, I get: "To exit, press the sleep button for 5 seconds then the home button for 10 seconds." What is that all about?
Gambit-list mailing list Gambit-list@iro.umontreal.ca https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
The source code for the Gambit REPL app is in the Gambit sources (subdirectory contrib/Gambit-REPL), and you are free to compile it yourself and install it on your device, possibly after modifying it. The file intf.scm (and intf#.scm) implement the interface to iOS. So you can set the webView content by calling intf#set-textView-content . The documentation for this function had to be removed from the app for the app to be approved. If you want to know more, please read intf.scm . In particular, you will see the redefinition of the ##exit procedure:
;; Make it impossible to quit the application with a call to "exit" or ;; with a ",q" from the REPL. This is needed to conform to the iOS ;; Developer Program License Agreement (I don't know which section ;; but I remember it had to do with the iOS human interface design).
(set! ##exit (lambda (#!optional (status 0)) (error "To exit, press the sleep button for 5 seconds then the home button for 10 seconds")))
Basically, the iOS human interface design prevents an application from quitting to give the illusion that applications are always "running".
You could
(set! ##exit (lambda (#!optional (status 0)) (##exit-with-err-code (+ code 1)))
to regain the ability to exit.
Just to be clear, I know the message "To exit, press the sleep button for 5 seconds then the home button for 10 seconds" is ironic. It does obey the iOS human interface design rules (in the legal sense of "obey"), but obviously it violates much more basic design principles.
Marc
With regard to Gambit not working (at least on Android v4.2 Samsung S4), I can attempt to rebuild it but I'm not sure that I am up to debugging it so I'm not sure what I would gain by simply compiling and installing unless it has been fixed but never replaced on the Play Store.
On Dec 6, 2013, at 9:52 AM, Marc Feeley wrote:
On Dec 5, 2013, at 10:33 PM, Fuchs Ira ihf@bit.net wrote:
I've temporarily given up on using Gambit on Android as it seems to fail almost immediately. I have now downloaded the IOS version. Am I correct that there is no way to access any IOS SDK functions? For example, it appears that set-webView-content is not there (as it is in the Android version). I presume this is due to Apple's restrictions on apps. Perhap someone has a version for jailbroken devices?
Also when I type (exit) in the REPL on IOS, I get: "To exit, press the sleep button for 5 seconds then the home button for 10 seconds." What is that all about?
Gambit-list mailing list Gambit-list@iro.umontreal.ca https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
The source code for the Gambit REPL app is in the Gambit sources (subdirectory contrib/Gambit-REPL), and you are free to compile it yourself and install it on your device, possibly after modifying it. The file intf.scm (and intf#.scm) implement the interface to iOS. So you can set the webView content by calling intf#set-textView-content . The documentation for this function had to be removed from the app for the app to be approved. If you want to know more, please read intf.scm . In particular, you will see the redefinition of the ##exit procedure:
;; Make it impossible to quit the application with a call to "exit" or ;; with a ",q" from the REPL. This is needed to conform to the iOS ;; Developer Program License Agreement (I don't know which section ;; but I remember it had to do with the iOS human interface design).
(set! ##exit (lambda (#!optional (status 0)) (error "To exit, press the sleep button for 5 seconds then the home button for 10 seconds")))
Basically, the iOS human interface design prevents an application from quitting to give the illusion that applications are always "running".
You could
(set! ##exit (lambda (#!optional (status 0)) (##exit-with-err-code (+ code 1)))
to regain the ability to exit.
Just to be clear, I know the message "To exit, press the sleep button for 5 seconds then the home button for 10 seconds" is ironic. It does obey the iOS human interface design rules (in the legal sense of "obey"), but obviously it violates much more basic design principles.
Marc
On Dec 6, 2013, at 10:11 AM, Fuchs Ira ihf@bit.net wrote:
With regard to Gambit not working (at least on Android v4.2 Samsung S4), I can attempt to rebuild it but I'm not sure that I am up to debugging it so I'm not sure what I would gain by simply compiling and installing unless it has been fixed but never replaced on the Play Store.
I am almost certain that the instability is due to a bug that was fixed on June 2, 2013 (see https://github.com/feeley/gambit/commit/d85d0fff8e80699aa190354da757f001f4f5...). So the app's stability may improve if you compile Gambit for Android with the head of the master branch. In fact, that reminds me that I should also update Gambit REPL for iOS.
Marc
I have never tried to compile Gambit (although I'm willing to try) so if you find the time, it would be great if you could also update the Play Store instance. That way, anyone who has downloaded it to date will get the updated version.
Thanks!
On Dec 6, 2013, at 10:39 AM, Marc Feeley wrote:
On Dec 6, 2013, at 10:11 AM, Fuchs Ira ihf@bit.net wrote:
With regard to Gambit not working (at least on Android v4.2 Samsung S4), I can attempt to rebuild it but I'm not sure that I am up to debugging it so I'm not sure what I would gain by simply compiling and installing unless it has been fixed but never replaced on the Play Store.
I am almost certain that the instability is due to a bug that was fixed on June 2, 2013 (see https://github.com/feeley/gambit/commit/d85d0fff8e80699aa190354da757f001f4f5...). So the app's stability may improve if you compile Gambit for Android with the head of the master branch. In fact, that reminds me that I should also update Gambit REPL for iOS.
Marc
On Dec 6, 2013, at 10:58 AM, Fuchs Ira ihf@bit.net wrote:
I have never tried to compile Gambit (although I'm willing to try) so if you find the time, it would be great if you could also update the Play Store instance. That way, anyone who has downloaded it to date will get the updated version.
Unfortunately, I'm not the developer of Gambit for Android. Perhaps Keith Flower can help.
Keith, I recall that you got Gambit for Android compiling with Gambit v4.7.0 this summer. Can you try compiling with the head of the master branch, and uploading it to the Play Store? I think it will improve stability.
Marc
Hi Marc,
Sorry to be seeing this a bit late - I’ll try to get some time and take a look.
Regards,
Keith
On Dec 6, 2013, at 8:54 AM, Marc Feeley feeley@iro.umontreal.ca wrote:
On Dec 6, 2013, at 10:58 AM, Fuchs Ira ihf@bit.net wrote:
I have never tried to compile Gambit (although I'm willing to try) so if you find the time, it would be great if you could also update the Play Store instance. That way, anyone who has downloaded it to date will get the updated version.
Unfortunately, I'm not the developer of Gambit for Android. Perhaps Keith Flower can help.
Keith, I recall that you got Gambit for Android compiling with Gambit v4.7.0 this summer. Can you try compiling with the head of the master branch, and uploading it to the Play Store? I think it will improve stability.
Marc
On Fri, Dec 06, 2013 at 09:52:47AM -0500, Marc Feeley wrote:
The source code for the Gambit REPL app is in the Gambit sources (subdirectory contrib/Gambit-REPL), and you are free to compile it yourself and install it on your device, possibly after modifying it. The file intf.scm (and intf#.scm) implement the interface to iOS. So you can set the webView content by calling intf#set-textView-content .
The documentation for this function had to be removed from the app
for the app to be approved.
Did they really insist in removing the documentation, but not on removing the feature?
Does the right hand know what the left hand is doing? Or is there some kind of sense in these requirements?
-- hendrik
On Dec 6, 2013, at 12:06 PM, Hendrik Boom hendrik@topoi.pooq.com wrote:
On Fri, Dec 06, 2013 at 09:52:47AM -0500, Marc Feeley wrote:
The source code for the Gambit REPL app is in the Gambit sources (subdirectory contrib/Gambit-REPL), and you are free to compile it yourself and install it on your device, possibly after modifying it. The file intf.scm (and intf#.scm) implement the interface to iOS. So you can set the webView content by calling intf#set-textView-content .
The documentation for this function had to be removed from the app
for the app to be approved.
Did they really insist in removing the documentation, but not on removing the feature?
Does the right hand know what the left hand is doing? Or is there some kind of sense in these requirements?
I'm not supposed to talk about the app approval process. Sorry!
My contribution in this project is simply to demonstrate the limits of what is acceptable to Apple in terms of a programming language interpreter on iOS. I have tried to put as many features as possible. I even implemented functionality for easily sharing Scheme scripts that unfortunately had to be disabled (even though you can cut-and-paste scripts from email, wep pages, etc... go figure!).
Marc