Вы находитесь на странице: 1из 26

Python
for
S60


Easy,
rapid
prototyping
of
mobile

applica:ons
on
the
S60
pla;orm


Herb
Jellinek,
Supported
So@ware
LLC

jellinek
at
newscenter
dot
com


July
2009
 Copyright
©
2009,
Herb
Jellinek
 1

Python?

•  General‐purpose
object‐oriented

programming
language

•  Allows
edit‐compile‐test
as
well
as
completely

interac:ve
execu:on

•  Language,
libraries,
and
paOerns
of
use

encourage
readability
and
produc:vity

•  Open
source
project
with
a
large
user

community


July
2009
 Copyright
©
2009,
Herb
Jellinek
 2

What
is
Python
for
S60?

•  Nokia’s
port
of
the
Python
run:me
to
the
S60

smartphone
pla;orm

•  Python
core
language

•  Rich
set
of
capabili:es

–  Large
set
of
standard
Python
libraries,
plus

–  Mobile‐specific
API

•  AKA
PyS60


July
2009
 Copyright
©
2009,
Herb
Jellinek
 3

Why
PyS60?

•  Easy
to
get
started

•  Can
test
applica:on
ideas
and
pla;orm
features

•  Provides
access
to
many
pla;orm
features
out
of
the
box

–  Network,
file
system,
messaging,
contacts
database

–  Bluetooth,
camera,
loca:on/GPS,
sensor
framework

–  Etc.

•  More
func:onality
than
Java
and
Flash
Lite
run:mes
(no
“sandbox”)

•  Can
extend
with
na:ve
modules
for
addi:onal
capabili:es

•  Quick
edit/test/edit
cycle
on
real
device
or
emulator

•  Interac:ve
Bluetooth
console

•  Runs
on
a
large
number
of
devices

•  Open
source
project
with
ac:ve
developer
community

•  Tools
are
free
and
run
on
most
major
OSes


•  Great
for
demonstra:ng
product
ideas
to
senior
management!


July
2009
 Copyright
©
2009,
Herb
Jellinek
 4

Why
not
PyS60?

•  Not
supported
on
other
mobile
device

pla;orms

•  More
overhead,
lower
performance
than

na:ve
Symbian
C++

•  Must
install
Python
on
the
phone
manually
–
a

slightly
cumbersome
process


July
2009
 Copyright
©
2009,
Herb
Jellinek
 5

Geing
Started

•  Choose
a
pla;orm

–  PyS60
1.4.5
(stable
release,
Python
2.2.2
base)
or

–  PyS60
1.9.6
(beta
release,
Python
2.5.1
base)

•  Choice
depends
on
your
technical

requirements
and/or
taste
for
adventure


July
2009
 Copyright
©
2009,
Herb
Jellinek
 6

Geing
Started

•  (assume
PyS60
1.4.5
and
S60
3rd
Edi:on
FP1
device)

•  Download
from
hOp://sourceforge.net/projects/pys60/:

Component
 Name
 Example


Python
run:me
 PythonForS60_1_4_5_xE PythonForS60_1_4_5_3rdEd.sis



dFPy.sis

Python
script
shell
 PythonScriptShell_1_4_5 PythonScriptShell_1_4_5_3rdEd.
_xEdFPy.sis
 sis

Documenta:on
 PythonForS60_1_4_5_do
c.pdf

Release
notes
 release_notes_1_4_5.txt


July
2009
 Copyright
©
2009,
Herb
Jellinek
 7

Geing
Started

•  Transfer
run:me
and
script
shell
to
phone

–  PythonForS60_1_4_5_3rdEd.sis

–  PythonScriptShell_1_4_5_3rdEd.sis

–  When
Installer
asks
to
install,
say
yes!

•  Order
maOers;
install
run:me
first

•  Create
E:\Python
directory
on
phone
for

scripts

•  Can
also
run
on
S60
Emulator

July
2009
 Copyright
©
2009,
Herb
Jellinek
 8

Examples

•  Hello,
World
–
Console

•  Hello,
World
–
from
script
menu

•  Hello,
World
–
appuifw

•  Text
Messaging

•  Telephony

•  GPS


July
2009
 Copyright
©
2009,
Herb
Jellinek
 9

Hello,
World

