Europe needs to come together

I was just reading a news article about the (already ridiculous) ban of liquids on board aircrafts. Today that ban is five years old and the European Commission is now relaxing that ban. Say you fly from San Francisco to Belgium. If you’re like me and fly Star Alliance chances are that you fly to either Frankfurt or Munich first. With the current ban I could not buy any liquids in San Francisco because I would not be allowed to take it on the connecting flight to Belgium. By relaxing this ban this would now be possible.

That’s great, right? Well.. Yes… If it weren’t for the fact that some European countries have already decided to maintain the existing rules. If you have a connecting flight in France, the UK or yes… Belgium you won’t be allowed to take the liquids you bought abroad on board. If you fly to Germany or The Netherlands it won’t be a problem.

It saddens me that Europe can’t seem to agree on the simplest things and can’t seem to agree on one European wide set of rules.

Now let’s apply this to technology. Some of my US colleagues were actually surprised when they heard that Europe doesn’t have something like Netflix or Hulu. Heck… the majority of Europe doesn’t even have movie purchases/rentals on iTunes. Why is that? Simple… Because there is no one European copyright law. If someone like Netflix would like to start operations in Europe they’d have to negotiate copyrights in every single country. You already see this happening with Spotify for instance. Spotify is only available in 7 European countries. iTunes movies are only available in 2 or 3 countries. And we only have copyright laws to blame.

Europe needs to come together in order to not get left behind…

Update: And yes… (Thanks Cyril for reminding me) we’re not even talking about things like European roaming rates, VAT, etc…

Conversion of a Flex app from Android to iOS captured on video

A few weeks ago, one of our Flex QA engineers, Shashwati Keith, built a mobile app in Flex and deployed it to the Android Marketplace.  The app is Muni Tracker.  Muni Tracker lets you track San Francisco Muni vehicle arrival time predictions on a map updating live every 10 seconds.  Since Shashwati built this app, internal builds of Flash Builder can now target iOS devices (iPad, iPhone, etc.).  Because Shashwati is super busy getting the upcoming release of Flex 4.5 and Flash Builder ready for the world, I volunteered to take her Flex project and attempt to get the app running on my iOS devices and video the entire conversion.  It actually turned out to be almost too easy!  Basically, I set up the Apple cert and provisioning profile, made a couple of minor tweaks to the app config XML, and got it to work without touching a single line of Flex code.  The 12 minute video is below.  The total conversion time from importing the Flex project and demonstrating the app running on my iPad 2 was less than 10 minutes!  Without my commentary, I can do it in 6 minutes (1 minutes for import/modifications, 5 minutes for iOS packaging and deploy).

 

In a few weeks, you’ll be able to build Flex apps that target Android, BlackBerry PlayBook, and iOS devices using Flash Builder 4.5.

  • Shipping software availability:
    • Flash Builder 4.5 ships VERY soon and includes Android support out-of-the-box
    • An update to Flash Builder will be available in June that adds iOS and PlayBook support
  • Pre-release software availability:
    • If you join the pre-release program (see below), you can get 4.5 today with Android support
    • The pre-release site will be updated in a few days with a version that adds iOS and PlayBook support

How to see for yourself

If you would like to give this a try, I recommend the following steps:

  • Join the pre-release program for Flash Builder. A recent build is already available with Android support. A newer build with iOS support is coming very soon. There is also a version of Flash Builder on labs code-named “Burrito”, but it’s a bit old and missing some recent advancements. I recommend that you skip Burrito and get into the pre-release program so you can get the hot-off-the-press bits.
  • Download and install Adobe AIR Launchpad — this tool is one of the best learning resources you’ll find. It will help you create your first mobile project with well commented sample code. This is a pre-release of Launchpad 2.6 that supports the current Flash Builder pre-release
  • If you have an Android device, go install Tour de Mobile Flex on the device. It’s another great learning resource.

If you are new to Flex, here are a few additional resources:

Share

Flash Player 10.2 for Android Honeycomb is out

If you have an Android Honeycomb tablet and you go to Android Market you’ll be able to download the final release of the Flash Player 10.2. This version enables hardware accelerated playback for 720p video. However you will not enjoy this feature with the current Android 3.0.1; the next Android update will turn on this feature.

Finally, I want to point this out: the teams behind the Flash Player and AIR runtimes are working harder and faster than ever. The number of platforms and devices supported by these runtimes has grown a lot in the last couple of years and still, they are able to keep up the pace and add new features. Big round of applause to you!

