Cross Platform Mobile Applications

Archive for February, 2008

Why 25,000 SKUs is good news

Russell Buckley is understandably frustrated by Java ME fragmentation:

According to a Greg Ballard of mobile games maker, Glu, in a recent interview in Mobile Entertainment, their Transformers game needed no less than 25,000 SKUs (or variants). 25,000! This has reached the point of absurdity.


Actually, 25,000 SKUs is GOOD news

Every year more phones, more platforms, more operators comes to market, etc; the fragmentation increases. Standardization don’t fix it, market forces don’t fix it.
(The situation on mobile browsers is not much better. How many different mobile browsers are there? 25? More? If you count all the different releases you probably have a couple of hundred. There is no trend towards less fragmentation either on native or runtime.)

There are 2 billion Java ME phones out there and more is coming every day. Pointing fingers or dreaming about how things should have been is futile. The ONLY solution to this situation as it stands today is technological.

The 25.000 SKUs are generated automatically. Glu has their own in-house technology. They don’t make 25.000 variants by hand. Technology to handle technical fragmentation is maturing. Currently only large companies have access to such tools, as they are expensive. But its a matter of time before this kind of technology gets within reach of small developers.

Actually, the situation is exactly the same on the fixed web. If you set out to to create a RIA, you don’t sit down and hack something by hand that works in 10 different browser versions. You use tools like Dojo, YUI, Ruby on Rails, etc.

25.000 SKUs means that Glu has overcome the fragmentation problem, and that is a good sign.

mBricks may be able to help you

mBricks can help you with your fragmentation woes. Give us a call if you want to know more.

Company Data on the Mobile - a Simple and Low Cost Solution

Bjørn Jarl, CEO Symfoni Software“Colleagues and customers alike expect you to be up-to-date. In order to meet this demand, information must be accessible at any given time - on the mobile phone.”So says Bjørn Jarl, CEO of Symfoni Software, the largest IBM-based software company in the Nordic region. Symfoni is going to offer their customers collaboration applications directly on their mobile phones, with a simple and user-friendly solution that will not require the purchase of new phones. It will improve accessibility and enhance the workday, as well as saving time and resources - for employee and employer alike.

It will be easy to get in touch with colleagues via the mobile phone, view their calendars and invite them to meetings. You will also be able to review a letter or contemplate an offer on the mobile phone, simultaneously with a colleague or customer, and be able to chat in real-time.

It is mBricks - a Norwegian company - that is delivering the architecture and platform for Symfoni’s mobile solution, while Symfoni makes accessible the applications that the users have on their PCs.

“Symfoni is considered the market leader in collaboration solutions in the Nordic region, and among the top 10 in the world. The Nordic countries are highly advanced when it comes to technology, and we are taking advantage of that now,” says Jarl.

When Symfoni decided they were going to offer a mobile solution, three requirements had to be fulfilled:

  • User-friendly for all. The mobile solution must be easy to use for all types of users, not just for users who have a special interest in new IT applications.
  • Low cost. The mobile solution must have low implementation costs. Nobody wants to invest in SmartPhones for a whole company.
  • For all types of phones. The mobile solution must work on all types of mobile phones, no matter who the manufacturer is.

Because the company network will be more exposed, security has been a major factor in Symfoni’s choice of subcontractor: “mBricks has a great reputation, and that was an important factor in our selection. They are extremely advanced, and they make things easy for us. They are also a highly motivated, aggressive group of people who want to make mBricks world leader,” says Bjørn Jarl, CEO of Symfoni.

Backstepping on a mobile phone

Mobile applications have two ways to use the Back function; As “History” or as “A Path Home”. This blog post discusses those approaches and backstepping in general.

Back as history:

Say I am in the Phonebook and I click an address. The map opens. In the map I do a search and the search result includes an email address. I click it, the email editor opens and I send an email.

I have jumped from “application” to “application” in the phone. How do I want the Back-function to work? I’d want to backstep from the email to the map to the phonebook. This is the behavior we are used to from Internet browsers.

Back as “A path home”:

On most phones the Back-key does not step back through a history. It takes you back to the main menu or idle screen. The advantage is that users never get lost and can fairly quickly get back to known territory.

The Home key

In version 6 Windows Mobile changed the back behavior from “A path home” to a history stack. A prerequisite for the history stack approach is that the phone has a “Home” key. You don’t want the user to have to press Back 20 times to get to the main menu. In addition to WinMob, Android and the iPhone uses a hardware Home key.

