

Fragmented - Android Developer Podcast
Donn Felker, Kaushik Gopal
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.
Episodes
Mentioned books

May 2, 2016 • 35min
038: What Android Devs Need to know about N
In this episode, Donn and Kaushik look at the Android N developer preview. They highlight the biggest changes that you as an Android Developer should keep an eye out for. There are tonne of features in N, so listen to this episode to get the highlights.
Show Notes
First preview of Android N: Developer API & Tools [android-developers.blogspot.com]
Instruction for setting up your dev environment for the N preview (~=> Lambda support) [developer.android.com]
Java 8 Language features [developer.android.com]
ADB episode : 45 State of the Art
Lambdas do not retain enclosing reference (unless really needed)
commit note on Jack toolchain [android.googlesource.com]
JacklrBuilder source createMethodInfoforLambda [android.googlesource.com]
RxJava Android Samples using lambdas [github.com]
javap - The Java class file Disassembler [docs.oracle.com]
Issue tracking Annotation processing options in Jack [code.google.com]
Other Java 8 language features for N [developer.android.com]
Android MultiWindow features [developer.android.com]
GCM Network Manager a.k.a Job Scheduler [developers.google.com]
Android Notification styles [developer.android.com]
Resources
What’s new in Android N: Ian Lake + Joanna smith [youtube.com]
5 tips for preparing for multi window in Android N: Ian Lake [medium.com]
DroidCon SF keynote: Chet and Romain [youtube.com]
Random musing on the N developer preview [commonsware.com]
Sponsor
Hired - special offer: double your accepting bonus $2000
Contact
@fragmentedcast [twitter.com]
@donnfelker [twitter.com]
@kaushikgopal [twitter.com]

Apr 25, 2016 • 40min
037: Decompress 1 : Xcode, Fonts sizes, Testing and yes Agera!
In this very first edition of our Decompress episode we talk about life being code as an Android developer, some Xcode hating, Testing woes and the intensly discussed library that Google recently released Agera!
Shownotes:
Agera
Sponsor
Hired - special offer: double your accepting bonus $2000

