Google Developer Days – India 2017 (#GDDIndia)


Google Developer Days (GDD) are global events showcasing the latest developer products and platforms from Google. This year’s event was organized at the Bangalore International Exhibition Center, India. From what I hear, there were many registrations and I was one of the lucky few to get confirmed. This was by far the biggest Google event in India with over 100 Googlers.

The event featured technical and casual talks, training and informational sessions on a range of topics including Android, Firebase, Tensorflow, Google Cloud Platform, Internet of Things (android things), Progressive web apps (PWAs), Search engine optimizations, Google Assistant, Actions on Google etc. You can catch the keynote here.

Attending Google IO has been my dream for a long time and this event was almost a mini IO. I was super excited. The sad part with events such as Google IO and GDD is, there are several sessions happening in parallel, and unless you have Hermione’s time turner you can’t catch them all. The happy part is all the videos are available on YouTube.

The 2 days (1-2 Dec 2017) of the event were filled with amazing sessions and hands-on training of many Google technologies. There were 2 halls for training, 2 for sessions, one community lounge, and booths for partners, demos, and Q&As.

GDDIndia started with a keynote speech from Pankaj Gupta, Anitha Vijayakumar, Tal Oppenheimer, Francis Ma, Kaz Sato, Dan Galpin, and Sachit Mishra. The speak gave a good overview of the recent releases of Google technologies and products designed specifically to serve the Indian market. Google is really going all the way and this event is yet another proof.

Next, I headed for the Build An App Architecture Components training session by Lyla Fujiwara. If you have been following Android and Google development channels, you already know Lyla. Architecture components were announced in Google IO 2017. It addresses some of the most common issues of Android app development and makes Android app development so much fun. Architecture components is a way to architect android apps and uses components like Live Data and Lifecycle and makes code testable. Lyla explained the concepts and walked us through Codelab. There were tons of TAs (teaching assistants) helping the audience with Codelab. To be honest, I didn’t quite like it as I can do the Codelab anytime I want rather than do it in the training. But yes, all my architecture component queries were dead after this session.

I had attended only one hands-on training session and had missed over 10 events already. Telling myself that the sessions will be on YouTube, I moved on to the next session; Android Oreo and support library session by Daniel Galpin. The session was quite good. He covered adaptive icons, picture-in-picture, notifications, shortcuts, auto fills, strict mode, downloadable fonts, compact library changes etc. In short, everything that was released last year. The session was short, crisp, informative and to the point.

I did not want to miss the Android things training on creating own Internet of Things (IoT) devices. It is an Android-based embedded operating system platform by Google. Android things is aimed to be used with low-power and memory constrained IoT devices. This was one of the most popular training sessions of the event and I barely managed to get in. I got to experiment with Raspberry Pi and i.MX7D board and followed Codelab. It was fun flashing Android things OS in Raspberry Pi. I couldn’t finish Codelab in time because of some error in booting the display module but I can try that later. I then attended some more sessions on extending Google docs, Android vitals and material design and the “After Party”. The first day was over just like that.

Day 2 keynote by Sebastian Trzcinski-Clément and Sowmya Subramania started with Google’s efforts in changing the world, one bit at a time. Sebastian explained about Google Launchpad program for startups. This was followed by a special interview from Dr. Geetha Manjunath, CEO, and Co-Founder of Niramai (a part of Launchpad program).

TensorFlow for Poets 2: Optimize for Mobile was the next training for bringing the power of machine learning into android. The models for machine learning take considerable space and hence are not suited for mobile. TensorFlow lite addresses this issue by bringing down the model size to make it usable in Android apps. There was some internet issue (read no internet) and I couldn’t finish the Codelab, but Kaz Sato explained the process in layman terms, in Codelab and in another session after that. Then I hopped into the community lounge for GDE program info (Google Developer Experts). A GDE is someone recognized by Google and the community, as an expert in certain Google technologies. This was all about becoming a Google developer expert. Nice pep talks from existing GDEs and Googlers.

There was another session by Lyla Fujiwara on Android Instant apps. Here is a little info if you don’t already know about it: with Android Instant Apps, we can divide an Android app into small apps which contain one or more features. The beauty of instant app is it allows a portion of an app to run on a device without actually installing it. No separate codebase needed.

Since I am attending Google Developer Days, how can I forget Firebase? Having missed some sessions, I attended the next session on live coding and Firestore with cloud functions. Firestore is a document based real-time database and works seamlessly with cloud functions. This was one thing that was missing from Firebase; a real-time, all-powerful, scalable database. It contains all the goodness of real-time database and scales easily. Live coding and information were well received by the audience.

There were a couple of more sessions on Google Sheets API and SEO (Search Engine Optimization) for PWA (Progressive Web Apps). PWAs are websites that can reside on a mobile device as a tiny-app and supports push notifications and local storage. You create an app without actually creating it, just modify your website and you get yourself a PWA.

That was the end of this grand event. I learnt a lot of stuff, in fact too much to digest in a couple of days and I have missed ~75% of the sessions. Now, I just can’t wait for the next Google Developer days event.

-Kaushal Dhruw (@drulabs Twitter / GitHub / StackOverflow)

Importance of Interrupt Testing on mobile applications

Introduction:

Many-a-times I face problems that happens due to interruption on mobile application. But have you guys ever wondered why these problems happen?

 

In this blog, let’s discuss the below topics to understand interruptions, its impact and how mobile applications can handle such interruptions.

Continue reading

Verify your SSL, TLS & Ciphers implementation

Secure Sockets Layer(SSL) verification helps us to identify any issue with certification and cipher suites. This verification must be performed on a regular basis. There are multiple ways to check SSL certificate. However, testing through online tools provides you with useful information. The main advantage is that it helps you test the SSL for issues in the initial stages itself.

NOTE: An incorrectly configured SSL/TLS can make your website vulnerable.

This blog details SSL server test by using the online tool SSL Labs by Qualys. Continue reading

Contrast enhancement for grayscale images

Introduction

A grayscale image captures the intensity of light in pixels. In digital image processing, intensity values are discrete integers ranging from 0 as the lowest intensity or darkest, to 255 as the highest intensity or brightest. As opposed to RGB images with numerous color variations, disparity between darkness and brightness or namely contrast is the only distinguishing factor among pixels for grayscale images. Hence it is vital to have a good contrast to accurately capture information and better visualize features.

In this blog, we will deal with an example where contrast is low. We will then define histogram to measure and use a few techniques to enhance contrast. While aiming to capture edges as image feature, we will demonstrate the impact an image with a good contrast has on this process. Continue reading