Symbian developer community

 
wiki

Python on Symbian TOC

From Symbian Developer Community

Jump to: navigation, search

File:Python on Symbian.JPG

Hello Python brothers and sisters,

Below is the Table of Contents (ToC) for a new upcoming book about Python for Symbian. We would like the developer community to be involved with the development of this book by - contributing, reviewing or by simply giving your valuable feedback and suggestions. The first suggestion you can give us is what name you like best!

Please feel free to alter the ToC below or add new things that you feel are needed and could make it better. Alternatively, if you are interested to contribute or review some topics, drop me an email at pankaj.nathani(AT)croozeus.com - please do mention the topics that you are interested in and what content you wish to contribute. Writing is currently in progress!

You can follow news about this book on Twitter. Just search for the hashtag "symbianpython"!

Table of Contents

About this book

Who is this book for?

1. Introduction - Pankaj and Bogdan
1.1 History of Python (includes core Python and PyS60)
1.2 Why Should I use Python over Other Technologies? (addresses PyS60)
1.3 Tools and SDKs Required (includes debugging tools)
1.4 Installing PyS60 SDK
1.5 Deploying Python Scripts on the Phone
1.6 Testing Sample Scripts

2. Basic Python Elements - Mike Jipping
2.1 Introduction
2.2 Variables
2.3 Operators
2.4 Functions
2.5 Classes
2.6 Conditional Statements
2.7 Loops
2.8 Exception Handling

3. System Information and Operations - Pankaj and Bogdan
3.1 Introduction
3.2 Using the e32 module
3.3 System Information
3.4 System Time
3.5 File Operations

4. Basic User Interface - Pankaj and Bogdan
4.1 Introduction
4.2 The UI Structure of a Python Application
4.3 Title, Orientation and Screen Size
4.4 Notifications
4.5 Queries
4.6 Menu
4.7 Selection Lists
4.8 Listbox
4.9 Forms
4.10 Text Editor
4.11 Tabs
4.12 InfoPopup
4.13 TopWindow

5. Contacts and Calendar - Pankaj and Bogdan
5.1 Introduction to Contacts
5.2 Searching and Displaying Contacts
5.3 Adding and Deleting contacts
5.4 Contacts- Sample Applications
5.5 Introduction to Calendar
5.6 Using the Calendar
5.7 Calendar- Sample Applications

6. Telephony and Messaging - Mike Jipping
6.1 Introduction
6.2 Telephone Operations
6.2.1 Making a Phone Call
6.2.2 Answering a Phone Call
6.2.3 Monitoring Phone Activity
6.3 A Sample Application: Caller Information
6.4 Messaging Operations
6.4.1 Sending SMS Messages
6.4.2 Sending MMS Messages
6.4.3 The Inbox Class
6.4.4 Receiving Messages
6.5 A Sample Application: SMS Autoreply
6.6 Accessing and using logs

7. Graphics and Multimedia - Pankaj and Bogdan
7.1 Introduction
7.2 Drawing on Canvas
7.3 Displaying and handling image objects
7.4 Using the Camera
7.5 Example Application - to be named - involves camera and image objects
7.6 Recording and playing sound files
7.7 Music Player Example

8. Touch User Interface - Pankaj and Bogdan
8.1 Introduction
8.2 Supported devices
8.3 Detecting touch events on full screen
8.4 Detecting touch over a specific area of screen
8.5 Let’s Paint with touch!
8.5 Touchy Tic-Tac-Toc

9. Basic Network Programming - Marcelo Barros
9.1 Introduction
9.2 Basic Network Principles
9.3 Socket API introduction
9.4 Exception handler and debugging
9.5 Advanced Socket API

10. Location Based Services - Pankaj and Bogdan
10.1 Introduction
10.2 Acquiring Location Information
10.2.1 Using Network Information
10.2.2 Using GPS Information
10.3 Using Maps with GPS Information
10.3.1 Where Am I! Locate yourself
10.3.1.1 Obtaining Latitude and Longitude co-ordinates
10.3.1.2 Retrieving Google Maps
10.3.1.3 Saving the Access Point and Debug Log
10.3.1.4 Using the above libraries in main.py
10.3.2 Source Code

