Plain jQuery Mobile vs. APEX jQuery Mobile Smartphone vs. APEX Desktop Dipl.-Inf. Oguz Ibram Prof. Dr. Petra Sauer DOAG Konferenz und Ausstellung 2013, Nürnberg 19. – 21. November 2013 Gliederung Einführung „Apps“ Herangehensweisen bei App-Entwicklung APEX Grundlagen … als Basis der mobilen APEX-Erweiterung jQuery Mobile jQuery und das jQuery Mobile Framework App-Entwicklung APEX jQuery Mobile Smartphone App-Entwicklung Zusammenfassung und Fazit DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 2 Apps vs. Webseiten Mobile Apps haben Design Guidelines oder eine Creative Vision. Die Android UI Design Patterns verlangen von einer App: Enchant me Simplify my life Make me amazing Apple besitzt ebenso ausführliche iOS Human Interface Guidelines Was ist so anders an Apps? Die folgenden Folien zeigen Ausschnitte aus den Android UI Design Patterns. DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 3 … visuell überzeugen … DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 4 … sich konsistent und vertraut verhalten … DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 5 …sich an vordefinierten Elementen orientieren … DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 6 Plattformübergreifende Apps Mobile Web-Apps Mobile native Apps plattformübergreifende App mit plattformspezifische App => hoher HTML5, CSS3, JavaScript und Programmieraufwand einer serverseitigen Komponente Laufzeitumgebung ist der Browser kompliziertes Zulassungsverfahren im App Store / Google Play Store Provider hat volle Kontrolle über Updates abhängig vom Updates Nutzerdownload bedingter Zugriff auf Hardware App liegt nativ im Gerät schlechtere Performance bessere Performance DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 7 Gliederung Einführung Apps Herangehensweisen bei App-Entwicklung APEX Grundlagen … als Basis der mobilen APEX-Erweiterung jQuery Mobile jQuery und das jQuery Mobile Framework App-Entwicklung APEX jQuery Mobile Smartphone App-Entwicklung Zusammenfassung und Fazit DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 8 Oracle Application Express (APEX) Rapid Application Development-Werkzeug datenbankzentriert, Zwei-Schichten-Architektur => kein ORM deklarative Anwendungs- und App-Entwicklung im Browser Web-App-Entwicklung in APEX mittels integriertem jQuery Mobile-Framework DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 9 APEX-Grundlagen: die Page Definition Page Definition Page ist im Zentrum der Arbeit mit APEX: Page Rendering, Page Processing, Shared Components sind die „Säulen“ der Anwendungsentwicklung mit APEX zahlreiche Wizards viele einsatzbereite Komponenten (Reports, Forms, Charts, speziellere Komponenten wie Tabular Forms, Master-DetailForms, Interactive Reports) Logik implementieren in SQL und PL/SQL Look & Feel: ausgelagert in Templates, App-weite Konsistenz durch Themes DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 10 APEX-Grundlagen : das Page Rendering DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 11 APEX-Grundlagen: das Page Processing DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 12 APEX-Grundlagen: Shared Components DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 13 Gliederung Einführung Apps Herangehensweisen bei App-Entwicklung APEX Grundlagen … als Basis der mobilen APEX-Erweiterung jQuery Mobile jQuery und das jQuery Mobile Framework App-Entwicklung APEX jQuery Mobile Smartphone App-Entwicklung Zusammenfassung und Fazit DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 14 jQuery Mobile DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 15 jQuery Mobile Features implementiert mit jQuery Markup-getriebene Konfiguration der App-Seiten Progressive Enhancement mittels HTML5-data-*Elementattribute Responsive Design AJAX-basiertes Navigationssystem Einheitliche UI-Widgets Unterstützung von Touch-Events Eigenes Theming-Framework DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 16 Vorgehen bei App-Entwicklung Benötigte Bibliotheken und Metadaten hinzufügen <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2/jquery.mobile1.3.2.min.css" /> <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile1.3.2.min.js"></script> <ab hier ggfs. noch eigene CSS- und JavaScript - Libraries> DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 17 Vorgehen bei App-Entwicklung Markup schreiben (semantische HTML5-Elemente nutzen) data-*-Elementattribute hinzufügen <section data-role="page" id=“page1"> <header data-role="header"> <h1>…</h1> </header> <div data-role="content"> <p>…</p> </div> <footer data-role="footer"> <h4>…</h4> </footer> </section> <section data-role="page" id=“page2"> …… ein HTML-Dokument, zwei interne Pages DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 18 Applikationsstruktur Pages <div data-role="page"> Dialogs: die zweite „Art“ von Pages <a href="foo.html" data-rel="dialog"> Speicherung der Navigation durch die Pages in HistoryFunktionalität des Browsers Transitions Page: <a href="foo.html" data-transition="pop"> Dialog: <a href="foo.html" data-rel="dialog" datatransition="pop"> data-transition= "{fade|flip|flow|none|pop|slide|slidedown|slidef ade|slideup|turn}" DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 19 Page-Elemente: Widgets I List Views <ul data-role="listview" data-inset="true"> <li><a href="#">Acura</a></li> …. </ul> Toolbars Navigation Bars <div data-role="navbar"> <ul><li><a href="#" class="ui-btn-active">One </a></li> Header / Footer Toolbars data-role = " header " / "footer" DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 20 Page-Elemente: Widgets II Buttons: drei Möglichkeiten automatisch für input type="submit|reset" automatisch für <button>-Element auf anchor <a> angewendetes data-role="button" Gruppierung der Buttons mit data-role="controlgroup" Forms automatisch für input type= "checkbox|radio" Flip-Toggle data-role= " slider" HTML5-Typen bei Inputfeldern Search-Felder bekommen Fernglas-Icon und Suchfunktionalität durch input type= "search" DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 21 Nur data-*-Attribute? Customizing jQm I jQuery mobile ist jQuery, ist also nach jQuery-Art $(selector).action() verwendbar. Keine Beschränkung auf mit data-*-Attributen eingebettete Funktionalität. Beispiel aus den jQm-Demo-Showcases: DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 22 Customizing jQm I (Demo Showcase continued) DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 23 Customizing jQm II jQuery mobile bringt eigene umfangreiche jQuery API mit DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 24 jQuery Mobile Theming Built-In Layout Grids ui-grid-a bis ui-grid-d ui-block-a bis ui-block-e Responsive Design könnte darauf aufbauen ThemeRoller Themes und Swatches-Begriffe Steuerbar über Attribut data-theme DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 25 jQuery Mobile Theming II DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 26 Gliederung Einführung Apps Herangehensweisen bei App-Entwicklung APEX Grundlagen … als Basis der mobilen APEX-Erweiterung jQuery Mobile jQuery und das jQuery Mobile Framework App-Entwicklung APEX jQuery Mobile Smartphone App-Entwicklung Zusammenfassung und Fazit DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 27 Vorgehen bei App-Entwicklung App anlegen mit Create Database Application UI auf jQuery Mobile Smartphone Smartphone-Theme wählen fertiges App-Gerüst mit drei Seiten steht dann bereits Global Page wird immer angelegt und enthält Header und Footer mit ihren Templates z.B. Header bzw. Footer Toolbar(Fixed) DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 28 Templates enthalten jQuery mobile-Code Template Header Toolbar (fixed) DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 29 Vorgehen bei App-Entwicklung Benötigte Bibliotheken und Metadaten sind bereits hinzugefügt, allerdings jQuery mobile 1.2.1 bei APEX 4.2.3 eigene CSS-/JavaScript-Bibliotheken in /i/libraries und /i/themes ablegen und in Page Definition bzw. Page Template einbinden Content Delivery Network über Application Properties deklarativ nutzbar DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 30 Was APEX daraus macht … DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 31 Vorgehen bei App-Entwicklung Wie gewohnt Pages hinzufügen Neue und weggefallene Page-Typen Report als ListView Form on a Table with ListView Kein Interactive Report, keine Master-Detail-Forms, keine Tabular Forms DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 32 Page-Elemente deklarieren: ListViews I List Views konfigurieren über Region Attribute DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 33 Page-Elemente deklarieren: ListViews II Counter Column ist eine Spalte in der Ergebnismenge DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 34 Page-Elemente deklarieren: Buttons Buttons konfigurieren über Button Attribute DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 35 Page-Elemente deklarieren: Forms Forms konfigurieren über Item Attribute DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 36 Customizing von jQm in APEX Das Event definieren und mit Execute JavaScript eigenen Code einfügen jQuery mobile-Events sind integriert jQuery() und $() vs. apex.jQuery() DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 37 Theming deklarative Grid Layout-Bestimmung mit ThemeRoller generierte CSS-Datei in APEX nutzen DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 38 Baumkontrolle mit APEX und jQuery mobile DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 39 Gliederung Einführung Apps Herangehensweisen bei App-Entwicklung APEX Grundlagen … als Basis der mobilen APEX-Erweiterung jQuery Mobile jQuery und das jQuery Mobile Framework App-Entwicklung APEX jQuery Mobile Smartphone App-Entwicklung Zusammenfassung und Fazit DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 40 Fazit Apps deklarativ zu entwickeln ist möglich, aber an einigen Stellen ist Kenntnis von jQuery mobile von Vorteil (z.B. Button Attributes) Großer Vorteil der Entwicklung mit APEX ist die zur Verfügung stehende Datenbankanbindung und Entwicklung serverseitiger Logik nach bekannter APEX-Art Responsive Web Design mit APEX nur für Desktop-Themes, die jQuery Mobile Smartphone-Themes sind auch nur für Smartphone-Apps/Pages gedacht DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 41 Referenzen Czarski, Carsten: Express-Dienst – Oracle APEX. Rapid Application DevelopmentWerkzeug für Webanwendungen, Heise 2009 Hartman, Roel; Rokitta, Christian; Peake, David: Oracle Application Express for Mobile Web Applications, New York 2013 Oracle Technology Network: Oracle Application Express Application Builder User’s Guide, R4.2 Raganitsch, Peter: Wie hausgemacht. Mobile Oracle-Anwendungen mit APEX, iX 10/2013 Reid, Jon: jQuery Mobile – Building Cross-Platform Mobile Applications, Sebastopol 2011 DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 42 Dokumentationen Oracle Datenbank http://www.oracle.com/database/ APEX http://apex.oracle.com http://www.oracle.com/technetwork/developer-tools/apex/overview/index.html (OTN) http://www.oracle.com/webfolder/technetwork/de/community/apex/index.html (Deutschsprachige APEX- und PL/SQL-Community) DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 43 Vielen Dank für Ihre Aufmerksamkeit! Dipl.-Inf. Oguz Ibram / Prof. Dr. Petra Sauer Beuth-Hochschule für Technik Berlin Fachbereich Informatik Luxemburger Str. 10 13353 Berlin Web: prof.beuth-hochschule.de/sauer Mail: oibram / [email protected] Die Entwicklungsarbeit wurde im Rahmen des Projektes Forschungsassistenz VI durch die Senatsverwaltung für Wirtschaft, Technologie und Forschung mit Mitteln des Europäischen Sozialfonds gefördert. DOAG Konferenz und Ausstellung 2013 • Nürnberg • November 2013 • Ibram, Sauer 44