TL;DR ● Why Python on Android and for Android? ● What is Kivy? ● Kivy application showcase ● Make a desktop Kivy application ● Turn it into an Android app ● Edit Kivy app on Android ● More awesome Kivy tools
Who am I? By day I am the reclusive entirety of the IT department for Van Dam Iron Works. By night I stalk the mean streets of Grand Rapids, Michigan as a serial user group organizer. I am Ben Rousch!
Recap: Ben, WTF are you doing? ● Tablets are becoming more common. ● Some people only own a tablet. ● Some schools are handing out tablets. ● This is bad for learning to program. ( Rushkoff: Program or Be Programmed )
Recap: How can we fix that? ● Let's program for on ● iOS is a lost cause. Too locked down. ● Let's program for Android on Android ○ AIDE - Android Java IDE ○ TerminalIDE ● But I don't like Java. ● I want to use Python!
How to: Program in Python for Android on Android ● Scripting Layer for Android (SL4A)? ○ Clumsy project creation and usage ○ Device compatibility issues ○ Limited access to underlying Android ● Linux on Android? ○ No Android SDK for ARM ○ High resource demands ● android-python27 + AIDE? ○ Annoying Eclipse project to create ○ One person team ○ Device compatibility issues ○ Limited access to underlying Android ● Kivy!
What is Kivy (Officially)? ● Open source ● Python library ● for rapid development of applications ● that make use of innovative user interfaces ● such as multi-touch apps
What is Kivy (To Me)? ● Python ● GUI and application framework ● that works on all of my favorite platforms ● (also some other platforms), ● which can make Android apps ● testable on the desktop w/o the emulator, ● can be modified right on the device, ● and it's run by a mature and stable team.
Let's Make it an Android App 1. Install Python for Android 2. Compile Python for Android 3. Add Android resources (icon, splash screen) 4. Compile APK 5. Talk about pyjnius
What's Left? ● Create Kivy app on Android ● Kivy-specific on-device IDE ● Version control: git ● Make it easier to build for all platforms ● Platform abstraction layer