SlideShare une entreprise Scribd logo
1  sur  44
Télécharger pour lire hors ligne
Beyond the Mobile Browser – Building Rich
Mobile Applications for IBM Lotus® Domino®
John M. Wargo | Director, Industry Solutions Practice
AT&T Mobility
Agenda
 ●
     Introduction
 ●
     Deciding: Browser vs. Rich client?
 ●
     Understanding the power of IBM Domino Web Services for mobile
        devices
 ●   Building the XML Web Service
 ●   Building a BlackBerry client
 ●   Building a Windows Mobile client
 ●
     Building the RESTful Web Service
 ●
     Wrap-up



                         2
About this Session
 ●   Explore the differences between rich client and browser-based applications
       for mobile devices
 ●   Learn how to use Lotus Domino Web Services to deliver data to mobile
       applications
 ●   Learn how to build rich mobile applications to access your Domino
       databases
      ▬   BlackBerry© JavaTM application
      ▬   Microsoft Windows Mobile© application
      ▬   Others (possibly Google Android© Application)
 ●   Targeted at Domino Developers




                                   3
About Me
 ●   Director, Industry Solutions Practice for AT&T Mobility focusing on
        Emerging Mobility Solutions
 ●   Developer, worked for Research In Motion for 2.5 years
 ●   Certified Notes developer since Notes 2.0 (before buttons) all the way
        through Notes 8
 ●   Creator of award winning Automated Deployment
        Toolkit and ConfigSave for Lotus Notes
 ●   Responsible for two IBM Beacon Awards
      ▬   Biggest Business Impact in 1997
      ▬   Best Tool/Utility 2001
 ●  Author of BlackBerry Development Fundamentals
       (www.bbdevfundamentals.com)
●Home: www.johnwargo.com

Twitter: @johnwargo

                                  4
Agenda
 ●
     Introduction
 ●
     Deciding: Browser vs. Rich client?
 ●
     Understanding the power of Domino Web Services for mobile
        devices
 ●   Building the XML Web Service
 ●   Building a BlackBerry client
 ●   Building a Windows Mobile client
 ●
     Building the RESTful Web Service
 ●
     Wrap-up



                         5
Deciding on the Right Client
 ●   Depends on your audience
       ▬   Are there a limited number of client platforms you need to
              build for?
       ▬   The browser is a great common denominator for most all mobile devices
 ●   Will your mobile users need to interact with the data locally?
       ▬   Can’t really do that with a browser application unless you use something like Google
              Gears
       ▬   Browser application wouldn’t “run” when the radio is off (airplane mode) or when the
              device is out of coverage
 ●   Will your application need to interact with other device applications
       (calendar, tasks, email)?
 ●   Will the application need to function in areas with limited cellular coverage?




                                     6
Strengths of the Mobile Browser
 ●   Uses standards-based technologies
      ▬   HTML, XHTML, CSS*, JavaScript*, AJAX*
 ●   Allows you to build once and run many places
      ▬   Pretty much every network-connected mobile device has a browser
 ●   Leverage your core skills as a Domino/Web developer
 ●   Most of your work has already been done if the application is already
       browser-enabled
      ▬   If so, your users could use your application in the same client (browser) only on different
              machines
 ●   No application to deploy




                                     7
Weaknesses of the Mobile Browser
 ●   Slow!
 ●   Both data and layout information delivered over the air (OTA)
 ●   Limited in capabilities (it’s only a browser after all)
 ●   Limited interaction with other applications on the device
        (and their data too)
 ●   Limited ability to keep its data local without resorting to third-party tools
 ●   Complicated business logic runs on the server




                                8
Browser Limitations
 ●   If you haven’t Web-enabled your application yet, you’ve got a lot of work to
         do
      ▬   It’s easier if your business logic is in libraries rather than coded into forms or views
 ●   Read only Document Object Model (DOM) on many devices
      ▬   Means you may not be able to mimic rich client capabilities in the browser
            (hide div's, change content on the fly and so on)
 ●   Can’t code to the latest version of the browser
      ▬   Not all of your devices will be running the latest version of the OS/handheld code
 ●   Not all mobile devices support Adobe Flash




                                      9
Strengths of the Rich Client Platform
 ●   Fast!
 ●   Can do just about anything it wants on the device
      ▬   Easily store and manipulate data locally
      ▬   Easily interact with other device applications and application data
      ▬   Can create contacts, calendar appointments, tasks and more...
      ▬   Interact with hardware components (camera, Bluetooth scanner, etc.)
 ●   Complicated business logic runs in the client
 ●   Did I mention it’s fast?




                                   10
Weaknesses of the Rich Client Platform
 ●   May require a different set of skills than the typical Domino developer has
 ●   Rich client applications can be much harder to create than browser
        applications
 ●   May not run on multiple device platforms
 ▬   Depends on which technologies you used to build the application
       ▬   Java?
       ▬   .NET
 ▬   It would be great if there was a single cross platform option, but it’s actually
         getting worse with iPhone and Android




                               11
Agenda
 ●
     Introduction
 ●
     Deciding: Browser vs. Rich client?
 ●
     Understanding the power of Domino Web Services for mobile
        devices
 ●   Building the XML Web Service
 ●   Building a BlackBerry client
 ●   Building a Windows Mobile client
 ●
     Building the RESTful Web Service
 ●
     Wrap-up



                         12
The Power of Domino Web Services for Mobile
Devices
 ●   Web Services are really easy to build in Notes Designer 7.x and 8.x
      ▬   Especially if you’ve already separated your business logic from the application
      ▬   We'll discuss two types: XML-Based Web Services and RESTful Web Services
 ●   Allows multiple clients to easily access your business logic and data
      ▬   Build the business logic once into a Web Service then add client after client (including
              Notes) until you’re done
 ●   Easily facilitates application to application communication – even across
       servers




                                     13
Multiple Client Options




                 14
Agenda
 ●
     Introduction
 ●
     Deciding: Browser vs. Rich client?
 ●
     Understanding the power of Domino Web Services for mobile
        devices
 ●   Building the XML Web Service
 ●   Building a BlackBerry client
 ●   Building a Windows Mobile client
 ●
     Building the RESTful Web Service
 ●
     Wrap-up



                         15
Domino Directory Lookup
 ●   The sample application performs a simple lookup against the Domino
       Directory
      ▬   Every Domino shop has at least one extra Domino Directory they maintain (right?)
 ●   How it works
      ▬   Requester passes in a partial last name
      ▬   Service returns a list of names that match the search string
      ▬   Requester selects name
      ▬   Service returns some of the fields from that contact’s Person Document in the database
 ●   The two operations of the service are connected




                                   16
Web Service Shell




                17
SOAP Message Format
To consume from a Java application, the Web service must use Doc/Literal
SOAP message format




                           18
The Code: Defining Variables
'Some Notes objects we'll need
Dim db As NotesDatabase
Dim s As NotesSession




                          19
The Code: Two Classes
'The following class defines an array of strings
'that will be returned by the function GetUserList
Class UserList
Public users() As String
End Class

'the following class defines the user details
'that we will be returning for a detailed lookup
Class UserInfo
Public FirstName As String
Public LastName As String
Public FullName As String
Public EmailAddress As String
Public OfficePhone As String
Public MobilePhone As String
End Class

                          20
The Code: Defining the Main Class
Class DomDirLookup
  Sub New
    //Initialization Code goes in here
  End Sub

 Function GetUserList(searchStr As String)   As UserList
   //Code goes in here
 End Function

  Function GetUserDetails(searchStr As String) As UserInfo
    //Code goes in here
  End Function
End Class




                          21
Demonstration




                22
Agenda
 ●
     Introduction
 ●
     Deciding: Browser vs. Rich client?
 ●
     Understanding the power of Domino Web Services for mobile
        devices
 ●   Building the XML Web Service
 ●   Building a BlackBerry client
 ●   Building a Windows Mobile client
 ●
     Building the RESTful Web Service
 ●
     Wrap-up



                         23
Building a BlackBerry Java Client
 1)   Generate the web services stub classes
 2)   Create a new BlackBerry Java project
 3)   Import the stub classes
 4)   Write your code




                             24
