91

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

Wolfgang Fahl
  • 15,016
  • 11
  • 93
  • 186
user1404932
  • 913
  • 1
  • 6
  • 5

6 Answers6

85

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,628
  • 3
  • 36
  • 67
piertoni
  • 1,933
  • 1
  • 18
  • 30
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,953
  • 4
  • 34
  • 40
  • 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
5

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,409
  • 4
  • 26
  • 48
ocupe
  • 113
  • 1
  • 6
3

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

michael
  • 827
  • 2
  • 10
  • 11
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
  • 25,759
  • 22
  • 127
  • 221
0

There's FireMonkey (FMX).

FMX is a fairly new framework for developing cross-platform applications using Python, but I can honestly say that it is the best one currently available!

It's far better than all the other GUI Python Frameworks. With FMX you can develop with a single code base for Windows, MacOS, Android, and Linux.

iOS is not yet supported, but it is planned for in the near future.

I think FMX is worth keeping an eye on.

Shaun Roselt
  • 1,650
  • 5
  • 18
  • 44