SlideShare a Scribd company logo
XPages and XPages for Mobile   Chris Toohey www.dominoGuru.com
XPages & XPages for Mobile What exactly are XPages? (And why you should care...) โ€œ More than a faceliftโ€ Taking XPages to Mobile Devices Progressive Enhancement How to get started... Wrap up
XPages & XPages for Mobile What exactly are XPages? (And why you should care...) โ€œ More than a faceliftโ€ Taking XPages to Mobile Devices Progressive Enhancement How to get started... Wrap up
What exactly are XPages? A โ€œvariableโ€ Design Element, replacing: Forms Pages Navigators Views
What  exactly  are XPages? XPage Design Elements consist of: HTML CSS JavaScript ServerSide JavaScript Controls (native & custom) XPages use Themes Default rendering relies on Themes & Dojo
What are Controls? Pre-built & Developer-defined XPage XML, HTML, CSS,  & JavaScript Think โ€œSubformโ€ Available from the Controls Palette in DDE Allow โ€œNestingโ€ and  โ€œRepeated Useโ€
What is Dojo? JavaScript Toolkit natively used by XPages Open Source Globally Adopted/Supported Rendering of UI/UX Field-level validation Alternate-input types Web 2.0 animation
What are Themes? Pre-built & Developer-defined Build-upon/expand or replace existing Themes Think โ€œXSLTโ€ for XPages and Controls included Resources (ie., Stylesheets) className for Controls <!-- Basic Text --> < control > < name > Text </ name > < property > < name > styleClass </ name > < value > xspText </ value > </ property > </ control > <!-- FireFox Specific --> < resource   rendered = &quot;#{javascript:context.getUserAgent().isFirefox()}&quot; > < content-type > text/ css </ content-type > < href > /. ibmxspres /global/theme/ webstandard /xspFF. css </ href > </ resource >
Hello World โ€œ example.xspโ€ XPage XPage XML Pass-thru HTML markup <? xml   version = &quot;1.0&quot;   encoding = &quot;UTF-8&quot; ?> < xp:view   xmlns:xp = &quot;http://www.ibm.com/xsp/core&quot;   xmlns:xc = &quot;http://www.ibm.com/xsp/custom&quot; > < p > Hello World! </ p > </ xp:view >
The end result... <! DOCTYPE   HTML   PUBLIC   &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;   &quot;http://www.w3.org/TR/html4/loose.dtd&quot; >   < html   lang = &quot;en&quot; >   < head >   < title ></ title >   < script   type = &quot;text/javascript&quot;   src = &quot;/domjs/dojo-1.3.2/dojo/dojo.js&quot;   djConfig = &quot;locale: 'en-us'&quot; ></ script >   < script   type = &quot;text/javascript&quot;   src = &quot;/domjs/dojo-1.3.2/ibm/xsp/widget/layout/xspClientDojo.js&quot; ></ script >   < link   rel = &quot;stylesheet&quot;   type = &quot;text/css&quot;   href = &quot;/domjava/xsp/theme/webstandard/xsp.css&quot; >   < link   rel = &quot;stylesheet&quot;   type = &quot;text/css&quot;   href = &quot;/domjava/xsp/theme/webstandard/xspLTR.css&quot; >   < link   rel = &quot;stylesheet&quot;   type = &quot;text/css&quot;   href = &quot;/domjava/xsp/theme/webstandard/xspSF.css&quot; >   </ head >   < body   class = &quot;xspView tundra&quot; >   < form   id = &quot;view:_id1&quot;   method = &quot;post&quot;   action = &quot;/XPages%20Presentation.nsf/example.xsp?SessionID=CNB3RK18A0&quot;   class = &quot;xspForm&quot;   enctype = &quot;multipart/form-data&quot; >   < p > Hello World! </ p >   < input   type = &quot;hidden&quot;   name = &quot;$$viewid&quot;   id = &quot;view:_id1__VUID&quot;   value = &quot;!cnb3rm1kg0!&quot; >   < input   type = &quot;hidden&quot;   name = &quot;$$xspsubmitid&quot; >   < input   type = &quot;hidden&quot;   name = &quot;$$xspexecid&quot; >   < input   type = &quot;hidden&quot;   name = &quot;$$xspsubmitvalue&quot; >   < input   type = &quot;hidden&quot;   name = &quot;$$xspsubmitscroll&quot; >   < input   type = &quot;hidden&quot;   name = &quot;view:_id1&quot;   value = &quot;view:_id1&quot; >   < script   type = &quot;text/javascript&quot; >   function clearFormHiddenParams_view__id1(curFormName) { var  curForm = document.forms[curFormName]; } </ script >   </ form >   </ body >   </ html >
Beyond the Design Element XPages as a development methodology: Establish fundamental Model-View-Controller architectures for LND applications. Leverage new and existing NotesData through defined Data Sources Simplify application maintenance via a return to the โ€œsingle Design Element per clientโ€ while enabling client-specific feature functionality.
The power of XPages XPages can... Define a remote Notes Data Source Proxy Create, Read, Update, & Delete NotesData Requests Update User Interfaces while maintaining โ€œproductionโ€ applications.
But why should you care? XPages are the future of the Lotus Notes Domino platform. XPages employ industry standard development tools & transferable developer skills. XPages can rapidly produce applications for faster turn-around from โ€œbusiness needโ€ to โ€œsolutionโ€.
XPages & XPages for Mobile What exactly are XPages? (And why you should care...) โ€œ More than a faceliftโ€ Taking XPages to Mobile Devices Progressive Enhancement How to get started... Wrap up
What is a โ€œLotus Notesโ€ UI? The majority of Lotus Notes applications use a 3-pane layout: Left Navigation Top Action Bar Center Data Grid
What is a โ€œLotus Notesโ€ UI? The majority of Lotus Notes applications use a 3-pane layout: Left Navigation Top Action Bar Center Data Grid
What is a โ€œLotus Notesโ€ UI? The majority of Lotus Notes applications use a 3-pane layout: Left Navigation Top Action Bar Center Data Grid
Employees: After Hours
But when they come into work... Clunky, โ€œ4.6โ€-era Databases Navigator-based Non-intuitive compared to  today's apps.
But when they come into work... Clunky, โ€œ4.6โ€-era Databases Navigator-based Non-intuitive compared to  today's apps.
But when they come into work... Clunky, โ€œ4.6โ€-era Databases Navigator-based Non-intuitive compared to  today's apps. (That was the same app!)
Meet or exceed the expectation โ€œUpdatingโ€ an application means more than  โ€œjust a faceliftโ€ ; it is an opportunity... Empower your users! Display the capabilities of IT!
XPage Applications IdeaJam from Elguiji Crowd-sourcing ideas from a community. Contemporary User Interface & design. Built on XPages!
XPage Applications XPages Wiki Template Allow users to easily  author & maintain  business information. IBM's OneUI Theme Open Source
XPage Applications xTalk Discussion Forum Template Allow users to collaborate via familiar UX. Enhanced OneUI Theme Open Source
Example: Personal Address Book Contact Form consists of over 33 UI fields! Excellent for  tracking contact info Painful for Web  Browser Clients Horrible for Mobile  Device Clients
Architecture Considerations Direct Access HTTP Request Proxy vs. Direct Access HTTP Request Proxy IBM Lotus Notes Domino NRPC lends to  HTTP Request Proxy architectures
Remote Data Sources โ€œ Otherโ€ allows you to define external/ remote Data Sources < xp:this.data > < xp:dominoView   var = &quot;contacts&quot;  databaseName = &quot;mpab.nsf&quot;  viewName = &quot;People&quot; > </ xp:dominoView > </ xp:this.data >
Using Remote Data Sources Using โ€œcontactsโ€ Variable... < xp:repeat   id = &quot;contacts&quot;   rows = &quot;30&quot;   value = &quot;#{contacts}&quot;  var = &quot;thisDoc&quot; > < li   class = &quot;menu&quot; > < xp:link   escape = &quot;true&quot;   id = &quot;link_person&quot;  styleClass = &quot;name&quot; > < xp:this.text >   <![CDATA[ #{javascript:var ln = thisDoc.getDocument().getItemValueString(&quot;LastName&quot;);  var fn = thisDoc.getDocument().getItemValueString(&quot;FirstName&quot;); return ln + &quot;, &quot; + fn;} ]]> </ xp:this.text > < xp:eventHandler   event = &quot;onclick&quot;   submit = &quot;true&quot;  refreshMode = &quot;complete&quot; > < xp:this.action >   < xp:openPage   name = &quot;/person.xsp&quot;  target = &quot;editDocument&quot;    documentId = &quot;#{javascript:thisDoc.getDocument().getUniversalID();}&quot; > </ xp:openPage > </ xp:this.action > </ xp:eventHandler > </ xp:link > </ li > </ xp:repeat >
... with some CSS
Exporting via XPages Once you control the Content Type,  anything  is possible! < xp:openPage   name = &quot;/export.xsp&quot; > </ xp:openPage >
XPages & XPages for Mobile What exactly are XPages? (And why you should care...) โ€œ More than a faceliftโ€ Taking XPages to Mobile Devices Progressive Enhancement How to get started... Wrap up
Mobile Browser Apps Most developers are moving to โ€œmobile browser appsโ€ vs. native device apps for the following reasons: Centrally-controlled & maintained for ease of maintenance. All smartphones support web browsing. Transferable skills: HTML, CSS, & JavaScript (sound familiar?!)
Support for HTML5 As more browsers support HTML5... โ€œRich clientโ€ experience Natively-rendered advanced UI controls Native offline data storage Out of coverage area? No problem!
WebKit Desktop Web Browsers Safari Chrome Mobile Devices iPhone / iPad / iPod Touch / iOS BlackBerry OS6 Symbian OS / S60 (via port)
iWebKit Webkit-friendly CSS Framework http://iwebkit.net
Framework Naming Schemes JavaScript & CSS Frameworks are often path-sensitive. Stylesheets css/(stylesheet) JavaScript library javascript/(JavaScript) Image resources images/(image)
Demo
XPages & XPages for Mobile What exactly are XPages? (And why you should care...) โ€œ More than a faceliftโ€ Taking XPages to Mobile Devices Progressive Enhancement How to get started... Wrap up
Client Limitations While all smartphones browser render HTML, CSS, and JavaScript... vs. Know your platforms limits & plan accordingly!
The User Agent Each client reports a specific User Agent Content based on User Agent The โ€œwebstandardโ€ Theme renders specific classNames and includes User Agent-customized Stylesheets. <!-- IE Specific --> < resource   rendered = &quot;#{javascript:context.getUserAgent().isIE(0,6)}&quot; > < content-type > text/ css </ content-type > < href > /. ibmxspres /global/theme/ webstandard /xspIE06. css </ href > </ resource >
Using the User Agent Capturing the User Agent CGI Variable: HTTP_User_Agent SSJS: this.request.getHeader(โ€œUser-Agentโ€); var  body =  &quot;&quot; ; var  UA =  this .request.getHeader( &quot;User-Agent&quot; ).toLowerCase(); if  (UA.indexOf( 'iphone' ) != -1) { body = iphone_friendly; }; if  (UA.indexOf( 'ipad' ) != -1) { body = ipad_friendly; }; if  (UA.indexOf( 'blackberry' ) != -1) { body = blackberry_friendly; }; ... writer.write(body);
Progressive Enhancement Think Nintendo Wii vs. Microsoft Xbox 360 The Wii remote and nunchuk allow for enhanced, interactive gameplay while the Xbox 360 supports higher-resolution graphics Leverage platform or device-specific functionality  without  changing the core application For devices with a GPS antenna, you can include location information Your app would not rely on GPS data! For devices with a touchscreen, you can rely on a touchscreen-friendly UI design Do not abandon your non-touchscreen users!
XPages & XPages for Mobile What exactly are XPages? (And why you should care...) โ€œ More than a faceliftโ€ Taking XPages to Mobile Devices Progressive Enhancement How to get started... Wrap up
Recommendations Keep it simple! Do not add a โ€œsliderโ€ control when a combobox/SELECT Element will address the need. Your first XPages app should be an update of an existing NotesDatabase application. The feature functionality is finite and well-defined. You will immediately improve user experience.
Examples & Resources! http://www.openNTF.org http://www.xpagesblog.com http://www.ideajam.net http://www.planetlotus.org Sametime: sametime.lotus.com im.bleedyellow.com
XPages & XPages for Mobile What exactly are XPages? (And why you should care...) โ€œ More than a faceliftโ€ Taking XPages to Mobile Devices Progressive Enhancement How to get started... Wrap up
XPages and XPages for Mobile XPages will allow you to improve your existing IBM Lotus Notes Domino applications without code changes to your production environment! XPages leverage transferable skills such as web development (HTML, CSS, JavaScript). XPages allow you to integrate 3rd-party frameworks & code libraries. XPages are the future of IBM Lotus Notes Domino!
Questions? Chris Toohey [email_address] http://www.dominoGuru.com
Ad

