Profile cover photo
Profile photo
Peter Friese
Making mobile more social, one app at a time.
Making mobile more social, one app at a time.

Peter's posts

Post has shared content

Post has shared content
This is really useful, especially for business mails.
Smart Reply - a deep neural network that writes email

Replying to an emails on a mobile device can be a challenge, even for short replies. What if there were a system that could automatically determine if an email was answerable with a short reply, and compose a few suitable responses that you could edit or send with just a tap? 

Smart Reply, which will be launching later this week, is built on a pair of recurrent neural networks, one used to encode the incoming email and capture the gist of what is being said and the other to predict and compose grammatically correct possible responses. 

Head over to the Google Research blog to learn more.

Post has shared content
If you're using the NDK to build Android Wear applications, you should read this to make sure your apps will run on Intel-based wearables.

Are there any Intel-based Android Wear devices, I hear you ask? Well - there have been a number of announcements for a number of pretty exciting devices, so you should definitely care :-)
There have been a number of press-releases about upcoming Android Wear devices containing Intel x86 processors. Some developers have been building applications for Android Wear using the NDK, and providing only armeabi-v7a shared libraries in their wearable APK. With the impending arrival of these new Intel x86 wearables, APKs built for only ARM will fail on these new devices.

Note: if you are only working with Java code, there is nothing to do here, since your APKs are in portable bytecode, and will work on any architecture. You only need to read this if you are using the NDK.

So what do you need to do to add support for x86? It is very easy. You simply need to edit your build.gradle for the wearable module to include both armeabi-v7a and x86 in your abiFilters, and then recompile. Gradle will then build a combined wearable APK, which contains binaries for both architectures. The wearable APK is then embedded into the regular phone APK, as usual.

I have an open source project where you can see how the build process works. The wear/build.gradle file contains the following now:

ndk {
  moduleName "native-jni"
  ldLibs "log"
  stl "stlport_static"
  abiFilters = ['armeabi-v7a','x86']

You can see the build.gradle file, and the rest of the GitHub project, here:

How can you determine if your final APK is built correctly? Firstly, you should unzip the phone APK. Then, unzip the embedded wearable APK located in res/raw. There should be two binary .so files, where "native-jni" will be replaced with whatever you used in moduleName in your build.gradle:

If you find yourself in a situation where your wearable APK will still not install, you should check adb logcat on the wearable device. If there are problems caused by not having the right ABI binaries present, you will get the error INSTALL_FAILED_NO_MATCHING_ABIS represented as code -113 in the logcat output:
  W/NativeHelper(  457): Failure copying native libraries [errorCode=-113]
  E/WearablePkgInstaller( 1568): Package install failed null, returnCode -113

If you have any more questions about this, please discuss it on this post.

Post has shared content
New in Android Samples: Authenticating to remote servers using the Fingerprint API

Nobody likes typing in passwords, especially on mobile phones. But we’ve got the cure for the password blues in this week’s Android samples release.

Join us as we take a deep dive into Android 6.0’s new support for fingerprint sensors (like Nexus Imprint). We’ll show you how the Fingerprint API interacts with the system’s hardware keystore and how you can add secure fingerprint authentication to your app’s client- or server-side code.


Post has shared content
In case you haven't seen it already, we have developed a Udacity class on developing apps for Android Wear. Previously it was part of our Ubiquitous Computing class, but we provide it separate now for those developers who want to only learn about Android Wear.

So you can join me as I teach you how to get started with Android Wear! Its a great way to be walked through all the important steps to develop apps, and how to use the existing samples to see how things should be done.

Post has shared content
Xamarin Developer Evangelist James Montemagno shows you how to easily authenticate users with Android’s Confirm Credential:

Post has shared content
Did you know that London has its own chocolate museum? When better to visit it than #ChocolateWeek?

Post has shared content
Getting your app content found on Google just got easier. App Indexing is now compatible with HTTP deep link standards for iOS 9, as it has been on Android from the beginning. That means that you can start getting your app content into the Search results page on Safari in iOS, simply by adding Universal Links to your iOS app, then integrating with our SDK. With this improvement, we will no longer support new integrations on iOS 7 and iOS 8. Users will start seeing your app content in Safari on iOS at the end of October.

And, of course, on Android, you can still get your content into the Search results page, autocompletions, and Now on Tap by adding HTTP deep links and integrating with the App Indexing API.

To learn about getting your app content found on Google Search, visit And to learn more about leveraging Search to increase engagement with your content, both in apps and on the web, visit

Post has attachment

Post has shared content
How does Xtend compare to +Java 8?

This question pops up from time to time. Most people forget that Xtend has many more features than just lambdas. But even if we just look at lambdas, the conciseness and clean syntax of #Xtend  is obvious.

Here are two screenshot from our freshly made +IntelliJ IDEA plugin.

The first picture shows both languages using the very same API (Java8 stream API that is). The second shows a comparison using the language's idiomatic style.

You can see that the Xtend version is much shorter and at the same time doesn't lack any important information. It just leaves out ceremony and focusses on the necessary. That's how it should be.

The Numbers:
 - Java : 205 characters
 - Xtend Stream API : 164 characters
 - Xtend idiomatic : 105 characters
2 Photos - View album
Wait while more posts are being loaded