Cut the Rope 2 available for Windows and Windows Phone

We’ve got some sweet news for you today, Cut the Rope 2 is now available for Windows and Windows Phone! With new characters, fresh gameplay elements and tricky missions, candy collecting has never been so fun.

Cut the Rope 2

In his unexpected adventure, Om Nom breaks out of his box and travels through lush forests, busy cities, junkyards and underground tunnels, all in pursuit of one goal, candy! With all new locations to explore, travel through an interactive map to discover new locations filled with candy collecting and rope cutting action. Complete tricky missions to earn medals, advance in the game and access special levels, you can even play with your friends to see who can get the highest score, or tackle the puzzles on your own.

Cut the Rope 2 WP 1 Cut the Rope 2 WP 2

Exciting surprises await, download Cut the Rope 2 for Windows and Windows Phone today.

The Acer Liquid M220 smartphone is coming to Microsoft Stores

Acer announced today that it is expanding its smartphone business to the United States for the first time by bringing its award-winning Liquid M220 smartphone to Microsoft Stores. The Liquid M220 is the first Liquid smartphone to run on the Windows Phone 8.1 operating system and is supported by Acer for the free Windows Phone 10 upgrade.(1)

Acer Liquid M220_black_02  Acer Liquid M220_black_08

The Liquid M220 was designed to provide essential features for those looking for a simple, easy to use and very affordable smartphone. Its 4-inch 233 pixels per inch (PPI) WVGA (480×800) display delivers clear images for enjoying social media, while front and rear cameras let customers snap selfie pictures and record video on-the-go. A 5MP auto-focus rear camera with LED flash and an 89-degree wide-angle lens captures memorable moments, even in large scenes. In addition, the 2MP fixed-focus front camera can take fun videos on the fly for sharing on social media and support videoconferences with family and friends. Compact and comfortably light weight, it measures just 4.9- x 2.5-x .38-inches and weighs only 4.2 ounces. The user interface is intuitive and easy to customize and fully supports Microsoft applications and services such as OneDrive, Skype, Office and the Cortana(2) digital assistant. The Liquid M220 is powered by a Qualcomm® Snapdragon 200 processor(3) with dual core CPUs at speeds of up to 1.2GHz, 1GB memory and a replaceable 1300mAh battery that provides up to 3 hours talk time and up to 200 hours in standby on a single charge.(4) It provides ample room for archiving photos and videos with 8GB storage capacity(5) that can be expanded with a Micro SD card.

Acer Liquid M220_white_08 Acer Liquid M220_white_03

The Liquid M220 smartphone will be available at Microsoft Stores and MicrosoftStore.com in the United States in Mystic Black and Pure White for a manufacturer’s suggested retail price (MSRP) of $79.99 in June.

  1. Windows Phone 10 upgrade on Liquid M220 coming after Windows Phone 10 launch later this year; may incur limited features due to platform technical specifications. Some hardware/software may limitations apply and feature availability may vary by device. Devices must be connected to the internet and have Windows Update enabled. Your Internet Service Provider may charge you additional fees. Should customers decide to approach an Acer Service Center to perform the upgrade, Acer reserves the right to charge for the service provided. The free upgrade offer is valid only during the first year of Windows 10 availability.
  2. Cortana personal assistant is currently deploying in its alpha version and availability may vary on country, system language, and product SKU.
  3. Qualcomm Snapdragon is a product of Qualcomm Technologies, Inc. Qualcomm and Snapdragon are trademarks of Qualcomm Incorporated, registered in the United States and other countries.
  4. Actual battery life varies depending on product specifications, computer settings and applications or features launched.
  5. Accessible capacity varies: (MB = 1 million bytes; GB = 1 billion bytes)

 

 

 

Google Keep: Take notes on the go

At the grocery store, juggling your shopping list with a gallon of milk, a basket of food, and your phone usually ends up with a “Spill in aisle 4.” Starting today, you can leave your phone in your pocket and view notes on your Android Wear device. Just start Keep from the app list or say “OK Google, open Keep” to begin browsing notes on your wrist. To take a new note, you can still use “OK Google, take a note.”



Swipe up and down to browse through notes, tap to view a particular note, or just tap the plus sign and speak to create a new note. You can also add reminders to notes directly from your Android Wear watch. With this update, Keep will support recurring reminders too!