If you want to have a history function in your application (assuming your application is large and/or deep), and the phone does not have a hardware Back key, what are your options? Your only choice is to give the right softkey double or triple duty as Back + Home or Clear + Back + Home key. It is doable, but has to be thought out carefully and it may not be worth the trouble.

How Back works in Browsers

Current Internet browsers use a stack to implement the Back and Forward button behavior: the effect is that a person can use these buttons to move up and down the single hierarchical path captured by the stack, but cannot use it to revisit any pages that branched off that path as these are popped off the stack.

To illustrate this problem, let us take a person who starts at page A and visits page B. He then clicks the Back button to return to page A, then visits page C. This navigation path can be shown as A → B ï A → C. The contents of the Back menu will now be {A,C}. Page B has been pruned out of the menu entirely. (source)

This behavior corresponds poorly to the mental model of most people. Most people are incorrectly thinking that the Back button models a history list of all pages visited. It may seem that this system is confusing and frustrating, but research reveals no major problems with stack based navigation! An advantage of Back navigation is that it represents a very light cognitive load. People tend to use a simple “click until the desired page is recognized” strategy, and is happy to trade “true back navigation” for this simple model.

Techniques more sophisticated than the stack could be employed, but the simplicity and the effect of conditioning from a decade of browser use, dictates that the Back navigation functionality should mimic the one seen in Internet web browsers.

Don’t store everything

The following states in the UI should not be included in the history stack:

  • Notifications
  • Confirmation dialogs
  • Login or password screens

The Back key

The right softkey is default back navigation. The ultimate Back (from the application perspective) is an exit to the idle state, (closing of the application). In this case the right softkey is labeled Exit instead of Back.

Many Sony Ericsson phones have a hardware Back key. Some phones have a Clear key that does double duty as Clear and Back key. The preferred behavior is that the control keys work the same way in the application as they do in the phone OS.

And note: Back navigation cannot be used as an Undo function. After backstepping to the previous page, the screen looks the same as before. The focus is returned to the same items, and items are kept in the same positions on the screen. However, any data that is committed will not and should not be undone by “Back”. An Undo function must be labeled “Undo” and must be UI widget-oriented and not page-oriented.

Back behavior in mBricks

We are contemplating this mBricks history stack behavior:

  1. Navigation to a page pushes a page to the stack top. This is done by a call to historyPush(). historyPush() stores the page and the appearance of the page (focus, highlight and scroll).
  2. Using historyBack() or historyForward() moves the stack pointer down and up the stack respectively, displaying the page at that stack location. The actual stack contents are not altered when navigating with these functions.
  3. When navigating to a new page, any entries on the stack above the current position are popped off the stack, and the new page is added. Pages popped off the stack cannot be revisited using the historyBack() or historyForward() functions.

The mBricks history stack is page oriented. Populating the stack is controlled by the developer. All page visits are pushed to the history stack by default and the history stack has a 20 item limit.

MIDP 3.0 Public Review

MIDP 3.0 is the new upcoming version of MIDP. Among the numerous additions and changes are:

  • Enable and specify proper behavior for MIDlets on each of CLDC, CDC, and OSGi, including :
    • Enable multiple concurrent MIDlets
    • Specify proper firewalling, runtime behaviors, and lifecycle management issues for MIDlets
    • Enable background MIDlets (faceless MIDlets with no UI)
    • Enable auto-launched MIDlets (started at device boot time)
    • Enable inter-MIDlet communications
  • Enable shared libraries for MIDlets
  • Tighten spec in all areas to improve cross-device interoperability
  • Increase functionality in all areas, including :
    • Improve UI expressability and extensibility
    • Better support for devices with larger displays
    • Enable MIDlets to draw to secondary display(s)
    • Enable richer and higher performance games
    • Secure RMS stores
    • Removable/remote RMS stores
    • IPv6
    • Multiple network interfaces per device
  • Specify standard ways for doing MIDlet provisioning through other means (e.g. OMA (SyncML) DM/DS, Bluetooth, removable media, MMS, JSR 232, etc.)
  • Extensive device capabilities query
  • Localization & Internationalization (if appropriate, integrating/augmenting JSR 238 as needed)

The EG is really looking for input from the community. The doc is a 800 page monster, but you don’t have to read it all. Check out the stuff that interests you the most and give feedback! The Public Review closes on March 24. You can expect MIDP 3.0 devices to appear on the market around year end.
Public review web site

Download draft

mBricks © 2010. All rights reserved