Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare...

27
Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator, Gerät Besonderheiten Beschränkungen Ein Beispiel

Transcript of Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare...

Page 1: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Softwareentwicklung für Palm OS

Vortrag zu PUM 2008

● Übersicht über verfügbare Programmiersprachen

● Weitere Tools, Testen und Debuggen● Emulator, Simulator, Gerät● Besonderheiten● Beschränkungen● Ein Beispiel

Page 2: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Vorwort

● Warum ich?● Fast alles ist machbar!● FAQ

Page 3: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Programmiersprachen: C/C++

● PODS (Freeware, Eclipse + gcc, ACCESS)

● prc-tools (Freeware, gcc, keine IDE)● CodeWarrior ($399, †††)● Pocket C (ab $18,50, auch auf Palm)● OrbForms (ab $55)● OnBoard-C (Freeware, auf Palm)● Palmphi (Freeware)

Page 4: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Programmiersprachen: Basic

● HotPaw Basic (16,95 €, auf Palm)● NS Basic (ab $149,95, ähnlich VB)● AppForge ($$, VB AddOn, nicht mehr

verfügbar?)● SmallBasic (Freeware)● HB++ (ab 149 €)● iziBasic ($25, auf Palm)

Page 5: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Programmiersprachen: Weitere

● RAD (Rapid Application Dev.)-Tools Satellite Forms ($795) CASL ($299, Anwendung auch auf Pocket PC

und Windows)● Pascal

HS Pascal (Spendenbasis) PocketStudio (ab $69,99) PPCompiler (Freeware, auf Palm)

● Java SuperWaba (Freeware/$495, Anwendungen

laufen auch auf Pocket PC und Windows)

Page 6: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Tipps

● Programmieranfänger? Basic oder RAD, Freeware

● Umsteiger? Abhängig von bestehender Erfahrung

● Für mich? C mit CodeWarrior oder prc-tools

Page 7: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Tools

● PILRC Standard

Resourcecompiler

● PRC-Explorer Aufbau der

PRC-Datei

● Reporter Ausgabekonsol

e für Emulator oder Simulator

Page 8: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Testen: Emulator

● Emulator bis OS < 5 emuliert Prozessor + Hardware (VM) sehr robust braucht Original-ROM vom Gerät (beim

ADN nur spezielle 2 ROMs) alte ROM-Dateien wegen Graffiti 1 Patent

nicht mehr erhältlich download beim AccessDeveloperNetwork,

spezielle Versionen bei den jeweiligen Herstellern der Geräte (Sony, Handera usw.)

Page 9: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Emulator

bemängelt mehr

Fehler als das echte

Gerät kein Hires(+), keine

moderne Sound-API...

Page 10: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Testen: Simulator

● Simulator ab OS 5 OS 5 als Windowsanwendung compiliert

Nur m68k Code, ARMlets für Intel compiliert

Wenn Anwendungsfehler, dann meistens

Absturz (Debugversion manchmal robuster)

Erhältlich beim ADN, spezielle Versionen bei

den jeweiligen Herstellern der Geräte (Palm)

oder verschollen (Sony, Tapwave)

Page 11: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Simulator

selbst die Gerätesimulatoren funktionieren manchmal etwas anders, als das richtige Gerät

Page 12: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Debuggen

● Mit Emulator oder Simulator: In CodeWarrior geht's prima...

mit PODS geht's auch...

mit prc-tools ist es schwierig.

● Auf dem Gerät: von brauchbar (m68k Code) bis

katastrophal (ARM Code)

Page 13: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Besonderheiten

● Creator ID: 4-stellige Buchstaben/Zahlenkombination. Wichtig eine je Anwendung, Registrieren auf www.developerpavilion.com

Page 14: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Beschränkungen

● limitierter Arbeitsspeicher (wird aber von Gerät zu Gerät besser)

● Segmentierung (32KB große Codesegmente im m68k Code -> MultiSegmentApp)

● Keine C-lib vorhanden, aber API hat viele ähnliche Aufrufe (strlen() -> StrLen() usw.)

● Tastenbelegung und Anordnung bei jedem Gerät anders: JogDial, 5-Way (Nav oder Rocker), Page Up/Down, Tastatur

Page 15: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Display-Auflösung

