Skip to main content


Steadily advancing through the Android Developer Nanodegree, I've now reached Level 3 on the curriculum, "Gradle for Android and Java" in which students learn how to use Gradle to "turn a pile of source code and resources into a shipped,tested and functioning app".
Tools which automate a project's build process have become an essential part of any developer's toolchain, considering that nowadays the making of an application is not just constrained to writing code.There's also other accompanying tasks that should be run in parallel.Some of those are identifying and bundling dependencies, copying resources such as images and strings, running unit tests, diversifying through product flavors, minifying or obfuscating the source, handling signing keys, packing a jar or apk and deploying the finished product to a repository or even publishing it to Google Playstore.
Trying to follow a sequence and manual tracking of all those tasks as well as repeating them when deemed necessary, translates into decreased productivity forasmuch as the time lost on such tedious procedures, that could otherwise be automated, could have been funnelled to other activities such as coding, developing and improving the overall quality of the end product instead.
Fortunately there's dedicated build tools for that, Ant, Maven (for a rundown on building projects with Maven make sure to check my recent Hardcore DevOps article) and Gradle, the latter being considered the more advanced post-modern counterpart which offers a wider array of functionality, spans scope boundaries in being capable of working with projects written in multiple languages the likes of Java, C++ or Python, and brings significant performance improvements. (Gradle vs Maven: Performance Comparison).It's no coincidence that Google has chosen it as its official build system.
But what do all these have to do with Android Studio? Well Android Studio delegates everything about building an application to Gradle, although the same procedures could be very well performed on just the command line as well.


Popular posts from this blog

How Much Gameplay Can You Pack In Just 13K?

Given our expectations of Xbox games, you might consider writing a game within a 13K limit, which is the challenge for the annual js13K competition far too restrictive. Its results are now out and prove that it is possible to produce a game that is fun to play. 

Back in the tape loading days and on platforms the likes of Commodore64 games came in sizes of 4K or less. As proof of concept, here's a list of a few such 4K titles, copied over from Lemon64 's archive:
Alien SidestepBug CrusherDot GobblerClose EncountersDot Gobbler v2GridrunnerLaser CyclesMarios BrewerySpace ActionSpace RicoshayTank WarsHesmon64Retro Ball  Fast forward to now, at a time when Javascript's eating the world by making all sorts of applications or  games available to everyone through the medium of the browser, rendering the need of dedicated platforms and Operating systems obsolete, 13K is sufficient enough to pack both gameplay AND cool graphics due to the advanced browser engines and HTML5.

Book Review : How To Create Pragmatic, Lightweight Languages

At last, a guide that makes creating a language with its associated baggage of lexers, parsers and compilers, accessible to mere mortals, rather to a group of a few hardcore eclectics as it stood until now.

The first thing that catches the eye, is the subtitle:

The unix philosophy applied to language design, for GPLs and DSLs"
What is meant by "unix philosophy" ?. It's taking simple, high quality components and combining them together in smart ways to obtain a complex result; the exact approach the book adopts.
I'm getting ahead here, but a first sample of this philosophy becomes apparent at the beginnings of Chapter 5 where the Parser treats and calls the Lexer like  unix's pipes as in lexer|parser. Until the end of the book, this pipeline is going to become larger, like a chain, due to the amount of components that end up interacting together.

The book opens by putting things into perspective in Chapter 1: Motivation: why do you want to build lan…

Hour of Code 2017 Introduces App Lab

t's the time of year when the world-class Hour of Code once more commences; just an hour for introducing coding to the uninitiated, having them complete self guided tutorials. But is a hour sufficient? What can a beginner actually code within this limit? The answer is a bit more complicated than that, so let's find out all about it! Integrated into the larger, worldwide, annual Computer Science Education week, this year taking place December 4-10, Hour of Code's novel mission has always been to get everybody coding, aged from 4 to 104, by providing: "a one-hour introduction to computer science, designed to demystify code, showing that anybody can learn the basics, and broadening participation in the field of computer science". But first of all, why this obsession with Computer Science, in particular in getting  kids as young as 4 to learn to code? The answer is simple. Nowadays code is everywhere around us, from desktop computers to mobile phones and, thanks to w…