UX consultant Suzanne Ginsburg has posted a good article entitled Android & iPhone App Design: Is it twice the work? It’s a great insight into what to consider when developing an application UI for mobile devices, discussing the cross-platform differences and platform UI conventions that require consideration, including elements like device button types and placement. You have to consider your UI on anything from small phones to large tablet devices, while targeting one OS, and this means you either create separate versions of your app (e.g. Angry Birds and Angry Birds HD on iOS) or carefully optimise your UI design.
After reading the article, I wondered how well Adobe AIR could really address these considerations, especially versus tools like OpenPlug ELIPS that export native code from a Flex project; at the platform level it will remove the need to code in native languages, and arguably would be more ‘native’ than a HTML web app, but AIR won’t be able to reach every platform, and doesn’t directly address the other issues discussed; we need more than the AIR platform on its own to solve this one.
Adobe has a strategy for this – something it terms ‘multiscreen projects’. This concept goes a long way to allowing developers to get applications onto as many devices/platforms as possible, but it’s still a tricky thing to attempt to solve. If the tools support the idea of decoupling application logic and views, the abundance and maturity of AS3 MVC frameworks out there now should make it even easier to design an application and target different devices. Good tooling and component libraries has been one of Flex’s strengths, but it would also help to have a strong set of mobile-optimised UI components for each platform. Flex 4.5 (Hero) is the first evidence of this at Adobe’s end, but I’m hopeful we’ll see other open-source and paid component frameworks for mobile Flex being made available.
Finally, going back to Suzanne’s article, all the UX articles I’ve read so far on mobile UI development seem to concentrate on catering for different screen sizes and resolutions with a fixed layout, but part of me wonders why this can’t be partly addressed with fluid layouts. We’ve been doing this for years with HTML (and Flex), and while it can’t deal with extremes, it is possible with careful scaling and layout work to achieve a UI that can work on different resolutions and screens. It’s not ideal, but it’s nothing new either. One of the key differences between a desktop UI and a mobile UI is windowing, so there is emphasis on a full-screen fixed layouts, but I wonder what the scope is for ‘best-fit’, flexible fullscreen UI layouts in future?

