I teach a basic computer class at a high school. For the last few years I have been teaching basic java. Next year I will have more students than computers. So I decided to try and find an IPad app that can be used, instead of PC. (All students now have IPads.) I tried a couple of java apps for the IPad, such as JVM. However, the ones I tried didn't have full functionality. Then I came across Pythonista at the app store. I have been working with it, and teaching myself Python, for the last few weeks. For the most part, I really like it. However, I am having a file sharing issue.
All staff and students have a school issued google drive account. It's easy to send a copy to google drive from the Pythonista folder structure. However, I can't figure out how to retrieve a file from google drive back to pythonista.
My degree is mathematics, so my computer knowledge is relatively limited. Can someone please point me to the easiest way for me and my students to share pythonista files? Thanks.
You can use dropbox to sync files between folder inside Pythonista and your computer since there is built in module and some exists sync examples (if you didn't found yet I can share mine). And then symlink on your desktop same folder to your Google Drive folder. Then you will get sync in both places that will point to one folder on disk on hard drive and both Dropbox and Google Drive clients will do the rest. I know this is looks like a workaround.
Other solutions will be make Google Drive client by yourself, you can starting with this documentation https://developers.google.com/drive/v3/web/quickstart/python
Thanks for responding.
Some things about programming on iOS that you should be aware of: Apple has some fairly strict limitations in their guidelines about executable code, which means that sadly there are certain features that programming apps are not allowed to support. Most importantly, execution of certain types of code (mainly compiled native code) and downloading of any executable code are not allowed, which is why there are no apps on the App Store that support it. In detail:
- Compilation and execution of native code is forbidden and also prevented by iOS (process forking is not permitted, and dynamic libraries must be signed by the app developer or they will not load) which is why you cannot easily port existing implementations of the JVM to iOS, as they generally include JIT compilation. Some programming apps get around this by uploading the user's code to a remote server and executing it there, however those usually have a limited execution time and support only simple code in a single file.
- Executing downloaded code is also forbidden. This is why programming apps are not allowed to have built-in iCloud Drive, Dropbox, Git, etc. integration or other integrated means of downloading code. Pythonista used to be a valid "Open In" target, but due to a "friendly" request from Apple that feature had to be removed. ("Friendly" as in "remove this within 48 hours or your app will be removed".) omz's Markdown editing app Editorial is scriptable in Python and supports Dropbox sync, but I think Python scripts are excluded from sync.
- The definition of "executable code" and what apps are and aren't allowed to run or download is very vague. Native code is obviously over the line, but with non-native languages like Java or Python things are less clear. Does Java bytecode count as "executable code"? What about Java source code? Interpreted languages like Python seem to be okay to execute, but not okay to download.
This situation makes writing code on iOS a bit difficult. Despite this, Pythonista is getting along quite well and is one of the most feature-rich programming apps available. It's a fairly powerful development environment (though of course not a full-blown IDE like PyCharm) with lots of scripts from the community that make development easier, such as the various Dropbox scripts or the simple Git client included in stash.
Long story short, getting code out of Pythonista is not a problem. Getting code into Pythonista or syncing with some kind of online storage requires the use of community scripts.
Thanks to everyone who responded. I followed the advice to use a community script. The script dropbox file picker worked just fine.
@dat2357 https://github.com/cclauss/read_from_Google_Drive will allow you to copy a single file from the Google Drive app into Pythonista via the share sheet. See the issues because it has some drawback (only one file at a time, etc.) but it works.