Generating the Web Services Consumer Stub
 1) Download (and install) the Sun Java Wireless Toolkit
      (http://java.sun.com/products/sjwtoolkit/)
 2) Run the Stub Generator to create the stub classes you’ll call from your Java
      application




                            25
Generating the Web Services Consumer Stub




               26
The Stub Classes




               27
DomDirLookup Class
// This class was generated by 172 StubGenerator.
// Contents subject to change without notice.
// @generated
package com.johnwargo.domdirlookup;
public interface DomDirLookup extends java.rmi.Remote {
  public java.lang.String[] GETUSERLIST(java.lang.String
    SEARCHSTR) throws java.rmi.RemoteException;
  public com.johnwargo.domdirlookup.USERINFO
    GETUSERDETAILS(java.lang.String SEARCHSTR) throws
    java.rmi.RemoteException;
}




                       28
Building the BlackBerry Java client
 1) Create a new Java project
 2) Import the stub classes
 3) Write your code




                           29
Building the BlackBerry Java client




                 30
Obtaining the Complete Instructions
 ●   I wrote a series of documents describing this process at johnwargo.com:
      ▬   http://www.johnwargo.com/index.php/Domino/dbja1.html
      ▬   http://www.johnwargo.com/index.php/BlackBerry/dbja2.html
      ▬   http://www.johnwargo.com/index.php/Miscellaneous/bbdja25.html
      ▬   http://www.johnwargo.com/index.php/BlackBerry/bbdja3.html




                                  31
Agenda
 ●
     Introduction
 ●
     Deciding: Browser vs. Rich client?
 ●
     Understanding the power of Domino Web Services for mobile
        devices
 ●   Building the XML Web Service
 ●   Building a BlackBerry client
 ●   Building a Windows Mobile client
 ●
     Building the RESTful Web Service
 ●
     Wrap-up



                         32
Building a Windows Mobile Client
 1) Create a new Project
 2) Add a Web Reference to the project
 3) Write your code




                           33
Building a Windows Mobile Client




                34
Agenda
 ●
     Introduction
 ●
     Deciding: Browser vs. Rich client?
 ●
     Understanding the power of Domino Web Services for mobile
        devices
 ●   Building the XML Web Service
 ●   Building a BlackBerry client
 ●   Building a Windows Mobile client
 ●
     Building the RESTful Web Service
 ●
     Wrap-up



                         35
Building a RESTful Web Service
 ●   Some mobile platforms do not support XML-based Web Services directly
 ●   You can hand craft the SOAP Request and Response, but that's really
       painful
 ●   You could use kSOAP (for Java applications) or other open source libraries
       to provide the needed support, but that can get ugly (and difficult to
       support/troubleshoot)
 ●   You can use Representative State Transfer (REST) as a useful alternative
       to XML-based Web Services




                             36
About REST
●   Request Parameters are included in the HTTP request URL
●   Service results are included in the body of a HTTP response
      (using JSON for example - www.json.org)
●   Request Examples:
     ▬   http://servername/dbname.nsf/agentname?openagent&searchstr=war
     ▬   http://servername/dbname.nsf/agentname?openagent&searchstr=john%20wargo
●   Response Example:
     ▬   [“Anna Wargo”, “John Wargo”]
     ▬   {“FirstName”:”John”,“LastName”:”Wargo”,“Email”:”jwargo@somedomain.com”,
            “OfficePhone”:”123.456.7890”,“MobilePhone”:”987.654.3210”,
            “HomePhone”:”456.789.1230”}




                               37
