I love how they can choose a camera angle after they filmed it because they recorded it panoramically.

Some great ideas here.


Elegant button free mockup. The designer in me cheers!

Great insight into how we consume magazines.
"...They can be completed. They are very knowable. That one can read through it and finish it. And have a sense that they've consumed an editorial package, without neccessarily the kind of endless infinitely expanding RSS-feed, for example, where there really is no end."

/SLincoln

Over the past year, an Android presence has been growing on a relatively new technical Q&A web site called Stack Overflow. The site was designed specifically for programmers, with features like syntax highlighting, tagging, user reputation, and community editing. It's attracted a loyal software developer community, and developers continue to express great praise for this new tool. Well, the Android team has been listening...and we agree.

Today, I'm happy to announce that we're working with Stack Overflow to improve developer support, especially for developers new to Android. In essence, the Android tag on Stack Overflow will become an official Android app development Q&A medium. We encourage you to post your beginner-level technical questions there. It's also important to point out that we don't plan to change the android-developers group, so intermediate and expert users should still feel free to post there.

I think that this will be a great new resource for novice Android developers, and our team is really excited to participate in the growth of the Android developer community on Stack Overflow. I hope to see you all there!

Android 2.0 introduces new behavior and support for handling hard keys such as BACK and MENU, including some special features to support the virtual hard keys that are appearing on recent devices such as Droid.

This article will give you three stories on these changes: from the most simple to the gory details. Pick the one you prefer.

Story 1: Making things easier for developers

If you were to survey the base applications in the Android platform, you would notice a fairly common pattern: add a little bit of magic to intercept the BACK key and do something different. To do this right, the magic needs to look something like this:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
// do something on back.
return true;
}

return super.onKeyDown(keyCode, event);
}

How to intercept the BACK key in an Activity is also one of the common questions we see developers ask, so as of 2.0 we have a new little API to make this more simple and easier to discover and get right:

@Override
public void onBackPressed() {
// do something on back.
return;
}

If this is all you care about doing, and you're not worried about supporting versions of the platform before 2.0, then you can stop here. Otherwise, read on.

Story 2: Embracing long press

One of the fairly late addition to the Android platform was the use of long press on hard keys to perform alternative actions. In 1.0 this was long press on HOME for the recent apps switcher and long press on CALL for the voice dialer. In 1.1 we introduced long press on SEARCH for voice search, and 1.5 introduced long press on MENU to force the soft keyboard to be displayed as a backwards compatibility feature for applications that were not yet IME-aware.

(As an aside: long press on MENU was only intended for backwards compatibility, and thus has some perhaps surprising behavior in how strongly the soft keyboard stays up when it is used. This is not intended to be a standard way to access the soft keyboards, and all apps written today should have a more standard and visible way to bring up the IME if they need it.)

Unfortunately the evolution of this feature resulted in a less than optimal implementation: all of the long press detection was implemented in the client-side framework's default key handling code, using timed messages. This resulted in a lot of duplication of code and some behavior problems; since the actual event dispatching code had no concept of long presses and all timing for them was done on the main thread of the application, the application could be slow enough to not update within the long press timeout.

In Android 2.0 this all changes, with a real KeyEvent API and callback functions for long presses. These greatly simplify long press handling for applications, and allow them to interact correctly with the framework. For example: you can override Activity.onKeyLongPress() to supply your own action for a long press on one of the hard keys, overriding the default action provided by the framework.

Perhaps most significant for developers is a corresponding change in the semantics of the BACK key. Previously the default key handling executed the action for this key when it was pressed, unlike the other hard keys. In 2.0 the BACK key is now execute on key up. However, for existing apps, the framework will continue to execute the action on key down for compatibility reasons. To enable the new behavior in your app you must set android:targetSdkVersion in your manifest to 5 or greater.

Here is an example of code an Activity subclass can use to implement special actions for a long press and short press of the CALL key:

@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_CALL) {
// a long press of the call key.
// do our work, returning true to consume it. by
// returning true, the framework knows an action has
// been performed on the long press, so will set the
// canceled flag for the following up event.
return true;
}
return super.onKeyLongPress(keyCode, event);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_CALL && event.isTracking()
&& !event.isCanceled()) {
// if the call key is being released, AND we are tracking
// it from an initial key down, AND it is not canceled,
// then handle it.
return true;
}
return super.onKeyUp(keyCode, event);
}

Note that the above code assumes we are implementing different behavior for a key that is normally processed by the framework. If you want to implement long presses for another key, you will also need to override onKeyDown to have the framework track it:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_0) {
// this tells the framework to start tracking for
// a long press and eventual key up. it will only
// do so if this is the first down (not a repeat).
event.startTracking();
return true;
}
return super.onKeyDown(keyCode, event);
}

Story 3: Making a mess with virtual keys