More Related Content

What's hot (20)

Create a mobile web app with Sencha Touch
Create a mobile web app with Sencha TouchCreate a mobile web app with Sencha Touch
Create a mobile web app with Sencha Touch
James Pearce
ย 
What's new in Rails 2?
What's new in Rails 2?What's new in Rails 2?
What's new in Rails 2?
brynary
ย 
Daejeon IT Developer Conference Web Service Practice
Daejeon IT Developer Conference Web Service PracticeDaejeon IT Developer Conference Web Service Practice
Daejeon IT Developer Conference Web Service Practice
plusperson
ย 
User Experience is dead. Long live the user experience!
User Experience is dead. Long live the user experience!User Experience is dead. Long live the user experience!
User Experience is dead. Long live the user experience!
Greg Bell
ย 
Your Custom WordPress Admin Pages Suck
Your Custom WordPress Admin Pages SuckYour Custom WordPress Admin Pages Suck
Your Custom WordPress Admin Pages Suck
Anthony Montalbano
ย 
Building Secure Twitter Apps
Building Secure Twitter AppsBuilding Secure Twitter Apps
Building Secure Twitter Apps
Damon Cortesi
ย 
Beautiful Java EE - PrettyFaces
Beautiful Java EE - PrettyFacesBeautiful Java EE - PrettyFaces
Beautiful Java EE - PrettyFaces
Lincoln III
ย 
LinkedIn Platform at LeWeb 2010
LinkedIn Platform at LeWeb 2010LinkedIn Platform at LeWeb 2010
LinkedIn Platform at LeWeb 2010
Adam Trachtenberg
ย 
2012 03 27_philly_jug_rewrite_static
2012 03 27_philly_jug_rewrite_static2012 03 27_philly_jug_rewrite_static
2012 03 27_philly_jug_rewrite_static
Lincoln III
ย 
Fast by Default
Fast by DefaultFast by Default
Fast by Default
Abhay Kumar
ย 
PHP 5 Sucks. PHP 5 Rocks.
PHP 5 Sucks. PHP 5 Rocks.PHP 5 Sucks. PHP 5 Rocks.
PHP 5 Sucks. PHP 5 Rocks.
Adam Trachtenberg
ย 
Stole16
Stole16Stole16
Stole16
rworldoffice
ย 
The Frameless Opac
The Frameless OpacThe Frameless Opac
The Frameless Opac
Bill Drew
ย 
Best practices in museum search
 Best practices in museum search Best practices in museum search