● bis OS < 5: 160x160 Standard (Lowres)● ab OS 5: 320x320 (Double Density, Hires)

und 320x480 (Hires+)● Wegen Kompatibilität normalerweise immer

alle Koordinaten in Lowres● spezielle APIs für OS < 5 von z.B. Sony und

Handera

Page 16: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Prozessor

● Geräte mit OS < 5 haben m68k: Motorola Dragonball Prozessor

● Geräte ab OS 5 haben ARM Prozessor mit m68k Emulation im ROM

● Anwendungen sind weiterhin im m68k Code, spezielle ARMlets (oder PNOlets) laufen auf direkt auf dem ARM Prozessor, werden aber gewöhnlich von einem m68k Launcher gestartet (siehe PalmPDF)

● ARM ist schneller, keine Segmentierung, ideal für Portierungen...

Page 17: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Infos, Webseiten, Foren, Links

● Palm OS SDK, Docs (API Reference, Companion 1 & 2) und Creator ID bei www.accessdevnet.com

● SDK zu Palm Geräten (Zire, Tungsten, Treo) bei pdn.palm.com

● SDK zu anderen Geräten auf den Herstellerseiten oder teilweise verschollen (Sony, Tapwave)

● News-Foren auf news.palmos.com

● Foren auf pdn.palm.com

● Wikis, Tutorials (z.B. www.flippinbits/twiki)

Page 18: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Ein Beispiel: Übersicht

● PilotMain (Test sysAppLaunchCmdNormalLaunch)

● StartApplication (enthält FrmGotoForm)● EventLoop (bis appStopEvent)● Event-Handler● StopApplication

Page 19: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Ein Beispiel: The Main

UInt32 PilotMain(UInt16 cmd, MemPtr cmdPBP, UInt16 flags);

● cmd - LaunchCode vom System● cmdPBP - Argumente je nach

LaunchCode● flags - Anwendung läuft bereits,

Anwendung hat Zugriff auf globale

Variablen usw.

Page 20: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Ein Beispiel: Start und Stop

● Start: PrefGetAppPreferences FrmGotoForm

● Stop: FrmCloseAllForms PrefSetAppPreferences

Page 21: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Ein Beispiel: Warten auf Godot

● EventLoop: Schleife bis appStopEvent kommt EvtGetEvent (Wartet auf Event, mit TimeOut) SysHandleEvent (Event nur für System?) Form wird geladen (frmLoadEvent): FrmInitForm, FrmSetActiveForm und FrmSetEventHandler

Sonst einfach: FrmDispatchEvent

Page 22: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Ein Beispiel: Oberfläche

● PILRC übersetzt .rcp-Datei:FORM ID MainForm AT ( 0 0 160 160 )BEGINTITLE "Nexave.de"

BUTTON "Enable" ID EnableBtn AT ( 40 30 80 20)BUTTON "Disable" ID DisableBtn AT ( PREVLEFT PREVTOP+30 PREVWIDTH PREVHEIGHT)

LABEL "Palm User Meeting 2008" AUTOID AT ( CENTER@80 113 )

END

Page 23: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Ein Beispiel: Makefile

all: nexave.prc

nexave.prc: main main.ro m68k-palmos-obj-res main build-prc -o nexave.prc -n "Nexave" -c NxVe *.grc *.ro

main: main.omain.o: main.c main.h Main_Rsc.h

Main_Rsc.h: main.rcp pilrc -ro main.rcp

Page 24: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Ein Beispiel: Test

Page 25: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Ein Beispiel: Launchcodes, Events, Notifications

● LaunchCodes:NormalLaunch, Reset, Find, GoTo...

● Events:frmOpenEvent, ctlSelectEvent, appStopEvent...

● Notifications: sysNotifyVirtualCharHandlingEvent, sysNotifyLateWakeupEvent

Page 26: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Ein Beispiel: Das Ergebnis

Page 27: Softwareentwicklung für Palm OS Vortrag zu PUM 2008 Übersicht über verfügbare Programmiersprachen Weitere Tools, Testen und Debuggen Emulator, Simulator,

Nachwort

Alles nochmal zum Nachlesen, die Beispielanwendung und der Sourcecode auf

● http://www.metaviewsoft.de/PUM-2008