90

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

4
  • 1
    duplicate? Commented May 19, 2012 at 10:07
  • @keyser i am not convinced by the selected answer of that question, I think it can be used and to confirm I asked that question Commented May 19, 2012 at 10:16
  • Has this changed at all? Commented Dec 5, 2015 at 20:46
  • Is using pyside, pyqtdeploy a viable option in 2018? Commented Mar 25, 2018 at 19:04

7 Answers 7

87

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

Sign up to request clarification or add additional context in comments.

Comments

31

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

2 Comments

also this is precisely the aim of Kivy (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
Python 3.3+ to iOS is not supported by Kivy yet.
6

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.

Comments

3

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

Comments

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.

Comments

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.

Comments

-1

You can use Flet.

Flet UI is built with Flutter, so your app looks professional and could be delivered to any platform.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.