View Source

h1. ICEmobile 1.2 Release Notes
h3. *Dec 12 2012*



h2. About This Release
ICEmobile 1.2 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:

* A core rendering mechanism has been introduced that provides common rendering capabilities for both JSF and JSP tags. This ensures consistent functionality and styling across ICEmobile web controls, and improves code reuse and maintainability.
* A variety of new mobile web controls have been added for both [JSF|#jsfenh] and [JSP|#jspenh].
* Layout components have been added to improve and simplify page design for different form factor displays
* A wide spectrum of style and performance enhancements have been implemented.
* Device and browser detection has been improved to ensure web controls look and perform optimally on a full range of supported devices.
* Device integration now supports contact/address book selection.
* Additional HTML5 features supported, such as the ability to upload or take a photo/video/audio from a mobile device or upload one from a browser if the ICEmobile container or ICEmobile SX is not present.
* Tools integration now includes a variety of templates that will get your mobile projects off the ground quickly and easily.

h4. 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]


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

* Binary and source-code [bundles|]
* [SVN|]
* Maven: [JSF|], [JSP|]
* [Android Client|]
* [BlackBerry Client|]
* [iOS Client|]


h2. What's New in 1.2?

h3. General
* Support for iOS 6 Smart App Banners
* Carousel, both JSP and JSF, are now supported by the most recent version of iScroll v4.2.
* PanelPopup now has exposed javascript api for opening and closing a panelPopup if the clientSide attribute is true


h3. JSF Components

The following new JSF components are available in this release:
* [augmentedRealityMarker]
* [deviceResource|Device Resource]
* [fetchContact]
* [Get Enhanced]
* [Google Map]
* [Google Analytics]
* [Large View]
* [Small View]
* [Split Pane]

The following JSF components have had new features added:

