139: Static code analysis with Manu Sridharan

In this episode, Donn and Kaushik talk to Uber’s Manu Sridharan on static code analysis. Manu’s a badass who did his PhD on the subject! He explains how static code analysis works, how Uber leverages these tools in their app development pipeline and how we can use such tools to build high quality Android apps.

Download

Shownotes

Note from Manu:

I found the story I was thinking about: Reed Hastings founded the company that built the Purify tool for debugging memory errors in C programs before founding Netflix. But, that’s actually not a static analysis tool; it does dynamic analysis by adding extra metadata at runtime.

As far as the history of lint goes, from Wikipedia looks like Kaushik’s guess was exactly right as to why it’s called lint. Looks like the name goes back to the late 1970s.

Misc

Contact

138: Decompress – kotlin scripting

In this mini fragment, Donn asks KG about a recent hackathon side project that he worked on with Kotlin scripting.

We go into kotlin scripting (using kscript), pros cons, setting it up and more. We’ve added links some interesting resources, so you want to make sure you check out the shownotes for this one, so you too can explore kotlin scripting and see if it’s a fit for you.

Download

Shownotes

Existing solutions for poll/vote tabulation

Misc


// slick kotlin usage override fun onCreate(savedInstanceState: Bundle?) = super.onCreate(savedInstanceState).also { setContentView(R.layout.activity_something) // ... }

Sponsors

Contact

135: You can’t learn everything

Donn’s on a roll again this week and talks to us about his experience having developed Android for a while. In the early days of Android development, as app developers we felt like we had a decent grasp of everything you needed to know to pump out decent apps.

But with the time, and the latest updates, that has become a tricky thing. This is a good problem to have for the ecosystem but it can make it seem very daunting for developers, both new and old.

Donn gives his 2 cents on this subject.

Download

Contact

133: Dependency Injection and Service Locators in a Kotlin world with Danny Preussler

A hotly debated topic at the moment is the use of a library like Dagger for dependency injection in the world of Kotlin. In this episode, we talk to Danny Preussler. Danny’s a pro who’s been around from the Java 1.0 days! He helps trace the history of dependency injection in Java all the way to today, in a Kotlin world where there exists alternatives like Koin and Kodine.

We dive into how some of these use a Service Loader/Locator pattern and the subtle differences with dependency injection. Listen on for an action packed episode.

Download directly

Show Notes

Service Locators vs Dependency Injection

Your application is aware it’s using a Service Locator, but your application should be totally un-aware that it’s using a Dependency Injection Container.

Sponsors

  • Bitrise – Bitrise is your mobile continuous integration and delivery for your whole team, with dozens of integrations for your favorite services.

Contact

132: Dealing with Money in programming

In this mini fragment Kaushik talks about dealing with the Money object. With money we need decimals, but the obvious solution of using a float or double may not work as advertised. Listen to this episode to find out why and how you can go about dealing with this.

Download directly

Show Notes

Problematic snippet 1:

println(1.03-0.42) # prints 0.6100000000000001

Problematic snippet 2:

var x = 0F
(1..100).forEach { i ->
    x += 0.01F
}
println(x) # 0.99999934 vs 1

Sponsors

  • Bitrise – Bitrise is your mobile continuous integration and delivery for your whole team, with dozens of integrations for your favorite services.

Contact