ICEmobile 1.3 Release Notes

You are viewing an old version (v. 55) of this page.
The latest version is v. 58, last edited on Jun 20, 2013 (view differences | )
<< View previous version | view page history | view next version >>

ICEmobile 1.3 Release Notes

June 12 2013

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.

Contents

These Release Notes include the following sections:

Downloads


ICEmobile 1.3 Beta is available for download in the following formats:

What's New in 1.3?


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.

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.

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.
  

  • <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:
  - <mobi:tabSet> new markup very similar to jsf component with same attribute names.
  - <mobi:commandButton>, <mobi:commandButtonGroup>, <mobi:menuButton>, <mobi:panelConfirmation>, <mobi:submitNotification> all require application javascript callback for ice.mobi.usrAjaxRequest.

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.

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.

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

Supported Platforms


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 for details.

Device Containers and Mobile Browsers

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

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 does 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

Development Tips


JSF Components

  • If your application uses <mobi:camera>, <mobi:microphone>, or <mobi:camcorder> and you wish it to work in IE9, add
<mobi:uploadhelper/> 

to the form. For more advanced Ajax use see [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> 

    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
    <f:convertDateTime...timeZone="#{date.timezone}" />

    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:
    <context-param>
        <param-name>org.icemobile.simulator</param-name>
        <param-value>true</param-value>
    </context-param>
    

Known Issues


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.

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

Containers

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.

BlackBerry OS 6

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:
    The aplication ICEmobile is attempting to reset the security timer  [Allow][Deny]
    
    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 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.
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.

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.
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).
Tools
  • The MAVEN build pom.xml in icemobile directory (parent-bundle) is missing in the src distribution. Download icemobile/pom.xml and place it in the ICEmobile-1.3.0-BETA1-src/icemobile folder before building the samples with maven. The current maven poms do not fit with the binary bundle structure so to get the bin samples to build as they do in the src bundle, you will also need to add icemobile/jsp/pom.xml and icemobile/jsp/pom.xml from the src distribution. Please note that you will need to rename pom-jsp.xml and pom-jsf.xml to just pom.xml in both the newly created jsf/ and jsp/ folders. It is also recommended that the src bundle be used for this release. The following three jars are used with the samples in the distribution bundle:

-icefaces-mobi -> contains the jsf components and is dependent on icefaces-3.3.0.jar
-icemobile-jsp -> contains the jsp tags and related javascript for using jsp with any other library.
-icemobile-spring -> contains the spring support for use with the jsp tags as used in icemobilespring and mvc-mediacast.

  • 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.
Sample Applications
  • mvc-mediacast is a new alpha-quality sample application showcasing the media upload capabilities and Spring MVC integration of ICEmobile-JSP.

Support


Open source community support is available at http://www.icesoft.org.

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

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

© Copyright 2017 ICEsoft Technologies Canada Corp.