Overview
This project investigates the impact of a cutting edge environment for rapidly developing application prototypes on mobile phones. This involves the implementation of an easy-to-use, open, development platform for mobile phones.
Methodology Employed
Nokia Research Center conceived, designed and funded this project in its early phases: 2003-2004. Once the technology reached a reasonable degree of matureness it was adopted by Nokia's business units, who began to fund and steer the research.
Once the platform was defined, the project proceeded along the lines of incremental development. The first stage was a proof-of-concept porting of the Python interpreter to the Symbian platform. This answered the question of the feasibility of a scripting platform. This only allowed scripts to execute, but did not permit a phone's functionality to be accessed from the python environment. The next stage was to implement a basic GUI library that allowed better user interfaces while creating APIs for accessing a phone's features such as sending SMS messages. This has allowed basic application to be developed for the mobile phone. At each increment design decisions and developed software were reviewed and updated.
This culminated in the current release of version 1.2 in October 2005. It is used inside Nokia Research Center as a rapid prototyping environment for experimental services. Its features include access to the camera, contacts database and calendar, graphics and sound support and communications over TCP/IP, Bluetooth and SMS. The use of an advanced scripting language makes the development of new mobile phone applications easier, allowing faster creation of advanced demonstrators.
This project is now nearing the end of its developmental life at Nokia Research Center, as the key research issues have been solved and the ownership is now moving to Nokia Techology Platforms. It has allowed the researchers to gain experience in the great "open-source" experiment and to provide the developer community outside of Nokia an advanced application platform. The experience gained in working with users has been valuable for the researchers, especially in estimating the level of support required for open platform. In recent months, the phenomenon of experienced users responding to "newbie" questions has occurred without the interaction of Nokia employees. Furthermore, Python as an application development platform is now being extended by organizations outside of Nokia for their own purposes.
Technology Employed
The critical decision within this project is the choice of the combination of Python and S60 (series 60), however, on reflection this is a logical platform. Python is a relatively mature and advanced scripting language that has achieved wide-spread use; S60 is Nokia's open software platform for Symbian application development. The majority of the development occurs in the Symbian Native C++ environment, however, in some cases combination of Python and C++ is used to generate platform APIs.Recently software has been developed solely in Python. The open source community has launched its own Wiki site and has extended the interpreter to extend access to a phone's functionality (Miso).
Resulting Publications / Papers / Presentations
- Tapio Tallgren, "Python for Series 60", JAOO 2005
- Jukka Laurila, Python on a Phone Presentation, EuroPython 2005
- Jukka Laurila and Erik Smartt: "Python for Series 60", PyCon 2005
- Michele Marchetti, "Think Python, run S60", EuroPython 2004
Recommended Links
- Python for S60 at Forum Nokia
- Python for Series 60 - Wiki site
- Ken Rimey's Personal Distribution Information Store at Helsinki Institute for Information Technology - PDIS
- Learn what you can do with Python - tutorials, links, code, knowledge pool setup by Jürgen Scheible