Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Differences between Mobile & Desktop AIR

Ive tried asking on the blackberry forums with no luck... Maybe there are some Blackberry/Adobe experts here...

Im just about to start a project using Adobe AIR/flex for the Blackberry Playbook, I have a few questions:

  1. If I develop an application for the playbook, will the same application be able to run on a desktop? If so will there be any differences?
  2. What is the difference between the desktop and mobile libraries? Can I only access a subset of the SDK on the mobile device compared to the desktop?
  3. Can I create a playbook application that can call methods to a JAVA back end, located on my server?

Thanks Phil

like image 619
p_mcp Avatar asked Mar 25 '11 15:03

p_mcp


1 Answers

What’s different about developing a mobile application versus a web or desktop application? While many existing Flex concepts and patterns carry over directly to mobile development, developers will need to take into account the differences in interaction patterns, screen real estate, and performance characteristics of mobile devices compared to desktop computers. As a result, we recommend using the new mobile features in Flex to craft UIs specific to mobile devices, while sharing underlying model and data access code with your desktop or web application. Additionally, we recommend certain best practices when developing mobile applications with Flex, such as using ActionScript and FXG rather than MXML for creating item renderers and skins.

Taken from http://labs.adobe.com/technologies/flex/mobile/faq.html#differences

As per my usual qualifying statement: I haven't tried this. Since this is of some interest to me and I've got a bit of free time I'll give making a hero app and running it as a desktop app versus as a mobile app a shot and post back here once I have it working or find a wall.

The runtime: Adobe AIR 2.5 on mobile devices The initial versions of the mobile development features in "Hero" and "Burrito" are targeted at creating standalone installed applications using the Adobe AIR runtime for mobile devices. By focusing on AIR, Flex can take full advantage of the integration AIR provides with each mobile platform, such as the ability to handle hardware back and menu buttons and to access local storage.

Running on AIR Finally, it's important to realize that in addition to all the mobile Flex components listed above, you can also directly take advantage of all the APIs that are available in AIR on mobile devices—geolocation, accelerometer, camera integration, and so forth. While some of these features are not exposed as Flex components, they are easy to access directly using ActionScript. For more information on developing using the APIs provided by AIR on mobile devices, see AIR mobile docs.

http://www.adobe.com/devnet/flex/articles/mobile_development_hero_burrito.html

Basically it's looking like the answer to all the questions is positive.

  1. Yes and likely yes. (as they re-iterate throughout anything I've found on the topic the controls in Hero were made specifically for touch, taking into consideration the fat finger vs the mouse pointer, my guess is it will render slightly differently on the desktop and it's best to actually develop the UIs separately, although the web-services/model can be combined into a shared library/project)

  2. You should have access to everything provided to the desktop (plus info from GPS/accelerometer etc., but obviously wouldn't get those on desktop), but don't have nearly as good a processor so what will work on the desktop may not on a lower performance computing device, but for low resource consumption tasks this shouldn't be a worry.

  3. Yes this is a core feature of Flex, I don't see how it would be possible to make a (useful) RIA without web services. For confirmation on this one look no further than Adobe TV: http://tv.adobe.com/watch/adc-presents/flex-mobile-part-1-beginning-a-mobile-application/ <-- that app is using a web service (doesn't really matter to Flex what the underlying server technology is so long as it can make HTTP requests against it, RemoteObject/AMFService should serve your purpose)

like image 50
shaunhusain Avatar answered Sep 30 '22 12:09

shaunhusain