Logo Oracle Deutschland   APEX und PL/SQL Community
APEX-Anwendungen für mobile Endgeräte - mit APEX 4.2
Erscheinungsmonat APEX-Version Datenbankversion
August 2012 ab 4.2 ab 10.2

Wie man APEX-Anwendungen für mobile Endgeräte erstellt, wurde bereits in zwei Community Tipps von Peter Raganitsch beschrieben. Bis einschließlich APEX 4.1 muss man hier aber recht viel selbst machen: So muss man jQuery Mobile herunterladen, einbinden und die "mobilen" Seitentemplates selbst gestalten.

Mit APEX 4.2 wird das alles viel einfacher, denn APEX 4.2 bringt die Unterstützung für "mobile APEX-Anwendungen" direkt mit. jQuery Mobile ist bereits eingebunden und es liegen fertige Templates für eine Anwendung vor. In diesem Tipp erfahren Sie, wie Sie eine APEX-Anwendung für mobile Endgeräte mit APEX 4.2 erstellen. Vorab schon soviel: jeder APEX-Entwickler kann das!

Erstellen Sie zum Ausprobieren eine einfache Anwendung mit einem Bericht, einem Formular und einem Diagramm auf Basis der wohlbekannten Tabelle EMP. Schon dabei werden Sie von APEX darauf hingewiesen, dass es nun mehr als Desktop-Anwendungen gibt (Abbildung 1).

Auswahl eines "User Interface" beim Erstellen einer Anwendung: "Desktop" oder "Mobile"?

Abbildung 1: Auswahl eines "User Interface" beim Erstellen einer Anwendung: "Desktop" oder "Mobile"?

Ab APEX 4.2 ist eine APEX-Anwendung mit einem oder mehreren User Interfaces ausgestattet. Jede Seite wird einem User Interface zugeordnet - daraus leitet sich das Theme und daraus wiederum das Seitentemplate ab. So wird es möglich, dass verschiedene Seiten einer Anwendung verschiedene Themes verwenden. Der praktische Nutzen ist, dass die Desktop- und die "mobile" Version einer Anwendung in ein und derselben APEX-Anwendung gehalten werden kann - es ist nicht zwingend nötig, separate Anwendungen zu erstellen. Erstellen Sie also eine Desktop-Anwendung mit einem Bericht, einem Formular und einem Diagramm, wie in den Abbildungen 2a bis 2c dargestellt.

APEX Anwendung für den Desktop: Bericht
APEX Anwendung für den Desktop: Formular
APEX Anwendung für den Desktop: Diagramm

Abbildung 2a, 2b, 2c: APEX-Anwendung für den Desktop

Nun geht es daran, den "mobilen" Part zu erstellen. Navigieren Sie dazu zu den Gemeinsamen Komponenten und dort rechts zur Anwendungsdefinition. Wählen Sie dann die Reiterkarte User Interfaces an (Abbildung 3).

User Interfaces einer APEX-Anwendung bearbeiten

Abbildung 3: User Interfaces einer APEX-Anwendung bearbeiten

Klicken Sie auf die Schaltfläche Add New User Interface, um der Anwendung eine weitere Benutzeroberfläche hinzuzufügen (Abbildung 4).

Neues User Interface hinzufügen

Abbildung 4: Neues User Interface hinzufügen

Wählen Sie im nächsten Dialog ein Theme aus und erstellen Sie das User Interface schließlich mit einem Klick auf die Schaltfläche Erstellen. Danach sehen die vorhandenen User Interfaces wie folgt aus.

Die Anwendung ist nun mit zwei Benutzeroberflächen ausgestattet

Abbildung 5: Die Anwendung ist nun mit zwei Benutzeroberflächen ausgestattet

Allerdings nutzt das alleine noch nicht viel. Denn zu dem neuen User-Interface gibt es bislang noch keine Anwendungsseiten. Der nächste Schritt ist also, neue Anwendungsseiten für dieses User Interface zu erstellen - es ist nicht möglich, eine Anwendungsseite in mehreren User Interfaces zu nutzen. Fügen Sie der Anwendung also nun eine neue Seite hinzu (Abbildung 6).

Neue Seiten werden beim Erstellen einem User Interface zugewiesen

Abbildung 6: Neue Seiten werden beim Erstellen einem User Interface zugewiesen