Growing Momentum for Flash Player and AIR Across Devices

The industry continues to rapidly innovate, continuously introducing devices with new CPUs, graphics processors (GPUs), operating systems and browsers. We are excited by this progress and the new opportunities it provides for end users to enjoy increasingly rich experiences enabled by Flash Player and AIR on their favorite devices, including PCs, tablets, smartphones and TVs. Our work with more than 70 leading partners through the Open Screen Project has delivered Flash Player and/or AIR for Android, BlackBerry Tablet OS, iOS, Google TV, and Samsung SmartTVs and Smart Blu-ray players, complementing our long-standing support for major desktop platforms.

With the new Creative Suite 5.5, including Flash Builder 4.5, millions of developers and designers are able to accelerate and simplify development of rich applications for the web and top mobile devices including Android smartphones and tablets, the BlackBerry PlayBook and all versions of the iPhone and iPad. We anticipate that we will certify Flash Player on more than 40 smartphones and 50 tablets for release this year, bringing Flash Player smartphone installations to more than 130 million by year’s end. More than 200 million devices will support AIR applications by this same time.

We continue to work closely with our silicon, OS and browser partners to provide users with regular performance and feature enhancements that build on the latest device hardware and software updates across this vast array of devices. This cooperation is critical, as Flash Player and AIR deliver rich web experiences and mobile applications, including HD video and immersive gaming, through a reliance on each layer of the complex and evolving technology “stacks” that embody modern devices. As these stacks deliver new optimizations and support new capabilities, we will take advantage of them in ways that deliver value to both end users and content developers.

Today we are releasing Flash Player 10.2 for Android Honeycomb devices, available for download from Android Market. This final release will take advantage of Google’s enhancements in Android 3.1*, including hardware accelerated playback of 720p high-definition video referenced in our earlier blog post. Users of Android 3.0.1 will not experience these improvements until their devices receive the update to Android 3.1*. In addition, this Flash Player 10.2 release includes a security update addressing the Flash Player vulnerability announced on April 15th for all versions of Android.

Our plan moving forward is to continue delivering improvements in performance, quality, security and/or new features with each new release of Flash Player and AIR in accordance with our regular development schedule. Devices and software updates from our partners which introduce new technologies are being developed on varied schedules that are different from our own. Flash Player and/or AIR may not be optimized or supported on some of these devices until a subsequent release. We will continue to provide developers with access to pre-release features through early access programs on Adobe Labs so that they can test their content and provide us with feedback prior to final release.

*Blog post UPDATED on May 10, 2011 to reflect Adobe Flash Player 10.2 support for Android 3.1, announced at Google I/O.

Beer List for Flash Camp 2011

Most of you know that I’m a pretty serious beer person. And since we have a fantastic beer store, City Beer, just up the street from the SF office, it makes it easy to get good beer for events like Flash Camp. I just finalized the list and we’ve got some great beers. At this point you should have no excuse; it doesn’t get better than mobile development and great beer.

We’ve got some great sessions, the product teams are coming to help answer questions, and it will be a lot of fun to show off the Flex mobile story in person.

Mobile Development: scaling content depending on the screen resolution

The Flex framework offers a number of methods to adjust the size of the application UI depending on the device screen resolution and density. For example, you can set the applicationDPI attribute or you can use different CSS files.

In this post I will show you how you can scale or adapt the application UI at runtime using the Capabilities API. But first, why would you want to change the size of the application UI? Consider these two pictures.

Nexus One:

Samsung Galaxy Tab:

The first one is a screen capture taken on a Nexus One phone and the second is taken on a Samsung Galaxy Tab. Obviously, the Samsung Galaxy Tab has a higher screen resolution (600 X 1024) compared to the Nexus One (480 x 800). So, if you don’t make any adjustments to your UI, everything will be smaller on the bigger screen (as you can see from these pictures).

Sometimes, this is not a problem. In other situations, you might want to increase the size for some parts of your design due to aesthetic or usability reasons, or maybe both.

Using scaling to adjust the content size