Now we come to the story of our original motivation for all of these changes: support for virtual hard keys, as seen on the Droid and other upcoming devices. Instead of physical buttons, these devices have a touch sensor that extends outside of the visible screen, creating an area for the "hard" keys to live as touch sensitive areas. The low-level input system looks for touches on the screen in this area, and turns these into "virtual" hard key events as appropriate.

To applications these basically look like real hard keys, though the generated events will have a new FLAG_VIRTUAL_HARD_KEY bit set to identify them. Regardless of that flag, in nearly all cases an application can handle these "hard" key events in the same way it has always done for real hard keys.

However, these keys introduce some wrinkles in user interaction. Most important is that the keys exist on the same surface as the rest of the user interface, and they can be easily pressed with the same kind of touches. This can become an issue, for example, when the virtual keys are along the bottom of the screen: a common gesture is to swipe up the screen for scrolling, and it can be very easy to accidentally touch a virtual key at the bottom when doing this.

The solution for this in 2.0 is to introduce a concept of a "canceled" key event. We've already seen this in the previous story, where handling a long press would cancel the following up event. In a similar way, moving from a virtual key press on to the screen will cause the virtual key to be canceled when it goes up.

In fact the previous code already takes care of this — by checking isCanceled() on the key up, canceled virtual keys and long presses will be ignored. There are also individual flags for these two cases, but they should rarely be used by applications and always with the understanding that in the future there may be more reasons for a key event to be canceled.

For existing application, where BACK key compatibility is turned on to execute the action on down, there is still the problem of accidentally detecting a back press when intending to perform a swipe. Though there is no solution for this except to update an application to specify it targets SDK version 5 or later, fortunately the back key is generally positioned on a far side of the virtual key area, so the user is much less likely to accidentally hit it than some of the other keys.

Writing an application that works well on pre-2.0 as well as 2.0 and later versions of the platform is also fairly easy for most common cases. For example, here is code that allows you to handle the back key in an activity correctly on all versions of the platform:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR
&& keyCode == KeyEvent.KEYCODE_BACK
&& event.getRepeatCount() == 0) {
// Take care of calling this method on earlier versions of
// the platform where it doesn't exist.
onBackPressed();
}

return super.onKeyDown(keyCode, event);
}

@Override
public void onBackPressed() {
// This will be called either automatically for you on 2.0
// or later, or by the code above on earlier versions of the
// platform.
return;
}

For the hard core: correctly dispatching events

One final topic that is worth covering is how to correctly handle events in the raw dispatch functions such as onDispatchEvent() or onPreIme(). These require a little more care, since you can't rely on some of the help the framework provides when it calls the higher-level functions such as onKeyDown(). The code below shows how you can intercept the dispatching of the BACK key such that you correctly execute your action when it is release.

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
if (event.getAction() == KeyEvent.ACTION_DOWN
&& event.getRepeatCount() == 0) {

// Tell the framework to start tracking this event.
getKeyDispatcherState().startTracking(event, this);
return true;

} else if (event.getAction() == KeyEvent.ACTION_UP) {
getKeyDispatcherState().handleUpEvent(event);
if (event.isTracking() && !event.isCanceled()) {

// DO BACK ACTION HERE
return true;

}
}
return super.dispatchKeyEvent(event);
} else {
return super.dispatchKeyEvent(event);
}
}

The call to getKeyDispatcherState() returns an object that is used to track the current key state in your window. It is generally available on the View class, and an Activity can use any of its views to retrieve the object if needed.

Hey Android developers—if you've visited the online Android SDK documentation recently, you may have noticed a few changes. That's right, there's a new Resources tab, which was designed to take some of the load off the Developer's Guide. We've moved a number of existing resources to the Resources tab, including tutorials, sample code, and FAQs. We've also formalized a few of our most popular developer blog posts into technical articles; watch for more of these to appear in the future.

In addition, we just released a new batch of sample code, available now as a ZIP file download on the samples index page. And we're working on updating the way in which we distribute official sample code; more on that some other time.

New sample screenshots

The new sample code includes:

  • Multiple Resolutions: a simple example showing how to use resource directory qualifiers to support multiple screen configurations and Android SDK versions.
  • Wiktionary and WiktionarySimple: sample applications that illustrate how to create an interactive home screen widget.
  • Contact Manager: an example on using the new ContactsContract interface to query and manipulate a user's various accounts and contact providers.
  • Bluetooth Chat: a fun little demo that allows two users to have a 1 on 1 chat over Bluetooth. It demonstrates how to discover devices, initiate a connection, and transfer data.
  • API Demos > App > Activity > QuickContactsDemo: a demo showing how to use the android.widget.QuickContactsBadge class, new in Android 2.0.
  • API Demos > App > Activity > SetWallpaper: a demo showing how to use the new android.app.WallpaperManager class to allow users to change the system wallpaper.
  • API Demos > App > Text-To-Speech: a sample using Text-To-Speech (speech synthesis) to make your application talk.
  • NotePad (now with Live Folders): this sample now includes code for creating Live Folders.

