Blog Archives

Android at #io16

(As usually…) It has been a while since my last blog post 🙂

This time I’m coming back just to tell you briefly about Google I/O 2016!
Last time it was back in 2013 when I went with my friend Massimo and since then a lot of things have changed. The Android platform got a lot more mature and my impression is that Google started to focus more on simplifying the developer life while still gaining a lot of new data.

I’m not gonna talk about VR, Artificial Intelligence and Machine Learning. These are really cool technologies but my developer heart still belongs to an Android made of custom UIs, Content Providers, messy fragments, multi-threading, memory constraints,… and… why not… Android Studio!

It’s kind of funny because back in 2013 when Tor Norbye and Xavier Ducrohet announced Android Studio starting to ditch support for Eclipse, I was a bit upset. After few months, I started to appreciate IntelliJ and all the efforts that the Android Developer Tools Team made in order to have a first class Android IDE integration/experience.

…but this is the past!!! Without forgetting about being dwarfs standing on the giants shoulders, let’s focus on the present and what’s ahead of us! 🙂

This Google I/O 2016 came with a lot of news:

  • Android N will support native Multi Window with Drag&Drop capabilities.
  • ConstraintLayout: not a RelativeLayout, not a FrameLayout, not a LinearLayout, not a PercentageBlaBlaLayout,… but a completely new ViewGroup that comes with a full integration in a new layout editor for Android Studio. The power of this new tools is based on the promises of flattening drastically the View hierarchy creating constrains between Views and parents! 🙂
  • Java8 support + Jack Compiler
  • An APK analyzer to inspect generated APKs and help you try to remove un-necessary and/or un-optimized resources
  • Instant Apps is a new feature that will allow you to modularize more your application allowing the user to download just a single use case of your app, without having to install a full APK. Even if it might look a bit strange, this tool could be really handy when it comes to introduce your service to new users, engaging them little by little.
  • Android Wear 2.0: even if it comes as a preview, it will have a new enhanced user interaction and more immersive experiences.
    • Watch Faces will support more than just time and battery info. There will be a chance to support more complicated(complications) data that will provide useful info to the user.
    • Notification will come with a new interaction style and paradigm.
  • Firebase: this is kind of hard to describe. The most simplest description that comes in my mind is “A magic box that contains a lot of tools to help you build better apps.  All these kind of little things those are taking a lot of time when developing new features in your apps will become definitely a lot easier. A/B testing, analytics, syncing, login, GCM,… have been bundled and connected(not all of them) togheter into Firebase, giving you a simple way to check and maintain them.

…there is definitely a lot more and you can check it out on the Google I/O 2016 Youtube channel!

I hope you’re gonna enjoy some of the pics I took over there 🙂

This slideshow requires JavaScript.

Cheers,
Simone

P.S.:
..if you live in UK, have a long weekend! 🙂

Advertisements

Data Exchange and Sync (part 5)

Since the beginning of our journey, we have tried to create a wearable experience starting from our existing handheld app. A first working solution has been achieved just taking advantage of the WearableExtender that has allowed us to easily extend the status bar notifications, providing detailed info and extended functionalities to the wearable device. Even if this approach can work for the majority of the applications and it is really straightforward to achieve, it has some drawbacks in terms of achievable features and availability of content on the smartwatch. In fact, if the smartphone and the wearable device are not coupled, the latter one cannot offer any more access to the previously shown content. Keeping in mind that the wearable device is not a substitute of the handheld one but more like an extension that should try to simplify the user life, we have then exposed a limited number of functionalities into a custom wearable app. In order to achieve this result both applications currently share a common module but are decoupled in terms of single application modules. In this way it is possible to recycle and share code elements like the ContentProvider, the models and common utilities but at the same time keep distinct the different platform based implementations. In Pimp my Wear, this solution has led us to a wearable application that can be used by the user even if the two devices are temporarily disconnected but at the same time to a situation where the content gets out-synced. In this chapter we are going to have a look at how the Wearable Api can help us exchanging and syncing data between the two different devices.

Read the rest of this entry

Pimp my Wear (part 4)

In Colonizing Wearables, after a first attempt of running the existing handheld version of the Books application on a smartwatch, we ended up creating a simple Android Wear module that displays the number of available book entries. This has been done not only to discover more about Android Wear, but because a handheld app should not be just ported to a wearable device. During our journey, we have introduced few of the new UI components offered by the wear support library. Among them, WatchViewStub has allowed us to handle different screen shapes, figuring out at runtime the type of display. We also had a chance to understand the reason why and how the wearable module has to be included into the handheld build. Therefore, the goal of this part is to evolve the previous module into something that can be easily used by user and that tries to follow as much as possible the android wear design patterns.

Read the rest of this entry

Colonizing Wearables (part 3)

In Landing on Wearables we have approached wearables devices extending our existing app’s notifications and explaining briefly how to bind them to our development machine for debugging purposes. Now it is time to study more in deep what we can achieve directly on a device running Android Wear, understanding the constraints and the possibilities that the platform introduces. We will continue to keep as reference the Books application previously developed and we will try to create an Android Wear module.

