Speaker

Chandra Sekhar Nayak

Chandra Sekhar Nayak

Building Android apps for Lowe's

Bengaluru, India

I am an Android developer since last 7 years. Apart from developing Android apps for my employer, I do organize BlrKotlin (India's biggest Kotlin focused user group). I create YouTube videos for my channel "Chanse Code" and sometimes blog at chansek.com

Area of Expertise

  • Information & Communications Technology

Topics

  • android
  • Kotlin
  • java

Sneaking inside Kotlin features

Kotlin has many language features even though none of them are supported by JVM or Android ART. This talk will go through all the language features and understand how they work internally for JVM or ART compatibility.

Many developers in our community uses all these APIs without knowing how they work. After this talk, they will have a good understanding of how those features work.

Bringing MATLAB like syntax to Kotlin

MATLAB is a very powerful language when it comes to Matrix. We can definitely do the same in Kotlin but with cryptic syntax.

This talk goes through the syntax of MATLAB one by one and does the same in Kotlin which looks similar to the MATLAB syntax. We will see lot of examples and understand how various Kotlin features can be leveraged to build a good syntactical API to it a fun language for Matrix manipulation.

Now a days ML is trending and Matrix is building block for those. By the end of this talk, audience will feel that Kotlin can also be good alternative in ML world.

Sneaking inside JVM language features

JVM languages like Kotlin, Scala has many language features even though none of them are supported by JVM. This talk will go through all those language features and understand how they work internally for JVM compatibility.

For example:
1. Do all know, how features like default arguments and named arguments works?
2. Do all know, that switch statement can only work with integers? Then how when expression works with almost all data types?
3. Do all know, how inline classes works?
4. And many more features.

Many developers uses all these APIs without knowing how the respective compilers generate code underneath to make it JVM compatible. After this talk, they will have a good understanding of how these features work internally which obviously make them a better programmer.

Sneaking inside Kotlin features (Part II)

Kotlin has many language features even though none of them are supported by JVM or Android ART. This talk will go through all the language features and understand how they work internally for JVM or ART compatibility.

For example:
1. Do all know, how features like default arguments and default methods (in interface) works?
2. Do all know, that switch statement can only work with integers? Then how when expression works with almost all data types?
3. Do all know, how inline classes works?
4. And many more features.

Many developers in kotlin community uses all these APIs without knowing how they work. After this talk, they will have a good understanding of how these features work internally which obviously make them a better programmer.

As the same topic is already presented at DevFest Kolkata 2019 and going to be presented at DroidKaigi 2020, I will make this talk with few different examples and features.

None to Manual to Dagger (A DI Journey)

Everyone starts learning dagger from its annotations (e.g. from @Component to @Scope), and finds it difficult to learn. However, we can learn it using an opposite approach and learn it better. This talk is going to discuss about that reverse approach to learn dagger.

Instead of learning what is @Component and how to use it, this talk first goes through something
which doesn't have any DI and then discuss about the ways to inject the dependencies manually. In this
journey of migrating from "No DI" to "Manual DI", we will end up at a place where our codebase looks
somewhat similar to dagger's generated code. Now is the time to replace those with proper dagger annotations and make it a journey from "Manual DI" to "Dagger".

In this journey, we will see a lot of Dagger's generated code first (as if we wrote them ourselves) and
then Dagger's annotations. This will make everyone visualise which Dagger annotation is doing what job and which should be used when.

Target Audience - Beginner

What's inside an Rx Chain

RxJava lets us think data as a stream. Each Rx Chain does three major work (Creates the stream,
Manipulates it through multiple operators and Terminates the stream ones consumed). One of the most powerful thing about RxJava is its operators. We use them heavily without even knowing what these operators actually do under the hood. In this video, we will explore all these operators and understand them better.

For Example, we will go through the internal workings of simple operators like filter { ... } and map { ... }
to more complex operators like flatMap { ... } etc.

We will see how Observables are created internally and how the created Observable are passed to one operator and gets assembled with a new Observable and passed into another operator downstream.

We will also see how operator fusion plays a very good role in the Rx chain.

ML == REST

Machine Learning is not everybody's cup of tea. It requires a lot of skill on Algebra and related algorithms. Does that mean, we should ignore this skill and move ahead? Of course not!!! Now a days, there are many solutions who exposes the ML capabilities as Restful Web Services. In this talk, we are going to explore one such tool called "Firebase ML Kit".

Firebase ML Kit is a tool, by integrating which, our app enables to solve lot of ML problems with ease. And the best part is, we neither need to learn Python nor Algebric algorithms. It will feel as if we are consuming some Restful API through a wrapper called "Firebase ML Kit".

There are lot of features provided by Ml Kit, we will go through many of them and try to understand how easy it is to enable an Android app to have ML capabilities. As the talk proceeds, audience will have a confidence of trying to enhance their existing app with some of the features discussed.

The motive of this talk is to let the audience know that adding ML features in their app is like consuming some Restful Web Service. And because of this many developers who have already used "Firebase ML Kit"
or might want to try it in near future, may have a misconception that ML == REST. However, that is not true. Machine Learning can never be equal to any Restful Web Service. By the end of the talk, We will conclude with ML != REST.

DroidKaigi 2020

February 2020 Tokyo, Japan

DevFest Kolkata 2019

August 2019 Kolkata, India

Chandra Sekhar Nayak

Building Android apps for Lowe's

Bengaluru, India