We also recently launched the ability to add labels to notes in the Keep Android app and on the web to help you stay organized. Use labels like “Inspiration” and “To-dos” to never miss an idea or task.


     


So whether it’s taking notes on Android Wear, setting reminders, or adding labels to notes, use Keep to make sure you never lose a thought.


Google Keep is available for free on Google Play for your Android devices (Android 4.0, Ice Cream Sandwich and above), the web, and the Chrome Web Store.

Posted by Ranna Zhou, Product Manager and Chief Notetaker for Google Keep

New Android Code Samples

Posted by Rich Hyndman, Developer Advocate

A new set of Android code samples, covering Android Wear, Android for Work, NFC and Screen capturing, have been committed to our Google Samples repository on GitHub. Here’s a summary of the new code samples:

XYZTouristAttractions

This sample mimics a real world mobile and Android Wear app. It has a more refined design and also provides a practical example of how a mobile app would interact and communicate with its Wear counterpart.

The app itself is modeled after a hypothetical tourist attractions experience that notifies the user when they are in close proximity to notable points of interest. In parallel,the Wear component shows tourist attraction images and summary information, and provides quick actions for nearby tourist attractions in a GridViewPager UI component.

DeviceOwner – A Device Owner is a specialized type of device administrator that can control device security and configuration. This sample uses the DevicePolicyManager to demonstrate how to use device owner features, including configuring global settings (e.g.automatic time and time-zone) and setting the default launcher.

NfcProvisioning – This sample demonstrates how to use NFC to provision a device with a device owner. This sample sets up the peer device with the DeviceOwner sample by default. You can rewrite the configuration to use any other device owner.

NFC BeamLargeFiles – A demonstration of how to transfer large files via Android Beam on Android 4.1 and above. After the initial handshake over NFC, file transfer will take place over a secondary high-speed communication channel such as Bluetooth or WiFi Direct.

ScreenCapture – The MediaProjection API was added in Android Lollipop and allows you to easily capture screen contents and/or record system audio. The ScreenCapture sample demonstrates how to use the API to capture device screen in real time and show it on a SurfaceView.

As an additional bonus, the Santa Tracker Android app, including three games, two watch-faces and other goodies, was also recently open sourced and is now available on GitHub.

As with all the Android samples, you can also easily access these new additions in Android Studio using the built in Import Samples feature and they’re also available through our Samples Browser.

Check out a sample today to help you with your development!

Game Performance: Explicit Uniform Locations

Posted by Shanee Nishry, Games Developer Advocate

Uniforms variables in GLSL are crucial for passing data between the game code on the CPU and the shader program on the graphics card. Unfortunately, up until the availability of OpenGL ES 3.1, using uniforms required some preparation which made the workflow slightly more complicated and wasted time during loading.

Let us examine a simple vertex shader and see how OpenGL ES 3.1 allows us to improve it:

#version 300 es

layout(location = 0) in vec4 vertexPosition;
layout(location = 1) in vec2 vertexUV;

uniform mat4 matWorldViewProjection;

out vec2 outTexCoord;

void main()
{
    outTexCoord = vertexUV;
    gl_Position = matWorldViewProjection * vertexPosition;
}

Note: You might be familiar with this shader from a previous Game Performance article on Layout Qualifiers. Find it here.

We have a single uniform for our world view projection matrix:

uniform mat4 matWorldViewProjection;

The inefficiency appears when you want to assign the uniform value.

You need to use glUniformMatrix4fv or glUniform4f to set the uniform’s value but you also need the handle for the uniform’s location in the program. To get the handle you must call glGetUniformLocation.

GLuint program; // the shader program
float matWorldViewProject[16]; // 4x4 matrix as float array

GLint handle = glGetUniformLocation( program, “matWorldViewProjection” );
glUniformMatrix4fv( handle, 1, false, matWorldViewProject );

That pattern leads to having to call glGetUniformLocation for each uniform in every shader and keeping the handles or worse, calling glGetUniformLocation every frame.

Warning! Never call glGetUniformLocation every frame! Not only is it bad practice but it is slow and bad for your game’s performance. Always call it during initialization and save it somewhere in your code for use in the render loop.

This process is inefficient, it requires you to do more work and costs precious time and performance.

Also take into consideration that you might have multiple shaders with the same uniforms. It would be much better if your code was deterministic and the shader language allowed you to explicitly set the locations of your uniforms so you don’t need to query and manage access handles. This is now possible with Explicit Uniform Locations.