11. Sensor Framework - Mike Jipping
11.1 Introduction
11.2 Basic Sensor Access
11.3 Sensor Availability
11.4 Obtaining Sensor Data
11.5 Monitoring Sensor Data
11.6 Sensor Sample Example
11.7 Detecting Gestures
11.8 A Word About Older Sensor APIs


12. Platform Services - Pankaj and Bogdan
12.1 Introduction
12.2 Application Manager
12.3 Calendar
12.4 Contacts
12.5 Landmarks
12.6 Location
12.7 Logging
12.8 Messaging
12.9 Media Management
12.10 Sensors
12.11 Sys Info

13. Extending PyS60 - Pankaj and Updated version of Multi-Language Programming - Part 3 for Flyer

14. Advanced Network Programming - Marcelo Barros
14.1 HTTP Principles and Urllib Module
14.2 BeautifulSoup and HTML/XML parser
14.3 Multi-thread Programming: Threads, Semaphores and Queues
14.3 XML-RPC

15. PyS60 Games - Jouni Miettunen and some guests (for last two topics)
15.1 Introduction
15.2 Theoretical Approach
15.3. Examples
15.3.1 Tictactoe (minimax alphabeta)
15.3.2 Paparazzi (sensor control)
15.3.3 Mazing Days on Cute Planet (world building, maze)
15.3.4 Patience Card Game
15.4 PyGame
15.5 OpenGL
15.6 References

16. PyS60 Standalone Applications - HamishW, Pankaj, Bogdan, Marcelo Barros
16.1 Introduction
16.2 Adding Multi-lingual Support to Python Applications
16.3 Python Application Packager
16.4 Commercial applications
16.4.1 Registration code

17. Debugging Techniques - Marcelo Barros
17.1 Introduction
17.2 Writing better PyS60 code
17.3 Debugging strategies
17.4 Enhancing runtime error detection

Bibliography

Index

Comments

Contents

Stenlik said...

Hi,

Not everybody is using Python as the language for creating the application. I would like to see a chapter describing how to use embedded Python in our programs, namely games. For this 80% functionality added to the Python (GUI, network, etel, etc.) is not needed, the essential is the language itself for defining the game events, level structure, etc.

I see following questions to be answered in such chapter:

1/ How to build the minimalistic version of the python DLL, which will be then part of the game installable sis file? 2/ What is the best way to interact form C++ with the Python? 3/ What are the Python possibilities on Windows Mobile? This is quite important, as usually the game engine itself is usually portable across all C++ platforms and for this also scripting language available not only under Symbian is essential. 4/ Some usefull examples.

Some information about Python and my little experience with it I already put here: http://stenlikmobile.blogspot.com/2009_04_01_archive.html

Regards, STeN


--Stenlik 08:34, 3 August 2009 (BST)

Croozeus said...

Hi STeN,

Thanks for the great feedback!

All you proposed could be a part of the 11th chapter "Extending PyS60" which should then be renamed to "Extending PyS60 and Extending with PyS60" (or something similar). We plan to have some invited guests working on that chapter soon, will let you know too! :-)

Croozeus 11:19, 3 August 2009 (UTC)

--Croozeus 12:19, 3 August 2009 (BST)

Stichbury said...

Hi Stenlik

Does any of the content in this paper look like it would be useful in the book?

Jo

--Stichbury 12:48, 3 August 2009 (BST)

Hamishwillee said...

Does Windows Mobile support Python (at all?). If so, then IMO having a section on compatibility probably is worthwhile, explaining what is possible/not possible.

I'm not sure how practical it is to have a minimal DLL for Python due to packaging issues. As all binaries go into the same folder, to have "application specific" binaries these would have to have unique names and be fixed up to talk to each other. If you're using 1.9.6 or later you'd still need PIPS binaries. As the stub exe from the application packager hard codes the DLL to load, you'd also have to create your own stub. Of course its possible, but not very straightforward. It would probably be better if the SIS files from the maemo garage were made less monolithic - ie so that you could deliver the python core, python UI and any "batteries" as separate components, depending on what you are depended on.

--Hamishwillee 23:58, 3 August 2009 (BST)

Sign in to comment…