Skip to main content link. Accesskey S
  • Help
  • HCL Logo
  • HCL Notes and Domino Application Development wiki
  • THIS WIKI IS READ-ONLY. Individual names altered for privacy purposes.
  • HCL Forums and Blogs
  • Home
  • Product Documentation
  • Community Articles
  • Learning Center
  • API Documentation
Search
Community Articles > Developing Applications > Developing XPage Applications > XPage Tutorials > X-Pages iPhone Application Tutorial
  • Share Show Menu▼
  • Subscribe Show Menu▼

Recent articles by this author

About the wiki

This topic includes a list of features and fixes that are included in each release of the wiki.

0.1 PDF of Lotus Domino Development Best Practices

This article contains a PDF of the IBM Redbooks guide: Lotus Domino Development Best Practices". Click here to view the PDF.

0.0 Meet the Authors

Meet the Authors Robert Baehr (Bob) is the Manager of Business Systems and Development for S.R.I. Quality System Registrar, a pioneer and world leader in Management System Registration.  His experience with Lotus Notes and Domino spans two decades (since Release 2), offering software design, ...

1.0 Introduction

2.0 Application development lifecycleNext With Version 8.5.3, IBM® Lotus® Domino® Designer® software further improved its reputation for being a premier collaborative application development tool for Lotus Domino softwarebased applications. Lotus Domino Designer helps companies improve ...

2.0 Application development lifecycle

1.0 IntroductionPrevious 3.0 Infrastructure impact for application developmentNext Application development lifecycle is a commonly used and integral part of application development. It is not a new concept, however, is often under utilized by the developers. In this chapter, we ...
Learning Center articleX-Pages iPhone Application Tutorial
Added by ~Kim Rehipigenflar | Edited by ~John Dwoponeplopakol on February 23, 2010 | Version 21
  • Actions Show Menu▼
expanded Abstract
collapsed Abstract
No abstract provided.
Tags: iPhone, Xpage, X-Pages, ToDo, Journal, tutorials
ShowTable of Contents
HideTable of Contents
  • 1 Part 1 Size to fit screen
  • 2 Part 2 More formatting
  • 3 Part 3 Make it Look Like a Native App
  • 4 Video Example Application
  • 5 About the Author
This article provides information on how to create an application for an iPhone.  

Part 1 Size to fit screen

A new task has emerged, i need to make an internal crm database accessible to mobile phones. Since the iPhone is supported for Traveler 8.5.1, i decided to focus on this platform and the inherent capabilities it provides.
 

First i had a lot of trouble getting things sized right for the screen, and then there was zooming issues. I finally discovered a way to help format the page correctly and disable zooming.

 

In the source view of the Xpage, go to the top and under the tag enter this tag in

 

   1:   
   2:  
   3:  

<meta name="viewport" content="width=320;

   4:  
   5:  

initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" /> 

   6:  
   7:  


 
 

It only affects the iPhone Safari and displays in its full size on all other browsers.

Other good news was the iPhone automatically turned the phone numbers into links. I made the email address a “mailto:” link, and that opens an iPhone email very fast without leaving Safari.

 

Tomorrow i will show how i got the iPhone Google maps application to map this address, and also map directions from your current location to the destination address.

And no, its not slow at all, and i don't have 3G.

 

photo photo3


photo5 photo4

 


  

Part 2 More formatting


In my last post i showed how to size the screen and disable zooming, but things were still a little small. In particular the view spacing was not that finger friendly, also it looked a little akward with the page having padding around the table, and the fonts were too small.
 

Here is what is looked like

 

photoold1photoold2

 

To solve the view spacing issue, i added this code to my style sheet to change the height of the rows.

   1:   .xspDataTable tbody tr td {

   2:  border-top:1px solid #E8E8E9;
   3:  
   4:  font-weight:normal;
   5:  
   6:  height:45px;
   7:  
   8:  vertical-align:middle;
   9:  
   10:  }


This changes the line height to 45 pixels(i also changed the font to Arial 14), much more finger friendly than 20px. Here is what it looks like now

 

photo 2photo 4

 

I then took away all the page padding to get a better look, increased font size, and added this script to hide the address bar on load

   1:   addEventListener('load', function() { 

setTimeout(hideAddressBar, 0); 

   2:      }, false); 
   3:  
   4:  function hideAddressBar() { 
   5:  window.scrollTo(0, 1); 
   6:  } 
 

I also created a custom view pager and increased the font size to 14, and made all row heights 45px, here is the result

 

photo 2photo 4 photo 3


Part 3 Make it Look Like a Native App

The first thing you need to do to make your Xpage application look like a native iPhone app is to put all the parts(view, form, etc.) into 1 Xpage.  I did this with two panels, one is hidden while the other is showing.  In the first panel, which is set to display:none by default, is the contact form.  The other panel which is visible by default is the view and search function.

 

