Running Python on iOS and Android

Usually, I don’t do blog post about technical topics, but this time it’s different.

Disclaimer: I have Computer Science degree from US university so in fact I love talking about technical stuff. I was pretending not to. ;)

These days I’m spending a lot of time playing with Kivy, an open source Python library for multi-touch app. The app developed with Kivy can be deployed on many platforms including iOS and Android.

If you are a seasoned mobile app developer, your first response might be “Wait. Can I run Python app on my iPhone?” The answer is yes.

Kivy packages your app along with Python interpreter and statically links it to the app itself. No dynamic linking. Hence, you can submit your app to Apple (and Google) without problem.

(For those who are unfamiliar with Apple rules, dynamic library isn’t supported by iOS and your app will be rejected if the app uses one.)

Long story short, one thing that makes me exciting is a possibility of creating Unity like IDE (Integrated Development Environment) on top of Kivy, where developers can directly generate iOS and Android apps while entire code is written in Python.

Why do we need yet another tool when we have Unity? Well, there are a few reasons.

First, competition is always good not only to the end-user but also to the industry. Second, developers might be able to benefit from numerous amount of existing Python libraries that are battle-tested and proven to work. Third, I’m a Python guy.

Disclaimer: I have written Coworkify using Python. The app is built with Pyramid framework. For the record, I’m a Python guy.

I’m not saying Unity isn’t good enough. In fact, it’s one of the best tools out there for cross-platform development, especially for iOS and Android gaming apps. However, developers are only allowed to use C# and JavaScript since Unity’s script engine is built on top of Mono, an open source .NET framework.

What if we could combine the best of two worlds: Python being as powerful language and Unity being as easy-to-use IDE that can instantly generate mobile apps on the fly?

It seems my next project will be somewhere around this topic, and I’m sure I cannot do it alone. Please shoot me an email or write a comment below if you are interested in working with me.

There is no guarantee this project will be successful or it will be any sort of startup business, but at least it is an interesting topic to investigate, I believe.