Mobile Application Prototyping with Python

Instructor:   

 

Nathan Eagle, PhD

Visiting Lecturer and Research Scientist

Massachusetts Institute of Technology

 

What is this course about?

 

This course will teach students how to use the interpreted language Python to access the full suite of mobile phone functions without the usual amount of programming experience required to build complex mobile phone applications. We will cover the main areas of mobile phone application development:

·        Building an intuitive user-interfaces

·        Reading and writing information to memory

·        Phone APIs (making a call / sending a SMS)

·        Networking and Sockets (Bluetooth / GPRS)

 

 

What do I need to know before taking this course?

 

No computer programming experience is required to take this course.

 

Suggested Material:

 

While there are dozens of extremely helpful textbooks on Python, we have found information on the web equally useful for teaching purposes. Sites we recommend include:

·        Python Tutorial (written by the creator of the language, Guido van Rossum)

o       http://docs.python.org/tut/

·        Python for Beginners:

o       http://www.python.org/moin/BeginnersGuide

·        Dive into Python:

o       http://diveintopython.org/

 

There is still a limited amount of information available on Python for mobile phones, however we will be using content a material from the following:

 

·        Python for Series 60 (Nokia’s API and Documentation Page)

o       http://opensource.nokia.com/projects/pythonfors60/

·        Jürgen Scheible’s Mobile Python Tutorial

o       http://www.mobilenin.com/pys60/menu.htm

 

 

Grading:

 

      

      Programming Projects (3)..................................................             30%

      Mid-term Quiz................................................................... 15%

      Final Project.......................................................................            55%

 

Schedule:

 

Week 1

 

INTRODUCTION: We first introduce Python, a powerful scripting language that can be run on a variety of devices, ranging from workstations to mobile phones. The installation procedures for Python phone emulators and related software is given.  We then provide example applications and review syntax in Python.

 

Week 2

 

USER INTERFACES: APIs for text entry and other user input options are described. Homework assignment #1 is to write an application that sends multiple phones a particular SMS message based on text keyed in by the user.

 

Week 3

 

APPLICATION BASICS: This week’s lecture provides an overview of application design, including function definitions, application menu interfaces and tabs.

 

 

Week 4

 

KEYBOARD CALLS AND GRAPHICS: Key calls are defined within Python to enable application shortcuts and controls. We also spend the half of the class reviewing how to draw simple graphics on the screen. Homework assignment #2 is to write a game that uses commands from the keyboard to control a graphic (ball, spaceship, etc).

 

Week 5

 

GRAPHICAL USER INTERFACES: Moving beyond pop-up menus and text entry boxes, we discuss who to make your applications look more polished. 3D buttons, switches, and PC-styled interfaces introduced.

 

Week 6

PHONE I/O: We describe how to use the e32 and os modules to read and write data from the phone’s internal memory as well as the memory card. We introduce a medical field worker data gathering application that uses XML parsing and writing as our example. Finally we will discuss sockets over GPRS.

 

Week 7

 

PHONE AS A SENSOR: This week’s class discusses how to take advantage of a phone’s sensing abilities. We begin with an overview of the APIs required to record sound from the phones microphone, write it to memory, and then play it back through the speaker. We also demonstrate the camera module and discuss APIs for image capture and manipulation.

 

Week 8

 

PHONE AS A SENSOR II: A user’s current location and social context can affect the types of applications he or she may want to use. We describe how to access information nearby cell towers and how to use Bluetooth device discovery scans to detect nearby people. Homework assignment #3 is to write an application that has a graphical user interface that changes depending on the user’s location and the people nearby.

 

Week 9

 

PROJECT PRESENTATIONS: The class ends with students presenting about their final class projects. Projects will be graded on originality, technical difficulty, and perceived end-user value.

 

Python Java SMS Mobile Phone Programming for Entrepreneurs