Skip to main content

Introduction to Kotlin

Why Kotlin?
  • Java have so much boilerplate code.
  • Some other languages has performance issues. 
  • Kotlin is statically typed language that runs on the Java virtual machine and also can be compiled to JavaScript source code.
  • Inspired by Java, Scala, C# and Groovy.
  • Kotlin develop such a way that it can be use for any type of application such as web, Desktop,  Server-side. But it's adopted heavily in Android. 
  • Interoperability allows gradual adoption. So no need to change whole codebase into Kotlin.
  • Gradle has adopted Kotlin for it’s scripting and plugins. Gradle using Groovy for scripting and plugins.
  • In Kotlin everything is an object.
  • Two ways to declare variables in Kotlin : var for mutable and val is for immutable.

These are some of the plus points of this language. So let's dive into this language.

Kotlin programs start at the main function. When targeting JVM, function will be compiled as a static method.
To save file as a kotlin file you need to add .kt extension to file name. 

Let's look into var and val example.


Let's see another example of how to use multilines in Kotlin.

Comments

Popular posts from this blog

How to check internet connectivity in Android app using BroadcastReceiver

So let's get started with How to check internet connectivity in Android using BroadcastReceiver. For this post I'm using Kotlin language. Well lots of people are using simple method to get network connectivity using ConnectivityManager. But using that approach we will get network state only when we are calling that method. So how would I know that network state changed. This will achieved using BroadcastReceiver.  What is BroadcastReceiver? BroadcastReceiver uses Publish-Subscribe pattern. Android app can send and receive messages from Android system and other apps.  Android system sends broadcast when various system events occurred like device charging, network state changes. Apps can register to receive specific broadcasts. When a broadcast is sent, the system automatically routes broadcasts to apps that have subscribed to receive that particular type of broadcast. So for this scenario we need to add some changes in AndroidManifest.xml file - ...

RxJava introduction for Android developer

RxJava is Java implementation of Reactive Extension. Basically it’s a library that composes asynchronous events by following Observer Pattern. You can create asynchronous data stream on any thread, transform the data and consumed it by an Observer on any thread. The library offers operators like map, combine, merge, filter and lot more that can be applied onto data stream.  Below are the list of schedulers available and their brief introduction. - Schedulers.io()  – This is used to perform non CPU-intensive operations like making network calls, reading disc / files, database operations etc., This maintains pool of threads. 

 - AndroidSchedulers.mainThread()  – This provides access to android Main Thread / UI Thread. Usually operations like updating UI, user interactions happens on this thread. We shouldn’t perform any intensive operations on this thread as it makes the app glitchy or ANR dialog can be thrown. 

 - Schedulers.newThre...

Get domain name from URL in android

Sample Code: String url="http://sports.in.msn.com/football-world-cup-2014/world-cup-animals-5"; String hostName=getDomainName(url); private CharSequence getDomainName(String shareURL) throws URISyntaxException {    URI uri = new URI(shareURL);    String domain = uri.getHost();     return domain; } above method return host name from given URL. You can get more from URL using below methods. uri.getProtocol(); uri.getAuthority(); uri.getHost(); uri.getPort(); uri.getPath(); uri.getQuery(); uri.getFile(); Output: protocol = http authority = sports.in.msn.com host = sports.in.msn.com port = -1 path = /football-world-cup-2014/world-cup-animals-5 query = null filename = /football-world-cup-2014/world-cup-animals-5