How can I run python script in android studio with java [duplicate] - java
This question's answers are a community effort. Edit existing answers to improve this post. It is not currently accepting new answers or interactions.
We are working on an S60 version and this platform has a nice Python API..
However, there is nothing official about Python on Android, but since Jython exists, is there a way to let the snake and the robot work together??
One way is to use Kivy:
Open source Python library for rapid development of applications
that make use of innovative user interfaces, such as multi-touch apps.
Kivy runs on Linux, Windows, OS X, Android and iOS. You can run the same [python] code on all supported platforms.
Kivy Showcase app
There is also the new Android Scripting Environment (ASE/SL4A) project. It looks awesome, and it has some integration with native Android components.
Note: no longer under "active development", but some forks may be.
Yes! : Android Scripting Environment
An example via Matt Cutts via SL4A -- "here’s a barcode scanner written in six lines of Python code:
import android
droid = android.Android()
code = droid.scanBarcode()
isbn = int(code['result']['SCAN_RESULT'])
url = "http://books.google.com?q=%d" % isbn
droid.startActivity('android.intent.action.VIEW', url)
Pygame Subset for Android
Pygame is a 2D game engine for Python (on desktop) that is popular with new programmers. The Pygame Subset for Android describes itself as...
...a port of a subset of Pygame functionality to the Android platform. The goal of the project is to allow the creation of Android-specific games, and to ease the porting of games from PC-like platforms to Android.
The examples include a complete game packaged as an APK, which is pretty interesting.
As a Python lover and Android programmer, I'm sad to say this is not a good way to go. There are two problems:
One problem is that there is a lot more than just a programming language to the Android development tools. A lot of the Android graphics involve XML files to configure the display, similar to HTML. The built-in java objects are integrated with this XML layout, and it's a lot easier than writing your code to go from logic to bitmap.
The other problem is that the G1 (and probably other Android devices for the near future) are not that fast. 200 MHz processors and RAM is very limited. Even in Java, you have to do a decent amount of rewriting-to-avoid-more-object-creation if you want to make your app perfectly smooth. Python is going to be too slow for a while still on mobile devices.
Scripting Layer for Android
SL4A does what you want. You can easily install it directly onto your device from their site, and do not need root.
It supports a range of languages. Python is the most mature. By default, it uses Python 2.6, but there is a 3.2 port you can use instead. I have used that port for all kinds of things on a Galaxy S2 and it worked fine.
API
SL4A provides a port of their android library for each supported language. The library provides an interface to the underlying Android API through a single Android object.
from android import Android
droid = Android()
droid.ttsSpeak('hello world') # example using the text to speech facade
Each language has pretty much the same API. You can even use the JavaScript API inside webviews.
let droid = new Android();
droid.ttsSpeak("hello from js");
User Interfaces
For user interfaces, you have three options:
You can easily use the generic, native dialogues and menus through the
API. This is good for confirmation dialogues and other basic user inputs.
You can also open a webview from inside a Python script, then use HTML5
for the user interface. When you use webviews from Python, you can pass
messages back and forth, between the webview and the Python process that
spawned it. The UI will not be native, but it is still a good option to
have.
There is some support for native Android user interfaces, but I am not
sure how well it works; I just haven't ever used it.
You can mix options, so you can have a webview for the main interface, and still use native dialogues.
QPython
There is a third party project named QPython. It builds on SL4A, and throws in some other useful stuff.
QPython gives you a nicer UI to manage your installation, and includes a little, touchscreen code editor, a Python shell, and a PIP shell for package management. They also have a Python 3 port. Both versions are available from the Play Store, free of charge. QPython also bundles libraries from a bunch of Python on Android projects, including Kivy, so it is not just SL4A.
Note that QPython still develop their fork of SL4A (though, not much to be honest). The main SL4A project itself is pretty much dead.
Useful Links
SL4A Project (now on GitHub): https://github.com/damonkohler/sl4a
SL4A Python 3 Port: https://code.google.com/p/python-for-android/wiki/Python3
QPython Project: http://qpython.com
Learn SL4A (Tutorialspoint): https://www.tutorialspoint.com/sl4a/index.htm
Cross-Compilation & Ignifuga
My blog has instructions and a patch for cross compiling Python 2.7.2 for Android.
I've also open sourced Ignifuga, my 2D Game Engine. It's Python/SDL based, and it cross compiles for Android. Even if you don't use it for games, you might get useful ideas from the code or builder utility (named Schafer, after Tim... you know who).
Termux
You can use the Termux app, which provides a POSIX environment for Android, to install Python.
Note that apt install python will install Python3 on Termux. For Python2, you need to use apt install python2.
Some demos: https://www.youtube.com/watch?v=fqqsl72mASE
The GitHub project: https://github.com/termux
Kivy
I wanted to add to what #JohnMudd has written about Kivy. It has been years since the situation he described, and Kivy has evolved substantially.
The biggest selling point of Kivy, in my opinion, is its cross-platform compatibility. You can code and test everything using any desktop environment (Windows/*nix etc.), then package your app for a range of different platforms, including Android, iOS, MacOS and Windows (though apps often lack the native look and feel).
With Kivy's own KV language, you can code and build the GUI interface easily (it's just like Java XML, but rather than TextView etc., KV has its own ui.widgets for a similar translation), which is in my opinion quite easy to adopt.
Currently Buildozer and python-for-android are the most recommended tools to build and package your apps. I have tried them both and can firmly say that they make building Android apps with Python a breeze. Their guides are well documented too.
iOS is another big selling point of Kivy. You can use the same code base with few changes required via kivy-ios Homebrew tools, although Xcode is required for the build, before running on their devices (AFAIK the iOS Simulator in Xcode currently doesn't work for the x86-architecture build). There are also some dependency issues which must be manually compiled and fiddled around with in Xcode to have a successful build, but they wouldn't be too difficult to resolve and people in Kivy Google Group are really helpful too.
With all that being said, users with good Python knowledge should have no problem picking up the basics quickly.
If you are using Kivy for more serious projects, you may find existing modules unsatisfactory. There are some workable solutions though. With the (work in progress) pyjnius for Android, and pyobjus, users can now access Java/Objective-C classes to control some of the native APIs.
Using SL4A (which has already been mentioned by itself in other answers) you can run a full-blown web2py instance (other python web frameworks are likely candidates as well). SL4A doesn't allow you to do native UI components (buttons, scroll bars, and the like), but it does support WebViews. A WebView is basically nothing more than a striped down web browser pointed at a fixed address. I believe the native Gmail app uses a WebView instead of going the regular widget route.
This route would have some interesting features:
In the case of most python web frameworks, you could actually develop and test without using an android device or android emulator.
Whatever Python code you end up writing for the phone could also be put on a public webserver with very little (if any) modification.
You could take advantage of all of the crazy web stuff out there: query, HTML5, CSS3, etc.
Not at the moment and you would be lucky to get Jython to work soon. If you're planning to start your development now you would be better off with just sticking to Java for now on.
QPython
I use the QPython app. It's free and includes a code editor, an interactive interpreter and a package manager, allowing you to create and execute Python programs directly on your device.
Here are some tools listed in official python website
There is an app called QPython3 in playstore which can be used for both editing and running python script.
Playstore link
Another app called Termux in which you can install python using command
pkg install python
Playstore Link
If you want develop apps , there is Python Android Scripting Layer (SL4A) .
The Scripting Layer for Android, SL4A, is an open source application that allows programs written in a range of interpreted languages to run on Android. It also provides a high level API that allows these programs to interact with the Android device, making it easy to do stuff like accessing sensor data, sending an SMS, rendering user interfaces and so on.
You can also check PySide for Android, which is actually Python bindings for the Qt 4.
There's a platform called PyMob where apps can be written purely in Python and the compiler tool-flow (PyMob) converts them in native source codes for various platforms.
Also check python-for-android
python-for-android is an open source build tool to let you package Python code into standalone android APKs. These can be passed around, installed, or uploaded to marketplaces such as the Play Store just like any other Android app. This tool was originally developed for the Kivy cross-platform graphical framework, but now supports multiple bootstraps and can be easily extended to package other types of Python apps for Android.
Try Chaquopy
A Python SDK for Android
Anddd... BeeWare
BeeWare allows you to write your app in Python and release it on multiple platforms. No need to rewrite the app in multiple programming languages. It means no issues with build tools, environments, compatibility, etc.
From the Python for android site:
Python for android is a project to create your own Python distribution including the modules you want, and create an apk including python, libs, and your application.
Chaquopy
Chaquopy is a plugin for Android Studio's Gradle-based build system. It focuses on close integration with the standard Android development tools.
It provides complete APIs to call Java from Python or Python from Java, allowing the developer to use whichever language is best for each component of their app.
It can automatically download PyPI packages and build them into an app, including selected native packages such as NumPy.
It enables full access to all Android APIs from Python, including the native user interface toolkit (example pure-Python activity).
This used to be a commercial product, but it's now free and open-source.
(I am the creator of this product.)
Yet another attempt: https://code.google.com/p/android-python27/
This one embed directly the Python interpretter in your app apk.
You can run your Python code using sl4a. sl4a supports Python, Perl, JRuby, Lua, BeanShell, JavaScript, Tcl, and shell script.
You can learn sl4a Python Examples.
You can use QPython:
It has a Python Console, Editor, as well as Package Management / Installers
http://qpython.com/
It's an open source project with both Python 2 and Python 3 implementations. You can download the source and the Android .apk files directly from github.
QPython 2: https://github.com/qpython-android/qpython/releases
QPython 3: https://github.com/qpython-android/qpython3/releases
Another option if you are looking for 3.4.2 or newer (3.9.6 as of this writing) is this archive on GitHub.
Python3-Android 3.4.2 or Python3-Android 3.9.6
I believe the original archive supports Python 3.4.2, the latest GRRedwings branch support 3.9.6 and the 22b version of the NDK. Older branches support other versions, but are not as easy to compile with docker.
The older version you simply clone the archive, run make and you get the .so or the .a
The newer versions follow the ReadMe, but it uses docker for consistent builds.
I currently use this to run raw Python on android devices. With a couple modifications to the build files you can also make x86 and armeabi 64 bit
Take a look at BeeWare. It has grown significantly. It is awarded with PSF (Python Software Foundation) Education Grant.
Beeware's aim is to be able to create native apps with Python for all supported operating systems, including Android.
Official Website: Beeware
Github Repo: https://github.com/beeware
Didn't see this posted here, but you can do it with Pyside and Qt now that Qt works on Android thanks to Necessitas.
It seems like quite a kludge at the moment but could be a viable route eventually...
http://qt-project.org/wiki/PySide_for_Android_guide
One more option seems to be pyqtdeploy which citing the docs is:
a tool that, in conjunction with other tools provided with Qt, enables
the deployment of PyQt4 and PyQt5 applications written with Python
v2.7 or Python v3.3 or later. It supports deployment to desktop
platforms (Linux, Windows and OS X) and to mobile platforms (iOS and
Android).
According to Deploying PyQt5 application to Android via pyqtdeploy and Qt5 it is actively developed, although it is difficult to find examples of working Android apps or tutorial on how to cross-compile all the required libraries to Android. It is an interesting project to keep in mind though!
Check out enaml-native which takes the react-native concept and applies it to python.
It lets users build apps with native Android widgets and provides APIs to use android and java libraries from python.
It also integrates with android-studio and shares a few of react's nice dev features like code reloading and remote debugging.
Related
Using existing Java code with React Native
I'm pretty new to React Native and mobile development in general. But I have a simple Java library with junit tests and I want to do one of two things: 1) I want to convert this Java code to be used naturally with React Native for development on iOS and Android. 2) I want to use this java code to be used only with Android in a native-hybrid application. I probably have a few gaps in my understanding of how all this works. I understand that Java is native for Android, and therefore is only used for Android development. React native bridges the cross-platform gap to decompile react native code into platform specific code. If I wanted to use my Java code for development on iOS, does that happen through Native Modules? Is it possible to do regardless? If it is only to be used on Android (which is fine), is using the setup described in the Native Modules section on React Native's website the way to go? Thanks!
As far as I know, You cannot directly deploy code written by java to both Android and IOS in react-native. You can do it only for Android specific parts in react-native. If you want to use it as IOS compatible, you need to write a native module from IOS natives. If u want to deploy your native Android module you can follow this https://hackernoon.com/first-experiences-with-react-native-bridging-an-android-native-module-for-app-authentication-501fec247b2b detailed example If u want to create both android and IOS native modules u can follow this https://medium.com/#FizzyInTheHall/writing-a-react-native-bridge-library-bce5b90ea6d0 example
What are the limitations of Python on Android?
I am getting ready to start a little Android development and need to choose a language. I know Python but would have to learn Java. I'd like to know from those of you who are using Python on Android what the limitations are. Also, are there any benefits over Java?
Most of the points mentioned by Andrew stand, I just wanted to mention that python can be and is used for full fledged Apps published on GooglePlay and even iOS. I can't speak for other frameworks but here are some examples of Apps published using Kivy. Process Craft Google Play iOS Fantasy War hammer PreseMT is a multitouch presentation maker Memo robots Ground Truth Kaleidoscope Showcase demo example from Kivy project DefelectTouch game iOS Bargenius and many more... On Packaging we have tried to make it as simple as possible, we also provide A pre-built VM that can be used to make your apk with you having to do nothing except copying your project dir over and running one command. On GUI, yes the ui is custom, by default(tries to match Android's Holo theme). However it can be customised to resemble other look and feels, although I haven't tried it personally. Oh and as long as one is talking about python based apps on android, I found this project mentioned on stackoverflow PyMob, their apps page mentions some interesting apps .
I investigated this recently for similar reasons. My conclusions were that I could not use Python to develop a native-looking application, which is what I wanted at the time. Specifically: Python can't receive callbacks from the Java UI classes, so you can't use any native Java UI elements such as ListView, etc. Only dialog boxes etc. are easily available. If you have a totally custom UI such as a game, you can try PyGame for Android, or you could look at Kivy, which also uses PyGame. Packaging of Python applications is very difficult, especially because the Python interpreter is not included on Android by default. The Kivy and PyGame teams are making some intermittent progress on this. Because of the aforementioned issues, Python is essentially never used to make full fledged applications published in the app store, and so the literature on how to handle the many sundry issues with SL4A (Scripting Layer For Android) is very thin. So, if you want to make an application that uses native UI elements, that you can actually distribute in the Play Store, or both, Python is regrettably not an option.
I have developed Android Apps on the market, coded in Python. Downsides: Thus far my users must download the interpreter as well, but they are immediately prompted to do so. (UPDATE: See comment below.) The script does not exit properly, so I include a webView page that asks them to goto:Settings:Apps:ForceClose if this issue occurs.
Android SDK over cross platform
I am trying to install Android on Beagleboard (TI's OMAP35x chip). They have provided toolchain to build the OS and port it on the chip. Now the next question is developing Android apps. I am interested in knowing about the Java SDK for android. So can I use the standard SDK provided by google, so far I cannot find any SDK provided by TI for Java. Putting it in simple terms, will an application developed on standard Android SDK work on beagleboard.
For embedded the development with Android in general the standard SDK should work, that is the beauty of Android and having a well defined set of API:s. This requires that the port you are using is relatively complete but for the Beagle Board that should be the case. You can run the compatibility test suite from the open source project in order to find out the compliance with the standard SDK but to get started that should not be necessary. It is often a little more tricky to setup adb with a dev board compared to phone but once you get the communication channel working then Android development can be done in the same way as with a regular phone, that is using the standard SDK and adb tools. The only caveats may be for API:s that require hardware that is not supported by your dev board such as a modem etc. It is also possible to support custom API:s for a specific piece of hardware by using an SDK add-on instead of having companies like TI distribute entire SDK:s. I have not seen this used very much so far and the standard API:s covers a lot of what one may need. But I think we will see more of it as Android is adopted for use cases outside the smartphone space.
Yes it will. I'm not sure about remote debugging tho (ADB).
How can one develop iPhone apps in Java? [closed]
Closed. This question needs to be more focused. It is not currently accepting answers. Want to improve this question? Update the question so it focuses on one problem only by editing this post. Closed 5 years ago. Improve this question I was wondering if is it possible to develop iPhone applications using Java plus XMLV, which claims to cross-compile Java-based Android applications to native iPhone applications. Is XMLV a viable way to develop iPhone applications using Java? Here are a few Java code examples used to build and application in an iPhone: http://www.xmlvm.org/iphone/#
I think we will have to wait a couple of years more to see more progress. However, there are now more frameworks and tools available: Here a list of 5 options: Codename One RoboVM <-- Closed Avian no maintainer XMLVM J2ObjC Multi-OS Engine not maintained
If you've completed your other projects, why not take the time to learn Objective-C? There is a ton of material out on the web to help you get started. Honestly, it won't be that hard and learning to do some memory management will be a great learning exercise. Have you programmed in C before? Most cross compilers won't do a great job in converting your code, and debugging your project may become much more difficult if you develop them this way.
I think your teacher sent you down the wrong path. This is a classic example of trying to put a square peg into a round hole. The best way to develop for the iPhone is with the iPhone SDK and objective C. The best way to develop for Andriod is Java and the Android SDK. The best way to develop for WinMobile is C#/VB and the .Net Framework. As you can see each has their own "best" SDK. Since you are only learning Java I would second the suggestion to play around with Java and Android.
There is anew tool called Codename one: One SDK based on JAVA to code in WP8, Android, iOS with all extensive features Features: Full Android environment with super fast android simulator An iPhone/iPad simulator with easy to take iPhone apps to large screen iPad in minutes. Full support for standard java debugging, profiling for apps on any platform. Easy themeing / styling – Only a click away More at Develop Android, iOS iPhone, WP8 apps using Java
take a look at codenameone.com project, it's a cross platform mobile framework where the ui part is a fork of LWUIT. This project leverage xmlvm to translates the java bytes code to Objective C
You can also take a look at RoboVM. It translates Java byte-code into native ARM or x86 code which can run directly on the processor without any VM or interpreter needed. Most of the Obj-C UI elements are already bridged into Java and follows the usual Java design patterns. Edit Robo VM recently announced that it would be shutting down the service - Source
You need to know at least basics of Objective-C to develop for iPhone. However, it is possible to use C++ classes. As far as I know Adobe is working on building Flex/Flash applications for iPhone. Read more here: http://theflashblog.com/?p=1513
You can't. Note however that Monotouch allows you to develop in C# instead of Objective-C. http://monotouch.net/
If you plan on integrating app functionality with a website, I'd highly recommend the GWT + PhoneGap model: http://blog.daniel-kurka.de/2012/02/mgwt-and-phonegap-talk-at-webmontag-in.html http://turbomanage.wordpress.com/2010/09/24/gwt-phonegap-native-mobile-apps-quickly/ Here's my two cents from my own experience: We use the same Java POJOs for our Hibernate database, our REST API, our website, and our iPhone app. The workflow is simple and beautiful: Database ---1---> REST API ---2---> iPhone App / Website 1: Hibernate 2: GSON Serialization and GWT JSON Deserialization There is another benefit to this approach as well - any Java code that can be compiled with GWT and any JavaScript library become available for use in your iPhone app.
I'm answering this question 2 years down the line and I must stress that I did have pretty much the same problem as you did. However I'm so happy that Android has evolved into what it is today. Having said that, I do regret that I did not learn C/C++ while I could have and I don't want to blame my teachers for it cos where was my brain when the time was right? I'm sunk in Java today and I'm glad that I did not make the mistake of learning too many languages and being less productive... However I did learn HTML5 which really made things a lot easier, maybe someday, I might get motivated to learn C/C++ . Or if I get an Apple mac at a real throw-away price, I might learn Objective-C :)
I think Google Open Sources Java To Objective-C Translator will make it possiblöe to develop in Java for iOS https://code.google.com/p/j2objc/
try to use TotalCross. It is a Java Framework to help devs create iOS and Android apps with only one source code. Different from the others platforms, it doesn't require any knowledge in iOS (Objective-C or Swift) nor Android (SDK or NDK) there is a maven integration https://gitlab.com/totalcross/TotalCross/wikis/building-with-maven
http://www.xmlvm.org/android/ Specifically talks about Java based Android apps being ported to the iPhone using non-Apple hardware. You might also want to check out MonoTouch (C# rather than Java...but the two are very similar).
Perhaps you should consider Android applications instead of iPhone applications if you really want to develop in Java for smartphones. Android natively uses Java for it's applications; so perhaps this might be a better option? As for iPhone, I would recommend you to look into Obj-C or C/C++ depending on the type of applications you want to make. Should be fun to dabble into a new language! :)
You can try iSpectrum ( get it at http://www.flexycore.com ) You'll be able to develop and debug your Java apps in Eclipse. You'll still need a Mac and XCode to launch it on the simulator, or install it on the real device, though. But you won't have to actually use XCode editor. Plus you can use it for free if you're planning to work on an open source project.
To add to this there's: http://www.oracle.com/technetwork/developer-tools/adf-mobile/overview/index.html A Java & HTML5 Based Framework for Developing Oracle ADF Mobile enables developers to build and extend enterprise applications for iOS and Android from a single code base. Based on a hybrid mobile architecture, ADF Mobile supports access to native device services, enables offline applications and protects enterprise investments from future technology shifts.
Even if the question states Java, most of the answers have digressed. So I thought I would do the same :) We have been using Adobe AIR for the last 5 years and it is truly cross-platform and provides native-like performance with the same code base (at least 99% of our code is the same). Adobe AIR got some bad press at the beginning during the 'beta' period (slow, no GPU, Flash 'dead' etc.) But now, it's amazing what you can do with it. Not to mention the wealth of open source libs out there. With the same code base you can push your app onto: iOS Android (x86 and ARM) Flash (still VERY useful) ChromeBook PC (as native with installer) Mac (as native with installer) Why bother with Java or Objective-C ? The only common platform not covered is Window Phone. But that's coming soon too.
Build a hybrid app. Anyways Java is not enough for a software engineer , you need to learn JS,HTML5,CSS as well for becoming a full stack mobile/app developer. Build the complete backend using Java & frontend using Cordova/Phonegap. I'm assuming you dont need the last drop of juice from the hardware even hybind app should suffice your needs. Build a responsive webapp using Bootstrap 4 + React JS. Use https://github.com/ipselon/structor to quickly build up the frontend. Now the web app becomes an app in the browser. You could also take the same app and build it using cordova to publish a app on ios/android platform.
Suggestions for an embeddable scripting language for iPhone and Java app?
I'm developing an app for iPhone with a Java desktop companion that it synchs to over the network. I'd like to embed a scripting language into both apps so that end users can write scripts that add new behaviours and interact with the object model, and so that I can more rapidly develop some features. Any suggestions for this, or anyone done this before and got experiences to share? I'm thinking of something like tcl which I've used in the past, but not tcl itself as I'm not a big fan of the language. Main criteria are that it should be lightweight as poss (memory usage) easy to interface and extend with java and objective-c (nice to have) readable/approachable for people with limited programming experience My initial hunch is that I should be using one of python, ruby, or lua. My preference would be ruby, as I already have some experience with it and don't know much about the others. However my main unknown is which of these is easiest to get integrated with iPhone and Java. edit 2: per Jason Coco in the comments, the SDK terms prohibit embedded scripting languages. Checking into this it does indeed seem to, but I read it to preclude dynamic installation and extension only. I would still be interested in answers here, as the agreement doesn't seem to preclude having prepackaged scripts inside the application bundle itself - Apple would still get to vet that code. The agreement also seems to allow use of Apples "interpreters"...what are these? Javascript and what else? Any route to use those here?
JavaScript As I understand the iPhone SDK Licence, there is nothing preventing you from using a scripting language in your app - just that you cannot intall any interpreters or runtimes of your own. You can only use those scripting languages for which Apple provides the interpreter in the SDK. Given that you want to run the same scripts in your iPhone app and in a Java app, the obvious choice is JavaScript. You can use Apple's APIs in your iPhone app, and something like Rhino (http://www.mozilla.org/rhino/) in your Java App. You have to be aware that there may be slight differences between the two interpreters in the more obscure regions of syntax or object model. P.S. I assume that users are going to be writing their own scripts to run on their own device/desktop. These would be part of the application data, and should be fine under Apple's licence
The only thing I've seen that allows a non-objective-c/c/c++ application to run on the iPhone is Unity3d (http://unity3d.com/unity/features/iphone-publishing) - BUT, it uses C# via Mono and does a full static compilation (http://tirania.org/blog/archive/2008/Nov-05.html) down to native code in order to do it. So, by the time the app is on the phone, it's no longer C# so it's allowed by Apple (and several apps have already made it into the App Store - so this does seem to be acceptable). I don't think you would be able to do the idea you're talking about even if you could do the equivalent for Java/Ruby/Lua/Python/other (so having your desktop app pre-compile and upload just the native code to the device). As far as I know, you can't execute code outside of your application bundle...and if you modify the application bundle, then you invalidate the codesigning Apple does which allows the app to run on your phone in the first place. So even if you could get executable code to the phone, I'm not sure that you would be able to run it if it didn't come along with the app in the first place.
I was researching this too, and it seems that it's possible to pre-compile a Lua script (by converting it to C using Lua and then compiling the C file). Because all of your code could then be part of the application bundle (including the embedded Lua interpreter), it should be acceptable as an iPhone app. See here for a discussion and sample script: http://lua-users.org/lists/lua-l/2008-11/msg00453.html *Note that I haven't tried this (yet)