There is Kivy in python's cross-platform development library. The detailed mechanism of Kivy itself is set aside (I haven't used it yet), I would like to introduce a rough method to create a package for iOS / Android provided by Kivy.
python-for-android
This is a project to package Kivy for android. (It seems to be different from the one in Google Code) It seems to be a mechanism to build Python for ARM based on Android SDK + NDK (= hostpytthon) and run the actual application on hostpython.
$ cd python-for-android
$ ./distribute.sh -m "openssl pil kivy"
$ cd dist/default
$ ./build.py --package org.test.touchtracer --name touchtracer --version 1.0 --dir ~/code/kivy/examples/demo/touchtracer debug
The execution itself does not require such a difficult procedure,
That is a little troublesome.
kivy-ios
This is a project to create an xcode project for iOS.
$ ls
kivyapp <-Here is the Kivy app
$ git clone https://github.com/kivy/kivy-ios
$ ./tools/build-all.sh
$ ./tools/create-xcode-project.sh kivyapp ./kivyapp
The command itself is as simple as python-for-android, and you can easily check the operation of the actual machine, but
I'm worried that I have something like that.
Buildozer is a tool that can control the above two projects at once. Eventually
It handles most of the things related to packaging.
It is also registered on PyPI, but personally it is better to install it from the source on github. (In stable, android environment construction does not proceed due to various problems)
$ git clone git://github.com/kivy/buildozer
$ cd buildozer
$ python setup.py install
Basically, most of it is done with the buildozer command that is available during installation.
$ buildozer init
$ ls -l
(App source)
buildozer.spec <-Build here/Describe the items required for packaging (app name, iOS App ID, etc.)
$ buildozer android debug <-Packaging apk files for android. The process in the middle is also executed with this command
$ buildozer ios debug <-Ipa packaging for ios. The process in the middle is also executed with this command
It ’s easy, is n’t it?
Since the path of Android SDK and NDK can be described in buildozer.spec, it is possible to use the one that has already been downloaded. You can also set individual variables using the --profile option for detailed builds.
As mentioned above, you can specify the path of SDK, NDK, etc., but if you execute it without editing anything, it will try to download all. Also, since python-for-android and kivy-ios are downloaded and handled collectively only under specific control, All of the above issues remain.
Still, I recommend it because you can concentrate on developing apps on Kivy unless you use a very unusual Python package.
This is the result of packaging an app that displays only the Hello world button.
The ipa file has grown brilliantly. On the contrary, I was impressed that the Apk file was unexpectedly small.
Recommended Posts