You can set the location for uniforms directly in the shader’s code. They are declared like this

layout(location = index) uniform type name;

For our example shader it would be:

layout(location = 0) uniform mat4 matWorldViewProjection;

This means you never need to use glGetUniformLocation again, resulting in simpler code, initialization process and saved CPU cycles.

This is how the example shader looks after the change. Changes are marked in bold:

#version 310 es

layout(location = 0) in vec4 vertexPosition;
layout(location = 1) in vec2 vertexUV;

layout(location = 0) uniform mat4 matWorldViewProjection;

out vec2 outTexCoord;

void main()
{
    outTexCoord = vertexUV;
    gl_Position = matWorldViewProjection * vertexPosition;
}

As Explicit Uniform Locations are only supported from OpenGL ES 3.1 we also changed the version declaration to 310.

Now all you need to do to set your matWorldViewProjection uniform value is call glUniformMatrix4fv for the handle 0:

const GLint UNIFORM_MAT_WVP = 0; // Uniform location for WorldViewProjection
float matWorldViewProject[16]; // 4x4 matrix as float array

glUniformMatrix4fv( UNIFORM_MAT_WVP, 1, false, matWorldViewProject );

This change is extremely simple and the improvements can be substantial, producing cleaner code, asset pipeline and improved performance. Be sure to make these changes If you are targeting OpenGL ES 3.1 or creating multiple APKs to support a wide range of devices.

To learn more about Explicit Uniform Locations check out the OpenGL wiki page for it which contains valuable information on different layouts and how arrays are represented.

Windows 10 Technical Preview Build 10052 now available for phones

Hi everyone,

We’re releasing Build 10052 of the Windows 10 Technical Preview for phones to the Fast ring today. This build is a minor update from the 10051 build that we released 11 days ago with several of the top issues affecting Insiders fixed. There are no new features in this build, but it should be much more usable day to day with these improvements.

Here are the big things that we fixed:

  • Flight mode can now be enabled.
  • You can now disable data connections.
  • We fixed the bug in which your phone’s MMS settings were lost after upgrading from Build 9941.
  • We fixed the issue in which you couldn’t download keyboards for additional languages.
  • We fixed the issue where the viewfinder in the Camera app gets composed incorrectly on some devices like the Lumia 1020.

We received reports of failures on a small number of Lumia 520 devices from Windows Insiders at the end of last week when trying to roll back to Windows Phone 8.1 using the Windows Phone Reset Tool. We quickly paused build availability for these devices to investigate the issue. The issue causing these failures was the way in which the Windows Phone Reset Tool was re-flashing these devices. We’ve released an update to the Windows Phone Reset Tool that should get those impacted by the issue up and running. More information is available here. With this issue resolved, we’re resuming offering builds today for folks on Lumia 520 devices as well.

As always, thanks for participating in the Windows Insider program and please keep the feedback coming through the Windows Feedback app.

Thanks,
g

Accept payments on the go with PayPal Here on Windows Phone

Last month we announced PayPal Here was available to download from the Windows Store, today we’re excited to share that you can also download the app from the Windows Phone Store.

PayPal here WP 1 PayPal Here WP 2

PayPal Here is the secure and easy-to-use mobile business app for all your payment needs. Get back-office management, POS, and start accepting credit and debit card payments—in person and on the go—with our mobile card reader and free app. Pay a low transaction fee of only 2.7% per US card swipe. With PayPal Here, you’ll enjoy 24/7 live customer support and there are no commitments or monthly fees.

Download PayPal Here from the Windows Phone Store today.

Android Support Library 22.1

Posted by Ian Lake, Developer Advocate

You may have heard the phrase ‘the best code is no code.’ While we don’t recommend not writing any code at all, the code you do write should be adding unique value to your app rather than replicating common boilerplate code. The Android Support Library is one of the best resources for accomplishing this by taking care of the little things for you.

The latest release of the Android Support Library is no different, adding a number of extremely helpful components and changes across the Support V4, AppCompat, Leanback, RecyclerView, Palette, and Renderscript libraries. From the new AppCompatActivity and AppCompatDialog to a new guided step flow for Android TV, there’s a lot to get excited about in this release.

Support V4

The Support V4 library serves as the base of much of the Android Support Library and contains many of the classes focused on making backward compatibility much easier.