Best practices in museum search
Nate Solas
ย 
From jQuery to App Store in 30 Minutes
From jQuery to App Store in 30 MinutesFrom jQuery to App Store in 30 Minutes
From jQuery to App Store in 30 Minutes
edill3484
ย 
Design Patterns for Tablets and Smartphones
Design Patterns for Tablets and SmartphonesDesign Patterns for Tablets and Smartphones
Design Patterns for Tablets and Smartphones
Michael Galpin
ย 
Fav
FavFav
Fav
helloppt
ย 
SES Toronto 2008; Joe Dolson
SES Toronto 2008; Joe DolsonSES Toronto 2008; Joe Dolson
SES Toronto 2008; Joe Dolson
Joseph Dolson
ย 
The Thinking behind BEM
The Thinking behind BEMThe Thinking behind BEM
The Thinking behind BEM
Varya Stepanova
ย 
jQuery For Beginners - jQuery Conference 2009
jQuery For Beginners - jQuery Conference 2009jQuery For Beginners - jQuery Conference 2009
jQuery For Beginners - jQuery Conference 2009
Ralph Whitbeck
ย 
Create a mobile web app with Sencha Touch
Create a mobile web app with Sencha TouchCreate a mobile web app with Sencha Touch
Create a mobile web app with Sencha Touch
James Pearce
ย 
What's new in Rails 2?
What's new in Rails 2?What's new in Rails 2?
What's new in Rails 2?
brynary
ย 
Daejeon IT Developer Conference Web Service Practice
Daejeon IT Developer Conference Web Service PracticeDaejeon IT Developer Conference Web Service Practice
Daejeon IT Developer Conference Web Service Practice
plusperson
ย 
User Experience is dead. Long live the user experience!
User Experience is dead. Long live the user experience!User Experience is dead. Long live the user experience!
User Experience is dead. Long live the user experience!
Greg Bell
ย 
Your Custom WordPress Admin Pages Suck
Your Custom WordPress Admin Pages SuckYour Custom WordPress Admin Pages Suck
Your Custom WordPress Admin Pages Suck
Anthony Montalbano
ย 
Building Secure Twitter Apps
Building Secure Twitter AppsBuilding Secure Twitter Apps
Building Secure Twitter Apps
Damon Cortesi
ย 
Beautiful Java EE - PrettyFaces
Beautiful Java EE - PrettyFacesBeautiful Java EE - PrettyFaces
Beautiful Java EE - PrettyFaces
Lincoln III
ย 
LinkedIn Platform at LeWeb 2010
LinkedIn Platform at LeWeb 2010LinkedIn Platform at LeWeb 2010
LinkedIn Platform at LeWeb 2010
Adam Trachtenberg
ย 
2012 03 27_philly_jug_rewrite_static
2012 03 27_philly_jug_rewrite_static2012 03 27_philly_jug_rewrite_static
2012 03 27_philly_jug_rewrite_static
Lincoln III
ย 
Fast by Default
Fast by DefaultFast by Default
Fast by Default
Abhay Kumar
ย 
PHP 5 Sucks. PHP 5 Rocks.
PHP 5 Sucks. PHP 5 Rocks.PHP 5 Sucks. PHP 5 Rocks.
PHP 5 Sucks. PHP 5 Rocks.
Adam Trachtenberg
ย 
The Frameless Opac
The Frameless OpacThe Frameless Opac
The Frameless Opac
Bill Drew
ย 
Best practices in museum search
 Best practices in museum search Best practices in museum search