We hope these new samples can be a valuable resource for learning some of the newer features in Android 1.6 and 2.0. Let us know in the android-developers Google Group if you have any questions about these new samples or about the new Resources tab.

Thanks for tuning in, and 'til next time, happy coding!

As a developer, I often wonder which Android platforms my applications should support,especially as the number of Android-powered devices grows. Should my application only focus on the latest version of the platform or should it support older ones as well?

To help with this kind of decision, I am excited to announce the new
device dashboard. It provides information about deployed Android-powered devices that is helpful to developers as they build and update their apps. The dashboard provides the relative distribution of Android platform versions on devices running Android Market.


Android PlatformPercentage of Devices
1.10.3%
1.527.7%
1.654.2%
2.02.9%
2.0.114.8%

The above graph shows the relative number of Android devices that have accessed Android Market during the first 14 days of December 2009.

From a developer's perspective, there are a number of interesting points on this graph:

  • At this point, there's little incentive to make sure a new application is
    backward compatible with Android 1.0 and Android 1.1.
  • Close to 30% of the devices are running Android 1.5. To take advantage of this significant install base, you may consider support for Android 1.5.
  • Starting with Android 1.6, devices can have different screen densities & sizes. There are several devices out there that fall in this category, so make sure to adapt your application to support different screen sizes and take advantage of devices with small, low density (e.g QVGA) and normal, high density (e.g. WVGA) screens. Note that Android Market will not list your application on small screen devices unless its manifest explicitly indicates support for "small" screen sizes. Make sure you properly configure the emulator and test your application on different screen sizes before uploading to Market.
  • A new SDK for Android 2.0.1 was released two weeks ago. All Android 2.0 devices will be updated to 2.0.1 before the end of the year, so if your application uses features specific to Android 2.0, you are encouraged to update it to take advantage of the latest Android 2.0.1 API instead.

In summary, Android 1.5, 1.6, and 2.0.1 are the 3 versions of the platform that are deployed in volume. Our goal is to provide you with the tools and information to make it easy for you to target specific versions of the platform or all the versions that are deployed in volume.

We plan to update the dashboard regularly to reflect deployment of new Android platforms. We also plan to expand the dashboard to include other information like devices per screen size and so on.

With help of TAT UI technology in combination with leading edge hardware providers, we at TAT we constantly strive to push the limits for mobile device user experiences, and showcase the future trends for user interaction. Today, with the unveiling of the Fuse concept device, we see the birth of a new generation of multi sensor devices, beyond the current generation of touchscreen phones. TAT together with partners (Synaptics, Texas Instruments, Immersion and Alloy), for the first time shows an integrated range of multiple interface technologies— including multi-touch capacitive sensing, haptic feedback, force, grip, accelerometer and proximity sensing all brought together in a fully OpenGL|ES 2.0 hardware accelerated 3D User Interface.

Using TAT Cascades we have implemented a user interface bringing all these modalities together to tackle some of the challenges of current-generation touchscreen phones by on-the-go users, namely the difficulty of single-handed usage and the need to look at the screen. The Fuse’s sensing technologies surrounds the entire device. E.g. grip sensing is achieved via force and capacitive touch sensors on the sides of the phone, and it also introduces for the first time 2D navigation from the back of the phone, enabling single-handed control without obstructing the display.

The output feedback technologies include next-generation haptic effects and ground breaking 3D user interface effects. The TI OMAP3630 platform has been put to the test with the implementation of a dynamic UI design, highlighting the sensor control mechanisms using realtime OpenGL|ES 2.0 shader effects for things like light sources, dynamic colors, reflections, shadows, animated 3D meshes and much more.

The movie below shows a couple of the UI mechanism and effects, and the fully functional device with all sensors and haptic actuators will be available to try out for the first time at CES 2010. Don’t miss it!

Starting this week, we're going to be holding regular IRC office hours for Android app developers in the #android-dev channel on irc.freenode.net. Members of the Android team will be on hand to answer your technical questions. (Note that we will not be able to provide customer support for the phones themselves.)

We've arranged our office hours to accommodate as many different schedules as possible, for folks around the world. We will initially hold two sessions each week:

  • 12/15/09 Tuesday, 9 a.m. to 10 a.m. PST
  • 12/17/09, Thursday 5 p.m. to 6 p.m. PST
  • 12/22/09, Tuesday 9 a.m. to 10 a.m. PST
  • 01/06/10 Wednesday 9 a.m. to 10 a.m. PST
  • 01/07/10 Thursday 5 p.m. to 6 p.m. PST

Check Wikipedia for a helpful list of IRC clients. Alternatively, you could use a web interface such as the one at freenode.net. We will try to answer as many as we can get through in the hour.

