172: Coil Image Loading Library with Colin White

Download

In this episode Donn and Kaushik sit down with Instacart Engineer Colin White to discuss a new image library he has created called Coil.

Coil is a Kotlin-first image library that focuses on ease of use, simplicity and extensibility. In this episode we ask him the question you’re probably wondering … “Why create an image library, isn’t this a solved problem already?” and then move onto the details of how the library works, and what it offers developers.

From Donn’s perspective – It’s an interesting library and gives you what you need with minimal footprint but offers you the extensibility that you’d want in the future. Its a good balance of “just enough” and “I might need this”.

Enjoy

Show Notes

Contact

171: Jetpack Compose with Leland Richardson

Download

This week Donn and Kaushik talk to Leland Richardson from the Android team at Google about Jetpack Compose.

Jetpack Compose is declarative component-based UI runtime for Android. With compose you can build your UI with functions in Kotlin to easily “compose” what your UI would look like.

We dive deep in this episode. We talk about the background and influence React had on the project, we dive deep into some of the decisions made regarding the library and much much more…

We hope you enjoy …

Shownotes

Leland’s Contact info:

Fragmented Contact

170: Developer Growth – Public Speaking

Download

In this episode, Donn talks about public speaking and how it can help you grow your career.

He dives in by telling a story of his first speaking engagement and how he was riddled with fear, insecurity, doubt and anxiety. He then talks about why speaking can help you grow your career and life leaps and bounds. He wraps up with possible things you can speak about when starting out as well as where you can get your break into the speaking circuit.

Shownotes

Sponsor

This episode is sponsored by Instabug.
Squash bugs 🐞 in less than a minute with Instabug!

Special offer for all listeners, go to instabug.com/fragmented
Signup for free, install the SDK, and you will get Instabug’s brand new t-shirt!

Contact

169: Testing and JUnit 5 with Marcel Schnelle


Download

Marcel Schnelle joins Donn in this episode to talk about how to get your application under test and some steps to go from scared to confident in your testing process. The second half of the show they dive in deep to JUnit 5 and its new features.

JUnit 5 is backwards compatible with JUnit 4 and offers a slew of new features and extensibility points which make the framework much more appealing going forward. We’re convinced you’ll enjoy this episode and leave wanting to get your app under test – even more than it already is.

Enjoy.

Shownotes

Get ahold of Marcel:

Sponsors 🙏

Contact

168: Learning Kotlin: Lambda Expressions Part 2

Download

In this episode, Donn continues his talks about Kotlin Lambda Expressions. He explains how you can use lambda expressions as function parameters and as return types for functions.

This is a very dense episode – if you get lost look at the code snippets below or view on them on fragmentedpodcast.com


class LogReader {
    fun processFile(file: File, processLine: (String) -> Unit = {}) {
        file.forEachLine {
            println("Number of Chars: ${it.length}")
            processLine(it)
            println("Line Done Processing")
        }
    }

    fun processFileWithHandlers(file: File, logHandler: LogHandler) {
        file.forEachLine {
            println("Start of Processing")
            logHandler.handleLine().forEach { handler -> handler(it) }
            println("Line Done Processing")
        }
    }
}

interface LogHandler {
    fun handleLine(): List<(String) -> Unit>
}


val reader = LogReader()
val textFile = File("/Users/donnfelker/scratch/lorem.txt")

// Process with single lambda
reader.processFile(textFile, { println("First 10 Chars: ${it.substring(0..9)}") })

val logHandler = object : LogHandler {
    override fun handleLine(): List<(String) -> Unit> {
        return listOf<(String) -> Unit>(
            { line -> println("${line.substring(0, 1)}") },
            { line -> println("${line.substring(2, 4)}") },
            { line -> println("${line.substring(5, 10)}") }
        )
    }
}

// Process with multipe handlers via the logHandler
reader.processFileWithHandlers(textFile, logHandler)

Sponsors 🙏

Contact