* [audioPlayer]
** *autoPlay* attribute can direct the audio to begin playing automatically on page load
* [Augmented Reality]
** *buttonLabel* can be used to set the label text of the button
* [Command Button]
** *openContentPane* attribute allows the button to open a [Content Pane] in a containing [Content Stack]
* [Content Stack Menu]
** *accordion* attribute allows the use of a menu with contentMenuItem in each accordion for navigation through the contentStack. Simple transitions with sliding panes defined.
* [geolocation]
** *continuousUpdates* attribute allows an application to watch for location changes
** *enableHighPrecision* attribute allows the application to control whether the device GPS or alternative mechanism is used to retrieve location information
** *maximumAge* attribute determines the maximum age previously retrieved location information will be cached for
** *timeout* attribute determines the length of time the application will wait for location information
* [camera] & [camcorder]
** *useNative* attribute will render an input element with the HTML5 accept type image/* on supported browsers. Users will then be able to upload an image file directly from the browser. This attribute is not required when an enhancedBrowser/container or ICEmobile-SX is NOT present, as it will be rendered in that case anyways.
* [camera] & [camcorder] & [microphone] & [QR Code Scanner]
** *captureMessageLabel* attribute allows the camera button label text to change once a photo has been captured.

The following JSF component APIs have changed:

* [accordion]
** *currentId* attribute has been renamed to *selectedId*
** *fixedHeight* attribute has been renamed to *height*
* [audioPlayer]
** The audio content will no longer play automatically on page load. The *autoPlay* attribute (default false) can now be used.
* [Command Button]
** *buttonType* 'default' is no longer used. The default style will be shown by default. The new buttonType value 'unimportant' can now be used for a more subtle style.
* [contentMenuItem]
** *menuHeader* attribute has been removed
* [Content Navigation Bar]
** *menuButtonLabel* has been removed
** *menuButtonTargetId* has been removed
* [panelPopup]
** *header* is now *headerText*


h3. JSP Tags

The following new JSP tags have been added.

* [accordionPane |accordionPane Tag]
* [augmentedRealityMarker |augmentedRealityMarker Tag]
* [fetchContact |FetchContact Tag]
* [fragment |fragment Tag]
* [getEnhanced |GetEnhanced Tag]
* [googleAnalytics |GoogleAnalytics Tag]
* [largeView |LargeView Tag]
* [qrcode |qrcode Tag]
* [smallView |SmallView Tag]
* [splitPane |SplitPane Tag]

The following JSP tags have had new features added:

* [augmentedReality| augmentedReality Tag]
** *buttonLabel* attribute added
* [camcorder| Camcorder Tag]
** *buttonLabel* attribute added
** *maxheight* attribute added
** *maxwidth* attribute added
** *maxtime* attribute added
* [camera| camera Tag]
** *buttonLabel* attribute added
** *maxheight* attribute added
** *maxwidth* attribute added
** *containerSimulator* attribute added
* [carousel| carousel Tag]
** *name* attribute added. The tag now has ability to submit the selected item/index of the carousel (similar to JSF). Markup for this component has significantly changed so please see example in icemobilespring.
* [carouselItem| carouselItem Tag]
** *id* attribute added
* [deviceResource]
** *includeIOSSmartAppBanner* attribute added
** *includePush* attribute added
* [geolocation| Geolocation Tag]
** *continuousUpdates* attribute allows an application to continue watching for location changes, once initial location values have been retrieved
** *enableHighPrecision* attribute allows the application to control whether the device GPS or alternative mechanism is used to retrieve location information
** *maximumAge* attribute determines the maximum age previously retrieved location information will be cached for
** *timeout* attribute determines the length of time the application will wait for location information
* [inputText| inputtext Tag]
** *disabled* attribute added
** *readOnly* attribute added
* [microphone| microphone Tag]
** *maxtime* attribute added
** *buttonLabel* attribute added
* [pagePanel| pagePanel Tag]
** *styleClass* attribute added
* [pagePanelBody| pagePanelBody Tag]
** *styleClass* attribute added
* [panelPopup| panelPopup Tag]
** *width* attribute added
** *height* attribute added
* [tabSet| tabset Tag]
** *autoWidth* attribute added

The following JSP tag APIs have changed:

* [accordion| accordion Tag]
** *maxheight* has been renamed to *height*
* [carousel| carousel Tag]
** *collection* attribute has been removed. The list of carousel items now are created with a JSTL <c:forEach> tag.
** *selectedIndex* has been renamed to *selectedItem*
* [carouselItem| carouselItem Tag]
** *ref* attribute has been removed
** *type* attribute has been removed
* [deviceResource| deviceResource Tag]
** *library* attribute has been removed
** *view* attribute has been removed
** *jqversion* attribute has been removed
* [fieldsetGroup| fieldsetGroup Tag]
** *fieldSetGroup* tag has been renamed to *fieldsetGroup*
* [fieldsetRow| fieldsetRow Tag]
** *fieldSetRow* tag has been renamed to *fieldsetRow*
* [flipswitch| flipSwitch Tag]
** *flipSwitch* tag has been renamed to *flipswitch*
* [geolocation| Geolocation Tag]
** *name* attribute is now required and should be used for bean binding and form submission. *id* can no longer be used for this purpose.
* [inputText| inputtext Tag]
** *inputtext* tag has been renamed to *inputText*
* [panelPopup| panelPopup Tag]
** *autoCloseButton* attribute has been removed
** *closeButtonLabel* attribute has been removed
** *title* attribute has been changed to *headerText*
* [scan|qrscan Tag]
** *qrscan* tag has been renamed to *scan*
* [tabSet| tabset Tag]
** *tabset* tag has been renamed to *tabSet*
* [thumbnail|thumb Tag]
** *thumb* tag has been renamed to *thumbnail*


h3. Device Containers

* Native contact list/address book selection now supported
* Android container now fully supports hardware acceleration
* Augmented reality improvements for both Android and iOS
** iOS
*** Support added for 3D Augmented Reality based on Qualcomm Vuforia library
*** Landscape and protrait views now supported
** Android
*** Supports icon rendering in the Augmented Reality location view
*** Devices without rear cameras supported with black background
*** Location positioning improved


h3. Tools

h4. JSF Tooling

* Eclipse
** Updated component palette icons
** Added required multipart-config to web.xml
** Revised design-time renderers for most mobi components
** Project templates now available for tab, menu, and accordion-based navigation
** Enhanced template provider with Freemarker support
* NetBeans
** Updated component palette icons
** Updated splash page with new deviceResource component
** Enforced condition of JavaEE 6 for mobi components
** Added required multipart-config to web.xml
** Merged ICEmobile editor support with ICEfaces editor support module

h4. JSP Tooling

* Tag completion supported based on icemobile TLD.


h3. Applications

* mobileshowcase
** New component examples added
* icemobilespring
** New user interface leverages available ICEmobile JSP layout tags
** Large and small views now supported
** Example pages vastly improved to better match examples in mobileshowcase
** New example pages added for new ICEmobile JSP tags
* mediacast
** User interface revamped to use ICEmobile layout components
** Large and small views now supported
** Media sharing now supports multiple media types and keyword tagging
* mvc-mediacast
** New sample application matching features of mediacast but leveraging Spring MVC, and ICEmobile JSP tags


h2. Supported Platforms
h3. JSF/ICEfaces

This release is based on ICEfaces 3.2 Final, and inherits supported JSF runtimes, browsers, and application servers from that release. See ICEfaces [release notes|] for details.

h3. Device Containers and Mobile Browsers

* Google Android 2.3 or later
* Apple iOS 4 or later
* Blackberry Platform 6.0


h2. Development Tips
h3. JSF Components

* If your application uses camera, microphone, or camcorder and you wish it to work in IE9, add

<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:\-
<param-name>javax.faces.PROJECT_STAGE</param-name> {code}
if using Production for param-value, the minified js and css will be used. if Development, will get non-minified (easier to read) CSS and JavaScript.

* timeZone support on timeSpinner may show values from different timezones for sample apps (tested using MST). Just use
<f:convertDateTime...timeZone="#{date.timezone}" />{code}
which returns java.util.TimeZone.getDefaultID(); 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:


h2. Known Issues
h3. General
* Ajax Push may not initialize properly require a page refresh on some devices for Push notifications to be received.
* Due to HTTP connection contention on some devices with a lower connection limit, request queueing in Ajax Push-enabled ICEmobile applications may result in delayed page updates, and a significant delay may be seen while dynamically fetched resources, such as new images for the page, are requested.

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 jsf findComponent method which will only search to the nearest naming container.
* [contentMenuItem]
** *icon* attribute is not yet implemented and will have no effect
* [geolocation] not supported on blackberry devices in browser api
* viewSelector is now deprecated and developers are encouraged to use the new smallView and largeView components to achieve view-specific layouts.
* Tabset bottom orientation is not currently supported in large view themes for the iPad or Android. Setting orientation="bottom" in a large view will result in top-oriented tabs.

h3. JSP Tags
* Carousel tag is not backwards compatible. New carouselItem tag allows for any valid JSP markup.
* Accordion now takes accordionPane children.

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.
* inputText component with type="date" will show that android devices (latest Android operating systems) are showing support for this feature, but it may block submits on some devices, so not yet supported with "useNative" attribute in dateSpinner or timeSpinner components.
* 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.

h4. Blackberry

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|] 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 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.
\*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.

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).

* iPad iOS6 camera integration currently not functional in this release, and will be addressed via an update on the App Store.

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.


h2. Support
Open source community support is available at [].

The [ICEmobile community forums|] are available for questions, comments, or general discussions regarding ICEmobile.