Bei Festlegung des Seitentyps wird gleichzeitig das User Interface, zu dem die Seite gehört, bestimmt. Je nach User Interface wechseln die verfügbaren Seitentypen - so macht eine "Map" für ein "mobiles" User Interface keinen Sinn, da die AnyChart Maps auf Flash basieren. Stellt man die Auswahlliste Show Unsupported unten auf Yes, so werden sie dennoch sichtbar. Wählen Sie das "mobile" User Interface aus, nehmen Sie als Seitentyp Report und klicken Sie auf Next.

Berichtstypen für ein "mobiles" User Interface

Abbildung 7: Berichtstypen für ein "mobiles" User Interface

Bei der Auswahl des Berichtstyps bemerkt man den nächsten Effekt des ausgewählten User Interfaces: Sie bekommen den interaktiven Bericht nicht mehr, dafür aber den Berichtstyp List View angeboten. Der Grund ist auch hier, dass ein interaktiver Bericht auf einem mobilen Endgerät keinen Sinn macht. Wählen Sie List View aus und klicken Sie auf Next.

Im darauf folgenden Dialog legen Sie, wie immer, Seitenname, -nummer und die Regionsüberschrift fest. Danach hinterlegen Sie die Regionsquelle. Wie bei jedem Bericht ist es auch hier eine SQL-Abfrage (Abbildung 8).

SQL-Abfrage als Regionsquelle hinterlegen

Abbildung 8: SQL-Abfrage als Regionsquelle hinterlegen

Im danach folgenden Dialog können Sie die List View einrichten. In der Praxis sicherlich am häufigsten benötigt ist das Advanced Formatting, mit dem Sie mehr als nur eine Spalte in der List View anzeigen können. Hier können Sie HTML-Fragmente einsetzen, um die Darstellung der Informationen zu steuern. Achten Sie aber darauf, dass die Spaltennamen, zumindest im Early Adopter Release, mit der Substitition Syntax , also mit &SPALTENNAME. angegeben werden müssen. Auch ein Link Target können Sie jetzt schon setzen, denn auch auf dem mobilen Endgerät soll man den Datensatz bei Klick editieren können. Tragen Sie also unter Link Target einen Verweis auf die Seite 10 ein - in "klassischer APEX-Link-Manier". Nicht zuletzt macht sich gerade bei den Daten der Tabellen EMP und DEPT ein List Divider sehr gut: Klicken Sie Has List Divider an und wählen Sie DNAME als Divider Column aus.

f?p=&APP_ID.:10:&APP_SESSION.::&DEBUG.:RP,10:P10_EMPNO:&EMPNO.
Darstellung der List View konfigurieren

Abbildung 9: Darstellung der List View konfigurieren

Klicken Sie dann auf Next und legen Sie die List View schließlich an. In einem normalen Browser (Firefox) sieht die Seite dann in etwa wie in Abbildung 10 aus.

Die neue mobile Ansicht: zunächst im Browser

Abbildung 10: Die neue mobile Ansicht: zunächst im Browser

Rufen Sie die Seite danach mal mit einem mobilen Gerät auf (Abbildung 11).

Die neue mobile Ansicht: nun mit einem mobilen Endgerät

Abbildung 11: Die neue mobile Ansicht: nun mit einem mobilen Endgerät

Wenn Sie nun auf einen der Einträge klicken (oder tippen), dann wird das vorher hinterlegte Link Target angesprochen. Die darin festgelegte Seite 10 mit einem "mobilen" Formular exisiert aber noch nicht. Legen Sie also eine neue Seite 10 an, ordnen Sie sie dem User Interface jQuery mobile Smartphone zu und wählen Sie Form als Seitentyp aus. Erstellen Sie dann das Formular für eine Tabelle genauso, als ob Sie eine normale Anwendungsseite erstellen würden; der APEX-Assistent funktioniert genauso. Nehmen Sie als Primärschlüssel aber die EMPNO (und nicht die ROWID), da diese vom Link von der List View zum Formular bereits genutzt wird. Wenn Sie fertig sind, sieht das Formular auf einem mobilen Endgerät wie in Abbildung 12 aus.

Ein APEX-Formular auf einem mobilen Endgerät Ein APEX-Formular auf einem mobilen Endgerät

Abbildung 12: Ein APEX-Formular auf einem mobilen Endgerät

