Hoe bouw je een mobiele APP met XPages & jQuery mobile? - Pettrie de Bondt
Aan de hand van een praktijk voorbeeld bekijken wat er nodig is om een mobile APP te maken. Deze APP is gemaakt op basis van XPages en jQuery Mobile. Kort wordt de project aanpak aangestipt daarna bekijken we alle aspecten van de bouw, ontwerp & test van deze applicatie. Doormiddel van korte duidelijke stukken code wordt uitgelegd hoe je zelf de volgende mobile APP kunt bouwen!
14. MOBILE XPAGES
Wat zijn de mogelijkheden
Alles zelf bouwen (framework)
Extension library Mobile controls
TeamStudio Unplugged
OpenNTF
15. MOBILE XPAGES (II)
Andere frameworks
http://www.markus-falk.com/mobile-frameworks-comparison-chart/
CSS
jQuery Mobile
Bootstrap
HTML KickStart
Less Framework
xPage Themes
Javascript
jQuery Mobile
Dojo (Mobile)
Bootstrap
HTML KickStart
16. JQUERY VS DOJO
Advantages of jQuery:
Fast
Well documented
Easy to use
Chaining
Easy-to-use Ajax
Nice event handlers
CSS selectors
Small (only 30 KB)
Nice little built-in effects
Plugins
OOP no Class hierarchy
Advantages of Dojo:
OOP (and other paradigms)
Widget infrastructure
Lazy loading of modules
dynamically
Asynchronous loading of modules
if desired
Simple integration with CDN
Sheer breadth of available
modules in DojoX including
graphics, charting
Attention to details in widgets
Support for i18n (including LTR
and RTL languages)
Support for l10n (including
standard date, currency, number
formatting)
Provisions for people with special
needs
17. ZOEKTOCHT
Wat hebben we zelf onderzocht, wat zijn we tegen gekomen
Single page, diverse problemen
Unplugged, licentie probleem, niet handig opgezet
Buiten Xpages gezocht naar voorbeelden
jQuery mobile, BLUG
Conclusie
Event afhandeling in Dojo is !@#
Controls van anderen zijn moeilijk te doorgronden
Slechte/geen documentatie, weinig/geen voorbeelden
GJ Framework = jQuery Mobile
Mooi degelijk framework, grote community, veel examples
Zelf xPage controls maken
19. SECURIT Y
Security aspecten
Domino productie omgeving
DMZ
Gevoelige data
Verlies van apparaat
Trade-Off
A) Gemak in gebruik
Helpdesk ondersteuning, it just works
B) Veiligheid
VPN / SSL / Tokens / Wachtwoord / PIN
38. DISCUSSIE
Delen van code
Native / Hybrid / 100% HTML
Beveiliging
iPhone vs iPad (mini)
Apple iOS / Google Android / MS Mobile
Javascript, Dojo vs jQuery
Maken van voorbeelden / OpenNTF / StackOverflow / Skype
Presentatie bekijken
Zie: http://XPagesAndBeer.nl
#7: Gebr. Janssen in Beugen kent een aantal vakgebieden. Gestart als dakdekker, uitgegroeid tot specialist op het gebied van sanitair, riool en installatietechniek.Uitgebreide CRM applicatie; relatiebeheer, projecten, planbord, agendas, leverancierinfo, inspectie/keuringen apparatuur, etcFase 1: Zowel reletiebeheer als project informatie management systeem ontsluiten via mobile devicesFase 1B: Toevoegen van informtie, fotos notities etc..Fase 2: een aantal schermen binnen zowel relatiebeheer als project informatie management systeem kunnen wijzigenFase 3: Verder edit schermen toevoegen
#8: Zoalszoveel Notes applicaties,begonnen met eenvoudige CRMMaar veelverdergegroeidnaareenapplicatie die het helebedrijfs process van begin tot eindeondersteund.Mede door de duidelijkevisie van Peter (de controller bijGebr. Janssen) en de constantekeuzeomvoorpraktischoplossingentegaan is diteenbijzondere en goedgebruikteapplicatieCRM, Project management, Afhandeling van service calls, Agenda planning en Resource planning, Klachtenafhandeling, HRM met bijhouden van certificaten en trainingen, Gereedschapinventarisatie, Boekhoudingverwerken van binnenkomendedigitalefakturen.
#9: Iets vertellen over welke delen worden omgezet naar Mobile. Wellicht een kleine rondleiding in de Notes applicatie (relatiebeheer en PIMS) om een beeld te scheppen;Praktisch: met name de houding van de financieel directeur (Peter van Houtum); pragmatisch ingesteldFlexibel: Nieuwe inzichten kunnen direct uitgeprobeert worden maar ook kan iedere week weer nieuwe inzichten hebben
#10: Apparte server in DMZReplicatie per uurWijzigingen?ACLPartialReplicatie
#12: Responsive web design (RWD) is a web design approach aimed at crafting sites to provide an optimal viewing experienceeasy reading and navigation with a minimum of resizing, panning, and scrollingacross a wide range of devices (from mobile phones to desktop computer monitors)
#14: Welkebestaande custom controls zijnerWatzijn de mogelijkheden?
#15: Volledige framework zelf bouwen (mobilecontrols)Extension library; gebaseerd op xPagecontrols (blackbox); Single Page ApplicationMobile PageMobile SwitchPage HeadingRounded ListStatic Line ItemTab BarTab Bar ButtonTool Bar ButtonTeamstudio UnpluggedTeamstudioUnplugged XPages Mobile ControlsallowXPagesdevelopers the capability to dive into mobile application development without the necessity to be an expert mobile app developer. Using these new Controls and the Unplugged platform, a developer can produce well-designed mobile enterprise applications for iOS and Android devices. Using the Controls we've developed three samples - Lotus Notes mobile applications:Doc Library,Journal,and Teamroom - each of which is compatible with the original Lotus Domino application templates.Gecompliceerdlicentie modelOpenNTFDiverse voorbeeldapplicatie op mobile gebied gebaseerd op xPages
#16: Andere frameworks, zie http://www.markus-falk.com/mobile-frameworks-comparison-chart/ voor vergelijkingApacheFlex, JQ Touch, jQuery Mobile, Mobione, Dojo Mobile, Marmalade, etc
#17: jQuery vs Dojohttp://saurabh-shubham.blogspot.nl/2013/03/dojo-vs-jquery-mobile-quick-comparison.htmlPersonally, I think Dojo's lack of good documentation/reference code, lack of 'marketing', and relative complexity keep it from becoming popular. Documentation is a whole lot harder to use than jQuerys because, at first glance, its quite a bit more scattered and substantially more API-based than task-based. It's much easier to get started with library like jQuery because of all these factors. However, once you get over that initial steep learning curve, Dojo is good!
#18: Single page app problemen:Refresh in memory probleem; eenmaalgeopend document vanuit view-lijstwordtvastgehouden. Bijopenenander document wordt het eerste document weergeopendProblemen met back-button; we navigerenbinnen de GJ app eenaantallagendiepditgafna circa 7 clicks problemenwegvolledigkwijt
#19: De keuzevoorMobileFirstheeftook direct een impact op de security van de bedrijfsgegevens. Nietlanger is alles eenvoudig beschermedachter de corporate firewall.Hoe gaan we hiermeeom, en vooral hoe zorgen we voorbewustwordingbij de gebruikers van het systeem!Om tebeginnenhoeveelmensenhebbeneenwachtwoord op hunmobiel?
#20: Productie omgeving:Notes omgeving draait op JanDom01, web (mobile) omgeving draait op JanDom03 (DMZ)Helpdesk ondersteuning is er bij GJ niet; problemen zullen dan ook tot een minimum beperkt moeten worden. Het moet gewoon werken!Vanwege persoonlijke gegevens in de diverse database is beveiliging van de omgeving wel op zijn plaats. Gegevens mogen niet door Jan&Alleman worden ingezien.Verbinding wordt beveiligd opgezet (SSL) en databases zijn afgeautoriseerd; autorisatie vereist via usernaam/wachtwoord, waarbij het wachtwoord bestaat uit aantal ingevoerde karakters uitgebreid met door systeem bepaalde karakters. Handmatige invoer = 5 karakters lang. Uiteindelijke wachtwoord = 9 karakters lang
#21: Apparte server in DMZReplicatie per uurWijzigingenACLPartialReplicatie
#31: Kijkje achter de schermen; hoe is het geheel opgebouwd.Met name aandacht voor de structuur:m_index, xpages per formulier, customcontrols per formulier (van home page tot PIMS formulier)Dispatcher: zie xPage index.xspOpbouw niet in tabellen maar op basis van list items!
#33: XpagesCustom controle (start met cc? waarom)Beginnen met m / t / d (mobile/tablet/desktop)jQuery mobileExtra attributeshttp://stackoverflow.com/questions/10179098/applying-jquery-mobile-attributes-to-xpages-controlsTagname (voorXP:Text and XP:repeat)http://www.dominoguru.com/pages/xpage_xptext_tagName_options.htmlRepeat met header / footerhttp://xpageswiki.com/web/youatnotes/wiki-xpages.nsf/dx/Work_with_repeat_controlsSearch -> custom controlNavigation -> custom controlSections per tabHide field with empty valuejQuery to hide hidden sections, this means no complicated Hide/When = VisiblejQuery MobileFine-tune CSShttp://jquerymobile.com/http://demos.jquerymobile.com/1.4.0/JavascriptNo double-click delay (already in jQuery)https://coderwall.com/p/bdxjzg
#34: Ditkanwaarschijnlijkookwel met FireFoxXPagedebugbarhttp://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=XPage+Debug+ToolbarAlert(Help?);Console.log(Developer information);Non-blocking, log, warn, error, asserthttps://developers.google.com/chrome-developer-tools/docs/consoleDebugger;Breakpointhttps://developers.google.com/chrome-developer-tools/docs/consoleRemote debug:Zet debug aan in je browser op je deviceIn Chrome / Safari, connect naar device en alle debug informatiezie je op je PCGoogle Chrome debug informatiehttps://developers.google.com/chrome-developer-tools/
#35: Let op de:General : no cacheOverrides: User AgentDevice Metrics: Resolution, Font-Scale * 2Verderalleoverige debug settings besprokenVooranderezaken- Fiddlerhttp://fiddler2.com/
#39: Delen,delen en delenVakerKennisSessie (wiespreekterdan?)Meer code delenOplossingendelen, demo makenDuidelijker en eerderaangevendatereenKennisSessie is