RESTifying the Domino Directory Lookup
Service
 ●   Two Options:
      ▬ Split the existing Web Service into two agents

      ▬ Migrate Web Service into a single agent that parses the URL command

           line then calls separate functions in the agent
 ●   Use the same logic, just a different access method and output format for the
       data (JSON for example vs. XML/SOAP)
 ●   You could but the logic in a script library then create two wrappers around it
       (XML-based Web Service and RESTful Web Service)
 ●   Could use the JSONWriter LotusScript classes in your application to output
       the JSON (http://preview.tinyurl.com/ykdnmx3)




                              38
RESTifying the Domino Directory Lookup
Service




               39
Agenda
 ●
     Introduction
 ●
     Deciding: Browser vs. Rich client?
 ●
     Understanding the power of Domino Web Services for mobile
        devices
 ●   Building the XML Web Service
 ●   Building a BlackBerry client
 ●   Building a Windows Mobile client
 ●
     Building the RESTful Web Service
 ●
     Wrap-up



                         40
Wrap-Up
●   Read the articles on how to build the Domino XML Web Service and
      BlackBerry Java Application
     ▬   http://www.johnwargo.com/index.php/Domino/dbja1.html
     ▬   http://www.johnwargo.com/index.php/BlackBerry/dbja2.html
     ▬   http://www.johnwargo.com/index.php/Miscellaneous/bbdja25.html
     ▬   http://www.johnwargo.com/index.php/BlackBerry/bbdja3.html
●   Download the sample Domino database from the articles or from
      http://www.johnwargo.com/files/ls2010-ad114.zip
●   Download the sample BlackBerry Java application from the articles or from
      http://www.johnwargo.com/files/ls2010-ad114-bb.zip
●   Download the sample Windows Mobile application from
      http://www.johnwargo.com/files/ls2010-ad114-winmo.zip




                                 41
Wrap-Up
●   Be sure to fill out your session evaluations!
●   Want More? Repeat of BP212: Delivering IBM Lotus Domino to Mobile
      Devices: Top 10 Mobile Browser Dev Tricks - and More!
      (with Rob Wunderlich) at 1:30 PM Today!




                         42
Questions?




             43
Legal Disclaimer
 © IBM Corporation 2010. All Rights Reserved.
 The information contained in this publication is provided for informational purposes only. While efforts were
 made to verify the completeness and accuracy of the information contained in this publication, it is provided
 AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current
 product plans and strategy, which are subject to change by IBM without notice. IBM shall not be responsible
 for any damages arising out of the use of, or otherwise related to, this publication or any other materials.
 Nothing contained in this publication is intended to, nor shall have the effect of, creating any warranties or
 representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable
 license agreement governing the use of IBM software.
 References in this presentation to IBM products, programs, or services do not imply that they will be
 available in all countries in which IBM operates. Product release dates and/or capabilities referenced in this
 presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors,
 and are not intended to be a commitment to future product or feature availability in any way. Nothing
 contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities
 undertaken by you will result in any specific sales, revenue growth or other results.
 IBM, the IBM logo, Lotus, Lotus Notes, Notes, Domino, Quickr, Sametime, WebSphere, UC2, PartnerWorld
 and Lotusphere are trademarks of International Business Machines Corporation in the United States, other
 countries, or both. Unyte is a trademark of WebDialogs, Inc., in the United States, other countries, or both.
 Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other
 countries, or both.
 Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or
 both.




                                        44

Contenu connexe

Tendances

What’s new for Developers in IBM Domino & Domino Designer 9.0.1
What’s new for Developers in IBM Domino & Domino Designer 9.0.1What’s new for Developers in IBM Domino & Domino Designer 9.0.1
What’s new for Developers in IBM Domino & Domino Designer 9.0.1IBM Connections Developers
 
IBM Websphere Portal | Portal Accelerators
IBM Websphere Portal  |  Portal AcceleratorsIBM Websphere Portal  |  Portal Accelerators
IBM Websphere Portal | Portal AcceleratorsJason Faszholz
 
Social Enabler for XPages
Social Enabler for XPagesSocial Enabler for XPages
Social Enabler for XPagesNiklas Heidloff
 
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...Carl Tyler
 
IBM Social Business Toolkit SDK - Playground and Scenarios
IBM Social Business Toolkit SDK - Playground and ScenariosIBM Social Business Toolkit SDK - Playground and Scenarios
IBM Social Business Toolkit SDK - Playground and ScenariosNiklas Heidloff
 
IBM Lotusphere 2012 AD205 - IBM Sametime® in IBM Connections®, IBM WebSphere®...
IBM Lotusphere 2012 AD205 - IBM Sametime® in IBM Connections®, IBM WebSphere®...IBM Lotusphere 2012 AD205 - IBM Sametime® in IBM Connections®, IBM WebSphere®...
IBM Lotusphere 2012 AD205 - IBM Sametime® in IBM Connections®, IBM WebSphere®...William Holmes
 
Android Chromium Rendering Pipeline
Android Chromium Rendering PipelineAndroid Chromium Rendering Pipeline
Android Chromium Rendering PipelineHyungwook Lee
 
WebKit and Blink: open development powering the HTML5 revolution
WebKit and Blink: open development powering the HTML5 revolutionWebKit and Blink: open development powering the HTML5 revolution
WebKit and Blink: open development powering the HTML5 revolutionjuanjosanchezpenas
 
Mobile Browser Internal (Blink Rendering Engine)
Mobile Browser Internal (Blink Rendering Engine)Mobile Browser Internal (Blink Rendering Engine)
Mobile Browser Internal (Blink Rendering Engine)Hyungwook Lee
 
Developing Applications with Nokia WRT
Developing Applications with Nokia WRTDeveloping Applications with Nokia WRT
Developing Applications with Nokia WRTPrashanth GN
 
Chrome & Webkit overview
Chrome & Webkit overviewChrome & Webkit overview
Chrome & Webkit overviewBin Chen
 
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 RevolutionWebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolutionjuanjosanchezpenas
 
Deview 2013 mobile browser internals and trends_20131022
Deview 2013 mobile browser internals and trends_20131022Deview 2013 mobile browser internals and trends_20131022
Deview 2013 mobile browser internals and trends_20131022NAVER D2
 
JavaScript on HP webOS: Enyo and Node.js
JavaScript on HP webOS: Enyo and Node.jsJavaScript on HP webOS: Enyo and Node.js
JavaScript on HP webOS: Enyo and Node.jsBen Combee
 
How to extend IBM Connections Communities and Profiles
How to extend IBM Connections Communities and ProfilesHow to extend IBM Connections Communities and Profiles
How to extend IBM Connections Communities and ProfilesIBM Connections Developers
 
OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...
OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...
OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...Niklas Heidloff
 

Tendances (20)

What’s new for Developers in IBM Domino & Domino Designer 9.0.1
What’s new for Developers in IBM Domino & Domino Designer 9.0.1What’s new for Developers in IBM Domino & Domino Designer 9.0.1
What’s new for Developers in IBM Domino & Domino Designer 9.0.1
 
IBM Websphere Portal | Portal Accelerators
IBM Websphere Portal  |  Portal AcceleratorsIBM Websphere Portal  |  Portal Accelerators
IBM Websphere Portal | Portal Accelerators
 
Web works presso
Web works pressoWeb works presso
Web works presso
 
Transforming the web into a real application platform
Transforming the web into a real application platformTransforming the web into a real application platform
Transforming the web into a real application platform
 
Social Enabler for XPages
Social Enabler for XPagesSocial Enabler for XPages
Social Enabler for XPages
 
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
 
Mail Client from Traveler to Verse On-Premises
Mail Client from Traveler to Verse On-PremisesMail Client from Traveler to Verse On-Premises
Mail Client from Traveler to Verse On-Premises
 
IBM Social Business Toolkit SDK - Playground and Scenarios
IBM Social Business Toolkit SDK - Playground and ScenariosIBM Social Business Toolkit SDK - Playground and Scenarios
IBM Social Business Toolkit SDK - Playground and Scenarios
 
IBM Lotusphere 2012 AD205 - IBM Sametime® in IBM Connections®, IBM WebSphere®...
IBM Lotusphere 2012 AD205 - IBM Sametime® in IBM Connections®, IBM WebSphere®...IBM Lotusphere 2012 AD205 - IBM Sametime® in IBM Connections®, IBM WebSphere®...
IBM Lotusphere 2012 AD205 - IBM Sametime® in IBM Connections®, IBM WebSphere®...
 
Android Chromium Rendering Pipeline
Android Chromium Rendering PipelineAndroid Chromium Rendering Pipeline
Android Chromium Rendering Pipeline
 
WebKit and Blink: open development powering the HTML5 revolution
WebKit and Blink: open development powering the HTML5 revolutionWebKit and Blink: open development powering the HTML5 revolution
WebKit and Blink: open development powering the HTML5 revolution
 
Mobile Browser Internal (Blink Rendering Engine)
Mobile Browser Internal (Blink Rendering Engine)Mobile Browser Internal (Blink Rendering Engine)
Mobile Browser Internal (Blink Rendering Engine)
 
Developing Applications with Nokia WRT
Developing Applications with Nokia WRTDeveloping Applications with Nokia WRT
Developing Applications with Nokia WRT
 
Chrome & Webkit overview
Chrome & Webkit overviewChrome & Webkit overview
Chrome & Webkit overview
 
The WebKit project
The WebKit projectThe WebKit project
The WebKit project
 
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 RevolutionWebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
 
Deview 2013 mobile browser internals and trends_20131022
Deview 2013 mobile browser internals and trends_20131022Deview 2013 mobile browser internals and trends_20131022
Deview 2013 mobile browser internals and trends_20131022
 
JavaScript on HP webOS: Enyo and Node.js
JavaScript on HP webOS: Enyo and Node.jsJavaScript on HP webOS: Enyo and Node.js
JavaScript on HP webOS: Enyo and Node.js
 
How to extend IBM Connections Communities and Profiles
How to extend IBM Connections Communities and ProfilesHow to extend IBM Connections Communities and Profiles
How to extend IBM Connections Communities and Profiles
 
OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...
OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...
OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...
 

En vedette

AD111 -- Harnessing the Power of Server-Side JavaScript and Other Advanced XP...
AD111 -- Harnessing the Power of Server-Side JavaScript and Other Advanced XP...AD111 -- Harnessing the Power of Server-Side JavaScript and Other Advanced XP...
AD111 -- Harnessing the Power of Server-Side JavaScript and Other Advanced XP...ddrschiw
 
Ad106 - XPages Just Keep Getting Better
Ad106 - XPages Just Keep Getting BetterAd106 - XPages Just Keep Getting Better
Ad106 - XPages Just Keep Getting Betterddrschiw
 
AD113 -- IBM Lotus Notes Discussion Template: Next Generation and Other OpenN...
AD113 -- IBM Lotus Notes Discussion Template: Next Generation and Other OpenN...AD113 -- IBM Lotus Notes Discussion Template: Next Generation and Other OpenN...
AD113 -- IBM Lotus Notes Discussion Template: Next Generation and Other OpenN...ddrschiw
 
Traveler preview guide
Traveler preview guideTraveler preview guide
Traveler preview guideddrschiw
 
Traveler preview guide
Traveler preview guideTraveler preview guide
Traveler preview guideddrschiw
 
Ad110 - Unleash the Power of Xpages
Ad110 - Unleash the Power of XpagesAd110 - Unleash the Power of Xpages
Ad110 - Unleash the Power of Xpagesddrschiw
 
AD112 -- Development and Deployment of Lotus Product Documentation Wikis
AD112 -- Development and Deployment of Lotus Product Documentation WikisAD112 -- Development and Deployment of Lotus Product Documentation Wikis
AD112 -- Development and Deployment of Lotus Product Documentation Wikisddrschiw
 

En vedette (8)

AD111 -- Harnessing the Power of Server-Side JavaScript and Other Advanced XP...
AD111 -- Harnessing the Power of Server-Side JavaScript and Other Advanced XP...AD111 -- Harnessing the Power of Server-Side JavaScript and Other Advanced XP...
AD111 -- Harnessing the Power of Server-Side JavaScript and Other Advanced XP...
 
Ad106 - XPages Just Keep Getting Better
Ad106 - XPages Just Keep Getting BetterAd106 - XPages Just Keep Getting Better
Ad106 - XPages Just Keep Getting Better
 
AD113 -- IBM Lotus Notes Discussion Template: Next Generation and Other OpenN...
AD113 -- IBM Lotus Notes Discussion Template: Next Generation and Other OpenN...AD113 -- IBM Lotus Notes Discussion Template: Next Generation and Other OpenN...
AD113 -- IBM Lotus Notes Discussion Template: Next Generation and Other OpenN...
 
Traveler preview guide
Traveler preview guideTraveler preview guide
Traveler preview guide
 
Traveler preview guide
Traveler preview guideTraveler preview guide
Traveler preview guide
 
Ad110 - Unleash the Power of Xpages
Ad110 - Unleash the Power of XpagesAd110 - Unleash the Power of Xpages
Ad110 - Unleash the Power of Xpages
 
Ad111
Ad111Ad111
Ad111
 
AD112 -- Development and Deployment of Lotus Product Documentation Wikis
AD112 -- Development and Deployment of Lotus Product Documentation WikisAD112 -- Development and Deployment of Lotus Product Documentation Wikis
AD112 -- Development and Deployment of Lotus Product Documentation Wikis
 

Similaire à AD114 -- Beyond the Mobile Browser? Building Rich Mobile Applications for IBM Lotus Domino

Dot Net Framework
Dot Net FrameworkDot Net Framework
Dot Net FrameworkSamWas1
 
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...Bala Subra
 
Lotus Notes Mobile Application Development Using XPages
Lotus Notes Mobile Application Development Using XPagesLotus Notes Mobile Application Development Using XPages
Lotus Notes Mobile Application Development Using XPagesCognizant
 
Cross platform development - Rhomobile
Cross platform development - RhomobileCross platform development - Rhomobile
Cross platform development - RhomobileKonstantin Rybas
 
Philipe Riand - Building Social Applications using the Social Business Toolki...
Philipe Riand - Building Social Applications using the Social Business Toolki...Philipe Riand - Building Social Applications using the Social Business Toolki...
Philipe Riand - Building Social Applications using the Social Business Toolki...LetsConnect
 
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!Howard Greenberg
 
Twelve Tasks Made Easier with IBM Domino XPages
Twelve Tasks Made Easier with IBM Domino XPagesTwelve Tasks Made Easier with IBM Domino XPages
Twelve Tasks Made Easier with IBM Domino XPagesTeamstudio
 
CNUG ASP.NET MVC 4 – New Features
CNUG ASP.NET MVC 4 – New FeaturesCNUG ASP.NET MVC 4 – New Features
CNUG ASP.NET MVC 4 – New FeaturesMayank Srivastava
 
Hybridmobileapps 130130213844-phpapp02
Hybridmobileapps 130130213844-phpapp02Hybridmobileapps 130130213844-phpapp02
Hybridmobileapps 130130213844-phpapp02weeyee
 
Put the client on the client
Put the client on the clientPut the client on the client
Put the client on the clientAndré Heie Vik
 
Tip from IBM Connect 2014: IBM Notes Goes Cloud: How GAD Created an Integrate...
Tip from IBM Connect 2014: IBM Notes Goes Cloud: How GAD Created an Integrate...Tip from IBM Connect 2014: IBM Notes Goes Cloud: How GAD Created an Integrate...
Tip from IBM Connect 2014: IBM Notes Goes Cloud: How GAD Created an Integrate...SocialBiz UserGroup
 
Ibm worklight - going from xpages mobile to native mobile applications
Ibm worklight - going from xpages mobile to native mobile applicationsIbm worklight - going from xpages mobile to native mobile applications
Ibm worklight - going from xpages mobile to native mobile applicationsMark Roden
 
Online advertising management system
Online advertising management systemOnline advertising management system
Online advertising management systemYesu Raj
 
Online advertising management system
Online advertising management systemOnline advertising management system
Online advertising management systemYesu Raj
 
Top Things you should know about Dot Net Development for Business Application
Top Things you should know about Dot Net Development for Business ApplicationTop Things you should know about Dot Net Development for Business Application
Top Things you should know about Dot Net Development for Business ApplicationCerebrum Infotech
 
Flutter vs Ionic: Which framework is better for cross platform application d...
Flutter vs Ionic: Which framework is better  for cross platform application d...Flutter vs Ionic: Which framework is better  for cross platform application d...
Flutter vs Ionic: Which framework is better for cross platform application d...Mobiloitte
 
Entwicker camp2007 blackberry-workshop
Entwicker camp2007 blackberry-workshopEntwicker camp2007 blackberry-workshop
Entwicker camp2007 blackberry-workshopBill Buchan
 
AD109 Navigating the Jungle of Modern Web Development
AD109 Navigating the Jungle of Modern Web DevelopmentAD109 Navigating the Jungle of Modern Web Development
AD109 Navigating the Jungle of Modern Web DevelopmentShean McManus
 

Similaire à AD114 -- Beyond the Mobile Browser? Building Rich Mobile Applications for IBM Lotus Domino (20)

Dot Net Framework
Dot Net FrameworkDot Net Framework
Dot Net Framework
 
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
 
Lotus Notes Mobile Application Development Using XPages
Lotus Notes Mobile Application Development Using XPagesLotus Notes Mobile Application Development Using XPages
Lotus Notes Mobile Application Development Using XPages
 
Cross platform development - Rhomobile
Cross platform development - RhomobileCross platform development - Rhomobile
Cross platform development - Rhomobile
 
Philipe Riand - Building Social Applications using the Social Business Toolki...
Philipe Riand - Building Social Applications using the Social Business Toolki...Philipe Riand - Building Social Applications using the Social Business Toolki...
Philipe Riand - Building Social Applications using the Social Business Toolki...
 
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!
 
Twelve Tasks Made Easier with IBM Domino XPages
Twelve Tasks Made Easier with IBM Domino XPagesTwelve Tasks Made Easier with IBM Domino XPages
Twelve Tasks Made Easier with IBM Domino XPages
 
CNUG ASP.NET MVC 4 – New Features
CNUG ASP.NET MVC 4 – New FeaturesCNUG ASP.NET MVC 4 – New Features
CNUG ASP.NET MVC 4 – New Features
 
Hybridmobileapps 130130213844-phpapp02
Hybridmobileapps 130130213844-phpapp02Hybridmobileapps 130130213844-phpapp02
Hybridmobileapps 130130213844-phpapp02
 
Put the client on the client
Put the client on the clientPut the client on the client
Put the client on the client
 
Tip from IBM Connect 2014: IBM Notes Goes Cloud: How GAD Created an Integrate...
Tip from IBM Connect 2014: IBM Notes Goes Cloud: How GAD Created an Integrate...Tip from IBM Connect 2014: IBM Notes Goes Cloud: How GAD Created an Integrate...
Tip from IBM Connect 2014: IBM Notes Goes Cloud: How GAD Created an Integrate...
 
Ibm worklight - going from xpages mobile to native mobile applications
Ibm worklight - going from xpages mobile to native mobile applicationsIbm worklight - going from xpages mobile to native mobile applications
Ibm worklight - going from xpages mobile to native mobile applications
 
Online advertising management system
Online advertising management systemOnline advertising management system
Online advertising management system
 
Online advertising management system
Online advertising management systemOnline advertising management system
Online advertising management system
 
Top Things you should know about Dot Net Development for Business Application
Top Things you should know about Dot Net Development for Business ApplicationTop Things you should know about Dot Net Development for Business Application
Top Things you should know about Dot Net Development for Business Application
 
Flutter vs Ionic: Which framework is better for cross platform application d...
Flutter vs Ionic: Which framework is better  for cross platform application d...Flutter vs Ionic: Which framework is better  for cross platform application d...
Flutter vs Ionic: Which framework is better for cross platform application d...
 
Web summit.pptx
Web summit.pptxWeb summit.pptx
Web summit.pptx
 
WebRTC Summit (June 2014) - WebRTC Interoperability (and why it is important)
WebRTC Summit (June 2014) - WebRTC Interoperability (and why it is important)WebRTC Summit (June 2014) - WebRTC Interoperability (and why it is important)
WebRTC Summit (June 2014) - WebRTC Interoperability (and why it is important)
 
Entwicker camp2007 blackberry-workshop
Entwicker camp2007 blackberry-workshopEntwicker camp2007 blackberry-workshop
Entwicker camp2007 blackberry-workshop
 
AD109 Navigating the Jungle of Modern Web Development
AD109 Navigating the Jungle of Modern Web DevelopmentAD109 Navigating the Jungle of Modern Web Development
AD109 Navigating the Jungle of Modern Web Development
 

Plus de ddrschiw

Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!ddrschiw
 
Ad109 - XPages Performance and Scalability
Ad109 - XPages Performance and ScalabilityAd109 - XPages Performance and Scalability
Ad109 - XPages Performance and Scalabilityddrschiw
 
Ad107 - Enhance Your Existing Applications with XPages
Ad107 - Enhance Your Existing Applications with XPagesAd107 - Enhance Your Existing Applications with XPages
Ad107 - Enhance Your Existing Applications with XPagesddrschiw
 
Ad103 - Have it Your Way: Extending IBM Lotus Domino Designer
Ad103 - Have it Your Way: Extending IBM Lotus Domino DesignerAd103 - Have it Your Way: Extending IBM Lotus Domino Designer
Ad103 - Have it Your Way: Extending IBM Lotus Domino Designerddrschiw
 
Ad102 - Extreme Makeover -- LotusScript and Java Editor Edition
Ad102 - Extreme Makeover -- LotusScript and Java Editor EditionAd102 - Extreme Makeover -- LotusScript and Java Editor Edition
Ad102 - Extreme Makeover -- LotusScript and Java Editor Editionddrschiw
 
Ad101 - IBM Lotus Domino Designer: Full Speed Ahead!
Ad101 - IBM Lotus Domino Designer: Full Speed Ahead!Ad101 - IBM Lotus Domino Designer: Full Speed Ahead!
Ad101 - IBM Lotus Domino Designer: Full Speed Ahead!ddrschiw
 
LotusSphere 2010 - Leveraging IBM Lotus® Forms™ with IBM WebSphere® Process S...
LotusSphere 2010 - Leveraging IBM Lotus® Forms™ with IBM WebSphere® Process S...LotusSphere 2010 - Leveraging IBM Lotus® Forms™ with IBM WebSphere® Process S...
LotusSphere 2010 - Leveraging IBM Lotus® Forms™ with IBM WebSphere® Process S...ddrschiw
 
Webform Server 351 Architecture and Overview
Webform Server 351 Architecture and OverviewWebform Server 351 Architecture and Overview
Webform Server 351 Architecture and Overviewddrschiw
 
Introduction To IBM Lotus Forms Viewer
Introduction To IBM Lotus Forms ViewerIntroduction To IBM Lotus Forms Viewer
Introduction To IBM Lotus Forms Viewerddrschiw
 
XPages Workshop: Concepts And Exercises
XPages Workshop:   Concepts And ExercisesXPages Workshop:   Concepts And Exercises
XPages Workshop: Concepts And Exercisesddrschiw
 
Building A Cool Web 2.0 Application With XPages
Building A Cool Web 2.0 Application With XPagesBuilding A Cool Web 2.0 Application With XPages
Building A Cool Web 2.0 Application With XPagesddrschiw
 
Domino X Pages
Domino X PagesDomino X Pages
Domino X Pagesddrschiw
 
Lotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & ArchitectureLotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & Architectureddrschiw
 
Lotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & ArchitectureLotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & Architectureddrschiw
 

Plus de ddrschiw (15)

Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!
 
Ad109 - XPages Performance and Scalability
Ad109 - XPages Performance and ScalabilityAd109 - XPages Performance and Scalability
Ad109 - XPages Performance and Scalability
 
Ad107 - Enhance Your Existing Applications with XPages
Ad107 - Enhance Your Existing Applications with XPagesAd107 - Enhance Your Existing Applications with XPages
Ad107 - Enhance Your Existing Applications with XPages
 
Ad103 - Have it Your Way: Extending IBM Lotus Domino Designer
Ad103 - Have it Your Way: Extending IBM Lotus Domino DesignerAd103 - Have it Your Way: Extending IBM Lotus Domino Designer
Ad103 - Have it Your Way: Extending IBM Lotus Domino Designer
 
Ad102 - Extreme Makeover -- LotusScript and Java Editor Edition
Ad102 - Extreme Makeover -- LotusScript and Java Editor EditionAd102 - Extreme Makeover -- LotusScript and Java Editor Edition
Ad102 - Extreme Makeover -- LotusScript and Java Editor Edition
 
Ad101 - IBM Lotus Domino Designer: Full Speed Ahead!
Ad101 - IBM Lotus Domino Designer: Full Speed Ahead!Ad101 - IBM Lotus Domino Designer: Full Speed Ahead!
Ad101 - IBM Lotus Domino Designer: Full Speed Ahead!
 
LotusSphere 2010 - Leveraging IBM Lotus® Forms™ with IBM WebSphere® Process S...
LotusSphere 2010 - Leveraging IBM Lotus® Forms™ with IBM WebSphere® Process S...LotusSphere 2010 - Leveraging IBM Lotus® Forms™ with IBM WebSphere® Process S...
LotusSphere 2010 - Leveraging IBM Lotus® Forms™ with IBM WebSphere® Process S...
 
Webform Server 351 Architecture and Overview
Webform Server 351 Architecture and OverviewWebform Server 351 Architecture and Overview
Webform Server 351 Architecture and Overview
 
Introduction To IBM Lotus Forms Viewer
Introduction To IBM Lotus Forms ViewerIntroduction To IBM Lotus Forms Viewer
Introduction To IBM Lotus Forms Viewer
 
XPages Workshop: Concepts And Exercises
XPages Workshop:   Concepts And ExercisesXPages Workshop:   Concepts And Exercises
XPages Workshop: Concepts And Exercises
 
Building A Cool Web 2.0 Application With XPages
Building A Cool Web 2.0 Application With XPagesBuilding A Cool Web 2.0 Application With XPages
Building A Cool Web 2.0 Application With XPages
 
Domino X Pages
Domino X PagesDomino X Pages
Domino X Pages
 
Mlb Demo1
Mlb Demo1Mlb Demo1
Mlb Demo1
 
Lotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & ArchitectureLotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & Architecture
 
Lotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & ArchitectureLotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & Architecture
 

Dernier

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 

Dernier (20)

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 

AD114 -- Beyond the Mobile Browser? Building Rich Mobile Applications for IBM Lotus Domino

  • 1. Beyond the Mobile Browser – Building Rich Mobile Applications for IBM Lotus® Domino® John M. Wargo | Director, Industry Solutions Practice AT&T Mobility
  • 2. Agenda ● Introduction ● Deciding: Browser vs. Rich client? ● Understanding the power of IBM Domino Web Services for mobile devices ● Building the XML Web Service ● Building a BlackBerry client ● Building a Windows Mobile client ● Building the RESTful Web Service ● Wrap-up 2
  • 3. About this Session ● Explore the differences between rich client and browser-based applications for mobile devices ● Learn how to use Lotus Domino Web Services to deliver data to mobile applications ● Learn how to build rich mobile applications to access your Domino databases ▬ BlackBerry© JavaTM application ▬ Microsoft Windows Mobile© application ▬ Others (possibly Google Android© Application) ● Targeted at Domino Developers 3
  • 4. About Me ● Director, Industry Solutions Practice for AT&T Mobility focusing on Emerging Mobility Solutions ● Developer, worked for Research In Motion for 2.5 years ● Certified Notes developer since Notes 2.0 (before buttons) all the way through Notes 8 ● Creator of award winning Automated Deployment Toolkit and ConfigSave for Lotus Notes ● Responsible for two IBM Beacon Awards ▬ Biggest Business Impact in 1997 ▬ Best Tool/Utility 2001 ● Author of BlackBerry Development Fundamentals (www.bbdevfundamentals.com) ●Home: www.johnwargo.com Twitter: @johnwargo 4
  • 5. Agenda ● Introduction ● Deciding: Browser vs. Rich client? ● Understanding the power of Domino Web Services for mobile devices ● Building the XML Web Service ● Building a BlackBerry client ● Building a Windows Mobile client ● Building the RESTful Web Service ● Wrap-up 5
  • 6. Deciding on the Right Client ● Depends on your audience ▬ Are there a limited number of client platforms you need to build for? ▬ The browser is a great common denominator for most all mobile devices ● Will your mobile users need to interact with the data locally? ▬ Can’t really do that with a browser application unless you use something like Google Gears ▬ Browser application wouldn’t “run” when the radio is off (airplane mode) or when the device is out of coverage ● Will your application need to interact with other device applications (calendar, tasks, email)? ● Will the application need to function in areas with limited cellular coverage? 6
  • 7. Strengths of the Mobile Browser ● Uses standards-based technologies ▬ HTML, XHTML, CSS*, JavaScript*, AJAX* ● Allows you to build once and run many places ▬ Pretty much every network-connected mobile device has a browser ● Leverage your core skills as a Domino/Web developer ● Most of your work has already been done if the application is already browser-enabled ▬ If so, your users could use your application in the same client (browser) only on different machines ● No application to deploy 7
  • 8. Weaknesses of the Mobile Browser ● Slow! ● Both data and layout information delivered over the air (OTA) ● Limited in capabilities (it’s only a browser after all) ● Limited interaction with other applications on the device (and their data too) ● Limited ability to keep its data local without resorting to third-party tools ● Complicated business logic runs on the server 8
  • 9. Browser Limitations ● If you haven’t Web-enabled your application yet, you’ve got a lot of work to do ▬ It’s easier if your business logic is in libraries rather than coded into forms or views ● Read only Document Object Model (DOM) on many devices ▬ Means you may not be able to mimic rich client capabilities in the browser (hide div's, change content on the fly and so on) ● Can’t code to the latest version of the browser ▬ Not all of your devices will be running the latest version of the OS/handheld code ● Not all mobile devices support Adobe Flash 9
  • 10. Strengths of the Rich Client Platform ● Fast! ● Can do just about anything it wants on the device ▬ Easily store and manipulate data locally ▬ Easily interact with other device applications and application data ▬ Can create contacts, calendar appointments, tasks and more... ▬ Interact with hardware components (camera, Bluetooth scanner, etc.) ● Complicated business logic runs in the client ● Did I mention it’s fast? 10
  • 11. Weaknesses of the Rich Client Platform ● May require a different set of skills than the typical Domino developer has ● Rich client applications can be much harder to create than browser applications ● May not run on multiple device platforms ▬ Depends on which technologies you used to build the application ▬ Java? ▬ .NET ▬ It would be great if there was a single cross platform option, but it’s actually getting worse with iPhone and Android 11
  • 12. Agenda ● Introduction ● Deciding: Browser vs. Rich client? ● Understanding the power of Domino Web Services for mobile devices ● Building the XML Web Service ● Building a BlackBerry client ● Building a Windows Mobile client ● Building the RESTful Web Service ● Wrap-up 12
  • 13. The Power of Domino Web Services for Mobile Devices ● Web Services are really easy to build in Notes Designer 7.x and 8.x ▬ Especially if you’ve already separated your business logic from the application ▬ We'll discuss two types: XML-Based Web Services and RESTful Web Services ● Allows multiple clients to easily access your business logic and data ▬ Build the business logic once into a Web Service then add client after client (including Notes) until you’re done ● Easily facilitates application to application communication – even across servers 13
  • 15. Agenda ● Introduction ● Deciding: Browser vs. Rich client? ● Understanding the power of Domino Web Services for mobile devices ● Building the XML Web Service ● Building a BlackBerry client ● Building a Windows Mobile client ● Building the RESTful Web Service ● Wrap-up 15
  • 16. Domino Directory Lookup ● The sample application performs a simple lookup against the Domino Directory ▬ Every Domino shop has at least one extra Domino Directory they maintain (right?) ● How it works ▬ Requester passes in a partial last name ▬ Service returns a list of names that match the search string ▬ Requester selects name ▬ Service returns some of the fields from that contact’s Person Document in the database ● The two operations of the service are connected 16
  • 18. SOAP Message Format To consume from a Java application, the Web service must use Doc/Literal SOAP message format 18
  • 19. The Code: Defining Variables 'Some Notes objects we'll need Dim db As NotesDatabase Dim s As NotesSession 19
  • 20. The Code: Two Classes 'The following class defines an array of strings 'that will be returned by the function GetUserList Class UserList Public users() As String End Class 'the following class defines the user details 'that we will be returning for a detailed lookup Class UserInfo Public FirstName As String Public LastName As String Public FullName As String Public EmailAddress As String Public OfficePhone As String Public MobilePhone As String End Class 20
  • 21. The Code: Defining the Main Class Class DomDirLookup Sub New //Initialization Code goes in here End Sub Function GetUserList(searchStr As String) As UserList //Code goes in here End Function Function GetUserDetails(searchStr As String) As UserInfo //Code goes in here End Function End Class 21
  • 23. Agenda ● Introduction ● Deciding: Browser vs. Rich client? ● Understanding the power of Domino Web Services for mobile devices ● Building the XML Web Service ● Building a BlackBerry client ● Building a Windows Mobile client ● Building the RESTful Web Service ● Wrap-up 23
  • 24. Building a BlackBerry Java Client 1) Generate the web services stub classes 2) Create a new BlackBerry Java project 3) Import the stub classes 4) Write your code 24
  • 25. Generating the Web Services Consumer Stub 1) Download (and install) the Sun Java Wireless Toolkit (http://java.sun.com/products/sjwtoolkit/) 2) Run the Stub Generator to create the stub classes you’ll call from your Java application 25
  • 26. Generating the Web Services Consumer Stub 26
  • 28. DomDirLookup Class // This class was generated by 172 StubGenerator. // Contents subject to change without notice. // @generated package com.johnwargo.domdirlookup; public interface DomDirLookup extends java.rmi.Remote { public java.lang.String[] GETUSERLIST(java.lang.String SEARCHSTR) throws java.rmi.RemoteException; public com.johnwargo.domdirlookup.USERINFO GETUSERDETAILS(java.lang.String SEARCHSTR) throws java.rmi.RemoteException; } 28
  • 29. Building the BlackBerry Java client 1) Create a new Java project 2) Import the stub classes 3) Write your code 29
  • 30. Building the BlackBerry Java client 30
  • 31. Obtaining the Complete Instructions ● I wrote a series of documents describing this process at johnwargo.com: ▬ http://www.johnwargo.com/index.php/Domino/dbja1.html ▬ http://www.johnwargo.com/index.php/BlackBerry/dbja2.html ▬ http://www.johnwargo.com/index.php/Miscellaneous/bbdja25.html ▬ http://www.johnwargo.com/index.php/BlackBerry/bbdja3.html 31
  • 32. Agenda ● Introduction ● Deciding: Browser vs. Rich client? ● Understanding the power of Domino Web Services for mobile devices ● Building the XML Web Service ● Building a BlackBerry client ● Building a Windows Mobile client ● Building the RESTful Web Service ● Wrap-up 32
  • 33. Building a Windows Mobile Client 1) Create a new Project 2) Add a Web Reference to the project 3) Write your code 33
  • 34. Building a Windows Mobile Client 34
  • 35. Agenda ● Introduction ● Deciding: Browser vs. Rich client? ● Understanding the power of Domino Web Services for mobile devices ● Building the XML Web Service ● Building a BlackBerry client ● Building a Windows Mobile client ● Building the RESTful Web Service ● Wrap-up 35
  • 36. Building a RESTful Web Service ● Some mobile platforms do not support XML-based Web Services directly ● You can hand craft the SOAP Request and Response, but that's really painful ● You could use kSOAP (for Java applications) or other open source libraries to provide the needed support, but that can get ugly (and difficult to support/troubleshoot) ● You can use Representative State Transfer (REST) as a useful alternative to XML-based Web Services 36
  • 37. About REST ● Request Parameters are included in the HTTP request URL ● Service results are included in the body of a HTTP response (using JSON for example - www.json.org) ● Request Examples: ▬ http://servername/dbname.nsf/agentname?openagent&searchstr=war ▬ http://servername/dbname.nsf/agentname?openagent&searchstr=john%20wargo ● Response Example: ▬ [“Anna Wargo”, “John Wargo”] ▬ {“FirstName”:”John”,“LastName”:”Wargo”,“Email”:”jwargo@somedomain.com”, “OfficePhone”:”123.456.7890”,“MobilePhone”:”987.654.3210”, “HomePhone”:”456.789.1230”} 37
  • 38. RESTifying the Domino Directory Lookup Service ● Two Options: ▬ Split the existing Web Service into two agents ▬ Migrate Web Service into a single agent that parses the URL command line then calls separate functions in the agent ● Use the same logic, just a different access method and output format for the data (JSON for example vs. XML/SOAP) ● You could but the logic in a script library then create two wrappers around it (XML-based Web Service and RESTful Web Service) ● Could use the JSONWriter LotusScript classes in your application to output the JSON (http://preview.tinyurl.com/ykdnmx3) 38
  • 39. RESTifying the Domino Directory Lookup Service 39
  • 40. Agenda ● Introduction ● Deciding: Browser vs. Rich client? ● Understanding the power of Domino Web Services for mobile devices ● Building the XML Web Service ● Building a BlackBerry client ● Building a Windows Mobile client ● Building the RESTful Web Service ● Wrap-up 40
  • 41. Wrap-Up ● Read the articles on how to build the Domino XML Web Service and BlackBerry Java Application ▬ http://www.johnwargo.com/index.php/Domino/dbja1.html ▬ http://www.johnwargo.com/index.php/BlackBerry/dbja2.html ▬ http://www.johnwargo.com/index.php/Miscellaneous/bbdja25.html ▬ http://www.johnwargo.com/index.php/BlackBerry/bbdja3.html ● Download the sample Domino database from the articles or from http://www.johnwargo.com/files/ls2010-ad114.zip ● Download the sample BlackBerry Java application from the articles or from http://www.johnwargo.com/files/ls2010-ad114-bb.zip ● Download the sample Windows Mobile application from http://www.johnwargo.com/files/ls2010-ad114-winmo.zip 41
  • 42. Wrap-Up ● Be sure to fill out your session evaluations! ● Want More? Repeat of BP212: Delivering IBM Lotus Domino to Mobile Devices: Top 10 Mobile Browser Dev Tricks - and More! (with Rob Wunderlich) at 1:30 PM Today! 42
  • 44. Legal Disclaimer © IBM Corporation 2010. All Rights Reserved. The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are subject to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing contained in this publication is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results. IBM, the IBM logo, Lotus, Lotus Notes, Notes, Domino, Quickr, Sametime, WebSphere, UC2, PartnerWorld and Lotusphere are trademarks of International Business Machines Corporation in the United States, other countries, or both. Unyte is a trademark of WebDialogs, Inc., in the United States, other countries, or both. Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both. 44