Taming the 5 headed snake (Kivy deployment on Windows, Linux, Android, MacOS, iOS) – Part 1

Taming the 5 headed snake (Kivy deployment on Windows, Linux, Android, MacOS, iOS) – Part 1

Taming the 5 headed snake (Kivy deployment on Windows, Linux, Android, MacOS, iOS) – Part 1

Recently I developed an app called ContactScraper using Python and the Kivy framework v1.9.0. I decided I wanted to attempt to use Kivy to the limits of its capabilities, and package the app for all 5 possible systems it supports: Windows, Linux, Android, MacOS and iOS.

The easiest was Windows – although I will admit to being the most experienced with Python on Windows. PyInstaller seemed to work very well on Windows, and the documentation on the kivy website was clear and complete.

Android seemed to be quite easy as well. There is a helpful Lubuntu VM here: https://groups.google.com/d/msg/kivy-users/dAo0HycGRhI/cb9_0Tf7cjsJ which is already mostly set up and ready to package Kivy 1.9 apps.

However, after packaging everything up and using adb and logcat, I got an error message trying (and failing) to run the app. I then realized that one of the libraries my app depends on – BeautifulSoup4 – is not yet available in Python for Android. Drat. Android deployment was put on the backburner until I can refactor the code to remove that library, or an android “recipe” for using BeautifulSoup4 becomes available.

Linux will likely be the next platform to be completed. The kivy packaging instructions for Linux are, however, not straightforward. I did some work packaging my app for MacOSX as well, however I am stuck on the BeautifulSoup4 dependency at this point – just like on Android. I have a feeling that, in time, I will be able to resolve this.

I will post an update – Taming the 5 headed snake – Part 2, with updated results soon. Watch this space!

Leave a Reply

Your email address will not be published. Required fields are marked *