When we shifted to Kotlin at Gradeup, we realised that the www was pretty unfriendly for a coroutine beginner- there was a lot of information available but one had to really go through a ton of articles for Coroutines to start making any sense! I often ended up fumbling through the internet, having words like scope, dispatchers, builder, asyncawaitsuspendaaaaaaaah! thrown in my face, and after I could finally decipher Coroutines, I decided to use my bad experience to create a good one for all the fellow Coroutine-noobs out there. So here’s presenting this comprehensive article!

We shall be covering the…


Gradle- how often do we neglect this amazing build system and treat it as a black box, blindly copy pasting code into it! While that, without a doubt, is so very convenient (hail Stack Overflow!) , it wouldn’t hurt to know what goes on behind the hood, now would it?!

In this article, we’ll be talking about

  • Types of Gradle scripts: build.gradle, settings.gradle and gradle.properties
  • Structure of gradle files
  • api vs implementation

So let’s get started…

Or wait..

Before we talk about the structure and types of Gradle files, let’s first touch base with the language it uses. …


If you have worked on end to end development of an Android app, you are bound to have crossed paths with the magical tool called Proguard! If you haven’t or are having trouble wrapping your head around it, worry not; this article is here to help! By the end of it, you should have a fairly decent idea of what Proguard is and how to seamlessly integrate it with your Android app to reap its benefits.

So let’s delve straight into it and demystify the air that surrounds it!

What is Proguard?

ProGuard is a free Java tool in Android that performs three…


Build time is every Android developer’s nightmare! How often, at the end of a long, tiring day at work, we look back only to realize that the most of our time, energy and patience has gone into building and rebuilding our apps! Something as simple as optimizing the build time can save us a lot of frustration and give us a few extra hours each day!

Here are the steps we followed at Gradeup and GoPrep to reduce our debug build time by about 50%!

1. Profile the build

Before making any optimizations, let’s first run the a profiler on our app to get…


This article is based on the assumption that you have read and understood the first two parts of this series, viz

Let’s get started!

…10. Classes & Constructors:

A class is declared using the keyword class.

Primary Constructor: The primary constructor is part of the class header

class Customer public @Inject constructor(name: String) { ... }class Person constructor(firstName: String) { ... }

If the primary constructor does not have any annotations or visibility modifiers, the constructor keyword can be omitted:

class Person(firstName: String) { ... }

The primary constructor cannot contain any code. …


So we meet again!

This articles assumes that you have given ..

..its fair share of time and focus. This time around, let’s delve into the pool of functions and constructors and objects and companion objects and what not; let’s make programming great again!

…6. Lambda Expressions:

A lambda expression is an anonymous function: a function without name. These functions are passed immediately as an expression without declaration.

A lambda expression is enclosed inside curly braces.

fun main(args: Array<String>) {val greeting = { println("Hello!")}// invoking function
greeting()
}

Output:

Hello!

Here, a lambda expression is assigned to variable greeting. The…


This series of three articles assumes that you have absolutely no idea of whatsoever-in-God’s-name Kotlin is, and it shall see to it that, by the end of these articles, you are equipped well enough to dive head first into the awesome universe of Kotlin! For all those Java bros out there, we will also come across some Java v/s Kotlin face-offs to see how concise yet powerful Kotlin is in comparison to dear old Java.

What is Kotlin ?

Kotlin is an Android-compatible language that is concise, expressive, and designed to be type- and null- safe. In more relatable words, it is the modern…


Have you ever had your patience tested by apps that cheekily keep flashing their logos at you for a moment too long, while you just cannot wait to order food or book a cab or pay the cab driver and rush to work? If that sounds like you, you too have been a victim of poor cold startup time, and unless you want your app to add to that growing pool of the digitally downtrodden, read on!

Cold start? Enlighten me, please!

Cold start refers to an app starting from a scratch, that is the time taken from the moment the code is initialised till…

Faheem un nisa

Staff Engineer @ Gradeup

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store