Gerade bei Eingabefeldern hat ein mobiles User Interface noch eine Besonderheit. So können Sie bei einem Texteingabefeld noch den Typ angeben und zwischen Text, Email, Telefonnummer und URL wählen (Abbildung 13).

Besondere Eingabefelder für mobile Endgeräte

Abbildung 13: Besondere Eingabefelder für mobile Endgeräte

Auf dem mobilen Endgerät kann das dann so aussehen - Voraussetzung ist, dass das Gerät und sein Browser den HTML5-Standard unterstützen und entsprechend umsetzen.

Eingabefeld Telefonnummer auf einem mobilen Endgerät

Abbildung 14: Eingabefeld Telefonnummer auf einem mobilen Endgerät

Auswahllisten, Checkboxes oder Radiogroups werden analag zu herkömmlichen Anwendungen erstellt. APEX sorgt selbst für die richtige Darstellung auf dem mobilen Endgerät.

Auswahllisten auf mobilen Endgeräten Radiogroups auf mobilen Endgeräten Checkboxes auf mobilen Endgeräten

Abbildung 15: Auswahllisten, Checkboxes und Radiogroups auf mobilen Endgeräten

Als nächstes ist es an der Zeit, eine Navigationsseite einzurichten. Denn für Reiterkarten oder Breadcrumbs ist auf einem Smartphone normalerweise kein Platz. Erzeugen Sie also zunächst eine neue Liste mit Einträgen für die Seiten mit dem Bericht (der ListView) und dem Formular. Wenn Sie möchten, können Sie auch noch einen Eintrag für die Diagrammseite erstellen, die wir als nächstes bauen werden (Abbildung 16).

Erstellen einer Liste zur Navigation in der Anwendung

Abbildung 16: Erstellen einer Liste zur Navigation in der Anwendung

Allerdings soll das Formular geleert werden, wenn man über das Menü dorthin navigiert. Gehen Sie also zum Listeneintrag für die Seite mit dem Formular (hier ist das die Seite 10) und tragen Sie noch ein, dass der Cache für diese Seite gelöscht werden soll (Abbildung 17).

Beim Verzweigen auf die Seite 10 soll das Formular geleert werden

Abbildung 17: Beim Verzweigen auf die Seite 10 soll das Formular geleert werden

Danach erzeugen Sie eine neue, leere Seite für das "mobile" User Interface. Diese Seite erhält eine neue Region vom Typ Liste, der Sie die eben erzeugte Liste zuweisen. Im mobilen Gerät sieht das dann wie in Abbildung 18 aus.

Navigationsmenü für mobile Endgeräte

Abbildung 18: Navigationsmenü für mobile Endgeräte

Als letztes fügen Sie Ihrer Anwendung ein Diagramm hinzu. Erzeugen Sie dazu "ganz normal" eine neue Seite und wählen Sie Diagramm als Typ aus. Ist die Seite einem "mobilen" User Interface zugeordnet, werden die Diagramme nicht als Flash-Diagramme, sondern mit HTML5-Technologie dargestellt. Daher stehen für mobile Anwendungen nicht alle in APEX bekannten Diagrammtypen zur Verfügung (Abbildung 19).

Diagrammtypen für "mobile" Anwendungen

Abbildung 19: Diagrammtypen für "mobile" Anwendungen

Das Diagramm selbst wird "wie immer" erstellt. Wenn Sie fertig sind, sollte es auf dem mobilen Endgerät wie in Abbildung 20 aussehen.

3D Pie Chart auf mobilen Endgeräten

Abbildung 20: 3D Pie Chart auf mobilen Endgeräten

Das Erstellen einer mobilen APEX-Anwendung funktioniert in APEX 4.2 tatsächlich genauso wie das Erstellen einer "klassischen" Anwendung. Im Gegensatz zur "manuellen" Methode muss man so gut wie keine Besonderheiten mehr beachten - man muss sich nicht mehr mit den Details von jQuery Mobile beschäftigen und auch keinen Aufwand für das Einbinden betreiben.

Natürlich ist die beschriebene Anwendung auf Basis der Tabelle EMP noch nicht "fertig". Es fehlen noch Header und Footer-Regionen, ein Logout-Button, eine automatische "Weiche", die je nach Browser auf die mobile Version oder die Desktopversion verzweigt und noch einiges mehr. Dazu wird ein weiterer Community Tipp erscheinen.

Zurück zur Community-Seite