•  Open
Bluetooth
console
and
type
this:


print u”Hello, world!”

July
2009
 Copyright
©
2009,
Herb
Jellinek
 10



Hello,
World


July
2009
 Copyright
©
2009,
Herb
Jellinek
 11



Hello,
World

•  Create
helloworld.py
and
copy
to
E:\Python:


print u“Hello, world!”

July
2009
 Copyright
©
2009,
Herb
Jellinek
 12



Run
Your
Script


July
2009
 Copyright
©
2009,
Herb
Jellinek
 13



Hello,
World
á
la
PyS60

•  Use
the
appuifw
module
to
set
the
:tle
and

pop
up
a
note


import appuifw

appuifw.app.title = u"The Universal Program"


appuifw.note(u"Hello, world!")

July
2009
 Copyright
©
2009,
Herb
Jellinek
 14



Hello,
World
á
la
PyS60


July
2009
 Copyright
©
2009,
Herb
Jellinek
 15



A
Bit
More
UI

import appuifw, e32

def quit():
appLock.signal()

textObj = appuifw.Text()
textObj.font = "title"
textObj.set(u”Hello, World!”)

appLock = e32.Ao_lock()

appuifw.app.exit_key_handler = quit
appuifw.app.body = textObj

appLock.wait()

July
2009
 Copyright
©
2009,
Herb
Jellinek
 16



A
Bit
More
UI


July
2009
 Copyright
©
2009,
Herb
Jellinek
 17



Using
Pla;orm
API’s:
Text
Messaging

•  inbox
module
accesses
messages
in
device

inbox

>>> import inbox
>>> inb = inbox.Inbox()
>>> messages = inb.sms_messages()
>>> for m in messages:
... print inb.address(m)
...
Wessling Susana
AT&T email gateway
Wessling Susana
Wessling Susana
AT&T email gateway
AT&T email gateway
18314307294
July
2009

>>> Copyright
©
2009,
Herb
Jellinek
 18

Using
Pla;orm
API’s:
Telephony

import appuifw, telephone, e32, audio
appLock=e32.Ao_lock()
def quit():
appLock.signal()

appuifw.app.exit_key_handler=quit
lastNumber=None

def callState((state, number)):


global lastNumber
if (state == telephone.EStatusRinging):
lastNumber = number
if (state == telephone.EStatusDisconnecting):
audio.say(u”Call was from %s” % lastNumber)

# register the callback


telephone.call_state(callState)

appLock.wait()

July
2009
 Copyright
©
2009,
Herb
Jellinek
 19



Using
Pla;orm
API’s:
GPS


Source code and details forthcoming at


developer.symbian.org/wiki/index.php?title=Location_Based_Services

July
2009
 Copyright
©
2009,
Herb
Jellinek
 20



Time‐saving
Tips

•  Add
the
Python
script
shell
and
File
Manager

to
the
Ac:ve
Standby
Apps
(name
varies)


•  Allows
you
to
run/restart
Python
and

manipulate
scripts
quickly


July
2009
 Copyright
©
2009,
Herb
Jellinek
 21



Time‐saving
Tips

•  Use
Nokia
PC
Suite
or
Bluetooth
file
browser

on
dev
computer


July
2009
 Copyright
©
2009,
Herb
Jellinek
 22



Time‐saving
Tips

•  Consider
using
a
source
code
control
system

for
those
“what
was
I
thinking?”
moments


July
2009
 Copyright
©
2009,
Herb
Jellinek
 23



Conclusion

•  Python
for
S60
(PyS60)

•  Shallow
learning
curve

•  Quick,
easy
experimenta:on
and
development

•  Advantages
and
disadvantages

•  Comparison
with
other
S60
pla;orms

•  Examples

•  So
much
more
to
explore

–  Modules,
libraries,
packaging,
best
prac:ces,
code

signing,
…


July
2009
 Copyright
©
2009,
Herb
Jellinek
 24



Thank
You

•  Ques:ons?


July
2009
 Copyright
©
2009,
Herb
Jellinek
 25



Contact

•  Herb
Jellinek,
Supported
So@ware,
LLC

•  jellinek
at
newscenter
dot
com


July
2009
 Copyright
©
2009,
Herb
Jellinek
 26


Вам также может понравиться