Configure the links in the view to set the document(data source for the contact panel) to the universal docid  by using the columns onClick event on the events tab. Set it to partial update the contact panel to receive the information from the document data source. On the client side js in the onClick event, set the panel with the search view in it to display:none, then set the contact panel to display:block.

dde1

 

Then create a back button on the contact form that hides the contact panel, and displays the search view panel.

 

The reason you need to put everything on one page and use Ajax refresh is because of the next step, also it is much much faster then changing pages.  Add this meta tag to the Xpage.

 

When a user bookmarks a your web page with this meta tag on the iPhone home screen, it will open in its own safari app process, it will not show the location bar or the bottom nav bar.  If you click on a link to another web page it will open it in a normal Safari window and take you away from the app, ruining your appearance of it being a native app.

 

Another meta tag that really makes a difference is:

 

photo6 photo7 

 

This will set the top bar with “ATT and time” to be black when the app is opened.   

Now we want a custom icon on the iPhone home page, and a startup image too.  For this we add two links:

/icon.png” /> 
/startup.png" />

 

Notice the CRM app icon on the desktop, then look at the startup “splash screen” image.

 

photo photo 4

 

The start up image comes up immediately, then waits for your page to open.  I suggest making your own Domcfg.nsf login form using the ultralite login subform as a start, then make the buttons and fields allot bigger.  i also found out that sometimes this replaces the iPhone home icon with the ultralight login image, so fix that as well, every app will have to have a custom login form.  I also added the ability to remember the password, not just the username.  You can search the web to find the correct dimensions for these pictures.

 

login

 

All that is left is to put in some nice webkit transitions when you hide and then display the panels.  I like to first fade out the current panel, after the fade out has occurred - set it to display:none, Set the next panel to display:block, then fade that panel in.  Most of this can be done with CSS, i will blog on this later.  You can also do the card flip or any webkit transition you would like.

 

photo photo 4 login photo6

 
 

Video Example Application

Here is an Example of what you can end up with following these steps 
 

  
 Get ITANA Here!external link
 

About the Author

 

Author:  Mark Hughes

Blog:  My Blogexternal link
Check out  your Lotus Notes ToDo's and Journal on the iPhone at Hughesconnect.comexternal link 
 
 


  • Actions Show Menu▼


expanded Attachments (0)
collapsed Attachments (0)
Edit the article to add or modify attachments.
expanded Versions (21)
collapsed Versions (21)
Version Comparison     
VersionDateChanged by              Summary of changes
This version (21)Feb 23, 2010, 9:49:53 PM~John Dwoponeplopakol  
20Feb 23, 2010, 9:39:02 PM~Joan Lopjumiverakol  IBM contributor
19Feb 23, 2010, 9:37:31 PM~Joan Lopjumiverakol  IBM contributor
18Feb 23, 2010, 9:36:30 PM~Joan Lopjumiverakol  IBM contributor
17Feb 23, 2010, 9:35:30 PM~Joan Lopjumiverakol  IBM contributor
16Feb 23, 2010, 9:33:41 PM~Joan Lopjumiverakol  IBM contributor
15Feb 23, 2010, 9:31:18 PM~Joan Lopjumiverakol  IBM contributor
14Feb 23, 2010, 9:30:10 PM~Joan Lopjumiverakol  IBM contributor
13Feb 23, 2010, 9:18:09 PM~Wendy Fezfanamarnivu  
12Feb 23, 2010, 9:13:16 PM~Wendy Fezfanamarnivu  
11Feb 23, 2010, 9:10:46 PM~Wendy Fezfanamarnivu  
10Feb 23, 2010, 9:09:34 PM~Wendy Fezfanamarnivu  
9Feb 23, 2010, 9:06:30 PM~Wendy Fezfanamarnivu  
8Feb 23, 2010, 9:04:09 PM~Wendy Fezfanamarnivu  
7Feb 23, 2010, 9:02:57 PM~Wendy Fezfanamarnivu  
6Feb 23, 2010, 9:02:24 PM~Wendy Fezfanamarnivu  
5Feb 23, 2010, 9:00:46 PM~Wendy Fezfanamarnivu  
4Feb 23, 2010, 8:59:12 PM~Wendy Fezfanamarnivu  
3Feb 23, 2010, 8:55:48 PM~Wendy Fezfanamarnivu  
2Feb 23, 2010, 8:55:10 PM~Wendy Fezfanamarnivu  
1Feb 23, 2010, 8:49:42 PM~Joan Lopjumiverakol  IBM contributor
expanded Comments (0)
collapsed Comments (0)
Copy and paste this wiki markup to link to this article from another article in this wiki.
Go ElsewhereStay ConnectedAbout
  • HCL Software
  • HCL Digital Solutions community
  • HCL Software support
  • BlogsDigital Solutions blog
  • Community LinkHCL Software forums and blogs
  • About HCL
  • Privacy
  • Accessibility