View Source

h1. ICEmobile 1.3 Release Notes
h3. *June 12 2013*

!http://wiki.icefaces.org/download/attachments/3309854/icemobile-app-icon-72x72.gif!

{anchor:about}


h2. About This Release
----
ICEmobile 1.3 delivers a wide spectrum of hybrid mobile features for Java EE development for both JSP and JSF. Some of the key new features and enhancements include:

* Blackberry 10 now supported.
* ICEmobile-SX hybrid support now available for Android.
* ICEmobile CSS now compatible with JQuery Themeroller.
* New DataView component provides a data table with master/detail views and client-side and server-side modes.
* Augmented reality now has preliminary support for Qualcomm Vuforia marker display on Android and experimental Augmented Reality interactive Forms on iOS.
* 2 new Android Holo-based light and dark themes.
* A wide spectrum of style and performance enhancements have been implemented.
* Spring MVC support has been improved and augmented with several new annotations.
* MyFaces is now supported.

h3. Contents

These Release Notes include the following sections:

* [About This Release|#about]
* [Downloads|#downloads]
* [New Features|#newfeatures]
** [JSF |#jsfenh]
** [JSP |#jspenh]
** [Containers|#containerenh]
** [Tools|#toolsenh]
** [Applications|#appsenh]
* [Supported Platforms|#supportedplatforms]
* [Development Tips|#devtips]
* [Known Issues|#knownissues]
* [Support|#support]

{anchor:downloads}

h3. Downloads
----
ICEmobile 1.3 Beta is available for download in the following formats:

* Binary and source-code [bundles|http://www.icesoft.org/downloads/icemobile-downloads.jsf]
* [SVN|http://anonsvn.icesoft.org/repo/icemobile/tags/icemobile-1.3.0/]
* Maven: [JSF|http://anonsvn.icesoft.org/repo/maven2/releases/org/icefaces/icefaces-mobi/1.3.0/], [JSP|http://anonsvn.icesoft.org/repo/maven2/releases/org/icesoft/icemobile-jsp/1.3.0/]
* [Android Client|https://play.google.com/store/apps/details?id=org.icemobile.client.android#?t=W251bGwsMSwyLDIxMiwib3JnLmljZW1vYmlsZS5jbGllbnQuYW5kcm9pZCJd]
* [Android Client (SX)|https://play.google.com/store/apps/details?id=org.icemobile.client.android.icemobilesx#?t=W251bGwsMSwyLDIxMiwib3JnLmljZW1vYmlsZS5jbGllbnQuYW5kcm9pZC5pY2Vtb2JpbGVzeCJd]
* [BlackBerry Client|http://appworld.blackberry.com/webstore/content/59555/]
* [iOS Client (SX)|http://itunes.apple.com/us/app/icemobile-sx/id485908934?mt=8]

{anchor:newfeatures}

h2. What's New in 1.3?
----
h3. General

Improved device detection with the {{mobiClient}} implicit variable in both JSF and JSP environments, which exposes the {{org.icemobile.util.ClientDescriptor}} api, for easy page-level access.

h3. JSF Components

The following new JSF components are available in this release:

- {{<mobi:dataView>}}
- {{<mobi:menuButtonGroup>}}
- {{<mobi:dataViewDetails>}}
- {{<mobi:dataViewColumns>}}
- {{<mobi:dataViewColumn>}}

The following JSF components have had new features added:

- {{<mobi:tabSet>}}. New property {{fixedPosition}} will allow the developer to have the tabSet headers display statically instead of fixed.

The following JSF component APIs have changed:

- {{<mobi:commandButtonGroup>}} now maintains its own state for {{selectedButton}} (previously required state in application code)
- {{<mobi:tabSet>}} now uses {{selectedId}} instead of {{currentId}} attribute name.

{anchor:jspenh}

h3. JSP Tags

The following new JSP tags have been added.

- {{<mobi:commandButtonGroup>}}
- {{<mobi:panelConfirmation>}}
- {{<mobi:submitNotification>}}
- {{<mobi:menuButton>}}
- {{<mobi:menuButtonGroup>}}
- {{<mobi:menuButtonItem>}}
- {{<mobi:audioPlayer>}}
- {{<mobi:videoPlayer>}}
- {{<mobi:tabPane>}}

The following JSP tags have been removed and no longer used for tabSet tag. Use tabSetPane instead.
&nbsp;&nbsp;
- {{<mobi:contentPane>}}
- {{<mobi:headers>}}
- {{<mobi:header>}}
- {{<mobi:content>}}

The following JSP tags have had new features added:

- {{<mobi:tabSet>}} now has a supported {{orientation}} property. The {{fixedPosition}} property is new and similar to jsf tabSet component.

The following JSP tag APIs have changed:
&nbsp; - {{<mobi:tabSet>}} new markup very similar to jsf component with same attribute names.
&nbsp; - {{<mobi:commandButton>}}, {{<mobi:commandButtonGroup>}}, {{<mobi:menuButton>}}, {{<mobi:panelConfirmation>}}, {{<mobi:submitNotification>}} all require application javascript callback for {{ice.mobi.usrAjaxRequest}}.

{anchor:containerenh}

h3. Device Containers

* Device integration for BB10 now supported via Android Container.
* ICEmobile-SX now available for Android.
* New network activity progress bar overlays the web view eliminating conflicts with page content.
* Augmented reality improvements for both Android and iOS
** iOS now has experimental support for Augmented Reality Forms, see [http://www.icesoft.org/blog/augmented-reality-shopping/]
** Android now has initial support for Vuforia marker display using a set of stock 3D models. Dynamic 3D object loading will be supported in a future release.

h3. Spring MVC

* {{@ICEmobileResourceStore}} class-level annotation allows the configuration of resources on a controller or class. A resource store can be used as a destination for uploads, and as a source for downloads or media serving via a request handler. Two out-of-the-box resource store classes are available: org.icemobile.spring.handler.support.MapFileStore, for a simple in-memory file store, and org.icemobile.spring.handler.support.JdbcResourceStore for database-backed resources.
* {{@ICEmobileResource}} method argument-level annotation allows for the automated injection of resource uploads into controller methods, making upload file handling much easier.
* {{org.icemobile.spring.handler.ResourceStoreRequestHandler}} class may be used as a bean to expose a resource store as a request handler.

{anchor:toolsenh}

h3. Tools

* Bundled with ICEmobile 1.3 library (jsf component library and Spring MVC library)
* Added design time support for new mobi components and jsp tags

{anchor:supportedplatforms}

h2. Supported Platforms
----
h3. JSF/ICEfaces

This release is based on ICEfaces 3.3 Final, and inherits supported JSF runtimes, browsers, and application servers from that release. See ICEfaces [release notes|http://www.icesoft.org/wiki/display/ICE/ICEfaces+3.3.0+Release+Notes] for details.

h3. Device Containers and Mobile Browsers

* Google Android 2.3 or later
* Apple iOS 4 or later
* BlackBerry Platform 6, 7 and 10

h3. Internet Explorer

Internet Explorer is supported in two tiers, full support for IE 10, and partial support for IE 8 and 9.

The following are known issues for IE 8:

* {{<mobi:carousel>}} is not supported due to an iScroll JavaScript dependency
* {{<mobi:dataView>}} is partially supported; this is an advanced mobile component and requires touch screen support, but it is largely functional in IE8
* {{<mobi:flipswitch>}} has minor cosmetic defects
* media components such as the {{<mobi:camera>}} require the use of {{<h:commandButton>}} since IE 8 and IE 9 do not support Ajax file upload
* {{<mobi:video>}} and {{<mobi:audioPlayer>}} components are supported only through the direct media link
* {{<mobi:geolocation>}} not supported due to lack of geolocation support in IE8


{anchor:devtips}

h2. Development Tips
----
h3. JSF Components

* If your application uses {{<mobi:camera>}}, {{<mobi:microphone>}}, or {{<mobi:camcorder>}} and you wish it to work in IE9, add

{code}
<mobi:uploadhelper/> {code}
to the form. For more advanced Ajax use see [Desktop Portability|ICEmobile Desktop Portability].

* Default for using minified javascript and CSS for components is dependent upon the following context parameter from web.xml:\-
{code}
<param-name>javax.faces.PROJECT_STAGE</param-name> {code}
if using {{Production}} for param-value, the minified JavaScript and CSS will be used, if {{Development}}, will get non-minified (easier to read) CSS and JavaScript.


* {{timeZone}} support on {{<mobi:timeSpinner>}} may show values from different time zones for sample apps (tested using MST). Just use
{code}
<f:convertDateTime...timeZone="#{date.timezone}" />{code}
which returns java.util.TimeZone.getDefault(); to get the default time zone of the server.

* ICEmobile now includes a basic "mobile simulator" for demos on desktop browsers. In a typical production application, the desired behavior for the native components is to fall back to desktop equivalents (such as file upload in the case of the camera), but for demo purposes it is useful to "simulate" the experience of the mobile user (so, for instance, the simulated camera component displays a photo gallery selection popup). This can be enabled with a context parameter, system property or session attribute of the same name:
{code}
<context-param>
<param-name>org.icemobile.simulator</param-name>
<param-value>true</param-value>
</context-param>
{code}

{anchor:knownissues}

h2. Known Issues
----
h3. JSF Components

* use of new core rendering means that attribute names for some components may have changed to reflect a more appropriate name used by JSP or JSF counterpart. If you have existing XHTML or JSP pages, check the attribute names to be certain to have the latest API version.
* {{<mobi:ajax>}} support. Components which are naming containers (like Carousel) have limited use for {{<mobi:ajax>}} tag due to the JSF {{UIComponent.findComponent}} method which will only search to the nearest naming container.
* {{<mobi:geolocation>}} not supported on BlackBerry devices in browser API
* {{<mobi:viewSelector>}} is now deprecated and developers are encouraged to use the new {{<mobi:smallView>}} and {{<mobi:largeView>}} components to achieve view-specific layouts.



h3. JSP Tags

* Ajax Push may not initialize on JSP pages where the registration is added via an ajax update.
* {{<mobi:carousel>}} is not backwards compatible prior to ICEmobile 1.2. The new {{<mobi:carouselItem>}} tag allows for any valid JSP markup since the ICEmobile 1.2 release.
* {{<mobi:accordion>}} now supports {{<mobi:accordionPane>}} children. (since ICEmobile 1.2)
* {{<mobi:tabSet>}} now takes {{<mobi:tabPane>}} children (new this release).

h3. Containers

h4. Android

* HTML5 audio and video tags are not well supported prior to Android 2.3. Video and audio playback may not work on devices running Android 2.2 or earlier.
* Occasional rendering issues have been encountered with Hardware Acceleration. An orientation change or interaction with the page will normally rectify these issues. Results will vary from device to device.
* Android 3.x tablets exhibit a wide range of rendering problems. It is highly recommended that 3.x device be upgraded to 4.x whereever possible.
* The Augmented Reality video layer is not available for devices without a back-facing camera, such as the Nexus 7. These devices will show a black background with the markers.
* The reliability of Ajax Push may be affected on some older devices after the system video player is activated. In these cases, Ajax Push notifications may not be received until the page is refreshed or the ICEmobile application is restarted.
* Under certain conditions embedded html media tags leave the android media player in a odd state where a previously played audio or video may continue to play, or restart after a navigation event. This appears to be more prevalent in older Android 2.x versions.

h4. BlackBerry OS 6


h5. General issues

* Flash and zoom controls are not yet available on the Camera widget extension.
* On devices with a slide out keyboard, having the keyboard extended automatically puts the device in Portrait mode. The photo component depends on the Device.getOrientation method call to orient the thumbnail to the screen, so the thumbnail may be rotated incorrectly in this situation.
* In a related sense, the video camera widget sized at 640x480 does not show up fullscreen unless it's used in Landscape mode. This is similar to the RIM camera application where the the same aspect ratio is maintained.
* When using the video recorder, the user is asked for the following permission when using the video camera:
{noformat}The aplication ICEmobile is attempting to reset the security timerĀ  [Allow][Deny]
{noformat}This appears to be a [common issue|http://supportforums.blackberry.com/t5/Java-Development/Security-Timer-dialog-appearing-during-video-playback-using/td-p/719235] on some devices when using APIs related to using the video camera in either recording or playback.
Other uses of an API to reset the backlight timer cause this to occur, but the ICEmobile application does not use this API. If this question is asked repeatedly during normal use, it can be
disabled through the application permissions menu:
*Options (wrench)* \-> *Device* \-> *Application Management* \-> *ICEFaces Mobile Container* \-> *Edit Permissions* \-> *Interactions* \-> *Reset Security Timer* \-> *\[Allow\]*
* Dongle can be attached to BlackBerry device in "charge only" mode only if attempting to write to the filesystems. Camera and videocamera extensions wont work if user is trying to share filesystem with a desktop client.
* Simulator code is extremely slow and can be temperamental depending on simulator networking performance.
* When a video or audio clip is displayed in the WebKit browser, it renders a black rectangle that persists after the container (and the browser) navigates to a new page. The user must reload the current page to force the browser clear the rectangle.
* It appears the Blackberry Webkit browser does not render the audio or video controls until the entire clip is downloaded, so some patience is required.
* BlackBerry OS6 uses zxing version 6, which requires the user taking a photo. The container then applies a series of Java image processing operations on the resulting image. For a successful scan, QRCode must be well lit, and the photo taken from such a place that there is no reflection and the image is focusable (via autofocus). Also it seems that the image must be black/white as experience has showed poor results with green or red images.
* GeoLocation now works on the BlackBerry, but must be high precision mode. The <mobi:geolocation> component will detect the BlackBerry container and use the appropriate mode.
* Augmented Reality pages not available for BlackBerry.

h5. Development issues

* Special care must be taken to execute JavaScript (including the executeScript(String script) calls) in the ScriptEngine instance fetched from the BrowserField instance when the document loads. The convenience method to execute scripts in the BrowserField instance results in a new ScriptEngine being created which does not have access to the javascript namespace defined by ICEmobile components and Bridge constructs.

h4. BlackBerry OS 10

* Container support is through our native Android container running in the Android runtime for BlackBerry 10. Access to the container menu system is achieved via gestures, notably dragging downward on the top of the screen. If you change the URL through the preferences menu, note that in order to activate the change in the container, you will have to re-gesture in the same way to hit the back button once the URL dialog is dismissed.

* Android container in BlackBerry runtime currently supports Android 2.3 API features at most.



h5. iOS

* The Augmented Reality Marker view startup may take 20 seconds and a progress bar has not yet been added; please be patient. The view may remain black if the display goes to sleep while it is active. To fix, restart ICEmobile-SX by holding down the home button and pressing the "minus" badge. The view only displays the first model even though all models are loaded.

* Audio playback does not work for all device-supported formats in the iOS container (audio playback issues are not seen with Safari with ICEmobile-SX).

h5. Tools

* Some cosmetic issues exist with components in Eclipse design time view.
* The stock internal Eclipse browser does not support the ICEmobile device themes, and users are encouraged, when running an ICEmobile application in Eclipse to change the default browser. The default web browser can be changed in Eclipse by changing the menu setting in Window > Web Browser .. to a non-internal browser.

h5. Sample Applications

* mvc-mediacast is a new alpha-quality sample application showcasing the media upload capabilities and Spring MVC integration of ICEmobile-JSP.

{anchor:support}

h2. Support
----
Open source community support is available at [http://www.icesoft.org].

The [ICEmobile community forums|http://www.icesoft.org/JForum/forums/show/30.page] are available for questions, comments, or general discussions regarding ICEmobile.

!http://wiki.icefaces.org/download/attachments/3309854/icemobile-app-icon-72x72.gif!