Intéressons-nous, aujourd’hui à Python pour les téléphones Nokia 60series ou “pyS60″.
pys60, c’est quoi ?
pys60 désigne en fait le langage de programmation Python associé aux différentes bibliothèques spécifiques au contexte du développement sur mobile. Python est un langage orienté objet multi-paradigme : il est autant destiné à la programmation web, qu’au traitement en masse de données, qu’au développement d’applications dotés d’une interface graphique ou qu’au développement d’application pour mobiles dans le cas qui nous concerne.
La puissance et l’attrait du Python résident dans le fait qu’il est possible de “wrapper” du Python sur une API déjà existante dans un autre langage. On peut ainsi aisément développer des bibliothèques en Python à partir d’une base écrite en C++ ou en C. C’est qui a été fait pour pyS60 : les différentes bibliothèques reposent sur l’API de SymbianC++.
Une fois le travail de “wrapping” réalisé la facilité de manipulation du Python permet de manipuler l’API SymbianC++ de façon beaucoup moins contraignante. L’envoi d’un message SMS passe ainsi de quelques dizaines de lignes en SymbianC++ à quelque lignes en Python.
Les pré-requis
Attention : le développement d’applications en pyS60 ne se limite qu’au mobiles Nokia série 60.
Les programmes pyS60 viennent donc s’exécuter par-dessus l’API SymbianC++ déjà existante. Il est donc nécessaire d’installer une sur-couche l’interprétation des commandes Python et l’accès à l’API. Un interpréteur de commande doit donc être installé au préalable sur le terminal.
Ce programme, un “.sis” développé en SymbianC++, permet l’exécution de scripts “.py” enregistrés en mémoire mais également l’exécution de commandes dans la console interactive et une exécution des scripts avec un debug sur PC via Bluetooth.Il est également possible de “packager” le script avec un l’interpréteur et créer ainsi une application “stand-alone”.
Un exemple simple
#exemple simple d'un programme Pys60
# on importe les bibliothèques graphique et d’accès système Symbian
import appuifw, e32
# définition de la fonction quit() terminant l’application
def quit():
app_lock.signal()
# on fixe le titre de l’application
appuifw.app.title = u”My 1st pyS60″
# on lit la chaine entré dans la boite de dialogue et on l’affiche dans un pop-up
prenom = appuifw.query(u”Prenom :”,”text”)
appuifw.note(u”Bonjour ” + prenom,”info”)
# on affecte la fonction quit à la softkey droite
appuifw.app.exit_key_handler = quit
# on bloque le script juqu’à l’appel de “quit”
app_lock = e32.Ao_lock()
app_lock.wait()
La documentation sur le sujet est très abondante :
http://wiki.opensource.nokia.com/projects/Python_for_S60
http://wiki.forum.nokia.com/index.php/Category:Python
http://www.mobilenin.com/pys60/menu.htm