Best practices in museum search
Nate Solas
ย 
From jQuery to App Store in 30 Minutes
From jQuery to App Store in 30 MinutesFrom jQuery to App Store in 30 Minutes
From jQuery to App Store in 30 Minutes
edill3484
ย 
Design Patterns for Tablets and Smartphones
Design Patterns for Tablets and SmartphonesDesign Patterns for Tablets and Smartphones
Design Patterns for Tablets and Smartphones
Michael Galpin
ย 
Fav
FavFav
Fav
helloppt
ย 
SES Toronto 2008; Joe Dolson
SES Toronto 2008; Joe DolsonSES Toronto 2008; Joe Dolson
SES Toronto 2008; Joe Dolson
Joseph Dolson
ย 
The Thinking behind BEM
The Thinking behind BEMThe Thinking behind BEM
The Thinking behind BEM
Varya Stepanova
ย 
jQuery For Beginners - jQuery Conference 2009
jQuery For Beginners - jQuery Conference 2009jQuery For Beginners - jQuery Conference 2009
jQuery For Beginners - jQuery Conference 2009
Ralph Whitbeck
ย 

Similar to IBM Lotus Notes Domino XPages and XPages for Mobile (20)

Creating Yahoo Mobile Widgets
Creating Yahoo Mobile WidgetsCreating Yahoo Mobile Widgets
Creating Yahoo Mobile Widgets
Ricardo Varela
ย 
jQuery Mobile
jQuery MobilejQuery Mobile
jQuery Mobile
Doncho Minkov
ย 
Enterprise AIR Development for JavaScript Developers
Enterprise AIR Development for JavaScript DevelopersEnterprise AIR Development for JavaScript Developers
Enterprise AIR Development for JavaScript Developers
AndreCharland
ย 
Flash templates for Joomla!
Flash templates for Joomla!Flash templates for Joomla!
Flash templates for Joomla!
Herman Peeren
ย 
Flash Templates- Joomla!Days NL 2009 #jd09nl
Flash Templates- Joomla!Days NL 2009 #jd09nlFlash Templates- Joomla!Days NL 2009 #jd09nl
Flash Templates- Joomla!Days NL 2009 #jd09nl
Joomla!Days Netherlands
ย 
Struts2
Struts2Struts2
Struts2
yuvalb
ย 
Building Complex GUI Apps The Right Way. With Ample SDK - SWDC2010
Building Complex GUI Apps The Right Way. With Ample SDK - SWDC2010Building Complex GUI Apps The Right Way. With Ample SDK - SWDC2010
Building Complex GUI Apps The Right Way. With Ample SDK - SWDC2010
Sergey Ilinsky
ย 
Spring Surf 101
Spring Surf 101Spring Surf 101
Spring Surf 101
Alfresco Software
ย 
BluePrint Mobile Framework
BluePrint Mobile FrameworkBluePrint Mobile Framework
BluePrint Mobile Framework
Christian Heilmann
ย 
Yahoo Mobile Widgets
Yahoo Mobile WidgetsYahoo Mobile Widgets
Yahoo Mobile Widgets
Jose Palazon
ย 
JavaScript and DOM Pattern Implementation
JavaScript and DOM Pattern ImplementationJavaScript and DOM Pattern Implementation
JavaScript and DOM Pattern Implementation
davejohnson
ย 
Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM
Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM
Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM
Alfresco Software
ย 
Ajax to the Moon
Ajax to the MoonAjax to the Moon
Ajax to the Moon
davejohnson
ย 
Flex For Flash Developers Ff 2006 Final
Flex For Flash Developers Ff 2006 FinalFlex For Flash Developers Ff 2006 Final
Flex For Flash Developers Ff 2006 Final
ematrix
ย 
Beholding the giant pyramid of application development; why Ajax applications...
Beholding the giant pyramid of application development; why Ajax applications...Beholding the giant pyramid of application development; why Ajax applications...
Beholding the giant pyramid of application development; why Ajax applications...
Javeline B.V.
ย 
Ajax Applications with RichFaces and JSF 2
Ajax Applications with RichFaces and JSF 2Ajax Applications with RichFaces and JSF 2
Ajax Applications with RichFaces and JSF 2
Max Katz
ย 
Getting the Most Out of OpenSocial Gadgets
Getting the Most Out of OpenSocial GadgetsGetting the Most Out of OpenSocial Gadgets
Getting the Most Out of OpenSocial Gadgets
Atlassian
ย 
HTML5 Overview
HTML5 OverviewHTML5 Overview
HTML5 Overview
reybango
ย 
Building real-time collaborative apps with Ajax.org Platform
Building real-time collaborative apps with Ajax.org PlatformBuilding real-time collaborative apps with Ajax.org Platform
Building real-time collaborative apps with Ajax.org Platform
Javeline B.V.
ย 
Presentation wpf
Presentation wpfPresentation wpf
Presentation wpf
Mahesh Sherkar
ย 
Creating Yahoo Mobile Widgets
Creating Yahoo Mobile WidgetsCreating Yahoo Mobile Widgets
Creating Yahoo Mobile Widgets
Ricardo Varela
ย 
jQuery Mobile
jQuery MobilejQuery Mobile
jQuery Mobile
Doncho Minkov
ย 
Enterprise AIR Development for JavaScript Developers
Enterprise AIR Development for JavaScript DevelopersEnterprise AIR Development for JavaScript Developers
Enterprise AIR Development for JavaScript Developers
AndreCharland
ย 
Flash templates for Joomla!
Flash templates for Joomla!Flash templates for Joomla!
Flash templates for Joomla!
Herman Peeren
ย 
Flash Templates- Joomla!Days NL 2009 #jd09nl
Flash Templates- Joomla!Days NL 2009 #jd09nlFlash Templates- Joomla!Days NL 2009 #jd09nl
Flash Templates- Joomla!Days NL 2009 #jd09nl
Joomla!Days Netherlands
ย 
Struts2
Struts2Struts2
Struts2
yuvalb
ย 
Building Complex GUI Apps The Right Way. With Ample SDK - SWDC2010
Building Complex GUI Apps The Right Way. With Ample SDK - SWDC2010Building Complex GUI Apps The Right Way. With Ample SDK - SWDC2010
Building Complex GUI Apps The Right Way. With Ample SDK - SWDC2010
Sergey Ilinsky
ย 
BluePrint Mobile Framework
BluePrint Mobile FrameworkBluePrint Mobile Framework
BluePrint Mobile Framework
Christian Heilmann
ย 
Yahoo Mobile Widgets
Yahoo Mobile WidgetsYahoo Mobile Widgets
Yahoo Mobile Widgets
Jose Palazon
ย 
JavaScript and DOM Pattern Implementation
JavaScript and DOM Pattern ImplementationJavaScript and DOM Pattern Implementation
JavaScript and DOM Pattern Implementation
davejohnson
ย 
Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM
Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM
Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM
Alfresco Software
ย 
Ajax to the Moon
Ajax to the MoonAjax to the Moon
Ajax to the Moon
davejohnson
ย 
Flex For Flash Developers Ff 2006 Final
Flex For Flash Developers Ff 2006 FinalFlex For Flash Developers Ff 2006 Final
Flex For Flash Developers Ff 2006 Final
ematrix
ย 
Beholding the giant pyramid of application development; why Ajax applications...
Beholding the giant pyramid of application development; why Ajax applications...Beholding the giant pyramid of application development; why Ajax applications...
Beholding the giant pyramid of application development; why Ajax applications...
Javeline B.V.
ย 
Ajax Applications with RichFaces and JSF 2
Ajax Applications with RichFaces and JSF 2Ajax Applications with RichFaces and JSF 2
Ajax Applications with RichFaces and JSF 2
Max Katz
ย 
Getting the Most Out of OpenSocial Gadgets
Getting the Most Out of OpenSocial GadgetsGetting the Most Out of OpenSocial Gadgets
Getting the Most Out of OpenSocial Gadgets
Atlassian
ย 
HTML5 Overview
HTML5 OverviewHTML5 Overview
HTML5 Overview
reybango
ย 
Building real-time collaborative apps with Ajax.org Platform
Building real-time collaborative apps with Ajax.org PlatformBuilding real-time collaborative apps with Ajax.org Platform
Building real-time collaborative apps with Ajax.org Platform
Javeline B.V.
ย 
Presentation wpf
Presentation wpfPresentation wpf
Presentation wpf
Mahesh Sherkar
ย 
Ad