We hope to see you there!

Making a complex desktop internet application useful on a mobile phone is not easy.

QlikView knows this and have turned to TAT for the design and technology expertise required to meet their high demands on usefulness when mobilizing their popular business intelligence application QlikView. The Android version will be their first implementation using TAT Cascades, and it seems QlikView may in turn be the first ever business intelligence application to launch on Android.



Using TAT Cascades on top of Android makes it possible to implement an application design that does not compromise, neither on QlikView’s brand values nor on the application functionality or usefulness. And after implementation on Android, scaling to other operating systems or form factors is made easy by the functionality provided in TAT Cascades.



Writing user interface layouts for Android applications is easy, but it can sometimes be difficult to optimize them. Most often, heavy modifications made to existing XML layouts, like shuffling views around or changing the type of a container, lead to inefficiencies that go unnoticed.


Starting with the SDK Tools Revision 3 you can use a tool called layoutopt to automatically detect common problems. This tool is currently only available from the command line and its use is very simple - just open a terminal and launch the layoutopt command with a list of directories or XML files to analyze:


$ layoutopt samples/
samples/compound.xml
7:23 The root-level <FrameLayout/> can be replaced with <merge/>
11:21 This LinearLayout layout or its FrameLayout parent is useless samples/simple.xml
7:7 The root-level <FrameLayout/> can be replaced with <merge/>
samples/too_deep.xml
-1:-1 This layout has too many nested layouts: 13 levels, it should have <= 10!
20:81 This LinearLayout layout or its LinearLayout parent is useless
24:79 This LinearLayout layout or its LinearLayout parent is useless
28:77 This LinearLayout layout or its LinearLayout parent is useless
32:75 This LinearLayout layout or its LinearLayout parent is useless
36:73 This LinearLayout layout or its LinearLayout parent is useless
40:71 This LinearLayout layout or its LinearLayout parent is useless
44:69 This LinearLayout layout or its LinearLayout parent is useless
48:67 This LinearLayout layout or its LinearLayout parent is useless
52:65 This LinearLayout layout or its LinearLayout parent is useless
56:63 This LinearLayout layout or its LinearLayout parent is useless
samples/too_many.xml
7:413 The root-level <FrameLayout/> can be replaced with <merge/>
-1:-1 This layout has too many views: 81 views, it should have <= 80! samples/useless.xml
7:19 The root-level <FrameLayout/> can be replaced with <merge/>
11:17 This LinearLayout layout or its FrameLayout parent is useless
For each analyzed file, the tool will indicate the line numbers of each tag that could potentially be optimized. In some cases, layoutopt will also offer a possible solution.

The current version of layoutopt contains a dozen rules used to analyze your layout files and future versions will contain more. Future plans for this tool also include the ability to create and use your own analysis rules, to automatically modify the layouts with optimized XML, and to use it from within Eclipse and/or a standalone user interface.


Windows users: to start layoutopt, open the file called layoutopt.bat in the tools directory of the SDK and on the last line, replace %jarpath% with -jar %jarpath%.

The First Else

Posted by AXEL | 02:16 | 0 comments »



This seems nice. I like how you can quick access the content of the application with a simple sideways gesture. Looks kind of like a widget on demand, or a peek preview.

More here.

More info here >>

Desktop widgets have reached hundreds of millions of users in recent years - OS X Dashboard, Windows Gadgets, Yahoo Widgets and tons of web widgets have all helped the uptake of lightweight, single purpose applications that run in a limited screen estate.

The mobile space has - as many times before - been inspired by the desktop and a number of widget standards are out there; JIL, W3C, Android to name a few.

From a design point of view, widgets are often fun to create. They should do one thing very well, compared to full blown apps that have tons of edge cases that take months to design and specify. Designing a widget is a perfect mobile interaction design 101 task, a bit like when architecture students design a chair during their first semester.
So how come there are so many badly designed widgets out there?

Consider the OS X Dashboard weather widget. It looks great and tells you the weather right now, but most people are able to look out the window to see if it's sunny. Sure, knowing the outside temperature in the morning helps you decide what to wear, but should it cover a majority of the widget area?
Wouldn't it be wiser to spend more on the upcoming weather and less on the current weather? You can expand the OS X widget to show the upcoming weather as well, but it’s still using half the widget area to show the current conditions. And that’s still using numbers instead of graphics ot show the temperatures.
Doesn’t Apple know that an analogue (bars) representation rather than a digital one (digits) makes it easier to compare temperature between days?

In a mobile context, spending a lot of screen estate on the current weather is even worse because
a) Screens are small and every pixel counts
You’re more likely to be outside and thus don’t need a widget to tell you it’s too cold

We really love what HTC has done with Hero and their awesome Sense UI. The visual design is flawless and they have really taken Android beyond vanilla. But still, we never use the weather widgets. The small one doesn’t show any forecast, and the big one steals too much space.