DrawableCompat now brings drawable tinting back to API 4: simply wrap your Drawable via DrawableCompat.wrap(Drawable) and setTint(), setTintList(), and setTintMode() will just work: no need to create and maintain separate drawables only to support multiple colors!

In addition, we’re making some of the internals of Palette available to all via the ColorUtils class, giving you pre-built tools to better work with colors. ColorUtils makes it easy to calculate the contrast ratio between colors, determine the minimum alpha value to maintain a minimum contrast (perfect for ensuring readable text), or convert colors to their HSL components.

Interpolators are an important part of any animation system, controlling the rate of change in an animation (say accelerating, decelerating, etc). A number of interpolators were added in Lollipop to android.R.interpolator including fast_out_linear_in, fast_out_slow_in, and linear_out_slow_in: important parts of building authentic motion. These are now available via the Support Library via the FastOutLinearInInterpolator, FastOutSlowInInterpolator, and LinearOutSlowInInterpolator classes, making it possible to use these via code for all animations. In addition to those pre-built interpolators, we’ve also created PathInterpolatorCompat, allowing you to build quadratic and cubic Bezier curves as well.

This release also moves the Space widget from the GridLayout library into Support V4, making it available without requiring a separate dependency. The Space widget is a lightweight, invisible View that can be used to create gaps between components.

AppCompat

The AppCompat Support Library started with humble, but important beginnings: a single consistent Action Bar for all API 7 and higher devices. In revision 21, it took on new responsibility: bringing material color palette, widget tinting, Toolbar support, and more to all API 7+ devices. With that, the name ActionBarActivity didn’t really cover the full scope of what it really did.

In this release, ActionBarActivity has been deprecated in favor of the new AppCompatActivity. However, this wasn’t just a rename. In fact, the internal logic of AppCompat is now available via AppCompatDelegate – a class you can include in any Activity, hook up the appropriate lifecycle methods, and get the same consistent theming, color tinting, and more without requiring you to use AppCompatActivity (although that remains the easiest way to get started).

With the help of the new AppCompatDelegate, we’ve also added support for consistent, material design dialogs via the AppCompatDialog class. If you’ve used AlertDialog before, you’ll be happy to know there is also now a Support Library version in support.v7.app.AlertDialog, giving you the same API as well as all the benefits of AppCompatDialog.

The ability to tint widgets automatically when using AppCompat is incredibly helpful in keeping strong branding and consistency throughout your app. This is done automatically when inflating layouts – replacing Button with AppCompatButton, TextView with AppCompatTextView, etc. to ensure that each could support tinting. In this release, those tint aware widgets are now publicly available, allowing you to keep tinting support even if you need to subclass one of the supported widgets.

The full list of tint aware widgets at this time is:

  • AppCompatAutoCompleteTextView
  • AppCompatButton
  • AppCompatCheckBox
  • AppCompatCheckedTextView
  • AppCompatEditText
  • AppCompatMultiAutoCompleteTextView
  • AppCompatRadioButton
  • AppCompatRatingBar
  • AppCompatSpinner
  • AppCompatTextView

Lollipop added the ability to overwrite the theme at a view by view level by using the android:theme XML attribute – incredibly useful for things such as dark action bars on light activities. Now, AppCompat allows you to use android:theme for Toolbars (deprecating the app:theme used previously) and, even better, brings android:theme support to all views on API 11+ devices.

If you’re just getting started with AppCompat, check out how easy it is to get started and bring a consistent design to all of your users:


Leanback

With the Leanback library serving as the collection of best practices for Android TV apps, we’d be remiss to not make an even better 10’ experience as part of the release. You’ll notice immediately upon loading up the updated Leanback sample the new guided step functionality.

This set of classes and themes can be used to build a multiple step process that looks great on Android TV. It is constructed from a guidance view on the left and a list of actions on the right. Each is customizable via themes with a parent of Theme.Leanback.GuidedStep or, if even more customization is needed, through custom a GuidanceStylist and GuidedActionsStylist.

You’ll also find a large number of bug fixes, performance improvements, and an extra coat of polish throughout the library – all with the goal of making the Leanback experience even better for users and developers alike.

RecyclerView

Besides a healthy set of bug fixes, this release adds a new SortedList data structure. This collection makes it easy to maintain a sorted list of custom objects, correctly dispatching change events as the data changes through to RecyclerView.Adapter: maintaining the item added/deleted/moved/changed animations provided by RecyclerView.

