Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save otomazeli/5e16f4a32d55decab651562f33e9d88d to your computer and use it in GitHub Desktop.
Save otomazeli/5e16f4a32d55decab651562f33e9d88d to your computer and use it in GitHub Desktop.
Rapid Mobile Application Development with Python

Rapid mobile application development with Python

While there are examples of Python-based apps in mobile App stores, the knowledge of how to actually create a mobile app in Python hasn't been well documented, or simplified for mass use - until now.

In this talk, Dr Russell Keith-Magee will demonstrate a collection of tools from the BeeWare Project that enable you to build a cross-platform mobile app using Python in a matter of minutes.

Audience

Python programmers who want to write apps for their mobile devices

Python Level

Beginner

Objectives

To demonstrate how, with the right tooling, developing cross platform apps for mobile platforms can be extremely simple. Attendees will be able to use the content of the talk to start developing their own cross-platform mobile apps.

Detailed Abstract

Nobody can deny that mobiles devices and mobile computing are here to stay. However, in this growing market segment, Python hasn't historically had a good development story. While there are examples of mobile apps in app stores that are either written in Python, use Python, or demonstrate Python, the knowledge of how to achieve this end product hasn't been well documented or simplified for mass use.

This talk will be a practical introduction to the BeeWare suite of tools that enable users to develop mobile applications with Python. There won't be a lot of internal details - this will be a very high level talk, with the focus on demonstrating some key concepts in the development environments, and proving that native mobile apps can be developed rapidly.

The talk will demonstrate the use of the following tools:

  • Python-iOS-support (CPython compiled for use on iOS)
  • VOC (A CPython bytecode to Java classfile transpiler)
  • Python-iOS-template (A Cookiecutter template for iOS projects)
  • Python-Android-template (A Cookiecutter template for Android projects)
  • Briefcase (a distutils extension for packaging Python projects as apps)
  • Rubicon-ObjC (A bridge between Objective C and Python)
  • Toga (A cross platform native widget library)

These tools are all in the early stages of development, but they are sufficiently mature to demonstrate that the end goal of developing mobile apps in Python isn't a pipe dream. While this is a lot of tools to demonstrate in 30 minutes, the intention isn't to provide deep training - rather, it will show how all the parts fit together to produce the end product.

Talk outline:

  • Introduction: (4 minutes)
    • Who am I?
    • The mobile landscape
    • What tools are we going to use?
  • Part 0: Initial setup (2 minutes)
    • The development environment
  • Part 1: iOS (8 minutes)
    • Writing Objective C code in Python
      • Briefly: how this works
    • Walkthrough the code for a simple example app
    • Using Briefcase to package the code
    • Compile and run (with live demo)
  • Part 2: Android (8 minutes)
    • Writing Java code in Python
      • Briefly: how this works
    • Walkthrough the code for a simple example app
    • Using Briefcase to package the code
    • Compile and run (with live demo)
  • Part 3: Developing cross platform (4 minutes)
    • Native vs Common widgets
    • Writing a Toga app
    • Compile and run (with live demo)
  • Next steps (2 minutes)
    • Help needed!
    • Other interesting uses for these tools
    • A vision for the future

Additional Notes

I'm the maintainer of all the tools being demonstrated in this talk. I'm the co-maintainer of the Python Mobile-SIG, and I was invited to give a presentation to the Python language summit about mobile Python at PyCon US 2015. I was unable to attend that summit, but I did present via pre-recorded video.

I'm also a 10 year veteran of the Django core team, and the past President of the Django Software Foundation.

I'm an experienced speaker; I've keynoted PyCon PH and PyCon RU, I've spoken many times at DjangoCon US, EU and AU, at PyCon AU, and at Django Under the Hood.

This is proposed as a 30 minute talk; however, I'd be able to extend this to a 45 minute slot by building more sophisticated example apps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment