OPL, die Open Programming Language, ist eine unter Lesser Gnu Public Licence frei verfügbare Programmiersprache für Smartphones mit dem Symbian Betriebssystem. Da die Syntax von OPL sehr BASIC und Pascal ähnelt ist der Einstieg sehr einfach.
Auf dieser Seite ist der Einstieg in die OPL Programmierung für die Series 60 Benutzeroberfläche beschrieben. Eine Übersicht über OPL ist auf der OPL Seite verfügbar.
Mit einem Series 60 Emulator auf dem PC ist das Entwickeln und Testen von OPL Programmen für Series 60 Geräte auch ohne 'echtes' Series 60 Gerät möglich. Die dafür benötigten Werkzeuge und ihre Installation werden im Folgenden kurz vorgestellt:
Dabei handelt es sich aber nicht 'um den einzigen Weg nach Rom', sondern um eine beispielhafte Darstellung, wie ich sie selber verwende.
Series 60 Emulator
Den Series 60 Emulator kann man nach kostenloser Registrierung bei Forum Nokia downloaden. Der Emulator findet sich als Series 60 SDK 1.2 for Symbian OS, Nokia edition (for the Nokia 7650 and the Nokia 3650) in der Rubrik Tools and SDKs. SDK steht hier für Software Development Kit. Leider ist der Download 90,5 MB groß.
Falls das SDK mit dem Emulator nicht auf Laufwerk C: installiert sein sollte, muss man einen Eintrag in der Datei epoc.ini ändern. Wie in den Release Notes unter Known Issues beschrieben, muss der Laufwerksbuchstabe im Eintrag _EPOC_DRIVE_D c:\symbian\6.1\Series60\epoc32\wins\d mit dem Installationslaufwerk des SDKs übereinstimmen, da der Emulator sonst nicht startet.
Tipps zum Emulator:
Damit die Farbdarstellung in OPL Programmen korrekt ist, muss in die Datei epoc.ini die Zeile ColorDepth Color4k eingefügt werden.
Shortcuts im Emulator:
^ zentrale Taste des Vier-Wege-Tasters bzw. Joysticks
Alt + 1 linker Softkey
Alt + 2 rechter Softkey
Pos 1 Taste Anwendungen
Backspace C Taste (löschen)
Cursortasten Vier-Wege-Taster bzw. Joystick
Zifferntasten funktionieren wie beim echten Gerät
Strg + Shift + Alt + K beendet abgestürzte Programme
Wer weiteren Shortcuts auf die Spur kommt, darf mir gerne schreiben ;-)
Nach einem PC Neustart wäre der erste Schritt geschafft. Auf dem PC läuft nun ein Series 60 Emulator.
Achtung Unbedingt darauf achten, dass die Debug (nicht Release) Version des Series 60 Emulators verwendet wird (Datei: X:\Symbian\6.1\Series60\Epoc32\Release\wins\udeb\epoc.exe).
OPL Runtime für den Emulator
Auf der OPL Homepage findet sich in der Rubrik OPL developers package auch die alpha Version des Series 60 OPL developers package (derzeit Version 0.30). Die Datei heißt OPL-OS61-WINS-030.ZIP und kann mit diesem Link direkt heruntergeladen werden.
Zuerst muss die Datei OPL-OS61-WINS-030.ZIP in ein eigenes Verzeichnis entpackt werden und man sollte wenigstens den Anfang der Readme-Datei lesen. Es gilt jetzt nämlich den Ordner symbian im Verzeichnis \binaries\pc, über den Ordner Symbian im Installationsverzeichnis des Series 60 SDKs zu kopieren.
Wenn man jetzt den Series 60 Emulator startet, sollte im Display ein weiteres Symbol mit einigen Zahnrädern und dem Titel OplTestS60 erscheinen. Es handelt sich um ein Programm mit dem die korrekte Anzeige der verschiedenen Schriftarten unter OPL getestet wird. Wenn das Programm funktioniert ist die OPL Runtime, die Laufzeitumgebung von OPL, korrekt installiert.
OPLTRAN
Mit dem DOS Programm OPLTRAN, was für OPL-Translator steht, wird der als Textdatei vorliegende OPL Quellcode (empfohlene Dateiendung auf dem PC *.tpl) in OPL-Pseudocode (Dateiendung *.opo) übersetzt. Die damit erstellte OPO-Datei kann dann entweder auf dem Endgerät oder dem PC Emulatur ausgeführt werden. OPLTRAN ist Bestandteil des Series 60 OPL developers package.
FExplorer
Da mit der derzeitigen alpha Version von OPL noch nicht unkompliziert 'echte' Anwendungen erstellt werden können, muss man noch einen Dateimanager installieren aus dem man die OPL Programme startet. Ich habe gute Erfahrungen mit einer WINS Version von Dominique Hugo's FExplorer gemacht. Der FExplorer ist in C++ geschrieben. C++ Programme werden für die passende Zielplattform übersetzt. Die MARM Versionen laufen auf echten Series 60 Geräten, die WINS Versionen auf Windows Systemen. Mit freundlicher Genehmigung von Dominique Hugo kann man unter diesem Link die WINS Version 1.10 des FExplorer runterladen. Um den FExplorer im Emulator zu installieren, muß man das Verzeichnis X:\Symbian\6.1\Series60\Epoc32\Wins\c\system\Apps\FExplorer erstellen und die Dateien aus dem ZIP-Archiv in diesen Ordner kopieren.
Zur besseren Übersichtlichkeit empfiehlt es sich noch einen Ordner 'C:\OPL' im Emulator anzulegen, in dem alle OPO-Dateien gespeichert werden können.
Editor für den PC
Um den OPL Code auf dem PC zu schreiben, benötigt man einen Texteditor. Der als Textdatei mit der Dateiendung '*.tpl' gespeicherte OPL-Quellcode wird mit dem Programm OPLTRAN auf dem PC in Pseudo-Code mit der Dateiendung '*.opo' übersetzt, der sowohl im Series 60 PC Emulator, als auch auf einem Series 60 Gerät ausgeführt werden kann.
Welcher Editor der 'Beste' ist, bleibt sicherlich eine nicht zu beantwortende Frage ;-) Grundsätzlich ist jeder Texteditor, auch der 'bordeigene' Windows Editor notepad.exe, geeignet. Ich habe gute Erfahrungen mit dem kostenlosen Crimson Editor gemacht, dessen Konfiguration zur Erstellung von OPL-Programmen im Folgenden beispielhaft beschrieben wird.
Zur komfortablen Übersetzung des OPL-Quellcodes (empfohlene Dateiendung auf dem PC *.tpl) in ausführbaren OPL-Pseudocode (*.opo) mit dem DOS Programm OPLTRAN kann man im Crimson Editor ein 'User Tool' entsprechend konfigurieren (Menüpunkt: Tools -> Configure User Tools...):
X muss durch den passenden Laufwerksbuchstaben ersetzt werden
Option Capture output aktivieren.
Falls der Befehl INCLUDE verwendet wird, muß der Eintrag Argument auch auf den Pfad zu den INCLUDE Dateien (*.oxh/*.oph) verweisen. Zum Beispiel: $(FilePath) -iX:\OPL_Series_60\INCLUDE -oX:\Symbian\6.1\Series60\Epoc32\Wins\c\OPL -e
In den verwendeten Pfaden sollten keine Leerzeichen sein.
Um im Crimson Editor für OPL geeignete farbige Syntax-Hervorhebungen zur Verfügung zu haben, habe ich die folgenden Definitionsdateien für den Crimson Editor erstellt:
extension.tpl in das Unterverzeichnis link des Crimson Editor Verzeichnisses kopieren.
opl.key und opl.spc in das Unterverzeichnis spec des Crimson Editor Verzeichnisses kopieren.
Nokia 9210 Communicator
Auf einem Nokia 9210 Communicator erstellter OPL-Pseudocode (*.opo) ist sowohl auf einem Series 60 Gerät, als auch auf dem Series 60 Emulator lauffähig. Vorraussetzung ist immer eine installierte OPL-Runtime ('user package').
Das Programmieren in OPL direkt auf einem Series 60 Gerät ist derzeit (noch?) nicht möglich, da es noch keinen OPL-Editor und Übersetzer für Series 60 Geräte gibt. Ob 'echtes' Programmieren nur mit einer Zifferntastatur eine alltagstaugliche Option ist, ist aus meiner Sicht auch fraglich.
OPL für die Series 60 Plattform befindet sich noch in den Kinderschuhen. Deshalb ist derzeit 'nur' alte Dokumentation für die Vorgängerplattformen verfügbar. Eine aktuelle Online-Dokumentation der OPL-Befehle entsteht derzeit als OPL Wiki. Dort finden sich auch einige Texte, die geeignet sind, sich in die Materie OPL und das Drumherum einzulesen.
Und jetzt das erste OPL Programm. Der Anfang ist einfach!
Hello World in OPL.
Diesen Code in ein neues Dokument im Crimson Editor eingeben: PROC helloworld:
PRINT "Hello World!"
PRINT
PRINT "beliebige Taste zum Beenden"
GET
ENDP
Die Datei als helloworld.tpl in Crimson Editor speichern.
Mit Strg + 1 im Crimson Editor OPLTRAN starten. Der Quellcode helloworld.tpl wird in Pseudocode helloworld.opo übersetzt.
Series 60 Emulator starten.
FExplorer im Series 60 Emulator starten.
Datei C:\OPL\helloworld.opl im FExplorer starten.
So schnell ging's zum ersten OPL Programm für ein Series 60 Gerät!
Als Ausgangspunkt für weitere Programmierexperimente eignet sich das von Ewan Spence entwickelte Programm Event Core. Event Core ist ein Programm, das ein 'Gerüst' für eigene OPL Programme sein kann. Es führt vor wie OPL Menüs handhabt, auf Systemmeldungen reagiert, wie die Softkeys verwendet werden, wie man eine INI-Datei erstellt und wieder ausliest,... .
opl-dev project Die 'offizielle' Homepage von OPL. Hier finden sich aktuelle Runtimes ('user package') und Entwicklungsumgebungen ('developler package').
'opl-dev project' bei Sourceforge.net Heimat des freien OPL-Quellcodes und Anlaufstelle für alle, die sich an der Entwicklung von OPL beteiligen wollen.
OPL Wiki Im Entstehen begriffene Online-Dokumentation der OPL-Befehle und einiges Interessantes rund um OPL.
Die OPL Programme sind (noch) einfache Dateien mit der Endung '*.opo' und erscheinen auch nicht im Hauptmenü der Series 60 Geräte. Zum Starten der OPL-Programme benötigt man (noch) einen Dateimanager. Ich habe sehr gute Erfahrungen mit Dominique Hugo's kostenlosem Dateimanager FExplorer gemacht (Bei Gefallen Spende nicht vergessen!). Wegen der besseren Übersichtlickeit empfiehlt es sich, auf dem Endgerät einen eigenen Ordner für die OPL Programme (opo-Dateien) anzulegen. Mittels FExplorer lassen sich die OPL Programme dann von dort direkt ausführen.
Die OPL-Runtime für die Series 60 Plattform ist derzeit nur als frühe alpha-Version verfügbar (derzeit Version 0.30). Es sind deshalb z.B. noch keine Dialoge verfügbar und die Signalstärke wird nicht angezeigt.
Auch kann die OPL-Runtime bis jetzt jeweils nur ein OPL-Programm gleichzeitig ausführen. Mehrere OPL-Programme können bis jetzt nicht gleichzeitig gestartet werden.
Rapid Mobile Enterprise Development for Symbian OS: An introduction to OPL Application Design and Programming
Ewan Spence, dem es mit zu verdanken ist, dass OPL auch für das Symbian Betriebssystem verfügbar ist, hat eine aktuelle englischsprachige Einführung in die Programmierung mit OPL geschrieben. Auf 346 Seiten erklärt Rapid Mobile Enterprise Development for Symbian OS: An introduction to OPL Application Design and Programming auch für den absoluten Programmieranfänger auf verständliche Art und Schritt für Schritt das Erstellen von OPL Programmen. Beginnend mit einer Einführung in die Grundbegriffe des Programmierens werden Anwendungen wie ein Umrechnungsprogramm oder eine Notizverwaltung erstellt. Dabei werden neben grundlegenden Themen, wie der Verwendung von Dialogen und Menüs, auch die Verwendung von Grafiken und Datenbanken erläutert. Zur Abrundung wird das Erstellen von Installationsdateien zur einfachen Installation/Deinstallation besprochen und es gibt einige Tipps zum Veröffentlichen eigener Programme. Ebenfalls enthalten ist ein vollständige Übersicht und Erklärung aller OPL Befehle. Auch wenn die Programmbeispiele überwiegend auf die UIQ Benutzeroberfläche abgestimmt sind, ist das Buch für alle 3 Benutzeroberflächen des Symbian Betriebssystems (Series 60, UIQ, Series 80) geeignet.
Bei Symbian Press finden sich nähere Infos, das Inhaltsverzeichnis und ein kostenloses Probekapitel als PDF.
Hinweis Das Buch ist Anfang April 2005 erschienen, aber derzeit (Stand 21.04.05) nicht direkt über Amazon.de bestellbar. Unregelmäßig scheint es von weiteren Anbietern über Amazon.de angeboten zu werden. Da das Buch in Großbritannien derzeit bei Amazon.co.uk mit 30% Rabatt verkauft wird, kann eine Bestellung über Amazon.co.uk evtl. preiswerter sein. Bei direkter Bestellung über Amazon.co.uk kostet es inkl. Versand und Mehrwertssteuer ca. 47 EUR. Kunden von Amazon.de in Deutschland können problemlos mit ihrer E-Mail Adresse und ihrem Amazon Passwort auch über Amazon.co.uk in Großbritannien bestellen. Rechts finden Sie Links sowohl zu Amazon.de, als auch Amazon.co.uk um den aktuellen Preis und die Verfügbarkeit vergleichen zu können.
Einen Währungsrechner um britische Pfund (GBP) in Euro umzurechnen finden Sie z.B. bei xe.com.
Shareware und kommerzielle Programme für Series 60 Geräte gibt es bei
Wer Interesse an anderen (komplexeren) Programmiersprachen für das Symbian Betriebssystem hat, findet Informationen auf den Entwicklerseiten von Symbian und könnte eines der folgenden Bücher interessant finden:
Symbian OS - Eine Einführung in die Anwendungsentwicklung Einziges deutschsprachiges Buch zum Thema Programmierung mit C++ für Symbian OS. Berücksichtigt die Benutzeroberflächen Series 60 und UIQ.