When I worked on the aTabSplitter application, the first thing I did regarding the UI was to make sure that it wouldl fit nicely on a screen with a resolution of 400 x 800. By using Flex containers (VGroup, TileGroup, and HGroup) and playing with a mix of absolute and relative sizes I was able to easily create a “liquid” design. For example the keyboard is designed to take up about 320 pixels x 320 pixels. The TextArea at the top is set to fill in all the available space. Why did I choose this resolution? By looking at various Android devices I felt that this is the smallest resolution. Here is the code:

For the aTabSplitter application I wanted to increase the size of the virtual keyboard when the application runs on devices with a screen resolution higher than 480 x 800. And the simplest solution is to use the Capabilities API. When you run your application on a device, Capabilities.screenResolutionX gives you the horizontal resolution. If you want to check for the screen density, you can use Capabilities.screenDPI.

Back to the code, I set an ID to the HGroup that holds the buttons and then I registered a listener for the creationComplete event on the view. Using this listener I can check for the screen resolution and if needed I can change the size of the HGroup using its scaleX and scaleY properties. When the container scale is changed, all the contained components are scaled too. Thus everything is kept in place, nicely aligned.

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
 xmlns:s="library://ns.adobe.com/flex/spark"
 title="HomeView" creationComplete="layoutButtons()">
<fx:Script>
<![CDATA[

private function layoutButtons():void {
  if (Capabilities.screenResolutionX == 600) {
     buttonsHolder.scaleX = buttonsHolder.scaleY = Capabilities.screenResolutionX / 450;
   }
}
]]>
</fx:Script>

[...]

<s:HGroup id="buttonsHolder" gap="5">
[...]
</s:HGroup>

And here is how the keyboard looks when I run the code on a Samsung Galaxy Tab (compare to the previous screenshot taken on the same device):

Of course, you can apply scale in the other direction – decreasing the size of a component.

Conclusions

This is a pretty simple trick yo can use to adjust your content to different screen sizes. In the next post I will show you how you can adapt the content to screen orientation changes – device held in portrait or landscape mode.

You can download the project code from here (you’ll need Flash Builder 4.5 and Flex 4.5 to run and compile the project).

Deleting Flash local storage from Chrome – now in Dev Channel!

The Chromium team announced today that the integration to delete Flash Player local storage from the Chrome Clear Browsing Data settings UI is in this week’s Chrome Dev Channel release.

Integration with browser privacy controls is a key feature of the upcoming Flash Player 10.3 release, currently in beta on Adobe Labs. Along with the local settings manager, Flash Player 10.3 focuses on addressing the ease of use of the player settings and making sure end users are able to easily manage their privacy and Flash Player.

Emmy Huang, Group Product Manager

Electrotank Takes Gaming to the Next Level with the Flash Platform

Developing huge multiplayer online games (MMOs), social games, and virtual worlds for browsers and mobile devices is no easy feat. It can be time consuming, costly, and usually requires multiple skill sets and significant resources.

With the increasing demand for online games, 2010 Adobe MAX Awards finalistElectrotank, a provider of real-time multiplayer games and game technology, developed the Electrotank Universe Platform (EUP) and Tool Suite to significantly streamline and solidify the process. Built using the Adobe Flash Platform, EUP provides an end-to-end solution that gives developers, designers, and artists the tools they need to collaborate to build unique and immersive games in Flash and Unity 3.

EUP, which has been licensed to build more than a dozen full-featured MMOs and virtual words for clients such as Ubisoft, Mattel, and MTV Networks, provides a comprehensive framework for building MMOs, social games, and virtual worlds. For example, the system comes with a core set of integrated game services that can be extended to create custom features and game mechanics, and exposes this custom functionality via an easy-to-use set of content and operations tools. The system also comes with the option to use Electrotank’s proprietary rendering Engine (for Flash clients) and AvGen, Electrotank’s unique approach to rendering 2D avatars in Flash.

The EUP Tool Suite was built with the Adobe Flash Platform, specifically Adobe Flash BuilderAdobe AIR, and the Adobe Flex framework, to allow developers to provide a sleek interface that was flexible enough to dynamically conform the custom needs of each game built using EUP, and could be used by creative and development teams working on different types of hardware from remote locations.

EUP, the Tool Suite, along with Adobe Flash technologies, have helped developers drastically reduce time, risk and cost associated with game creation, as well as by increasing revenue opportunities. Also, Electotank has found that the enterprise, business and military sectors have expressed interest in their technology for training, communications and product development purposes.

To find out more about how the Electrotank’s EUP and Tool Suite leverages Adobe Flash technologies, visit here.