Apr 18, 2016 • 24min
036: Working Remotely
In this mini Fragment we touch on a highly requested topic - working remotely. Donn talks about how to ease into remote working, tools for working remotely, tips and tricks for staying sane and productive while remote and he wraps it up by discussing the benefits employers have when hiring a remote workforce.
Show Notes
Remote work is best suited for information workers (programmers, designers, engineers, etc)
Read Remote by DHH and Jason Fried
Great book that echoes what I feel about working remote.
Tip: Listen to it on Audible, it's faster to consume.
How to ease into remote work at your current job
Convince manager to allow a 1 day trial for one - three months.
Remote day should be on Friday (fewer critical things happen on Friday, on average)
After trial, if success, aim for 2-3 days of remote work. (Again, do this at the end of the week. Wed,Thu, Fri)
Once successful, rally for full week of remote with an occasional in office visit (a day every week work two)
Staying sane while working remote
Donn's blog post on this topic
Create a work day schedule (5am-2pm, 8am-5pm, 10am-7pm, etc)
When you're done, you're done. Leave work (your office/etc).
Schedule. Schedule. Schedule. Stick to a schedule.
Get up at the same time
Get dressed for work (no PJ's etc)
Do your hair.
Be presentable
This is all mental
Prepare for the day
Get coffee/tea/water and snacks
Try to limit the opportunity of distractions
During the day
Take a lunch, away from your desk.
Go out for lunch with someone (significant other, friend, etc) at one to two times a week.
Work out of the house a couple times a week, this increases our creativity.
Outside of Work
You need social interaction, Cabin Fever is a real thing.
Exercise 3-4 times a week if possible.
Group classes are perfect for this.
CrossFit
Martial Arts
Yoga
Pilates
etc
Communication When Remote
Put 3x-4x more effort into communicating than previous. You're not visible seen so you need to be more vocal.
Call
SMS
Blow up the Slack/Hipchat channel/etc
Objective - Clear your own path
Tools
For remote to work effectively, everything should be considered remote. If one employee is remote, then all meetings should occur as if the team is remote. This ensures that everyone can work effectively without missing anything.
Communication
Group Chat
Slack
HipChat
Video Chat
Google Hangouts
Skype
Join.me
Zoom.us
Task Management
Trello
Jira
Asana
GitHub
Remote for Employers
Benefits from Remote workforce
Much larger talent pool than the exhausted pool (or non-existent one that local). Higher quality employees/contractors/consultants for the same overhead.
Remote creates much more loyal employees. You're giving them their life back and this is reciprocated.
Your company becomes anti-fragile as you're able to adapt with the industry faster. You can hire in areas others cannot.
On average, remote employees work harder and are more productive than their office counterparts.
Less overhead! No need to pay for additional office space.
Sponsor
Rollbar - special offer: Bootstrap plan free for 90 days
Contact
@fragmentedcast [twitter.com]
@donnfelker [twitter.com]
@kaushikgopal [twitter.com]

Apr 11, 2016 • 15min
035: Vector drawables for Android
In this mini Fragment we touch base on all the things you need to know about Vector drawables for Android development. How one can use it today, the recommended usage for vector drawable and formats, the limitations and everything else you need to know as an Android developer.
Show Notes
Vector Drawable [developer.android.com]
Trello's Victor [github.com]
What's our Vector Victor [youtube.com]
Android Studio 1.4 release (with Vector Asset Studio announcement) [android-developers.blogspot.com]
Support library announcements
Android Support Library v23.2 [android-developers.blogspot.com]
Vector Drawable backported
Ian Lake also gives us the instructions in this post
9% of AAR saved on AppCompat [chris.banes.me]
Android Support v23.3.1 announced [plus.google.com]
Vector Asset Studio [developer.android.com]
Animated Vector Drawable
AnimatedVectorDrawable [developer.android.com]
Chiuki on Animated Vector Drawables [sqisland.com]
Road Runner library [github.com]
see youtube demo [youtube.com]
Problems:
Dan Lew's SVG test project [github.com]
bug report on no gradient support for vectors [code.google.com]
Vector format restrictions : Vector Asset Studio [developer.android.com]
Better conversation tool svg2android - Juraj Novák [inloop.github.io]
Other references:
Mark Allison - Vector Drawable Part 1 [stylingandroid.com]
Mark Allison - Vectors for all (Almost) [stylingandroid.com]
Using Android Vector Drawable [code.tutsplus]
Sponsor
Rollbar - special offer: Bootstrap plan free for 90 days
Contact
@fragmentedcast [twitter.com]
@donnfelker [twitter.com]
@kaushikgopal [twitter.com]

Apr 4, 2016 • 18min
034: Effective Java - Item 9

Mar 28, 2016 • 40min
033: Talking Gradle with GDE Annyce Davis
In this episode we talk Gradle with the amazing and awesome Annyce Davis. We deal with the basics of Android's build system and dabble with some tips on improving your build times.
Also we released our first ever Fragmented T-shirt in collaboration with another amazing GDE Taylor Ling of AndroidTee fame.
Show Notes
Annyce's talk where she mentions Cyclomatic complexity [youtube.com]
OffGrid Electric
Corey Latislaw on TDD and Testing [fragmentedpodcast.com]
Annyce Davis' Caster.io videos
DAG: Directed Acyclic Graph [wikipedia.org]
DAG discussion on Fragmented - Seek to 18:35
What commands does Andorid Studio's gradle aware make perform? [stackoverflow.com]
MakeBeforeRunTaskProvider source [android.googlesource.com]
Creating a Gradle Plugin
Use apply from in gradle to include external files
Learn Groovy
Gradle dry run flag [docs.gradle.org]
Madis Pink - Optimizing gradle build time : Droidcon Paris [youtube.com]
Annyce's talks & videos:
Be a good citizen: Develop Maintainable apps [youtube.com]
Caster.io videos
Fragmented T-shirt
Blog post
Purchase here
Contact
Annyce @brwngrldev [twitter.com]
@fragmentedcast [twitter.com]
@donnfelker [twitter.com]
@kaushikgopal [twitter.com]

Mar 14, 2016 • 13min
032: Making sense of Android Support Library version numbers
The Android Support library framework is the biggest boon to Android developers. But how does one makes sense of the different versions and revisions available? In this fragment we try to address that question.
Show Notes
Introducing AppCompat V21 [android-developers.blogspot.com]
[android-developers.blogspot.com]
Prev episode with Mike Wolfson [fragmentedpodcast.com]
Android Support Library - "Revision" changelog [developer.android.com]
Revision vs Version [stackoverflow.com]
Introducing Design Support Library
Command to see dependency graph: ./gradlew -q app:dependencies
Seinfeld Auditions
Contact
Fragmented Spec channel (sign up at the bottom)
@fragmentedcast [twitter.com]
@donnfelker [twitter.com]
@kaushikgopal [twitter.com]
Contact email form

Mar 7, 2016 • 15min
031: Effective Java - Item 8
In this mini Fragment, we introduce Joshua's eighth Item. This one is a doozy, probably one of the longest items in the group of the effective Java series, but most definitely quite important.
This episode is brought to you by Rollbar. Go to rollbar.com/fragmented to get their Bootstrap plan for free for 90 days.
Stay tuned for more items from our "Effective Java for Android developers" Fragment series.
Show Notes
Effective Java (2nd Edition) - Joshua Bloch
Obey the general contract when overriding equals
When to not override equals:
Each instance of the class is inherently unique.
You don't care whether the class provides a "logical equality" test.
A superclass has already overridden equals, and the superclass behavior is appropriate for this class.
The equals method implement an equivalence relation which states it must be:
Reflexive
Symmetric
Transitive
Consistent
For any non-null reference x, x.equals(null) must return false.
A recipe for a high-quality equals method is as such:
Use the == operator to check for references to this object.
Use the instanceof operator to check if the argument has the correct type
Cast to the correct type.
Check all field types and corresponding field types.
Finally, when done, ask yourself - is this method symmetric, transitive and consistent?
Caveats
Always override hashcode when you override equals
Don't be too clever!
Don't substitute another type for Object in the equals declaration.
Contact
@fragmentedcast [twitter.com]
@donnfelker [twitter.com]
@kaushikgopal [twitter.com]

Feb 29, 2016 • 44min
030: Material Design for developers with GDE Mike Wolfson
In this episode we talk to Material Design Master and Google Developer Expert Mike Wolfson. What does Material design mean to us developers? How does one use the numerous support libraries to help with this? What widgets should and shouldn't we be using? Listen to the show and find out.
Show Notes
Material Design - Official site
Material Design - The Specification
Google Color Palette - list of "approved" colors
Google Color Palette Library - picking colors from an image
Android Support Lib 23.2 video [twitter.com]
Resource for getting better at Material Design:
Materialdoc.com - curated blog post for developers
Android Historian - Mike's Material Design demo
PSD resources - Up Labs [materialup.com]
Official PSD layout templates
Official Material Design Icons
DroidconNYC 2015: Material design everywhere using the Android Support Libraries - Mike's talk
Sponsors
Rollbar - special offer: Bootstrap plan free for 90 days [rollbar.com/fragmented]
Contact
Mike Wolfson: Twitter Google+ mikewolfson.com
@fragmentedcast [twitter.com]
@donnfelker [twitter.com]
@kaushikgopal [twitter.com]

Feb 22, 2016 • 9min
029: All about the infamous 65,536 dex method count
If you've been an Android developer in the last 2 years, you must have seen this dreaded exception: dex: method ID not in [0, 0xffff]: 65536
Quick googling would immediately bring up the phrase "65K method count" and the recommended solution "multi-dexing". But if you want to really understand this mysterious number and the reason behind its existence, listen on!
Show Notes
Official Dalvik specification [source.android.com] (look for invoke- prefix methods)
Android and the Dex limit (great post)
ADB Ep 11 : ART, pART 2 (Trash Talk) (discussion on ART)
MultiDexing [developer.android.com] (solution to your 65K method count woes)
Contact
@fragmentedcast [twitter.com]
@donnfelker [twitter.com]
@kaushikgopal [twitter.com]