I have released a new open source library to wrap a Google Play services API called¬†SafetyNet, which has been completely eclipsed by the recent Google IO and WWDC coverage ūüėȬ†safetynet_framed

Here’s a blog post that explains a bit about what is it and why and here’s the code on github.

I’ve also released the Sample app on the Google Play store so you can run the Safety Net test on your own device.


Another blog on the Intohand blog, this time “How to publish your open source library to Maven central”

Have you created a great (or at least useful) Java/Android open source project that you want to enable other developers usmavene in their projects easily? have you wondered how to publish your library to Maven central? then this is the article for you!


This is an extract for a blog post I wrote for intohand. Read the full article here.

Whilst emulators provide a function, nothing beats testing on real hardware. As a developer however unless you’re near a test wall of phones, have a very large bag or lots of colleagues/friends who are all running different software versions it can be a pain. It would be ideal if you could have a single phone that acted as a Swiss Army knife.

At the end of this article using a tool called MultiRom you’ll have a Nexus 4 with the option of booting into various versions of Android.


After last nights SWUX meetup I figured I’d share some more links on Google’s Material design that I’ve found since the last meetup I attended.


  • An exploration in Material Design by Arthur Bodolec @¬†Feed.ly¬† – good information about the Z order and a nicely polished example.
  • We Are Living In A Material World And I Am A Material Girl – Trello – Great article that shows before and after material, and most interesting thing for me was how Trello got rid of the navigation drawer.
  • Instagram with Material Design concept by¬†Miroslaw¬†Stanek¬†– some great code samples.

Examples of Material apps – there are several of these kind of sights two of the best are:

  • pttrns.com¬†– has a new beta section showing material/lollipop Android apps.¬†What’s great is you can filter by the type of screen you’re looking for.
  • materialup¬†– showcases material apps and websites but also material concepts and animations


  • Material Palette, pick two of the material colours and this site will generate palette of 8 colours ready to drop in to your app/project
  • Keyline Pushing – Android ¬†app – when running draws an keyline grid on top of apps, useful for designer/developers to validate an app is ahearence to material’s metrics and keyline spec

Yesterday, I spend a morning trying to figure out why a APK expansion file wasn’t downloading see screenshot.¬†¬†This problem was specifically with and Android app/game created in the¬†corona SDK but I guess could happen to standard Android apps. After reviewing¬†Corona labs¬†docs are here¬†and various forum posts it turned out to be a simple fix.¬†android_expansion_file

The¬†expansion file had not successfully uploaded!! ūüôĀ¬†

So triple check the expansion uploaded ok in the Google Play console! We had it fail 3 times for 2 different versions without any error messages.

Check the APK file details you should see the file size includes the expansion file size and see the filename of expansion file.

Official Google play apk expansion docs: https://developer.android.com/google/play/expansion-files.html


Here’s my top¬†takeaways from this year’s Droidcon London.Lollipop Forest-578-80

  • Material design
    • Checklist
    • Papercraft (Chris Banes / Nick Butcher) slides, video
    • The new AppCompat includes the transparent assets (works Pre-L) so we can set an apps colour scheme using the appPrimaryColor and ¬†appAccentColor. Eliminates the need for holocolors.com and adding all those extra assets, Yay!
  • Testing support library – *coming soon Q4 2014* ¬†video
  • Continuous Integration is hot topic with several new services mentioned when talking to people.
    • Travis¬†CI seems to be the popular CI server/solution for¬†open source
    • Green House CI¬†had a stand at Droidcon and having experimented with their CI solution today I’m looking forward to try on live project.

There was also a focus on Custom UI, Animation and Gradle. Specifically with regards to Gradle all the cool kids are writing their own gradle plugins rather than littering build files with custom/boilerplate logic.

This is a couple of libraries that I’ve come across mainly from Android-Arsenal.com and Androiddevweekly.net both essential resources for keeping up to date with all 10’s of libs released each week.

Tip: If you’re using Slack/Hipchat hook up these rss feeds (aa-rss, adw) to your Android team channel/group

Android UI


As you probably saw from my previous post I’m really likely the new material design / Android L look at the moment and keen to bring some of these animations in to my apps.

This library includes 2 views :

  • ActionView ‚Äď ideal for your home icon when using a nav/side menu.
  • RevealColorView ‚Äď brings some of that gorgeous ripple style animation¬†to pre L Android. I love this, I just can‚Äôt find a legitimate reason for using it the apps I‚Äôm working on at the moment.

Super Toasts

https://github.com/JohnPersano/SuperToasts default-super-toast

I‚Äôve previously used Crouton and App-msg both good libraries, but starting new projects from now I‚Äôll use Super Toasts.Like the Crouton and App-msg creating custom styles is easy, but where Super Toasts kills it is the option for having Card Toasts notifications appear at the top of the activity and push other content down. This was ideal of ‚Äúoffline‚ÄĚ notification I needed to be permanently active on each screen while connection was lost. Also creating things like undo bar or retry toast notifications is simple.




Over last weekend I created and released a simple API to perform AES encryption on Android with no dependencies. This is the Android counterpart to the AESCrypt library Ruby and AESCrypt-ObjC created by Gurpartap Singh. I created this mainly due to pain I had writing some code to be compatible with AESCrypt and hoped to save others from that.

*disclaimer : I wrote this ūüôā