87

Is it possible to use Python to write cross-platform apps for both iOS and Android

Wolfgang Fahl
  • 13,612
  • 9
  • 84
  • 163
user1404932
  • 873
  • 1
  • 6
  • 5

5 Answers5

83

An option is kivy: a cool cross platform Python framework which works for Android, Win7, Linux, MacOSX and iOS.

Update: kivy project is growing daily, now supports also Raspberry Pi

Tordek
  • 10,370
  • 3
  • 34
  • 66
piertoni
  • 1,827
  • 1
  • 19
  • 28
30

For Android Google provides something called ASE (Android Scripting Environment) which allows scripting languages (Python included) to run on Android. More details here

For iOS, it might be quite a bit more complicated (and I'd advise to check the latest version of iOS SDK agreement to check the current state of the law - apple tends to allow & disallow such apps periodically). For the technical part you might need to interface between Python & Objective C as well as do some wizardry to statically link all the libraries Python requires; full details are available here. Another approach for iOS Python development would be to embed a Python interpreter into you app and distribute your Python script with it (so to play nicely with Apple rules). In this case your Python application would be a Python interpreter which is packaged with your script and runs it automatically.

Second option is to use Kivy framework(kivy.org) - it's a framework to write touch-friendly applications in Python and package them for different platforms. It's had Android support for a while, and recently added iOS support

Raheel
  • 4,723
  • 4
  • 32
  • 39
  • 31
    also this is precisely the aim of Kivy (http://kivy.org/) - it's a framework to write touch-friendly applications in Python and package them for different platforms. It's had Android support for a while, and recently added iOS support – Raheel May 19 '12 at 10:09
  • Python 3.3+ to iOS is not supported by Kivy yet. – Iorek Sep 24 '18 at 21:37
4

For writing a GUI applicaion you can use the Toga library,then package it with briefcase into a Android and/or iOS app (or Windows, Linux, macOS etc).

Note: the project is still in alpha state but under rapid development.

Swapnil
  • 2,362
  • 4
  • 25
  • 47
ocupe
  • 103
  • 6
2

You can try and combine and . The Brython wiki describes how to write an Android app using Brython, which might provide the necessary information to do this also using Cordova. I haven't tested this yet, but it sounds promising. You should however be aware that due to its nature, Brython cannot support x86-compiled packages such as OpenCV (see e.g. here). On the other hand, if you know a bit about JavaScript / HTML5, you can use the WebView native functions, e.g. http://www.brython.info/gallery/three.html.

Tobias Kienzler
  • 23,665
  • 21
  • 122
  • 214
2

As @piertoni mentioned, BeeWare enables native iOS & Android apps to be written in Python.

michael
  • 748
  • 2
  • 9
  • 11