150+ iterations, 0 Google searches: How we muscled our AIA across a moving finish line

Dwija Patel
CBC Digital Labs
Published in
4 min readFeb 12, 2018

It’s that rare moment in modern life where you can’t turn to Google with a query. Where can I find the best coffee? Who are the Oscar nominees? Or, as I had come to use it, how can I fix a piece of code?

Recently, I had to abandon my habit of Googling for answers. My team and I were going to a place that was new and fresh, facing problems that had not yet been solved. In fact, the questions had never even been asked.

The task: Be among the first developers to build an Android Instant App (AIA).

And here’s what I learned working on this project — being among the first was an inconvenient blessing, our biggest challenge and our greatest reward. We were forced to approach problems in a new way, which at times felt terrifying. More importantly though, it allowed us to see ourselves as creators instead of fixers.

But let’s start at the beginning.

Here’s the track, but where’s the finish line? Photo by Ciprian Pardău on Unsplash

Last February, Google asked the CBC to participate in their second wave beta group for their recently launched AIA product.

A bit of background — fewer people are downloading apps to their phones so Google came up with the solution to run an app without forcing the user to install it. It doesn’t eat up space on the user’s phone and it allows for the same native experience. It’s a win-win.

As an Android app developer with CBC’s Digital Products team, being asked to take part in this initiative was a really big moment for me. I knew that very few people get a chance to do this kind of work and I wanted to make the most of the opportunity, not only for myself, but also for the other developers I work alongside.

Working with another developer and a designer, we set a goal to build an AIA for our Android News app, and used our 20 percent time — dedicated time we can use to work on problems or new initiatives — to get the job done.

Tidying up the codebase

We began with a little housework. AIA limits permissions and third-party libraries, so we combed through our code and removed them. We also had some unused resources and classes, so we removed those too.

The benefits were enormous; specifically, we saw a significant reduction in size. But we weren’t yet within the 4MB limit for the AIA. Our codebase is pretty large and monolithic, so our next step was modularizing our code. Then, we implemented the Android app link to allow for deep linking.

Next, it was time to test. It was a bit rough in the beginning because AIAs are not supported by all devices. When the code broke, it was difficult to figure out if the problem was on our end or Google’s, as they were also in a staging environment. We did as much troubleshooting as we could and when we came up against problems we couldn’t solve, we contacted Google. Very quickly, we developed a great relationship with their team.

Finally we took some time to understand how the development and production channels functioned. We needed to figure out how and where to upload — again, we relied on Google’s help to push this through.

Crossing a moving finish line

As with any experimental phase, the Android studio version with Instant app SDK support was continuously changing — as Google received feedback from their AIA partners, they iterated and improved the SDKs and Android studio.

This was a huge challenge. It was difficult to build momentum with the continuous change. What’s more, as soon as we thought that we had reached the end, the finish line had moved. We persevered, solving new problems with determination to complete the project on time.

Finally it was time to meet with the Google team and present our final product.

Me at the end of our trip to Google — excited to have made it to the finish line! Photo courtesy of Dwija Patel

We were so excited! We arrived in San Francisco only to find that the SDK had changed. Again. It was time for round 152 of iteration. And we needed help.

I worked up my courage and turned to Google’s team. This was the most wonderful thing — throughout this whole experience, I learned to rely on others to help solve problems.

It was tremendously helpful to be in that environment, being forced out of my regular routine. It was a true collaboration between the CBC and Google. And quite honestly, it was a thrill to sit with other developers and fix things together.

With help from Google’s team, we muscled our way to another version, and finalized our CBC News AIA in time for Google IO’s announcement. It was touch and go there for a minute, but I’m happy to say that now you can see the CBC News logo alongside those of Google’s 49 other partners chosen to take part in the AIA launch.

Woohoo! Seeing the gem represented here makes me feel so proud; image source

At the end of the day

Was it easy? Definitely not. But worth it? Absolutely. It was an amazing experience to get a peek into how things work at Google, and to see the CBC working with cutting-edge technologies. Ultimately, being reminded that we have enough knowledge and courage to tread a new path and seek out solutions to new problems is a lesson I won’t soon forget.

--

--