Why HTML5 Is Not Enough
Not all browsers are created equal - not even WebKit-based browsers
This has been, and always will be, a huge problem for web applications. The same markup will not produce the same results on all platforms. This leaves you 2 choices, find some lowest common denominator in the markup that will function, or deliver customized markup for different devices. The LCD solution simply doesn’t cut it, except for the most basic UIs, and it certainly doesn’t cut it when you want to support native look and feel for each device type, like we do in ICEmobile. To solve this problem on your own you will end up tinkering endlessly with your markup, looking for a combination that is acceptable across platforms, and employing fragile special casing on a platform by platform basis. And once you are done, you will realize that your markup has become horribly inefficient, so you will need to optimize it, leading to another painful iteration of markup tuning.
ICEmobile uses a sophisticated device detection mechanism to identify the precise type and capabilities of each connecting client. The core rendering engine then tailors the generated HTML5 markup specifically for each device, tailoring the CSS to match the native look and feel of the device. Additionally, the markup for each web control has been optimized for efficiency in mobile environments. From the developer’s perspective, it is all completely transparent. You build your page using a suite of ICEmobile web controls, and the underlying framework ensures that optimized markup is delivered to each device type.
HTML5 is not a development language
ICEmobile fits in the Enterprise Java ecosystem where Java EE developers typically use presentation layer technologies like JSF and JSP to develop applications. ICEmobile includes a suite of core mobile controls that provide the building blocks for a mobile web application. These building blocks manifest themselves as both JSF components and JSP tags, addressing the widest spectrum of Java EE developers possible. The core rendering engine renders these controls using device-specific HTML5/CSS3 markup, based on the detected device type. This means that the developer can work with high level building blocks, and familiar development techniques and tools to produce mobile applications that automatically adapt their look, feel, and capabilities to the device they are accessed from. ICEmobile’s JSP support is augmented with comprehensive integration with Spring MVC, one of the industry’s most widely used web application technologies. So whether it is JSF, JSP, and/or Spring MVC, ICEmobile cuts the widest swath through the Java EE landscape, enabling the widest cross-section of enterprises to enter the mobile realm, while leveraging existing skill sets and enterprise-hardened technologies and tools.
HTML5 does not do push
The ICEpush notification mechanism (hardened through multiple generations of development) is fully integrated in ICEmobile, bringing spontaneous updates to both JSF and JSP applications. ICEpush is further enhanced with Cloud Push capabilities that use device-specific notification mechanisms to get critical notifications to clients, even if they are not actively using the application. Without a doubt, ICEmobile provides the most comprehensive push/notification mechanism in the industry, and it is dead simple to use, so adding push to your application is easy.
HTML5 lacks comprehensive native support
HTML5 provides standard ways to access certain native device features like playback of audio and video, but does not address other capabilities like the camera or microphone. Over time, more native features will be addressed by the spec, but you can’t afford to move at spec speed, so if you need hybrid capabilities you will need to augment your HTML5 strategy in some way.
ICEmobile includes native devices containers that extend beyond the reach of HTML5, providing access to features like the device camera, microphone and address book. Device capabilities are exposed through web controls, so they can be accessed directly through the web application, provided that the container is installed on the device. The ICEmobile containers and native controls enable you to build cross-platform, hybrid, mobile applications using pure web-based techniques.
Modern mobile browsers are amazing. Deliver the right combination of HTML5-based markup to them, and you can produce amazing mobile applications, but don’t kid yourself into thinking it is just that easy. Using low-level HTML5-based techniques, your efforts to arrive at that magical, optimized, cross-platform markup will be fraught with peril and pain. So to answering the question “Why not just develop my solution using HTML5?” we say “It is simply too painful.” Try ICEmobile, and see how it takes that pain away.