Recently uploaded (20)

Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
ย 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
ย 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
ย 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
ย 
HCL Nomad Web โ€“ Best Practices and Managing Multiuser Environments
HCL Nomad Web โ€“ Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web โ€“ Best Practices and Managing Multiuser Environments
HCL Nomad Web โ€“ Best Practices and Managing Multiuser Environments
panagenda
ย 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
ย 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
ย 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
ย 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
ย 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
ย 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
ย 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
ย 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
ย 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
ย 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
ย 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
ย 
Drupalcamp Finland โ€“ Measuring Front-end Energy Consumption
Drupalcamp Finland โ€“ Measuring Front-end Energy ConsumptionDrupalcamp Finland โ€“ Measuring Front-end Energy Consumption
Drupalcamp Finland โ€“ Measuring Front-end Energy Consumption
Exove
ย 
AI Changes Everything โ€“ Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything โ€“ Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything โ€“ Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything โ€“ Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
ย 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
ย 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
ย 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
ย 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
ย 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
ย 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
ย 
HCL Nomad Web โ€“ Best Practices and Managing Multiuser Environments
HCL Nomad Web โ€“ Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web โ€“ Best Practices and Managing Multiuser Environments
HCL Nomad Web โ€“ Best Practices and Managing Multiuser Environments
panagenda
ย 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
ย 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
ย 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
ย 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
ย 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
ย 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
ย 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
ย 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
ย 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
ย 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
ย 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
ย 
Drupalcamp Finland โ€“ Measuring Front-end Energy Consumption
Drupalcamp Finland โ€“ Measuring Front-end Energy ConsumptionDrupalcamp Finland โ€“ Measuring Front-end Energy Consumption
Drupalcamp Finland โ€“ Measuring Front-end Energy Consumption
Exove
ย 
AI Changes Everything โ€“ Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything โ€“ Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything โ€“ Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything โ€“ Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
ย 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
ย 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
ย 
Ad