In addition, SortedList also supports batching changes together, dispatching just a single set of operations to the Adapter, ensuring the best user experience when a large number of items change simultaneously.

Palette

If you’ve been using Palette to extract colors from images, you’ll be happy to know that it is now 6-8 times faster without sacrificing quality!

Palette now uses a Builder pattern for instantiation. Rather than directly calling Palette.generate(Bitmap) or their equivalents, you’ll use Palette.from(Bitmap) to retrieve a Palette.Builder. You can then optionally change the maximum number of colors to generate and set the maximum size of the image to run Palette against before calling generate() or generateAsync() to retrieve the color Swatches.

Renderscript

Renderscript gives you massive compute potential and the Support Library version makes a number of the pre-defined scripts, called script intrinsics, available to all API 8+ devices. This release improves reliability and performance across all devices with an improved detection algorithm in determining whether the native Renderscript functionality can be used – ensuring the fastest, most reliable implementation is always chosen. Two additional intrinsics are also added in this release: ScriptIntrinsicHistogram and ScriptIntrinsicResize, rounding out the collection to ten.

SDK available now!

There’s no better time to get started with the Android Support Library. You can get started developing today by downloading the Android Support Library and Android Support Repository from the Android SDK Manager.

To learn more about the Android Support Library and the APIs available to you through it, visit the Support Library section on the Android Developer site.

Android Developer Story: Jelly Button Games grows globally through data driven development

Posted by Leticia Lago, Google Play team

For Jelly Button Games, understanding users is the key to creating and maintaining a successful game, particularly when growth relies on moving into overseas markets. The team makes extensive use of Google Analytics and Google BigQuery to analyze more than 3 billion events each month. By using this data, Jelly Button can pinpoint exactly where, when, and why people play their highly-rated game, Pirate Kings. Feeding this information back into development has driven active daily users up 1500 percent in just five months.

We caught up with Mor Shani, Moti Novo, and Ron Rejwan — some of the co-founders — in Tel Aviv, Israel, to discover how they created an international hit and keep it growing.

Learn about Google Analytics and taking your game to an international audience:

  • Analyze — discover the power of data from the Google Play Developer Console and Google Analytics.
  • Query — find out how Google BigQuery can help you extract the essential information you need from millions or billions of data points.
  • Localize — guide the localization of your app with best practices and tools.

Android Wear: wear what you want, get what you need

Architect and artist William Morris once said, “Have nothing in your house that you do not know to be useful, or believe to be beautiful.” Turns out that’s also good advice for deciding what to wear. So Android Wear offers a range of watches and apps that are fashionable as well as functional.

Over the past few months we’ve added lots of ways to express your style—from custom watch faces to a rainbow of bands. Today we’re making Android Wear more helpful as well—getting you what you need, right on your wrist.

Always-on screen, always-on apps

When you buy a watch you want it to, well, tell the time. So most Android Wear watches include an always-on screen—no tapping, twisting or shaking required to see what time it is. Now we’re expanding this option to apps, so they can stay visible as long as you need them, instead of disappearing when you drop your arm. In either case the screen is only full color when you’re actively looking at it—so you get the info you need, and you save on battery life.
Wi-Fi support

With GPS and offline music support, you can already leave your phone at home, then go jogging and jamming like normal. Now Android Wear supports watches with built-in Wi-Fi. As long as your watch is connected to a Wi-Fi network, and your phone has a data connection (wherever it is), you’ll be able to get notifications, send messages, and use all your favorite apps. And if you really do forget your phone, you can always ask your watch where it is.

Simpler, faster, and more smiley

When it comes to your watch, using apps should be as simple as checking the time. So today we’re making a number of Android Wear improvements to help you access your info, and express yourself more easily:

  • Got your hands full? You no longer need them to check your news and notifications. Instead you can just flick your wrist to scroll through the stream.
  • Your apps and contacts are now just a tap away from the watch face. Just touch the screen, and you’ll be able to start apps and send messages immediately.
  • : Can’t talk? Now you can draw hundreds of different emojis, directly on the watch screen. We’ll recognize your work (no art degree required) and send it via message or text.

These updates are coming to all seven Android Wear watches over the next few weeks, starting with the new LG Watch Urbane. In the meantime, there are plenty of useful apps and lots of beautiful watch faces—so find your favorites, and wear what you want.

Posted by David Singleton, Director of Engineering, Android Wear