wissel.net

Usability - Productivity - Business - The web - Singapore & Twins

Mobile applications with Domino


The question croppes up in a lot of customer discussions lately: " How can I bring my Notes and Domino applications to my mobile devices?" with iPhone, Android and Blackberry cited most, followed by " any phone" and with a large margin Windows mobile (no version # specified) and others. There isn't a straight answer to that. Mobile applications actually represent another increase of complexity over web applications that represent an increase in complexity over client server applications. The complexity stems from the decreasing control over the runtime environment. Let me elaborate:
  • in a client server application you control all moving parts: the client code, the protocol on the network, the screen size, the server code. Clients can have their session state build in and you are free to distribute load evenly between client and server. You typically get away with a single language (e.g. Java, LotusScript or C#)
  • in a web application you relinquish control over your client runtime to a combination of browser vendors and IT department decisions which to pick and what to enable/allow. You are no longer free in your client language: it is a combination of 3 languages: HTML, CSS, JavaScript and probably a bunch of frameworks like Dojo or jQuery. Picking a single browser platform is an illusion since one of your execs will turn up with an iPad or iMac (and out goes your IE corporate standard)
  • In mobile applications you further relinquish the control over screen sizes, user interaction modes (is there a keyboard? Does it multi-task and how? Is there a stylus? What about a camera?) and network access: it might be online and offline. I discussed device diversity before.
There is a huge debate going on if an application should be native or use web technologies. As always in IT: it depends. Every approach has its trade-offs. There are three general options: web applications, native applications and hybrid applications. IBM doesn't offer a Lotus Notes runtime on mobile devices (never had) and Lotus Expeditor runs on none of the current mobile operating systems, so storing and synchronising data is a most likely issue if you want to take your applications offline (make them work without network connectivity). So this is what you are in for:
  • Web applications
    These are comparable easy to build, since they are a variation of the web applications you already are familiar with. Using OpenNTF's mobile controls. With a little hindsight when creating your custom controls you can develop large and small screen version with moderate overhead. But even with classic Domino when applied ZEN style mobile applications are easy to build. Obvious drawback is the dependency on an available (and sufficient fast) network connection and the lack of access to device features (like camera, gps or gyroscope). Also it is your responsibility to make the application look like your target platform. The OpenNTF mobile controls address some of these short coming, which technically makes them hybrid applications
  • Native applications
    Interestingly mobile devices, driven by a multitude of factors (subject to a different post) reversed the trend of moving all applications to the browser. The slogan "There's an app for that" went down very well. The obvious advantage of native applications are: you can stuff them into the respective app store, they can run without a network connection, feel like "the real thing" and have access to all possible device feature. The only disadvantage from a user perspective: it needs to be installed once (tapping into buying lust when browsing the app store overcomes that easily). Interestingly for mobile devices updating applications has been reasonably solved while classic computers need heavy hitting tools like M$ SMS or IBM Bigfix. The list of disadvantages for developers read a little longer:
    • Every device has different properties you need to take into account: speed, screen size, responsiveness and hardware configuration (camera, gyroscope, GPS - just to name a few)
    • The APIs and modes of notification, data synchronisation and multi-tasking differ in their philosophy. Latest claims that is has been solved awaiting real live prove. Synchronisation is stubbornly hard (you might want to check CouchDB to learn about differences. A nice approach also is to use MQ and a signalling approach to keep all data in sync. For Blackberry and Android sync can be handled by Teamstudio unplugged (with an iOS version allegedly under development) which has the distinct advantage that you can develop in Domino Designer using XPages.
    • Languages. There is no single language that is available for all devices
      • ObjectiveC: when you develop for iOS (iPhone/iPad/iPod) that is what you need to use. Not available on non-Apple devices
      • Java: Android uses it natively and you can use it for Symbian (in case it is still relevant), Blackberry and older Windows Mobile versions. Not available on Apple or Windows Phone 7
      • C/C++: available on Symbian, Android (via NDK), Blackberry and smaller players. Not available for Windows Mobile 7 or Apple.
      • C#/VB.NET: Windows Phone 7 only
      • AppInventor: Graphical development for Android only
      • JavaScript: Native to HP/Palm's webOS, for all others only via Hybrid applications
      So native applications will require substantial work. This might be justified when you plan a high number of devices
  • Hybrid applications
    They are build using web tooling: JavaScript, HTML and CSS, but have a small device dependent core that enables access to the device API and uses HTML5's offline storage capabilities. OpenNTF's mobile controls use the PhoneGap framework to run on iOS, Android, Blackberry, Windows Mobile, Palm, Symbian and soon MeeGo and Bada. Still supported featuresdiffer per platform. Phonegap also offers a Cloud build service. There are more frameworks to evaluate
  • [Update] Mono and AIR
    Andreas Rosen from QKom adds that additional client site platforms are Adobe AIR, MonoTouch (iPhone, iPad, iPod) and Mono for Android. With recent turmoil around Mono I wouldn't bet the house on it. Air runs on Apple, Android and the Blackberry playbook. I didn't find any mention of webOS (Palm), Blackberry phones or Windows Phone 7 (yet). Andreas' company offers SoapGateQ! to make data available for mobile devices which works well with AIR and any platform capable of calling a web service.
In conclusion: The only available Domino specific solution for native applications is Teamstudio unplugged taking care of data sync. For other native solutions you need to roll your own sync. For web or hybrid applications OpenNTF's mobile controls are they way to go (again leaving you to care for sync). So doable, but not pretty.
Keep in mind: Mobile applications are NOT shrunken desktop applications. To make them successful you need to strip them to the bare essentials. Also a finger is a much cruder pointing device compared to a mouse and lends itself rather to drag and drop than click (tap).
As usual YMMV

Posted by on 10 June 2011 | Comments (8) | categories: Show-N-Tell Thursday

Comments

  1. posted by Bill McNaughton on Saturday 11 June 2011 AD:
    Excellent article, provides a great overview of the options and issues. There is, though, another option for a Domino-specific solution that is a native app and manages local device data: Velocity AppXtender { Link } It also uses "wizards" to configure the mobile application vs. requiring custom development so is a very low-effort/ rapidly-deployable option. I'm the architect of that product and would be happy to discuss it with you.
  2. posted by Manuel Ruiz on Sunday 12 June 2011 AD:
    Great post Stephan ¡¡

    Thanks a lot

    regards
  3. posted by Simon Peek on Tuesday 14 June 2011 AD:
    "For Blackberry and Android sync can be handled by Teamstudio unplugged (with an iOS version allegedly under development) which has the distinct advantage that you can develop in Domino Designer using XPages."

    Allegedly?!
    The Android release is taking place in just a few weeks with iOS happening in August.
    Well, that's what the project plans says Emoticon smile.gif

    Excellent and well-rounded article Stephan. Thanks.
  4. posted by Patrick Kwinten on Monday 28 November 2011 AD:
    In another presentation of IBM (IBM, PhoneGap and the Enterprise , available on Slideshare) I read a quote from Jonathan Stark:

    ”If you can build your app with HTML, CSS and JavaScript, then you probably should.”

    I just wonder how this goes in principal against the xpages mobile controls cq Teamstudio unplugged?

  5. posted by Patrick Kwinten on Tuesday 29 November 2011 AD:
    following the standards is great =)

    wonder if IBM is thinking about closing the gap between xpages and phonegap? so we can deliver mobile xpages apps as native apps?
  6. posted by Stephan H. Wissel on Tuesday 29 November 2011 AD:
    @Patrick: No. The mobile controls at the end emit HTML, so what end up on the phone *is* HTML, CSS and JavaScript. Jonathan didn't say: you have to handcode these.
    Emoticon biggrin.gif stw
  7. posted by Breck adkins on Sunday 25 November 2012 AD:
    With Domino 8.5.3 upgrade pack 1 and the release of the rest API. Sencha Touch is the way to build HTML5 CSS 3 mobile apps
  8. posted by Nia SAm on Thursday 05 September 2013 AD:
    There are several types applications are their in software fields. They are client-server application - mainly for client server interaction purposes, web applications are for website applications like automation applications, and finally the mobile applications are instant or it's set of software programs .This are very important in it's each fields. For this useful data Thank U . Keep posting.