IBM Lotus Notes Domino XPages and XPages for Mobile

  • 1. XPages and XPages for Mobile Chris Toohey www.dominoGuru.com
  • 2. XPages & XPages for Mobile What exactly are XPages? (And why you should care...) โ€œ More than a faceliftโ€ Taking XPages to Mobile Devices Progressive Enhancement How to get started... Wrap up
  • 3. XPages & XPages for Mobile What exactly are XPages? (And why you should care...) โ€œ More than a faceliftโ€ Taking XPages to Mobile Devices Progressive Enhancement How to get started... Wrap up
  • 4. What exactly are XPages? A โ€œvariableโ€ Design Element, replacing: Forms Pages Navigators Views
  • 5. What exactly are XPages? XPage Design Elements consist of: HTML CSS JavaScript ServerSide JavaScript Controls (native & custom) XPages use Themes Default rendering relies on Themes & Dojo
  • 6. What are Controls? Pre-built & Developer-defined XPage XML, HTML, CSS, & JavaScript Think โ€œSubformโ€ Available from the Controls Palette in DDE Allow โ€œNestingโ€ and โ€œRepeated Useโ€
  • 7. What is Dojo? JavaScript Toolkit natively used by XPages Open Source Globally Adopted/Supported Rendering of UI/UX Field-level validation Alternate-input types Web 2.0 animation
  • 8. What are Themes? Pre-built & Developer-defined Build-upon/expand or replace existing Themes Think โ€œXSLTโ€ for XPages and Controls included Resources (ie., Stylesheets) className for Controls <!-- Basic Text --> < control > < name > Text </ name > < property > < name > styleClass </ name > < value > xspText </ value > </ property > </ control > <!-- FireFox Specific --> < resource rendered = &quot;#{javascript:context.getUserAgent().isFirefox()}&quot; > < content-type > text/ css </ content-type > < href > /. ibmxspres /global/theme/ webstandard /xspFF. css </ href > </ resource >
  • 9. Hello World โ€œ example.xspโ€ XPage XPage XML Pass-thru HTML markup <? xml version = &quot;1.0&quot; encoding = &quot;UTF-8&quot; ?> < xp:view xmlns:xp = &quot;http://www.ibm.com/xsp/core&quot; xmlns:xc = &quot;http://www.ibm.com/xsp/custom&quot; > < p > Hello World! </ p > </ xp:view >
  • 10. The end result... <! DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot; &quot;http://www.w3.org/TR/html4/loose.dtd&quot; > < html lang = &quot;en&quot; > < head > < title ></ title > < script type = &quot;text/javascript&quot; src = &quot;/domjs/dojo-1.3.2/dojo/dojo.js&quot; djConfig = &quot;locale: 'en-us'&quot; ></ script > < script type = &quot;text/javascript&quot; src = &quot;/domjs/dojo-1.3.2/ibm/xsp/widget/layout/xspClientDojo.js&quot; ></ script > < link rel = &quot;stylesheet&quot; type = &quot;text/css&quot; href = &quot;/domjava/xsp/theme/webstandard/xsp.css&quot; > < link rel = &quot;stylesheet&quot; type = &quot;text/css&quot; href = &quot;/domjava/xsp/theme/webstandard/xspLTR.css&quot; > < link rel = &quot;stylesheet&quot; type = &quot;text/css&quot; href = &quot;/domjava/xsp/theme/webstandard/xspSF.css&quot; > </ head > < body class = &quot;xspView tundra&quot; > < form id = &quot;view:_id1&quot; method = &quot;post&quot; action = &quot;/XPages%20Presentation.nsf/example.xsp?SessionID=CNB3RK18A0&quot; class = &quot;xspForm&quot; enctype = &quot;multipart/form-data&quot; > < p > Hello World! </ p > < input type = &quot;hidden&quot; name = &quot;$$viewid&quot; id = &quot;view:_id1__VUID&quot; value = &quot;!cnb3rm1kg0!&quot; > < input type = &quot;hidden&quot; name = &quot;$$xspsubmitid&quot; > < input type = &quot;hidden&quot; name = &quot;$$xspexecid&quot; > < input type = &quot;hidden&quot; name = &quot;$$xspsubmitvalue&quot; > < input type = &quot;hidden&quot; name = &quot;$$xspsubmitscroll&quot; > < input type = &quot;hidden&quot; name = &quot;view:_id1&quot; value = &quot;view:_id1&quot; > < script type = &quot;text/javascript&quot; > function clearFormHiddenParams_view__id1(curFormName) { var curForm = document.forms[curFormName]; } </ script > </ form > </ body > </ html >
  • 11. Beyond the Design Element XPages as a development methodology: Establish fundamental Model-View-Controller architectures for LND applications. Leverage new and existing NotesData through defined Data Sources Simplify application maintenance via a return to the โ€œsingle Design Element per clientโ€ while enabling client-specific feature functionality.
  • 12. The power of XPages XPages can... Define a remote Notes Data Source Proxy Create, Read, Update, & Delete NotesData Requests Update User Interfaces while maintaining โ€œproductionโ€ applications.
  • 13. But why should you care? XPages are the future of the Lotus Notes Domino platform. XPages employ industry standard development tools & transferable developer skills. XPages can rapidly produce applications for faster turn-around from โ€œbusiness needโ€ to โ€œsolutionโ€.
  • 14. XPages & XPages for Mobile What exactly are XPages? (And why you should care...) โ€œ More than a faceliftโ€ Taking XPages to Mobile Devices Progressive Enhancement How to get started... Wrap up
  • 15. What is a โ€œLotus Notesโ€ UI? The majority of Lotus Notes applications use a 3-pane layout: Left Navigation Top Action Bar Center Data Grid
  • 16. What is a โ€œLotus Notesโ€ UI? The majority of Lotus Notes applications use a 3-pane layout: Left Navigation Top Action Bar Center Data Grid
  • 17. What is a โ€œLotus Notesโ€ UI? The majority of Lotus Notes applications use a 3-pane layout: Left Navigation Top Action Bar Center Data Grid
  • 19. But when they come into work... Clunky, โ€œ4.6โ€-era Databases Navigator-based Non-intuitive compared to today's apps.
  • 20. But when they come into work... Clunky, โ€œ4.6โ€-era Databases Navigator-based Non-intuitive compared to today's apps.
  • 21. But when they come into work... Clunky, โ€œ4.6โ€-era Databases Navigator-based Non-intuitive compared to today's apps. (That was the same app!)
  • 22. Meet or exceed the expectation โ€œUpdatingโ€ an application means more than โ€œjust a faceliftโ€ ; it is an opportunity... Empower your users! Display the capabilities of IT!
  • 23. XPage Applications IdeaJam from Elguiji Crowd-sourcing ideas from a community. Contemporary User Interface & design. Built on XPages!
  • 24. XPage Applications XPages Wiki Template Allow users to easily author & maintain business information. IBM's OneUI Theme Open Source
  • 25. XPage Applications xTalk Discussion Forum Template Allow users to collaborate via familiar UX. Enhanced OneUI Theme Open Source
  • 26. Example: Personal Address Book Contact Form consists of over 33 UI fields! Excellent for tracking contact info Painful for Web Browser Clients Horrible for Mobile Device Clients
  • 27. Architecture Considerations Direct Access HTTP Request Proxy vs. Direct Access HTTP Request Proxy IBM Lotus Notes Domino NRPC lends to HTTP Request Proxy architectures
  • 28. Remote Data Sources โ€œ Otherโ€ allows you to define external/ remote Data Sources < xp:this.data > < xp:dominoView var = &quot;contacts&quot; databaseName = &quot;mpab.nsf&quot; viewName = &quot;People&quot; > </ xp:dominoView > </ xp:this.data >
  • 29. Using Remote Data Sources Using โ€œcontactsโ€ Variable... < xp:repeat id = &quot;contacts&quot; rows = &quot;30&quot; value = &quot;#{contacts}&quot; var = &quot;thisDoc&quot; > < li class = &quot;menu&quot; > < xp:link escape = &quot;true&quot; id = &quot;link_person&quot; styleClass = &quot;name&quot; > < xp:this.text > <![CDATA[ #{javascript:var ln = thisDoc.getDocument().getItemValueString(&quot;LastName&quot;); var fn = thisDoc.getDocument().getItemValueString(&quot;FirstName&quot;); return ln + &quot;, &quot; + fn;} ]]> </ xp:this.text > < xp:eventHandler event = &quot;onclick&quot; submit = &quot;true&quot; refreshMode = &quot;complete&quot; > < xp:this.action > < xp:openPage name = &quot;/person.xsp&quot; target = &quot;editDocument&quot; documentId = &quot;#{javascript:thisDoc.getDocument().getUniversalID();}&quot; > </ xp:openPage > </ xp:this.action > </ xp:eventHandler > </ xp:link > </ li > </ xp:repeat >
  • 31. Exporting via XPages Once you control the Content Type, anything is possible! < xp:openPage name = &quot;/export.xsp&quot; > </ xp:openPage >
  • 32. XPages & XPages for Mobile What exactly are XPages? (And why you should care...) โ€œ More than a faceliftโ€ Taking XPages to Mobile Devices Progressive Enhancement How to get started... Wrap up
  • 33. Mobile Browser Apps Most developers are moving to โ€œmobile browser appsโ€ vs. native device apps for the following reasons: Centrally-controlled & maintained for ease of maintenance. All smartphones support web browsing. Transferable skills: HTML, CSS, & JavaScript (sound familiar?!)
  • 34. Support for HTML5 As more browsers support HTML5... โ€œRich clientโ€ experience Natively-rendered advanced UI controls Native offline data storage Out of coverage area? No problem!
  • 35. WebKit Desktop Web Browsers Safari Chrome Mobile Devices iPhone / iPad / iPod Touch / iOS BlackBerry OS6 Symbian OS / S60 (via port)
  • 36. iWebKit Webkit-friendly CSS Framework http://iwebkit.net
  • 37. Framework Naming Schemes JavaScript & CSS Frameworks are often path-sensitive. Stylesheets css/(stylesheet) JavaScript library javascript/(JavaScript) Image resources images/(image)
  • 38. Demo
  • 39. XPages & XPages for Mobile What exactly are XPages? (And why you should care...) โ€œ More than a faceliftโ€ Taking XPages to Mobile Devices Progressive Enhancement How to get started... Wrap up
  • 40. Client Limitations While all smartphones browser render HTML, CSS, and JavaScript... vs. Know your platforms limits & plan accordingly!
  • 41. The User Agent Each client reports a specific User Agent Content based on User Agent The โ€œwebstandardโ€ Theme renders specific classNames and includes User Agent-customized Stylesheets. <!-- IE Specific --> < resource rendered = &quot;#{javascript:context.getUserAgent().isIE(0,6)}&quot; > < content-type > text/ css </ content-type > < href > /. ibmxspres /global/theme/ webstandard /xspIE06. css </ href > </ resource >
  • 42. Using the User Agent Capturing the User Agent CGI Variable: HTTP_User_Agent SSJS: this.request.getHeader(โ€œUser-Agentโ€); var body = &quot;&quot; ; var UA = this .request.getHeader( &quot;User-Agent&quot; ).toLowerCase(); if (UA.indexOf( 'iphone' ) != -1) { body = iphone_friendly; }; if (UA.indexOf( 'ipad' ) != -1) { body = ipad_friendly; }; if (UA.indexOf( 'blackberry' ) != -1) { body = blackberry_friendly; }; ... writer.write(body);
  • 43. Progressive Enhancement Think Nintendo Wii vs. Microsoft Xbox 360 The Wii remote and nunchuk allow for enhanced, interactive gameplay while the Xbox 360 supports higher-resolution graphics Leverage platform or device-specific functionality without changing the core application For devices with a GPS antenna, you can include location information Your app would not rely on GPS data! For devices with a touchscreen, you can rely on a touchscreen-friendly UI design Do not abandon your non-touchscreen users!
  • 44. XPages & XPages for Mobile What exactly are XPages? (And why you should care...) โ€œ More than a faceliftโ€ Taking XPages to Mobile Devices Progressive Enhancement How to get started... Wrap up
  • 45. Recommendations Keep it simple! Do not add a โ€œsliderโ€ control when a combobox/SELECT Element will address the need. Your first XPages app should be an update of an existing NotesDatabase application. The feature functionality is finite and well-defined. You will immediately improve user experience.
  • 46. Examples & Resources! http://www.openNTF.org http://www.xpagesblog.com http://www.ideajam.net http://www.planetlotus.org Sametime: sametime.lotus.com im.bleedyellow.com
  • 47. XPages & XPages for Mobile What exactly are XPages? (And why you should care...) โ€œ More than a faceliftโ€ Taking XPages to Mobile Devices Progressive Enhancement How to get started... Wrap up
  • 48. XPages and XPages for Mobile XPages will allow you to improve your existing IBM Lotus Notes Domino applications without code changes to your production environment! XPages leverage transferable skills such as web development (HTML, CSS, JavaScript). XPages allow you to integrate 3rd-party frameworks & code libraries. XPages are the future of IBM Lotus Notes Domino!
  • 49. Questions? Chris Toohey [email_address] http://www.dominoGuru.com