Read the rest of this entry

Landing on Wearables (part 2)

In Introduction to Wearables we had a look at some of the concepts those are the foundations of Android Wear. In this part we are going to skip completely any considerations on that and we’ll have a look at how things work underneath. In particular, we’ll have a look at how to extend existing application’s notifications and how to debug on wearables(this second part will be used for the following tutorials). In order to achieve this, we’ll start with a sample application that runs just on a handheld device and we’ll try step by step to extend it, trying to create a beautiful user experience even on a device running Android Wear. Read the rest of this entry

[Story Of My Life] London Chapter Two

It looks like that Today it’s my second year anniversary here in London 🙂
I want definitely to be a lot more concise than the past year but at the same time I want to write something that will remain as stone in the path of my life. Read the rest of this entry

Geolocation Panel at #AppsWorld

Hi all 🙂
today with Ian Holt(Ordnance Survey), Carl Patridge(London & UK Bus Checker) and Josh Garnier(OpenTable) I have taken part into a panel, moderated by Shivam Gadhia(Novoda), about Geolocation for the Android platform at the Exhibition Center in Earls Court. Due to time limits we haven’t touch in deep every different aspect of the “new” Google Play Services but we have given to our gently audience a panorama around what this new service offers.

First of all, I would like to thanks all the people that have attended our panel and that have beared my accent. Then all the other panelists those have explained pretty well, thorough their working scenarios, all the problems, issues and solutions that they encounter every day during projects lifecycle.

Somedays ago I have read a post on a blog that accuses Android not being open source anymore and that now only Google has the full control on it through their magical Google Play Services: that’s not completely true. If you think about Android as an Operating System, the Play Services are a useful tool on the top of it and something that helps you dealing with complexities of the Android platform. In an ideal World, every device should have its Google Play Store installed, with every kind of related plugin, but, due to the open nature of Android, any different brand can customize and provide a different build.

In this way it’s quite difficult to have the Google Play on devices like Kindle or build those mount different stores for the apps.

So, when you are conscious that on most of the devices (90% on the market) around the World the services can be available, you should start to think something like:

  • Ok, I want to target that 90% without considering the other 10% taking advantage of the Play Services higher level API
  • I can take advantage of the Google Play Services and at the same time provide a customized(not necessarily worse) solution on the remaining 10%

One thing that I discourage you to do is to rely completely on the old location management for all the available devices. It’s true that Google Play Services aren’t available on every device and that managing all the possible edge cases can create some complexity, but at the same time, if you are able to use them, you’ll get rid of a lot of complexity to manage Geolocations issues. At the same time the device battery, other applications and your application as well will benefit of the big advantage of this new top layer tool; indirectly this means that you’ll provide a better experience for your users those will definitely be more happy!

Cheers,
Simone

MyNextBus #London

not_a_num_co_ukIf you have to come here in London for a huge bier or for an holiday you cannot miss to use that’s new App. Born to be simple, easy to use and funny, MyNextBus London by NotANum will allow you to search every bus in London!

After a minimal blue splash will have a list of all closest bus stops around you ordered by distance. If you tap on of those entry you’ll access to the sublist of all bus those are arriving or those will arrive in some minutes.

…that’s all! Simple! Fast… and without any complications when you are in a hurry! 🙂

This is the first version but we’ll definitely improve it with some new useful features!

 

MyNextBus London

 
Enjoy now on GooglePlay

P.S.: I’m pretty sure that in some weeks it’ll be available for the iOS platform too! 😉

The scent of frenzy into a new life: #London

Taking pics easily with #WeddingSnap

On 17th September I have taken part into WeddingSnap project as Android consultant and developer. At first, I was so confused and astonished by the idea that a guest takes pictures with his phone at a wedding. But after a few days I have noticed that this is a great idea! Far from Italian traditions, catching pics socially is a great thing because it increases and amplifies the sense of friendship and closeness between people. In fact, if you consider that we are talking about unforgettable and precious moments you’ll certain understand that the bride and groom want all best things in their precious day.

15 years ago we were used to take pictures through simple cameras but now, in an era governed by most famous social networks and technologies, we are using smartphones more and more. WeddingSnap tries to collect these special moments merging wedding’s pictures into shared album, avoiding  useless tricks to share pics between guests. Through this idea all people involved in a wedding can take and share a lot of photo shoots without caring of number limits and distribuition of them.

In just one month the Android app is grown quickly, giving to this project a great contribuition. In particular, if you decide to take a look on GooglePlay, you’ll find these new features:

  • Off-line mode: you can collect pictures without connection and upload them in another moment
  • Share: you were so marvellous at your friend wedding! Why not share that shoot on Facebook or Twitter?
  • Get it! now you can download on your phone pictures shared by other guests!
  • Fastness and responsiveness: old version of WS were too slow… and now it looks very fast!
  • Delete it! Don’t worry if you have upload the worst picture of the Wedding!
  • Several improvements on errors! have you noticed that now app is more stable?

If you aren’t ready for your first, second,….. wedding, give a look at ForeverSnap! You aren’t forced to use a wedding app if you only want to collect other events pics 😉