
Fragmented - Android Developer Podcast
The Fragmented Podcast is the leading Android developer podcast started by Kaushik Gopal & Donn Felker. Our goal is to help you become a better Android Developer through conversation & to capture the zeitgeist of Android development. We chat about topics such as Testing, Dependency Injection, Patterns and Practices, useful libraries, and much more. We will also be interviewing some of the top developers out there. Subscribe now and join us on the journey of becoming a better Android Developer.
Latest episodes

Oct 15, 2018 • 24min
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.
Shownotes
Existing solutions for poll/vote tabulation
polleverywhere.com
surveymonkey.com
polldaddy.com
Misc
kscript by holgerbrandl
blog post on the hackathon vote tabulation script
what the csv output from google forms looks like
github repo for script - with installation instructions
Highly recommended - Talking kotlin episode on kscript
// slick kotlin usage
override fun onCreate(savedInstanceState: Bundle?) = super.onCreate(savedInstanceState).also {
setContentView(R.layout.activity_something)
// ...
}
Sponsors
American Express Jobs - American Express is hiring Android developers!
Contact
Youtube channel
@fragmentedcast [twitter.com]
@donnfelker and +DonnFelker
@kaushikgopal and +KaushikGopalIsMe

Oct 4, 2018 • 45min
137: Decompress KISS DRY testing
In this episode, DF and KG decompress. They start off talking about ideas around KISS vs DRY in software engineering. They move on then to talk about a dear topic - functional vs unit testing and then dive into some of the woes of having a testing infrastructure spun up. Also announcing our youtube channel !
Fragmented's Youtube channel
Sponsors
American Express Jobs - American Express is hiring Android developers!
Contact
@fragmentedcast [twitter.com]
@donnfelker and +DonnFelker
@kaushikgopal and +KaushikGopalIsMe

Sep 24, 2018 • 22min
136: Kotlin Extension Functions
In this fragment episode, Donn talks about Kotlin extension functions. He discusses what they are, how to build them, why they're useful, how to organize them, visibility and how to call them Java and much more.
Show Notes
Kotlin Extension Functions Docs
Calling Extension Functions from Java
Kotlin KTX View Functions
import android.view.View
fun View.gone() {
this.visibility = View.GONE
}
fun View.visible() {
this.visibility = View.VISIBLE
}
Contact
@fragmentedcast [twitter.com]
@donnfelker and +DonnFelker
@kaushikgopal and +KaushikGopalIsMe

Sep 17, 2018 • 8min
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
@fragmentedcast [twitter.com]
@donnfelker and +DonnFelker
@kaushikgopal and +KaushikGopalIsMe

Aug 6, 2018 • 21min
134: Get Effective Help with an SSCCE
In this episode, Donn talks about how you can get effective help with your coding problems with an SSCCE - a Simple, Self-Contained, Correct (Compilable), Example.
Using an SSCCE provides others with a quick, concise way to examine the problem without extraneous libraries, UI toolkits and various other parts of your application that do not matter to the problem at hand.
Donn breaks down each component of the SSCCE so you can wrap your head around what you need to get help quickly.
Links
SSCCE.org
Sponsors
Instabug - Instabug is the simplest yet most comprehensive bug reporting and In-app feedback SDK.
Contact
@fragmentedcast [twitter.com]
@donnfelker and +DonnFelker
@kaushikgopal and +KaushikGopalIsMe

Jul 23, 2018 • 1h 10min
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.
Show Notes
Danny's slides (DI in a Kotlin world) talk
Koin
Toothpick
how to pronounce reified
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.
SO post on the difference between DI & SL pattern
Martin Fowler's post on DI, IOC, SL
Caster.IO (paid) course by DF on setting up testing with Dagger 2 and Espresso
Mark Seeman on Service Locators being an anti-pattern
Sponsors
Bitrise - Bitrise is your mobile continuous integration and delivery for your whole team, with dozens of integrations for your favorite services.
Contact
@fragmentedcast
@preusslerberlin
@donnfelker and donnfelker (on Instagram)
@kaushikgopal and kaushikgopal (on Instagram)

Jul 18, 2018 • 18min
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.
Show Notes
The infamous Short - Ep029: All about the infamous 65,536 dex method count
IEEE_754 float storage format
How binary fractions work
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
@fragmentedcast [twitter.com]
@donnfelker and +DonnFelker
@kaushikgopal and +KaushikGopalIsMe

Jul 9, 2018 • 52min
131: ARCore with Yulia Kaleda
We live in a time of booming AR (and VR). We wanted to talk to someone who’s worked with it and would know a thing or two about the subject. Then we found Yuliya – also known as the walking wizard of ARCore. In this episode, she teaches Kaush and Donn about ARCore, the differences between AR/VR, the fundamental building blocks of ARCore, some of the newer concepts introduced like Sceneform. An action packed episode to say the least. Listen on !
Show Notes
ep 79 - How do i get started with VR Apps
Tango shutting down
ARCore
ARKit
Cloud Anchors: Share AR experiences
ARCore - Geometry detection
Sceneform - 3d view rendering
Resources
Google ARCore github
Yuliya's blog post
Yuliya's talk
Sponsors
Bitrise - Bitrise is your mobile continuous integration and delivery for your whole team, with dozens of integrations for your favorite services.
Contact
@yuliyakaleda
@fragmentedcast [twitter.com]
@donnfelker and +DonnFelker
@kaushikgopal and +KaushikGopalIsMe

Jul 4, 2018 • 55min
130: Sunsetting ReactNative at AirBnb with Gabriel Peal - Part 2
In this episode, we resume our conversation with Airbnb's Gabriel Peal. If you haven't listened to part 1, you really really should go back and do that. In that episode, we kicked it off by first trying to understand the goals and the story behind why React Native was chosen as the code sharing technology/tool.
After two years, 220 screens, and 120,000 lines of javascript, Gabriel tells us why they're moving away from React Native.
Show Notes
The post that kicked it all off
Flow - static type checker for Javascript
Babel -Javascript compiler
Heisenbugs
Bugsnag
RecyclerView : UICollectionView
Facebook blot post: State of React Native 2018
Kotlin Extensions
Kotlin Delegated properties
Epoxy
Contact
@gpeal8 [twitter.com]
@fragmentedcast [twitter.com]
@donnfelker and +DonnFelker
@kaushikgopal and +KaushikGopalIsMe

Jul 2, 2018 • 37min
129: Sunsetting ReactNative at Airbnb with Gabriel Peal - Part 1
If you haven't heard, Airbnb has decided to move away from React Native. Friend of the show Gabriel Peal wrote an in-depth series of blog posts about this. We had so many questions around this that we asked him to come on the show and he graciously accepted to answer some of our questions.
It's always a pleasure listening to his insights and this episode is no exception!
Listen on:
Show Notes
React Native
The post that kicked off this show
Spike Brehm
Leland Richardson
Building a visual language - DLS
Yoga library - cross layout engine
YogaLayout - Android
Sponsors
Bitrise - Bitrise is your mobile continuous integration and delivery for your whole team, with dozens of integrations for your favorite services.
Contact
@gpeal8 [twitter.com]
@fragmentedcast [twitter.com]
@donnfelker and +DonnFelker
@kaushikgopal and +KaushikGopalIsMe