We are currently in the midst of designing a suite of Android widgets and have put some thought into the ultimate weather widget, that according to us should:

  • Emphasize upcoming weather rather than current
  • Offer short term forecasts at a glance (should I bring an umbrella today?)
  • Offer long term forecasts with minimum effort (what's the best day this week to go mountainbiking?)
  • Stay compact unless specifically interacted with
  • Be beautiful and give an aha/wow/smile

Here’s what we came up with:

A compact mode that shows the current and upcoming weather with the same priority. Temperature is color coded to give information at a glance:

An extended mode that shows the weather with a bar representation so that you can easily see how it’s going to vary the following days:

How do you get between these modes?
The widget is 3D so you can swipe to rotate between the modes.For some extra love we’ve added physics, making it even more playful:

Another thing we’re experimenting with is more exotic input methods. Here you blow into the microphone to switch from temperature to wind information:

Remember those nice glasses from the 80’s? Well guess what - now you can use them on your next mobile UI as well.







So if you have a pair of red-green glasses laying around, put them on and enjoy the cool 3D effect in the anaglyphic version of our previously released RedDish demo below – all powered by our astonishing UI framework; TAT Cascades.
























Of course these types of glasses won’t be needed for the new wave of stereoscopic 3D experiences, so stay tuned for more 3D UIs by TAT.



What is anaglyphics?
Anaglyph images are made up of two superimposed color layers that are offset with respect to each other to produce a depth effect. Usually the main subject is in the center, while the foreground and background are shifted laterally in opposite directions. When viewed through 2-color glasses, each eye perceives a slightly different picture. The visual cortex of the brain fuses these into perception of three dimensions.

Today we are releasing updates to multiple components of the Android SDK:

  • Android 2.0.1, revision 1
  • Android 1.6, revision 2
  • SDK Tools, revision 4

Android 2.0.1 is a minor update to Android 2.0. This update includes several bug fixes and behavior changes, such as application resource selection based on API level and changes to the value of some Bluetooth-related constants. For more detailed information, please see the Android 2.0.1 release notes.

To differentiate its behavior from Android 2.0, the API level of Android 2.0.1 is 6. All Android 2.0 devices will be updated to 2.0.1 before the end of the year, so developers will no longer need to support Android 2.0 at that time. Of course, developers of applications affected by the behavior changes should start compiling and testing their apps immediately.

We are also providing an update to the Android 1.6 SDK component. Revision 2 includes fixes to the compatibility mode for applications that don't support multiple screen sizes, as well as SDK fixes. Please see the Android 1.6, revision 2 release notes for the full list of changes.

Finally, we are also releasing an update to the SDK Tools, now in revision 4. This is a minor update with mostly bug fixes in the SDK Manager. A new version of the Eclipse plug-in that embeds those fixes is also available. For complete details, please see the SDK Tools, revision 4 and ADT 0.9.5 release notes.

One more thing: you can now follow us on twitter @AndroidDev.

Using TAT Cascades for Android, Fredrik Berglund shows how easy it is to build an attractive coverflow UI on Android in just five minutes, and have it running on a device.


NOTE: Programming section is five minutes, but fast forwarded to 3 minutes

With TAT Cascades for Android and TAT Motion Lab, Fredrik has a really flexible toolset that allows him to check performance directly on target, change design direction at anytime and create a prototype that shows a UI concept with great performance. Working with TAT Cascades makes it possible to actually sketch on device.

Why create a concept movie when you can create a working prototype in the same amount of time?


Did you know this about TAT Cascades for Android?

• TAT Cascades enables the Android framework to be a modern architecture not only to come on par with today's high end UI’s but also to go beyond.

• TAT Cascades provides next generation UI driven approach rather than the programmatic UI in Android

Benefits:
• CTS compliant pre-integration on Android
• Using hardware acceleration to its full extent
• Bleeding-edge user experience, with full support 3D in the UI
• Rapidly scale your Android implementation across other operating systems, such as Windows Mobile, Symbian etc.



ADC 2 Overall Winners


"We're pleased to announce the overall winners in the Android Developer Challenge 2. These winners were selected after two rounds of scoring by thousands of Android users as well as an official panel of judges. Please see our official page for more information about the challenge."

Android Developer Challenge Logo


Overall Winners

icon SweetDreams
SweetDreams is a revolutionary tool that will finally allow you to go to sleep without worrying about changing your phone settings in order to avoid unwelcome late night calls. You can even use those inactivity periods to save battery power as well, and of course forget about enabling WiFi, Bluetooth or ringtones volume ...

icon What the Doodle!?
'WTD!?' is a real-time online multiplayer game where one player tries to draw out a given phrase and others try to guess it. Features FFA and Team games, Global Highscores, Personal Face Doodles, integrated Voice Recognition and more! Real-time drawing!? Built for performance, you'll really see the magic at first doodle!



icon WaveSecure
WaveSecure is a complete mobile security solution that protects your device, data and privacy. 1. Track your phone's location and who is using it 2. Lock down your phone remotely, making it worthless to the thief 3. Backup all your data 4. Wipe out your data remotely 5. Restore your data May the phone be with you!




Education/Reference Winners

icon Plink Art
Plink Art is an app for identifying, discovering and sharing art. Take a photo of a painting, and the Plink Art servers will try to identify it. You can also browse our database of artwork by keyword or timeline and share your discoveries with friends.


icon Word Puzzle
The Word Puzzle is designed to provide a fun way to learn basic English words for preschool children. Kids can study spelling and pronunciation with flash card and check achievement with word puzzle. Interesting visual and sound interaction with awarding system helps kids to keep learning. Let kids play with your Android.




icon Celeste
An educational augmented reality app that displays the Sun, Moon, planets and their paths through the sky onto your camera view. You can navigate through the sky selecting celestial bodies to display interesting information about our solar system. See the exact spot on your horizon where the sun will rise and set.




Entertainment Winners

icon A World of Photo
Loosely inspired by the traditional "Spin the bottle", A World of Photo is a casual, geographic worldwide multiplayer online game with a social touch. Players spin their phones and will receive a photo from whomever in the world they pointed to. For best play experience, let the app run in the background.


icon SongDNA
Need any information on a song? Practicing for a big karaoke gig? Music quiz coming up tomorrow? The SongDNA widget allows you to quickly look up your favorite song's detailed information. It includes the lyrics, artist's bio, homepage, highest chart rank and video. Handy when you're training for your next karaoke gig!!


icon Solo
Solo is a great, easy to play and feature rich pocket guitar for your phone. A must for all guitar enthusiasts! Features include -Huge chord library with 380+ chords & diagrams -Load/save chord layouts -Play along with music on your phone -Overlay music & lyrics from the internet -Various strum modes, including shake strum




Games: Arcade/Action Winners

icon Speed Forge 3D
Speed Forge: Heavy duty hover vehicles, normally used for mining are now seen in illegal races organized in abondoned factories and dark Marsian alleys. The rock crushing explosives once used in these machines now serve a different purpose...


icon Graviturn
Tilt your phone to move the red circles out of the screen while keeping the green circles. Infinite levels from very easy to nearly impossible. Compare your performance with other players after each level (online highscore and statistics).




icon Moto X Mayhem
Jump, lean, and race through seven levels of amazing motorbike action in the best side scrolling bike game! Lean forward and back on your motorbike as you climb hills and fly through the air using accelerometer technology. Witness realistic physics as your shocks recoil when you land jumps! Or just flick your rider around!!






Games: Casual/Puzzle Winners

icon What the Doodle!?
'WTD!?' is a real-time online multiplayer game where one player tries to draw out a given phrase and others try to guess it. Features FFA and Team games, Global Highscores, Personal Face Doodles, integrated Voice Recognition and more! Real-time drawing!? Built for performance, you'll really see the magic at first doodle!




icon Totemo
Unloose the spirit. Break the spell. Uncover the mystery hidden between the realms in a unique puzzle game. Storm your brain and relax your mind solving over 60 mind-soothing logic tasks. Play the survival mode for extra challenge and write your name into the on-line leaderboards. http://hexage.net



icon Mazeness
The goal of the game is rather simple - you need to bring all the balls ( up to 4 per level!) to their goals at the same time, with help of barriers, teleports and holders. It seems simple at first, but it's not that easy. The difficulty is growing steadily from level to level.




Lifestyle Winners

icon SweetDreams
SweetDreams is a revolutionary tool that will finally allow you to go to sleep without worrying about changing your phone settings in order to avoid unwelcome late night calls. You can even use those inactivity periods to save battery power as well, and of course forget about enabling WiFi, Bluetooth or ringtones volume ...


icon SpecTrek
Improve your fitness with this revolutionary augmented reality ghost hunting game. Walk or run around using GPS and your phone's camera to find and catch virtual ghosts. You will experience a new adventure each SpecTrekking session. The game offers statistics, awards, titles, records, and most of all a whole lot of fun!


icon FoxyRing
FoxyRing makes your phone smarter by analyzing the ambient noise and adjust the ringer volume. Also: - Sleeping hours to silent your phone during the night. - Geolocated ringer profiles, change ringtone or make your phone vibrate only at work! - Widget to silent your phone for a timed period. - Great interface





Media Winners

icon Buzz Deck
BuzzDeck is the quick and easy way to get all the web content you care about most. Flick through your daily hit of favourite news topics. And get Twitter & Facebook updates alongside. BuzzDeck learns what you like and recommends cool new stuff. Simple, elegant & fast. NB: No landscape mode yet. http://mippin.com/buzzdeck





icon SPB TV
SPB TV is a highly usable IP-TV solution, optimized to run on mobile devices. SPB TV provides users with lots of channels in multiple languages with easy-to-use features and settings. No subscription fee! Requires a reliable 3G or WiFi network connection for proper streaming. Full-featured 60-days trial.


icon FxCamera
FxCamera enables you to take a picture with various effects. - ToyCam (Toy Camera Emulator) - Polandroid - Fisheye - Warhol (Andy Warhol-izer) - Normal *this app requires SD card*



Productivity/Tools Winners

icon WaveSecure
WaveSecure is a complete mobile security solution that protects your device, data and privacy. 1. Track your phone’s location and who is using it 2. Lock down your phone remotely, making it worthless to the thief 3. Backup all your data 4. Wipe out your data remotely 5. Restore your data May the phone be with you!


icon Hoccer
Hoccer is your application for ad-hoc data exchange. Use gestures to "throw" your data through the air and let the recipients "catch" it. There is no need for prior exchange of contact details.


icon Tasker
Tasker let's you link any Task (action set) to the Contexts (application, time, day, location, event, widget press) where it should run. Send an SMS at 3:15 Monday, make per-app settings or locks, map camera button to a menu, launch music app on headphone insert, timelapse photos, encrypt on-the-fly, the list is endless!




Social Networking Winners

icon Ce:real - Everyday trends
Ce:real, What's happening in this world? Are you curious about real world? How about North Pole or an edge of Africa? Also, it can be your neighborhood. It is offering to you hot photo stories with Twitter trends keyword which has speed of lights. Enjoy millions of happenings in real world and you participate in it as well.


icon SocialMuse
Check out what users on the other side of the world are listening to! Find people with similar musical taste, or just explore the world through music. Browse other users' music libraries, listen to previews of their songs, and buy them if you like them. Check out their profiles on MySpace, Facebook and Last.fm.


icon SpotMessage
SpotMessage is a communication tool using GPS. Send a message designating a spot with Google Maps then the message will be notified when the recipient arrives at the spot. SpotMsg finds various uses; as an alarm reminding you of a task at a certain spot or for sending your friend a surprise message on his or her arrival.




Travel Winners

icon Trip Journal
Trip Journal is the ultimate trip tracking and sharing solution currently available on Android powered Smartphones. Impress your friends by sending them real time updates from the places you are visiting. GPS route tracking, record waypoints, photos & notes, trip statistics, KMZ & Picasa exports, incorporated Google Maps.




icon iNap: Arrival Alert
Ever wanted to get some sleep during a train ride, or a quick powernap on the bus to work? You either hoped to wake just in time not to miss your station, or set an alarm to wake you far too early... Using your phone's GPS it will determine where you are, and wake you when you are close to your destination!


icon Car Locator
Save your location whenever you park, and Car Locator will navigate you back to your car should you ever have trouble finding it. - Points in direction of your car using GPS and compass - Radar view, map view, and split view - Parking timer alarm GPS and compass must be enabled. This free version expires after 25 runs.




Misc Winners

icon Rhythm Guitar
Plays like a real 6-string, 5-fret guitar. Strum and pick chords, make new chords, string them together to create songs, transpose songs to fit your vocal range. Great for songwriting, chord reference, learning radio hits, or even plugging into speakers and pedals.



icon Andrometer
Andrometer allows you to measure the approximate distance from you to an object that you can see. Uses GPS, accelerometer and geomagnetic sensor. Tips: - Keep as steady as possible - The further you walk, the more accurate the measurement - Must be outdoors with clear view of sky - Works best under 1 km


icon Calton Hill GPSCaddy
GPSCaddy allows golfers to quickly and easily map any golf course either out on the course using GPS or in the comfort of home using satellite imagery. Then, when they are playing the course, it uses GPS to tell them exactly how far they are from the significant features of the hole they are playing (green, bunkers, etc).


Special thanks to all of our official judges in ADC 2 Round 2:

Beth GozaT-Mobile
Chris DiBonaGoogle
Chris NesladekGoogle
David PotterGoogle
Elise CoAEOLab
Gadi AmitNew Deal Design
Jeremiah ZinnMTV
Keith CohnNaval Postgraduate School
Leland RechisTwitter
Mark LouieGoogle
Matt JonesBlackbeltjones
Scott JensonGoogle
Thunder ParleyGoogle
Venetia EspinozaT-Mobile

source : http://code.google.com/intl/fr/android/adc/gallery_winners.html


Misc

icon Rhythm Guitar
Plays like a real 6-string, 5-fret guitar. Strum and pick chords, make new chords, string them together to create songs, transpose songs to fit your vocal range. Great for songwriting, chord reference, learning radio hits, or even plugging into speakers and pedals.
icon Andrometer
Andrometer allows you to measure the approximate distance from you to an object that you can see. Uses GPS, accelerometer and geomagnetic sensor. Tips: - Keep as steady as possible - The further you walk, the more accurate the measurement - Must be outdoors with clear view of sky - Works best under 1 km
icon Calton Hill GPSCaddy
GPSCaddy allows golfers to quickly and easily map any golf course either out on the course using GPS or in the comfort of home using satellite imagery. Then, when they are playing the course, it uses GPS to tell them exactly how far they are from the significant features of the hole they are playing (green, bunkers, etc).
icon Open Gesture
Open Gesture, a cool home replacement app that helps you unclutter your desktop. It has screen navigation, quick access to settings and device health, gesture shortcuts, themes and so much more. http://www.opengesture.com/
icon Executive Assistant
Unified interface for quickly reviewing your gmail, text messages, missed calls, upcoming calendar events, Google Reader feeds, and favorite widgets. Choose your mode: + lock screen allows preview WITHOUT UNLOCKING + welcome screen provides instant access after unlock + widget mode is "always on" wherever you want
icon Decaf: EC2 on your Android
Working in IT is often a nighttime job. You have to be always alert, and always ready to replace that one critical piece of broken hardware. It is not strange many of those nerdy System Integrators are walking around with caffeine molecules on their t-shirt. Not anymore. Decaf: Amazon EC2 on your Android.
icon FlyScreen
FlyScreen's fast. It embeds your favourite web services onto your phone's lock screen, enabling true zero-click access to the content you love most. No need to open a browser or separate app each time, clicking, waiting, etc. Tag, share, and preview headlines on the fly, complete with a gorgeous UI and kinetic scrolling.
icon Dialify
Dialify lets you put contacts into your notification bar, where you can call or text them instantly.
icon Missing Children
Please help the search for missing children. This Android app pulls current missing child information from multiple sources. Keep track of the National Center for Missing & Exploited Children's current list of missing kids, the FBI's feed of missing children, and the AMBER Alert Feed (Child Abduction Alert System).
icon Office Excercise
Office Exercise(as OE) is an application for doing exercises in office or home. If you often sit in front of computer or TV for several hours. Your body would get hurt by holding a posture for a long time. OE could help your relax through several simple exercises, include: 1.neck 2.back 3.shoulder 4.arms 5.wrists
icon Personal Finance
One application serves all your personal financial needs. It includes thirteen major markets, stock quotes, portfolios, indices, ETFs, mutual funds, currencies, company headlines, stock charts, hot deals, current rates, currency converter, loan calculator, interest calculator, tip calculator, expense manager and much more.
icon AnyWidget
Any Widget is a tool for building home screen widget. It lets you create fully functional widgets using your favorite images, no programming knowledge requires. Currently it has 5 templates, 1x1, 2x2, 3x3, 4x1 and 4x3 To start, long press home screen and select widget -> Any Widget then follow on screen instructions.
icon TapDialer
Tap Dialer allows you to dial your phone without stopping to look at the screen. Set up a list of your favorite numbers in Tap Dialer, then simply tap anywhere on the screen to dial. One tap for the first number, two taps for the second, etc. When you reach the number you want, just stop tapping and the number is dialed.
icon medAssist.me
Personal Health Assistant. medAssist modules (mAm) features: Access and Management of various health information: health profiles(including GoogleHealth profiles client), pharmaceutical/Rx info or access to health services. Integrated Biomedical tools to measure, record and analyze your physiological signals, like: HB rate.
icon Animal Compass
Animal Compass connects you with animals around the world. Whether it's a puppy, kitten, or even a panda, you can easily share its photos and stories on a map instantly from your phone. To promote amity with animals, all proceeds will be donated toward animal protection and wildlife preservation. Thank you for your support!
icon aLock
lock is a cool application, which can lock&unlock homescreen. This application provides several lock&unlock modes, and some wallpaper. Alock will make you use android more funny. And it is recommended.
icon Scribtor
A Customizable Android Notepad and Text Editor Application, with various features like encrypting, decrypting, exporting notes, importing files, downloading text files, opening and editing text files to name a few. The application is designed to work in both portrait and landscape mode it also makes use of the sensors.
icon Kan-Ban World
"KAN-BAN WORLD" offers augmented reality space by 3D graphics overlapping real vision.It allows you to build various "KAN-BANs"(signboards in Japanese) in this AR space.It allows you and others to see the KAN-BANs as if existing really,Of course reading.It can also be multi-purpose bulletin boards that bases on location.
icon WebWidget
This Widget can cut a piece of a website and put it at Home Screen. - 6 different sizes - 4 Pics Player - Home & Reload Button
icon AndShowtime
The aim of this project is to give you movie showtimes. You have two ways for getting showtimes : - Near your gps position or city name, postal code - According to movie name and city name or gps position You will have movie description. Complete manual at : http://code.google.com/p/binomed-android-project/wiki/AndSho