Citrix Mobile Application SDK
The Citrix Mobile Application SDK provides a rich tool kit for developers to write touch-friendly, mobilized applications that are hosted on Citrix XenApp or XenDesktop and delivered to any mobile device with Citrix Receiver. These mobilized applications are able to leverage a wide set of mobile device functionality including GPS, sensors, cameras, and device buttons in the same way that locally running, native applications do.
The Mobile Application SDK is targeted for use by enterprise developers, System Integrators, and ISVs to create new mobile-friendly applications to be hosted on XenApp or XenDesktop. These applications leverage Citrix customers' existing Citrix infrastructure and enables them to deliver mobilized, touch-enabled applications while keeping sensitive corporate data secure in the data center and not cached on an easily lost, misplaced, or stolen mobile device.
The SDK has over 50 APIs available along with a number of programming language bindings supported out of the box. These API's allow developers to produce specific mobile-friendly UI's for new and existing enterprise applications that match the capabilities of smartphone and tablet devices.
The Mobile Application SDK includes the following components, which can be downloaded here:
- Citrix Mobility Pack, which installs on XenApp 6.5 or XenDesktop 5.6 Feature Pack 1 to enable new mobility features
- Development framework - C / C++ /.NET, COM, which installs on the developer workstations
- Code Examples, Documentation, Developer Forum, and a Support Wiki
In conjunction with the Mobile Application SDK there are two new Technology Concept Releases:
- GoldenGate Mobile Email - A sample application created with the Mobile Application SDK that illustrates for developers how a full featured, mobile-friendly front end to an enterprise system like Microsoft Exchange can be created with the Mobile Application SDK. GoldenGate is a secure email / calendar / contacts application that executes on the Citrix XenApp/XenDesktop server infrastructure, integrates with Exchange, and allows enterprise organizations to provide corporate email access while no data is transited to or cached on the endpoint mobile device. More information and a links to the download site are available here.
- Alcatraz Mobile PINPad - A technology that provides a simple and convenient PIN access to secured applications delivered from the Citrix infrastructure and enhances quick session connection and re-connections. More information and a links to the download site are available here.
With the Mobile Application SDK, developers can now write XenApp/XenDesktop hosted, touch friendly applications that bring the mobile user experience to a new level, making it a very similar experience to that of a native application running locally on a mobile device.
The Mobile Application SDK addresses the following areas:
There is rarely the concept of changing display orientation in typical Windows applications. Mobile devices on the other hand do not have a fixed orientation and can be rotated in any direction... users expect that the application will automatically adjust its position and size. The aim of the SDK is to ensure that applications are aware of orientation when hosted on XenApp/XenDesktop and can decide automatically what the proper orientation and layout should be.
Mobile devices typically do not have physical keyboards and rely on an on-screen keyboard (OSK), which is hidden until required. Existing Windows applications assume a physical keyboard is available, but when delivered via XenApp/XenDesktop to a mobile device, something needs to trigger the OSK to appear and disappear at the appropriate time.
The currently available Mobile Receivers have UI controls triggered by the user through a menu button: Show Keyboard, Scrolling Mode, Close, Gestures Guide, and Settings. A touch friendly application should not require the user to use these controls. The SDK API enables the developer to create a native look and feel and reduce the need for the user-triggered Receiver UI controls.
Mobile device displays are typically more advanced than PC displays and support multi-touch with a higher pixel density. Windows applications need to be adjusted to correctly display on these smaller, but usually higher Pixel-Per-Inch (PPI) screens. With the SDK, display metrics are retrieved from the device and change notification events are made available to the application, making it aware of the device resolution and pixel density. Using this information the application can ensure that text is easy to read, buttons and widgets are big enough to touch, and UI Layouts can be re-arranged to fit the screen properly.
The iPhone and iPad have one button to control the application, while an Android device can have four or more. A touch friendly application will want to know when certain buttons are pressed. For example, in a page hierarchy the application will want to be back one level when Back is pressed. This type of functionality is made available via the SDK API.
The SDK API enables the Native Device Experience technology on the XenApp/XenDesktop server to map a list box in a windows application to a local mobile device Picker Control. Similarly a Scroll Bar in a Windows application can be mapped to a local Slider Control. An application developer can also make use of this functionality if they choose to do so.
Many mobile device features could be better integrated with applications running on XenApp/XenDesktop. With the SDK API, it is possible to build functionality into a mobilized application that allows it to:
- Make phone calls based on contacts list on a server
- Send SMS from content on a server
- Capture pictures from remote locations and store in data center
- Integrate email, phone, SMS, and photos in one suite
Many mobile devices provide the ability for applications to retrieve the location of the device - either in the form of latitude and longitude coordinates, or through geocoding, the address of the device. The Citrix Mobility Pack provides the ability for Windows applications running in XenApp/XenDesktop to utilize the location information of the device while in a Receiver session.