<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:media="http://search.yahoo.com/mrss/" xmlns:podcast="https://podcastindex.org/namespace/1.0">
  <channel>
    <atom:link href="https://feeds.simplecast.com/LpAGSLnY" rel="self" title="MP3 Audio" type="application/atom+xml"/>
    <atom:link href="https://simplecast.superfeedr.com" rel="hub" xmlns="http://www.w3.org/2005/Atom"/>
    <generator>https://simplecast.com</generator>
    <title>Fragmented - AI Developer Podcast</title>
    <description>Fragmented is an AI developer podcast for engineers who want to go beyond vibe coding and ship real software.

We cover AI-assisted development the way working engineers actually use it: prompting strategies, code review, testing, debugging, workflows, and building production-grade software with AI tools. No hype. No &quot;I shipped a SaaS in a weekend&quot; stories. Just tactics that work.

Hosted by Kaushik Gopal and Iury Souza — software engineers using AI daily to build and ship real products.

From vibe coding to software engineering — one episode at a time. Our goal: help you use AI to become a better engineer, not be replaced by one.</description>
    <copyright>2026 The Fragmented Podcast</copyright>
    <language>en-us</language>
    <pubDate>Wed, 1 Apr 2026 00:00:00 +0000</pubDate>
    <lastBuildDate>Thu, 2 Apr 2026 04:21:59 +0000</lastBuildDate>
    <image>
      <link>https://fragmentedpodcast.com/</link>
      <title>Fragmented - AI Developer Podcast</title>
      <url>https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed</url>
    </image>
    <link>https://fragmentedpodcast.com/</link>
    <itunes:type>episodic</itunes:type>
    <itunes:summary>Fragmented is an AI developer podcast for engineers who want to go beyond vibe coding and ship real software.

We cover AI-assisted development the way working engineers actually use it: prompting strategies, code review, testing, debugging, workflows, and building production-grade software with AI tools. No hype. No &quot;I shipped a SaaS in a weekend&quot; stories. Just tactics that work.

Hosted by Kaushik Gopal and Iury Souza — software engineers using AI daily to build and ship real products.

From vibe coding to software engineering — one episode at a time. Our goal: help you use AI to become a better engineer, not be replaced by one.</itunes:summary>
    <itunes:author>Kaushik Gopal, Iury Souza</itunes:author>
    <itunes:explicit>false</itunes:explicit>
    <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
    <itunes:new-feed-url>https://feeds.simplecast.com/LpAGSLnY</itunes:new-feed-url>
    <itunes:keywords>android, developer, podcast, claude code, programmer, vibe-coding, llm, software, ai, software-engineering, ai coding</itunes:keywords>
    <itunes:owner>
      <itunes:name>Kaushik Gopal</itunes:name>
      <itunes:email>contact@fragmentedpodcast.com</itunes:email>
    </itunes:owner>
    <itunes:category text="Education"/>
    <itunes:category text="Science"/>
    <itunes:category text="Technology"/>
    <item>
      <guid isPermaLink="false">e5f2e032-9d84-4c3c-9df1-25d301c10bd9</guid>
      <title>309 - Background Agents</title>
      <description><![CDATA[<p>Andrej Karpathy says the goal is to maximize how long an agent runs without your intervention. But there's a false summit most teams hit first: individual speed goes up while system speed stalls, your laptop roars under four parallel Gradle builds, and review queues back up. Kaushik and Iury trace the full arc — from local multitasking to cloud-hosted async work to fully autonomous agents that fire on repo events and put PRs in your inbox.</p>
<h1>Show Notes</h1>
<ul>
 <li><a href="https://www.youtube.com/watch?v=kwSVtQ7dziU" rel="noopener noreferrer">Andrej Karpathy on agents and token throughput</a> - NoPriors podcast — maximize agent runtime, not token burn</li>
 <li><a href="https://cursor.com/changelog/2-0#multi-agents" rel="noopener noreferrer">Cursor Agent Mode - Multiagent interface</a> - introduced the multi-agent board as a new paradigm for local parallel agents</li>
 <li><a href="https://antigravity.google/docs/agent-manager" rel="noopener noreferrer">Google Antigravity - Agent Manager interface</a></li>
 <li><a href="https://code.claude.com/docs/en/agent-teams" rel="noopener noreferrer">Claude Code Agent Teams</a> - spawn<br>
  sub-agents from a main orchestrator, with tmux pane integration</li>
 <li><a href="https://www.reddit.com/r/ProgrammerTIL/comments/mtjg0c/git_til_about_git_worktrees/" rel="noopener noreferrer">Git worktrees</a> - /reddit</li>
</ul>
<h2>Remote Background Agents in the cloud</h2>
<ul>
 <li><a href="https://jules.google.com/" rel="noopener noreferrer">Google Jules</a> - hosted GitHub-connected agent,<br>
  proposes a plan, edits code, runs tests, opens a PR</li>
 <li><a href="https://cursor.com/blog/cloud-agents" rel="noopener noreferrer">Cursor Cloud Agents</a> - remote agents<br>
  that clone your repo in the cloud and work in parallel</li>
 <li><a href="https://openai.com/blog/introducing-codex/" rel="noopener noreferrer">OpenAI Codex</a> - cloud software<br>
  engineering agent for parallel tasks</li>
 <li><a href="https://claude.ai/code" rel="noopener noreferrer">Claude Code on the web</a> - cloud-hosted Claude Code<br>
  sessions decoupled from your local machine</li>
</ul>
<h1>Building trust</h1>
<ul>
 <li><a rel="noopener noreferrer">Episode 307 - Harness Engineering</a> - the earlier episode on<br>
  shaping agent environments — and why this ceiling exists</li>
</ul>
<h1>Get in touch</h1>
<p>We'd love to hear from you. <a href="mailto:contact@fragmentedpodcast.com" rel="noopener noreferrer">Email</a> is the best way to reach us or you can check our <a rel="noopener noreferrer">contact page</a> for other ways.</p>
<p>We want to hear all the feedback: what's working, what's not, topics you'd like to hear more on.</p>
<ul>
 <li><a href="https://fragmentedpodcast.com/contact" rel="noopener noreferrer">Contact us</a></li>
 <li><a href="https://buttondown.com/fragmentedcast" rel="noopener noreferrer">Newsletter</a></li>
 <li><a href="https://www.youtube.com/@fragmentedpodcast" rel="noopener noreferrer">Youtube</a></li>
 <li><a href="https://fragmentedpodcast.com" rel="noopener noreferrer">Website</a></li>
</ul>
<h2>Co-hosts:</h2>
<ul>
 <li><a href="https://kau.sh/" rel="noopener noreferrer">Kaushik Gopal</a></li>
 <li><a href="https://iurysouza.dev/" rel="noopener noreferrer">Iury Souza</a></li>
</ul>
<blockquote>
 <p>[!fyi] We transitioned from Android development to AI starting with<br><a rel="noopener noreferrer">Ep. #300</a>. Listen to that episode for the full story behind<br>
  our new direction.</p>
</blockquote>
]]></description>
      <pubDate>Wed, 1 Apr 2026 00:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/episodes/309</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Andrej Karpathy says the goal is to maximize how long an agent runs without your intervention. But there's a false summit most teams hit first: individual speed goes up while system speed stalls, your laptop roars under four parallel Gradle builds, and review queues back up. Kaushik and Iury trace the full arc — from local multitasking to cloud-hosted async work to fully autonomous agents that fire on repo events and put PRs in your inbox.</p>
<h1>Show Notes</h1>
<ul>
 <li><a href="https://www.youtube.com/watch?v=kwSVtQ7dziU" rel="noopener noreferrer">Andrej Karpathy on agents and token throughput</a> - NoPriors podcast — maximize agent runtime, not token burn</li>
 <li><a href="https://cursor.com/changelog/2-0#multi-agents" rel="noopener noreferrer">Cursor Agent Mode - Multiagent interface</a> - introduced the multi-agent board as a new paradigm for local parallel agents</li>
 <li><a href="https://antigravity.google/docs/agent-manager" rel="noopener noreferrer">Google Antigravity - Agent Manager interface</a></li>
 <li><a href="https://code.claude.com/docs/en/agent-teams" rel="noopener noreferrer">Claude Code Agent Teams</a> - spawn<br>
  sub-agents from a main orchestrator, with tmux pane integration</li>
 <li><a href="https://www.reddit.com/r/ProgrammerTIL/comments/mtjg0c/git_til_about_git_worktrees/" rel="noopener noreferrer">Git worktrees</a> - /reddit</li>
</ul>
<h2>Remote Background Agents in the cloud</h2>
<ul>
 <li><a href="https://jules.google.com/" rel="noopener noreferrer">Google Jules</a> - hosted GitHub-connected agent,<br>
  proposes a plan, edits code, runs tests, opens a PR</li>
 <li><a href="https://cursor.com/blog/cloud-agents" rel="noopener noreferrer">Cursor Cloud Agents</a> - remote agents<br>
  that clone your repo in the cloud and work in parallel</li>
 <li><a href="https://openai.com/blog/introducing-codex/" rel="noopener noreferrer">OpenAI Codex</a> - cloud software<br>
  engineering agent for parallel tasks</li>
 <li><a href="https://claude.ai/code" rel="noopener noreferrer">Claude Code on the web</a> - cloud-hosted Claude Code<br>
  sessions decoupled from your local machine</li>
</ul>
<h1>Building trust</h1>
<ul>
 <li><a rel="noopener noreferrer">Episode 307 - Harness Engineering</a> - the earlier episode on<br>
  shaping agent environments — and why this ceiling exists</li>
</ul>
<h1>Get in touch</h1>
<p>We'd love to hear from you. <a href="mailto:contact@fragmentedpodcast.com" rel="noopener noreferrer">Email</a> is the best way to reach us or you can check our <a rel="noopener noreferrer">contact page</a> for other ways.</p>
<p>We want to hear all the feedback: what's working, what's not, topics you'd like to hear more on.</p>
<ul>
 <li><a href="https://fragmentedpodcast.com/contact" rel="noopener noreferrer">Contact us</a></li>
 <li><a href="https://buttondown.com/fragmentedcast" rel="noopener noreferrer">Newsletter</a></li>
 <li><a href="https://www.youtube.com/@fragmentedpodcast" rel="noopener noreferrer">Youtube</a></li>
 <li><a href="https://fragmentedpodcast.com" rel="noopener noreferrer">Website</a></li>
</ul>
<h2>Co-hosts:</h2>
<ul>
 <li><a href="https://kau.sh/" rel="noopener noreferrer">Kaushik Gopal</a></li>
 <li><a href="https://iurysouza.dev/" rel="noopener noreferrer">Iury Souza</a></li>
</ul>
<blockquote>
 <p>[!fyi] We transitioned from Android development to AI starting with<br><a rel="noopener noreferrer">Ep. #300</a>. Listen to that episode for the full story behind<br>
  our new direction.</p>
</blockquote>
]]></content:encoded>
      <enclosure length="25538797" type="audio/mpeg" url="https://cdn.simplecast.com/media/audio/transcoded/eea5748e-09ed-4c46-8f6a-b2569dd75851/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/audio/group/d886a187-b084-49b8-bd55-68d9e2309cd6/group-item/3d31e120-9779-4602-938e-42c9f69108a5/128_default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>309 - Background Agents</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:25:37</itunes:duration>
      <itunes:summary>Andrej Karpathy says the goal is to maximize how long an agent runs without your intervention. But there&apos;s a false summit most teams hit first: individual speed goes up while system speed stalls, your laptop roars under four parallel Gradle builds, and review queues back up. Kaushik and Iury trace the full arc — from local multitasking to cloud-hosted async work to fully autonomous agents that fire on repo events and put PRs in your inbox.

Full shownotes at https://fragmentedpodcast.com/episodes/309</itunes:summary>
      <itunes:subtitle>Andrej Karpathy says the goal is to maximize how long an agent runs without your intervention. But there&apos;s a false summit most teams hit first: individual speed goes up while system speed stalls, your laptop roars under four parallel Gradle builds, and review queues back up. Kaushik and Iury trace the full arc — from local multitasking to cloud-hosted async work to fully autonomous agents that fire on repo events and put PRs in your inbox.

Full shownotes at https://fragmentedpodcast.com/episodes/309</itunes:subtitle>
      <itunes:keywords>cursor, background-agents, agent-orchestration, harness-engineering, ai, codex, claude-code</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>309</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">d0a15444-783d-4130-bcff-6bcffb297a21</guid>
      <title>308 - How Image Diffusion Models Work - the 20 minute explainer</title>
      <description><![CDATA[<p>You already know how LLMs work from our popular 20-minute explainer. Now we take it to images. What does Michelangelo have to do with stable diffusion? More than you'd think. Walk away knowing how image generation actually works — and what it has in common with the text models you already understand.</p>
<p><a href="https://fragmentedpodcast.com/episodes/308" rel="noopener noreferrer"><i>Full shownotes at fragmentedpodcast.com</i></a><i>.</i></p>
<h1>Show Notes</h1>
<ul>
 <li><a rel="noopener noreferrer">Episode 303 - How LLMs work in 20 minutes</a> - text generation</li>
 <li>VAE -<br><a href="https://www.ibm.com/think/topics/variational-autoencoder" rel="noopener noreferrer">Variational Autoencoder</a></li>
 <li><a href="https://en.wikipedia.org/wiki/RGB_color_model" rel="noopener noreferrer">RGB Color model</a> - wikipedia</li>
 <li><a href="https://en.wikipedia.org/wiki/Word2vec" rel="noopener noreferrer">Word2Vec technique</a> - wikipedia
  <ul>
   <li><a href="https://arxiv.org/abs/1301.3781" rel="noopener noreferrer">Efficient Estimation of Word Representation</a> -<br>
    original Word2Vec paper by Mikolov et al.</li>
  </ul></li>
 <li><a href="https://arxiv.org/abs/2112.10752" rel="noopener noreferrer">High-Resolution Image Synthesis with Latent Diffusion Models</a> -<br>
  Rombach et al. (2022) — the paper behind Stable Diffusion</li>
 <li>Image Training data
  <ul>
   <li><a href="https://arxiv.org/abs/2210.08402" rel="noopener noreferrer">LAION-5B</a> - 5 billion image-text pairs<br>
    scraped from the web, used to train many image generation models</li>
   <li><a href="https://www.aibase.com/news/15390" rel="noopener noreferrer">WebLI</a> - Google's internal image-text<br>
    dataset</li>
  </ul></li>
 <li><a href="https://www.goodreads.com/quotes/1191114-the-sculpture-is-already-complete-within-the-marble-block-before" rel="noopener noreferrer">Michelangelo</a></li>
</ul>
<h1>Get in touch</h1>
<p>We'd love to hear from you. <a href="mailto:contact@fragmentedpodcast.com" rel="noopener noreferrer">Email</a> is the<br>
 best way to reach us or you can check our <a rel="noopener noreferrer">contact page</a> for other<br>
 ways.</p>
<p>We want to hear all the feedback: what's working, what's not, topics you'd like<br>
 to hear more on.</p>
<ul>
 <li><a href="https://fragmentedpodcast.com/contact" rel="noopener noreferrer">Contact us</a></li>
 <li><a href="https://buttondown.com/fragmentedcast" rel="noopener noreferrer">Newsletter</a></li>
 <li><a href="https://www.youtube.com/@fragmentedpodcast" rel="noopener noreferrer">Youtube</a></li>
 <li><a href="https://fragmentedpodcast.com" rel="noopener noreferrer">Website</a></li>
</ul>
<h2>Co-hosts:</h2>
<ul>
 <li><a href="https://kau.sh/" rel="noopener noreferrer">Kaushik Gopal</a></li>
 <li><a href="https://iurysouza.dev/" rel="noopener noreferrer">Iury Souza</a></li>
</ul>
<blockquote>
 <p>[!fyi] We transitioned from Android development to AI starting with<br><a rel="noopener noreferrer">Ep. #300</a>. Listen to that episode for the full story behind<br>
  our new direction.</p>
</blockquote>
]]></description>
      <pubDate>Tue, 24 Mar 2026 00:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal, Iury Souza)</author>
      <link>https://fragmentedpodcast.com/episodes/308/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>You already know how LLMs work from our popular 20-minute explainer. Now we take it to images. What does Michelangelo have to do with stable diffusion? More than you'd think. Walk away knowing how image generation actually works — and what it has in common with the text models you already understand.</p>
<p><a href="https://fragmentedpodcast.com/episodes/308" rel="noopener noreferrer"><i>Full shownotes at fragmentedpodcast.com</i></a><i>.</i></p>
<h1>Show Notes</h1>
<ul>
 <li><a rel="noopener noreferrer">Episode 303 - How LLMs work in 20 minutes</a> - text generation</li>
 <li>VAE -<br><a href="https://www.ibm.com/think/topics/variational-autoencoder" rel="noopener noreferrer">Variational Autoencoder</a></li>
 <li><a href="https://en.wikipedia.org/wiki/RGB_color_model" rel="noopener noreferrer">RGB Color model</a> - wikipedia</li>
 <li><a href="https://en.wikipedia.org/wiki/Word2vec" rel="noopener noreferrer">Word2Vec technique</a> - wikipedia
  <ul>
   <li><a href="https://arxiv.org/abs/1301.3781" rel="noopener noreferrer">Efficient Estimation of Word Representation</a> -<br>
    original Word2Vec paper by Mikolov et al.</li>
  </ul></li>
 <li><a href="https://arxiv.org/abs/2112.10752" rel="noopener noreferrer">High-Resolution Image Synthesis with Latent Diffusion Models</a> -<br>
  Rombach et al. (2022) — the paper behind Stable Diffusion</li>
 <li>Image Training data
  <ul>
   <li><a href="https://arxiv.org/abs/2210.08402" rel="noopener noreferrer">LAION-5B</a> - 5 billion image-text pairs<br>
    scraped from the web, used to train many image generation models</li>
   <li><a href="https://www.aibase.com/news/15390" rel="noopener noreferrer">WebLI</a> - Google's internal image-text<br>
    dataset</li>
  </ul></li>
 <li><a href="https://www.goodreads.com/quotes/1191114-the-sculpture-is-already-complete-within-the-marble-block-before" rel="noopener noreferrer">Michelangelo</a></li>
</ul>
<h1>Get in touch</h1>
<p>We'd love to hear from you. <a href="mailto:contact@fragmentedpodcast.com" rel="noopener noreferrer">Email</a> is the<br>
 best way to reach us or you can check our <a rel="noopener noreferrer">contact page</a> for other<br>
 ways.</p>
<p>We want to hear all the feedback: what's working, what's not, topics you'd like<br>
 to hear more on.</p>
<ul>
 <li><a href="https://fragmentedpodcast.com/contact" rel="noopener noreferrer">Contact us</a></li>
 <li><a href="https://buttondown.com/fragmentedcast" rel="noopener noreferrer">Newsletter</a></li>
 <li><a href="https://www.youtube.com/@fragmentedpodcast" rel="noopener noreferrer">Youtube</a></li>
 <li><a href="https://fragmentedpodcast.com" rel="noopener noreferrer">Website</a></li>
</ul>
<h2>Co-hosts:</h2>
<ul>
 <li><a href="https://kau.sh/" rel="noopener noreferrer">Kaushik Gopal</a></li>
 <li><a href="https://iurysouza.dev/" rel="noopener noreferrer">Iury Souza</a></li>
</ul>
<blockquote>
 <p>[!fyi] We transitioned from Android development to AI starting with<br><a rel="noopener noreferrer">Ep. #300</a>. Listen to that episode for the full story behind<br>
  our new direction.</p>
</blockquote>
]]></content:encoded>
      <enclosure length="24681154" type="audio/mpeg" url="https://cdn.simplecast.com/media/audio/transcoded/eea5748e-09ed-4c46-8f6a-b2569dd75851/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/audio/group/15a8a222-c619-4c31-9c63-cd8e77d099df/group-item/a3fd52a0-a20c-4372-9dc3-e0c2beaf1a36/128_default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>308 - How Image Diffusion Models Work - the 20 minute explainer</itunes:title>
      <itunes:author>Kaushik Gopal, Iury Souza</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:24:44</itunes:duration>
      <itunes:summary>You already know how LLMs work from our popular 20-minute explainer. Now we take it to images. What does Michelangelo have to do with stable diffusion? More than you&apos;d think. Walk away knowing how image generation actually works — and what it has in common with the text models you already understand.

Full shownotes at https://fragmentedpodcast.com/episodes/308/</itunes:summary>
      <itunes:subtitle>You already know how LLMs work from our popular 20-minute explainer. Now we take it to images. What does Michelangelo have to do with stable diffusion? More than you&apos;d think. Walk away knowing how image generation actually works — and what it has in common with the text models you already understand.

Full shownotes at https://fragmentedpodcast.com/episodes/308/</itunes:subtitle>
      <itunes:keywords>inference, diffusion-models, llm, stable-diffusion, ai, tokens, latent-space, vectors, word2vec, image-generation, machine-learning, embeddings, vae, transformer</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>308</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">08fbaf55-c3c4-4f99-9faa-0f92a4dce103</guid>
      <title>307 - Harness Engineering - the hard part of AI coding</title>
      <description><![CDATA[<p>The hard part of AI coding isn't generating code — it's controlling quality, safety, and drift. Kaushik and Iury break down harness engineering: the five pillars for shaping an agent's environment and what it looks like when teams build custom harnesses from scratch.</p>
<p><a href="https://fragmentedpodcast.com/episodes/307" rel="noopener noreferrer"><i>Full shownotes at fragmentedpodcast.com</i></a><i>.</i></p>
<h1>Show Notes</h1>
<h2>Why it matters</h2>
<ul>
 <li><a href="https://openai.com/index/harness-engineering/" rel="noopener noreferrer">Harness Engineering</a> -<br>
  OpenAI's post on building their Codex codebase (~1M lines of code, 1,500 PRs<br>
  merged, zero manually written)</li>
</ul>
<h2>Shaping the harness</h2>
<ul>
 <li><a href="https://iurysouza.dev/newsletter/the-feeds-lost-and-found-01/" rel="noopener noreferrer">The Feed's Lost and Found</a> -<br>
  Iury's newsletter consolidating harness engineering themes</li>
</ul>
<ol>
 <li>Agent legibility</li>
 <li>Closed feedback loops</li>
 <li>Persistent memory</li>
 <li>Entropy control</li>
 <li>Blast radius controls</li>
</ol>
<h2>Building the harness</h2>
<ul>
 <li><a href="https://stripe.dev/blog/minions-stripes-one-shot-end-to-end-coding-agents" rel="noopener noreferrer">Minions: Stripe's one-shot, end-to-end coding agents</a> -<br>
  Stripe forked Goose to build custom agents for their codebase</li>
 <li><a href="https://github.com/block/goose" rel="noopener noreferrer">Goose</a> - open-source coding agent from Block</li>
 <li><a href="https://github.com/obra/superpowers" rel="noopener noreferrer">Superpowers</a> by Jesse Vincent - skills<br>
  that enforce a proper software engineering process</li>
 <li><a href="https://opencode.ai/" rel="noopener noreferrer">Open Code</a> - open-source coding agent you can fork and<br>
  customize</li>
</ul>
<h2>Other resources</h2>
<ul>
 <li><a href="https://latentpatterns.com/glossary/agent-harness" rel="noopener noreferrer">Agent Harness Glossary</a> -<br>
  Latent Patterns</li>
 <li><a href="https://cursor.com/blog/self-driving-codebases" rel="noopener noreferrer">Towards self-driving codebases</a> -<br>
  Cursor</li>
 <li><a href="https://githubnext.com/projects/agentic-workflows" rel="noopener noreferrer">Agentic Workflows</a> -<br>
  GitHub Next</li>
 <li><a href="https://www.thoughtworks.com/content/dam/thoughtworks/documents/report/tw_future%20_of_software_development_retreat_%20key_takeaways.pdf" rel="noopener noreferrer">Future of Software Development</a> -<br>
  ThoughtWorks</li>
</ul>
<h1>Get in touch</h1>
<p>We'd love to hear from you. <a href="mailto:contact@fragmentedpodcast.com" rel="noopener noreferrer">Email</a> is the<br>
 best way to reach us or you can check our <a rel="noopener noreferrer">contact page</a> for other<br>
 ways.</p>
<p>We want to hear all the feedback: what's working, what's not, topics you'd like<br>
 to hear more on.</p>
<ul>
 <li><a href="https://fragmentedpodcast.com/contact" rel="noopener noreferrer">Contact us</a></li>
 <li><a href="https://buttondown.com/fragmentedcast" rel="noopener noreferrer">Newsletter</a></li>
 <li><a href="https://www.youtube.com/@fragmentedpodcast" rel="noopener noreferrer">Youtube</a></li>
 <li><a href="https://fragmentedpodcast.com" rel="noopener noreferrer">Website</a></li>
</ul>
<h2>Co-hosts:</h2>
<ul>
 <li><a href="https://kau.sh/" rel="noopener noreferrer">Kaushik Gopal</a></li>
 <li><a href="https://iurysouza.dev/" rel="noopener noreferrer">Iury Souza</a></li>
</ul>
<blockquote>
 <p>[!fyi] We transitioned from Android development to AI starting with<br><a rel="noopener noreferrer">Ep. #300</a>. Listen to that episode for the full story behind<br>
  our new direction.</p>
</blockquote>
]]></description>
      <pubDate>Tue, 17 Mar 2026 07:22:16 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/episodes/307</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>The hard part of AI coding isn't generating code — it's controlling quality, safety, and drift. Kaushik and Iury break down harness engineering: the five pillars for shaping an agent's environment and what it looks like when teams build custom harnesses from scratch.</p>
<p><a href="https://fragmentedpodcast.com/episodes/307" rel="noopener noreferrer"><i>Full shownotes at fragmentedpodcast.com</i></a><i>.</i></p>
<h1>Show Notes</h1>
<h2>Why it matters</h2>
<ul>
 <li><a href="https://openai.com/index/harness-engineering/" rel="noopener noreferrer">Harness Engineering</a> -<br>
  OpenAI's post on building their Codex codebase (~1M lines of code, 1,500 PRs<br>
  merged, zero manually written)</li>
</ul>
<h2>Shaping the harness</h2>
<ul>
 <li><a href="https://iurysouza.dev/newsletter/the-feeds-lost-and-found-01/" rel="noopener noreferrer">The Feed's Lost and Found</a> -<br>
  Iury's newsletter consolidating harness engineering themes</li>
</ul>
<ol>
 <li>Agent legibility</li>
 <li>Closed feedback loops</li>
 <li>Persistent memory</li>
 <li>Entropy control</li>
 <li>Blast radius controls</li>
</ol>
<h2>Building the harness</h2>
<ul>
 <li><a href="https://stripe.dev/blog/minions-stripes-one-shot-end-to-end-coding-agents" rel="noopener noreferrer">Minions: Stripe's one-shot, end-to-end coding agents</a> -<br>
  Stripe forked Goose to build custom agents for their codebase</li>
 <li><a href="https://github.com/block/goose" rel="noopener noreferrer">Goose</a> - open-source coding agent from Block</li>
 <li><a href="https://github.com/obra/superpowers" rel="noopener noreferrer">Superpowers</a> by Jesse Vincent - skills<br>
  that enforce a proper software engineering process</li>
 <li><a href="https://opencode.ai/" rel="noopener noreferrer">Open Code</a> - open-source coding agent you can fork and<br>
  customize</li>
</ul>
<h2>Other resources</h2>
<ul>
 <li><a href="https://latentpatterns.com/glossary/agent-harness" rel="noopener noreferrer">Agent Harness Glossary</a> -<br>
  Latent Patterns</li>
 <li><a href="https://cursor.com/blog/self-driving-codebases" rel="noopener noreferrer">Towards self-driving codebases</a> -<br>
  Cursor</li>
 <li><a href="https://githubnext.com/projects/agentic-workflows" rel="noopener noreferrer">Agentic Workflows</a> -<br>
  GitHub Next</li>
 <li><a href="https://www.thoughtworks.com/content/dam/thoughtworks/documents/report/tw_future%20_of_software_development_retreat_%20key_takeaways.pdf" rel="noopener noreferrer">Future of Software Development</a> -<br>
  ThoughtWorks</li>
</ul>
<h1>Get in touch</h1>
<p>We'd love to hear from you. <a href="mailto:contact@fragmentedpodcast.com" rel="noopener noreferrer">Email</a> is the<br>
 best way to reach us or you can check our <a rel="noopener noreferrer">contact page</a> for other<br>
 ways.</p>
<p>We want to hear all the feedback: what's working, what's not, topics you'd like<br>
 to hear more on.</p>
<ul>
 <li><a href="https://fragmentedpodcast.com/contact" rel="noopener noreferrer">Contact us</a></li>
 <li><a href="https://buttondown.com/fragmentedcast" rel="noopener noreferrer">Newsletter</a></li>
 <li><a href="https://www.youtube.com/@fragmentedpodcast" rel="noopener noreferrer">Youtube</a></li>
 <li><a href="https://fragmentedpodcast.com" rel="noopener noreferrer">Website</a></li>
</ul>
<h2>Co-hosts:</h2>
<ul>
 <li><a href="https://kau.sh/" rel="noopener noreferrer">Kaushik Gopal</a></li>
 <li><a href="https://iurysouza.dev/" rel="noopener noreferrer">Iury Souza</a></li>
</ul>
<blockquote>
 <p>[!fyi] We transitioned from Android development to AI starting with<br><a rel="noopener noreferrer">Ep. #300</a>. Listen to that episode for the full story behind<br>
  our new direction.</p>
</blockquote>
]]></content:encoded>
      <enclosure length="29655998" type="audio/mpeg" url="https://cdn.simplecast.com/media/audio/transcoded/eea5748e-09ed-4c46-8f6a-b2569dd75851/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/audio/group/face4e8b-6fb2-4f91-ab8e-8ad35b829715/group-item/0ce6c86f-d6ef-4ee1-8fa7-9ac6958feed6/128_default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>307 - Harness Engineering - the hard part of AI coding</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:29:55</itunes:duration>
      <itunes:summary>The hard part of AI coding isn&apos;t generating code — it&apos;s controlling quality, safety, and drift. Kaushik and Iury break down harness engineering: the five pillars for shaping an agent&apos;s environment and what it looks like when teams build custom harnesses from scratch.

Full shownotes at - https://fragmentedpodcast.com/episodes/307</itunes:summary>
      <itunes:subtitle>The hard part of AI coding isn&apos;t generating code — it&apos;s controlling quality, safety, and drift. Kaushik and Iury break down harness engineering: the five pillars for shaping an agent&apos;s environment and what it looks like when teams build custom harnesses from scratch.

Full shownotes at - https://fragmentedpodcast.com/episodes/307</itunes:subtitle>
      <itunes:keywords>entropy-control, persistent-memory, blast-radius, harness-engineering, feedback-loops, agent-legibility, ai, ai-coding-agent</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>307</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">25d20030-5889-454f-9ce9-7583e14e8a75</guid>
      <title>306 - Keeping your agent instructions in sync and effective</title>
      <description><![CDATA[<p>AGENTS.md is becoming the common language for AI coding tools, but keeping repo<br>
 rules, personal rules, and tool-specific files in sync is still messy. In this<br>
 episode, Kaushik and Iury break down the sync problem, compare their own setups,<br>
 and unpack what the latest AGENTS.md research actually says.</p>
<p><a href="https://fragmentedpodcast.com/episodes/306" rel="noopener noreferrer"><i>Full shownotes at fragmentedpodcast.com</i></a><i>.</i></p>
<h1>Show Notes</h1>
<h2>The sync problem</h2>
<ul>
 <li><a href="https://agents.md" rel="noopener noreferrer">AGENTS.md</a> - Official spec</li>
 <li><a href="https://developers.openai.com/codex/guides/agents-md/" rel="noopener noreferrer">Custom instructions with AGENTS.md</a> -<br>
  Open AI</li>
 <li><a href="https://kau.sh/blog/agents-md/" rel="noopener noreferrer">Keep your AGENTS.md in sync</a> - Kaushik's post</li>
 <li><a href="https://github.com/jpcaparas/rulesync" rel="noopener noreferrer">Rulesync</a> - What Iury uses</li>
 <li><a href="https://x.com/ryancarson/status/2024144258702143782" rel="noopener noreferrer">Tweet by Ryan Carson and Claude frustrations</a></li>
</ul>
<h2>Other links</h2>
<ul>
 <li><a href="https://arxiv.org/abs/2602.11988" rel="noopener noreferrer">Evaluating AGENTS.md: Are Repository-Level Context Files Helpful for Coding Agents?</a></li>
 <li><a href="https://openai.com/index/harness-engineering/" rel="noopener noreferrer">Harness engineering - Check the section about using AGENTS.md as a table of contents</a></li>
 <li><a href="https://opencode.ai/" rel="noopener noreferrer">OpenCode</a></li>
</ul>
<h1>Get in touch</h1>
<p>We'd love to hear from you. <a href="mailto:contact@fragmentedpodcast.com" rel="noopener noreferrer">Email</a> is the<br>
 best way to reach us or you can check our <a rel="noopener noreferrer">contact page</a> for other<br>
 ways.</p>
<p>We want to hear all the feedback: what's working, what's not, topics you'd like<br>
 to hear more on.</p>
<ul>
 <li><a href="https://fragmentedpodcast.com/contact" rel="noopener noreferrer">Contact us</a></li>
 <li><a href="https://buttondown.com/fragmentedcast" rel="noopener noreferrer">Newsletter</a></li>
 <li><a href="https://www.youtube.com/@fragmentedpodcast" rel="noopener noreferrer">Youtube</a></li>
 <li><a href="https://fragmentedpodcast.com" rel="noopener noreferrer">Website</a></li>
</ul>
<h2>Co-hosts:</h2>
<ul>
 <li><a href="https://kau.sh/" rel="noopener noreferrer">Kaushik Gopal</a></li>
 <li><a href="https://iurysouza.dev/" rel="noopener noreferrer">Iury Souza</a></li>
</ul>
<blockquote>
 <p>[!fyi] We transitioned from Android development to AI starting with<br><a rel="noopener noreferrer">Ep. #300</a>. Listen to that episode for the full story behind<br>
  our new direction.</p>
</blockquote>
]]></description>
      <pubDate>Tue, 10 Mar 2026 07:07:41 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal, Iury Souza)</author>
      <link>https://fragmentedpodcast.com/episodes/306</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>AGENTS.md is becoming the common language for AI coding tools, but keeping repo<br>
 rules, personal rules, and tool-specific files in sync is still messy. In this<br>
 episode, Kaushik and Iury break down the sync problem, compare their own setups,<br>
 and unpack what the latest AGENTS.md research actually says.</p>
<p><a href="https://fragmentedpodcast.com/episodes/306" rel="noopener noreferrer"><i>Full shownotes at fragmentedpodcast.com</i></a><i>.</i></p>
<h1>Show Notes</h1>
<h2>The sync problem</h2>
<ul>
 <li><a href="https://agents.md" rel="noopener noreferrer">AGENTS.md</a> - Official spec</li>
 <li><a href="https://developers.openai.com/codex/guides/agents-md/" rel="noopener noreferrer">Custom instructions with AGENTS.md</a> -<br>
  Open AI</li>
 <li><a href="https://kau.sh/blog/agents-md/" rel="noopener noreferrer">Keep your AGENTS.md in sync</a> - Kaushik's post</li>
 <li><a href="https://github.com/jpcaparas/rulesync" rel="noopener noreferrer">Rulesync</a> - What Iury uses</li>
 <li><a href="https://x.com/ryancarson/status/2024144258702143782" rel="noopener noreferrer">Tweet by Ryan Carson and Claude frustrations</a></li>
</ul>
<h2>Other links</h2>
<ul>
 <li><a href="https://arxiv.org/abs/2602.11988" rel="noopener noreferrer">Evaluating AGENTS.md: Are Repository-Level Context Files Helpful for Coding Agents?</a></li>
 <li><a href="https://openai.com/index/harness-engineering/" rel="noopener noreferrer">Harness engineering - Check the section about using AGENTS.md as a table of contents</a></li>
 <li><a href="https://opencode.ai/" rel="noopener noreferrer">OpenCode</a></li>
</ul>
<h1>Get in touch</h1>
<p>We'd love to hear from you. <a href="mailto:contact@fragmentedpodcast.com" rel="noopener noreferrer">Email</a> is the<br>
 best way to reach us or you can check our <a rel="noopener noreferrer">contact page</a> for other<br>
 ways.</p>
<p>We want to hear all the feedback: what's working, what's not, topics you'd like<br>
 to hear more on.</p>
<ul>
 <li><a href="https://fragmentedpodcast.com/contact" rel="noopener noreferrer">Contact us</a></li>
 <li><a href="https://buttondown.com/fragmentedcast" rel="noopener noreferrer">Newsletter</a></li>
 <li><a href="https://www.youtube.com/@fragmentedpodcast" rel="noopener noreferrer">Youtube</a></li>
 <li><a href="https://fragmentedpodcast.com" rel="noopener noreferrer">Website</a></li>
</ul>
<h2>Co-hosts:</h2>
<ul>
 <li><a href="https://kau.sh/" rel="noopener noreferrer">Kaushik Gopal</a></li>
 <li><a href="https://iurysouza.dev/" rel="noopener noreferrer">Iury Souza</a></li>
</ul>
<blockquote>
 <p>[!fyi] We transitioned from Android development to AI starting with<br><a rel="noopener noreferrer">Ep. #300</a>. Listen to that episode for the full story behind<br>
  our new direction.</p>
</blockquote>
]]></content:encoded>
      <enclosure length="23368079" type="audio/mpeg" url="https://cdn.simplecast.com/media/audio/transcoded/eea5748e-09ed-4c46-8f6a-b2569dd75851/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/audio/group/46de80ba-ac49-4b84-a6d5-0af69b867306/group-item/c3992cc4-f63a-40f5-b2a2-b07fe63bb44a/128_default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>306 - Keeping your agent instructions in sync and effective</itunes:title>
      <itunes:author>Kaushik Gopal, Iury Souza</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:23:22</itunes:duration>
      <itunes:summary>AGENTS.md is becoming the common language for AI coding tools, but keeping repo
rules, personal rules, and tool-specific files in sync is still messy. In this
episode, Kaushik and Iury break down the sync problem, compare their own setups,
and unpack what the latest AGENTS.md research actually says.

Full shownotes at https://fragmentedpodcast.com/episodes/306/</itunes:summary>
      <itunes:subtitle>AGENTS.md is becoming the common language for AI coding tools, but keeping repo
rules, personal rules, and tool-specific files in sync is still messy. In this
episode, Kaushik and Iury break down the sync problem, compare their own setups,
and unpack what the latest AGENTS.md research actually says.

Full shownotes at https://fragmentedpodcast.com/episodes/306/</itunes:subtitle>
      <itunes:keywords>agents-md, harness-engineering, ai, aaif, ai-coding-agent, opencode, rulesync, claude-code</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>306</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">a416ead5-ee71-4971-aeea-5d72328b1f19</guid>
      <title>305 - Subagents explained - What they are, when (not) to spawn them</title>
      <description><![CDATA[<p>Subagents are becoming a core primitive for serious AI-assisted development. In this episode, Kaushik and Iury disambiguate "agent" terminology, unpack plan mode vs subagents, and explain how parallel, scoped workers improve research quality without polluting the main thread.</p><p><a href="https://fragmentedpodcast.com/episodes/305"><i>Full shownotes at fragmentedpodcast.com</i></a><i>.</i></p><h1>Show Notes</h1><h2>Resources & Documentation</h2><h3>Official Documentation</h3><p><strong>Agents, Modes, Subagents: official harness docs</strong></p><ul><li><a href="https://code.claude.com/docs/en/sub-agents.md">Claude Code Subagents</a></li><li><a href="https://geminicli.com/docs/core/subagents/">Gemini CLI Subagents</a></li><li><a href="https://opencode.ai/docs/agents/">Opencode Subagents</a></li><li><a href="https://cursor.com/docs/context/subagents">Cursor Subagents</a></li><li><a href="https://antigravity.google/docs/agent-modes-settings">Antigravity Agent Modes</a></li><li><a href="https://www.youtube.com/watch?v=0b9p6NNlfM8">AOE Scouting</a></li></ul><h3>Research Papers & Articles</h3><ul><li><a href="https://www.anthropic.com/news/claude-opus-4-5">Introducing Claude Opus 4.5</a></li><li><a href="https://arxiv.org/html/2508.06600v1#S4">Deep-Research Agents Paper</a></li><li><a href="https://x.com/i/status/2020922190775058608">Post: GPT-5 System Card</a> by Alex<br />Xu</li><li><a href="https://cursor.com/blog/self-driving-codebases">Self-Driving Codebases Blog</a> -<br />multi-agent systems making 1,000 commits/hour</li></ul><h1>Get in touch</h1><p>We'd love to hear from you. <a href="mailto:contact@fragmentedpodcast.com">Email</a> is the<br />best way to reach us or you can check our <a href="/contact">contact page</a> for other<br />ways.</p><p>We want to hear all the feedback: what's working, what's not, topics you'd like<br />to hear more on.</p><ul><li><a href="https://fragmentedpodcast.com/contact">Contact us</a></li><li><a href="https://buttondown.com/fragmentedcast">Newsletter</a></li><li><a href="https://www.youtube.com/@fragmentedpodcast">Youtube</a></li><li><a href="https://fragmentedpodcast.com">Website</a></li></ul><h2>Co-hosts:</h2><ul><li><a href="https://kau.sh/">Kaushik Gopal</a></li><li><a href="https://iurysouza.dev/">Iury Souza</a></li></ul><blockquote><p>[!fyi] We transitioned from Android development to AI starting with<br /><a href="/episodes/300">Ep. #300</a>. Listen to that episode for the full story behind<br />our new direction.</p></blockquote>
]]></description>
      <pubDate>Tue, 17 Feb 2026 04:08:47 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal, Iury Souza)</author>
      <link>https://fragmentedpodcast.com/episodes/305</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Subagents are becoming a core primitive for serious AI-assisted development. In this episode, Kaushik and Iury disambiguate "agent" terminology, unpack plan mode vs subagents, and explain how parallel, scoped workers improve research quality without polluting the main thread.</p><p><a href="https://fragmentedpodcast.com/episodes/305"><i>Full shownotes at fragmentedpodcast.com</i></a><i>.</i></p><h1>Show Notes</h1><h2>Resources & Documentation</h2><h3>Official Documentation</h3><p><strong>Agents, Modes, Subagents: official harness docs</strong></p><ul><li><a href="https://code.claude.com/docs/en/sub-agents.md">Claude Code Subagents</a></li><li><a href="https://geminicli.com/docs/core/subagents/">Gemini CLI Subagents</a></li><li><a href="https://opencode.ai/docs/agents/">Opencode Subagents</a></li><li><a href="https://cursor.com/docs/context/subagents">Cursor Subagents</a></li><li><a href="https://antigravity.google/docs/agent-modes-settings">Antigravity Agent Modes</a></li><li><a href="https://www.youtube.com/watch?v=0b9p6NNlfM8">AOE Scouting</a></li></ul><h3>Research Papers & Articles</h3><ul><li><a href="https://www.anthropic.com/news/claude-opus-4-5">Introducing Claude Opus 4.5</a></li><li><a href="https://arxiv.org/html/2508.06600v1#S4">Deep-Research Agents Paper</a></li><li><a href="https://x.com/i/status/2020922190775058608">Post: GPT-5 System Card</a> by Alex<br />Xu</li><li><a href="https://cursor.com/blog/self-driving-codebases">Self-Driving Codebases Blog</a> -<br />multi-agent systems making 1,000 commits/hour</li></ul><h1>Get in touch</h1><p>We'd love to hear from you. <a href="mailto:contact@fragmentedpodcast.com">Email</a> is the<br />best way to reach us or you can check our <a href="/contact">contact page</a> for other<br />ways.</p><p>We want to hear all the feedback: what's working, what's not, topics you'd like<br />to hear more on.</p><ul><li><a href="https://fragmentedpodcast.com/contact">Contact us</a></li><li><a href="https://buttondown.com/fragmentedcast">Newsletter</a></li><li><a href="https://www.youtube.com/@fragmentedpodcast">Youtube</a></li><li><a href="https://fragmentedpodcast.com">Website</a></li></ul><h2>Co-hosts:</h2><ul><li><a href="https://kau.sh/">Kaushik Gopal</a></li><li><a href="https://iurysouza.dev/">Iury Souza</a></li></ul><blockquote><p>[!fyi] We transitioned from Android development to AI starting with<br /><a href="/episodes/300">Ep. #300</a>. Listen to that episode for the full story behind<br />our new direction.</p></blockquote>
]]></content:encoded>
      <enclosure length="26510995" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/97eb062b-911e-425f-a484-b73a1426fc80/audio/1f585e94-e022-4dcd-833c-9355e0e144ed/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>305 - Subagents explained - What they are, when (not) to spawn them</itunes:title>
      <itunes:author>Kaushik Gopal, Iury Souza</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:26:38</itunes:duration>
      <itunes:summary>Subagents are becoming a core primitive for serious AI-assisted development. In this episode, Kaushik and Iury disambiguate &quot;agent&quot; terminology, unpack plan mode vs subagents, and explain how parallel, scoped workers improve research quality without polluting the main thread.

Full shownotes at https://fragmentedpodcast.com/episodes/305</itunes:summary>
      <itunes:subtitle>Subagents are becoming a core primitive for serious AI-assisted development. In this episode, Kaushik and Iury disambiguate &quot;agent&quot; terminology, unpack plan mode vs subagents, and explain how parallel, scoped workers improve research quality without polluting the main thread.

Full shownotes at https://fragmentedpodcast.com/episodes/305</itunes:subtitle>
      <itunes:keywords>agent-sdks, ai, ai-coding-agent, reactive-loop, agent-skills, context-isolation, subagents</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>305</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">e75b5714-ebfa-4948-bf2e-18190889ac13</guid>
      <title>304 - Agent Skills - when to use them and why they matter</title>
      <description><![CDATA[<p>Agent Skills look simple, but they are one of the most powerful building blocks<br />in modern AI coding workflows. In this episode, Kaushik and Iury break down when<br />to use skills, how progressive disclosure works, and how skills compare with<br />commands, instructions, and MCPs.</p><p><a href="https://fragmentedpodcast.com/episodes/304"><i>Full shownotes at fragmentedpodcast.com</i></a><i>.</i></p><h1>Show Notes</h1><h2>Main References</h2><ul><li><a href="https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview#three-types-of-skill-content-three-levels-of-loading">Progressive Disclosure</a> -<br />how skills are loaded into context</li><li><a href="https://agentskills.io/specification">Agent Skills Open Specification</a></li><li><a href="https://www.linuxfoundation.org/press/linux-foundation-announces-the-formation-of-the-agentic-ai-foundation">AAIF (Agentic AI Foundation)</a> -<br />Linux Foundation initiative for AI interoperability</li><li><a href="https://arxiv.org/abs/2307.03172">Needle in a Haystack Problem</a> - original<br />"Lost in the Middle" paper</li><li><a href="https://x.com/trq212/status/2014836841846132761">Agent-Invokable vs User-Invokable</a> -<br />merging skills and commands in Claude Code</li></ul><h2>Creating Skills</h2><ul><li><a href="https://github.com/anthropics/skills/tree/main/skills/skill-creator">Skill Creator</a> -<br />Anthropic's skill for creating new agent skills</li><li><a href="https://code.claude.com/docs/en/skills#frontmatter-reference">Claude Code frontmatter reference</a><ul><li>see model: * & context: fork</li></ul></li></ul><h2>Using other Skills</h2><ul><li><a href="https://github.com/anthropics/skills">Anthropic Skills GitHub Repository</a> -<br />official collection of Claude skills and examples</li><li><a href="https://clawhub.ai/">Clawdhub</a> - Clawdbot's skill hub. All versions are<br />archived <a href="https://github.com/openclaw/skills">here</a></li><li><a href="https://skills.sh/">SKILLS.sh</a> - Vercel's skills hub</li></ul><h3>Warnings before installing random skills</h3><blockquote><p>[!warning] Don't install from hubs blindly.</p><p>Inspect the repo code before adding anything to your agent.</p></blockquote><ul><li><a href="https://genai.owasp.org/llmrisk/llm01-prompt-injection/">Prompt Injection Attacks</a> -<br />OWASP guide to LLM prompt injection vulnerabilities</li><li><a href="https://openclaw.ai/">OpenClaw <- MoltBot <- Clawdbot</a></li><li><a href="https://www.giskard.ai/knowledge/openclaw-security-vulnerabilities-include-data-leakage-and-prompt-injection-risks">OpenClaw Security Analysis</a> -<br />analysis of prompt injection risks in open agent frameworks</li><li><a href="https://x.com/DanielLockyer/status/2019422410018267328">Malware found in a top-downloaded Clawhub skill</a> -<br />incident report thread</li></ul><h3>Additional resources</h3><ul><li><a href="https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/few-shot-prompting">Few-Shot Prompting</a> -<br />improving outputs with examples</li><li><a href="https://x.com/embirico/status/2018415923930206718">.agents/skills</a> - proposal<br />to standardize the skills folder path</li><li><a href="https://vercel.com/blog/agents-md-outperforms-skills-in-our-agent-evals">Vercel: AGENTS.md vs Skills</a> -<br />comparison of agent instruction methods</li></ul><h1>Get in touch</h1><p>We'd love to hear from you. <a href="mailto:contact@fragmentedpodcast.com">Email</a> is the<br />best way to reach us or you can check our <a href="/contact">contact page</a> for other<br />ways.</p><p>We want to hear all the feedback: what's working, what's not, topics you'd like<br />to hear more on.</p><ul><li><a href="https://fragmentedpodcast.com/contact">Contact us</a></li><li><a href="https://buttondown.com/fragmentedcast">Newsletter</a></li><li><a href="https://www.youtube.com/@fragmentedpodcast">Youtube</a></li><li><a href="https://fragmentedpodcast.com">Website</a></li></ul><h2>Co-hosts:</h2><ul><li><a href="https://kau.sh/">Kaushik Gopal</a></li><li><a href="https://iurysouza.dev/">Iury Souza</a></li></ul><blockquote><p>[!fyi] We transitioned from Android development to AI starting with<br /><a href="/episodes/300">Ep. #300</a>. Listen to that episode for the full story behind<br />our new direction.</p></blockquote>
]]></description>
      <pubDate>Mon, 9 Feb 2026 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal, Iury Souza)</author>
      <link>https://fragmentedpodcast.com/episodes/304</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Agent Skills look simple, but they are one of the most powerful building blocks<br />in modern AI coding workflows. In this episode, Kaushik and Iury break down when<br />to use skills, how progressive disclosure works, and how skills compare with<br />commands, instructions, and MCPs.</p><p><a href="https://fragmentedpodcast.com/episodes/304"><i>Full shownotes at fragmentedpodcast.com</i></a><i>.</i></p><h1>Show Notes</h1><h2>Main References</h2><ul><li><a href="https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview#three-types-of-skill-content-three-levels-of-loading">Progressive Disclosure</a> -<br />how skills are loaded into context</li><li><a href="https://agentskills.io/specification">Agent Skills Open Specification</a></li><li><a href="https://www.linuxfoundation.org/press/linux-foundation-announces-the-formation-of-the-agentic-ai-foundation">AAIF (Agentic AI Foundation)</a> -<br />Linux Foundation initiative for AI interoperability</li><li><a href="https://arxiv.org/abs/2307.03172">Needle in a Haystack Problem</a> - original<br />"Lost in the Middle" paper</li><li><a href="https://x.com/trq212/status/2014836841846132761">Agent-Invokable vs User-Invokable</a> -<br />merging skills and commands in Claude Code</li></ul><h2>Creating Skills</h2><ul><li><a href="https://github.com/anthropics/skills/tree/main/skills/skill-creator">Skill Creator</a> -<br />Anthropic's skill for creating new agent skills</li><li><a href="https://code.claude.com/docs/en/skills#frontmatter-reference">Claude Code frontmatter reference</a><ul><li>see model: * & context: fork</li></ul></li></ul><h2>Using other Skills</h2><ul><li><a href="https://github.com/anthropics/skills">Anthropic Skills GitHub Repository</a> -<br />official collection of Claude skills and examples</li><li><a href="https://clawhub.ai/">Clawdhub</a> - Clawdbot's skill hub. All versions are<br />archived <a href="https://github.com/openclaw/skills">here</a></li><li><a href="https://skills.sh/">SKILLS.sh</a> - Vercel's skills hub</li></ul><h3>Warnings before installing random skills</h3><blockquote><p>[!warning] Don't install from hubs blindly.</p><p>Inspect the repo code before adding anything to your agent.</p></blockquote><ul><li><a href="https://genai.owasp.org/llmrisk/llm01-prompt-injection/">Prompt Injection Attacks</a> -<br />OWASP guide to LLM prompt injection vulnerabilities</li><li><a href="https://openclaw.ai/">OpenClaw <- MoltBot <- Clawdbot</a></li><li><a href="https://www.giskard.ai/knowledge/openclaw-security-vulnerabilities-include-data-leakage-and-prompt-injection-risks">OpenClaw Security Analysis</a> -<br />analysis of prompt injection risks in open agent frameworks</li><li><a href="https://x.com/DanielLockyer/status/2019422410018267328">Malware found in a top-downloaded Clawhub skill</a> -<br />incident report thread</li></ul><h3>Additional resources</h3><ul><li><a href="https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/few-shot-prompting">Few-Shot Prompting</a> -<br />improving outputs with examples</li><li><a href="https://x.com/embirico/status/2018415923930206718">.agents/skills</a> - proposal<br />to standardize the skills folder path</li><li><a href="https://vercel.com/blog/agents-md-outperforms-skills-in-our-agent-evals">Vercel: AGENTS.md vs Skills</a> -<br />comparison of agent instruction methods</li></ul><h1>Get in touch</h1><p>We'd love to hear from you. <a href="mailto:contact@fragmentedpodcast.com">Email</a> is the<br />best way to reach us or you can check our <a href="/contact">contact page</a> for other<br />ways.</p><p>We want to hear all the feedback: what's working, what's not, topics you'd like<br />to hear more on.</p><ul><li><a href="https://fragmentedpodcast.com/contact">Contact us</a></li><li><a href="https://buttondown.com/fragmentedcast">Newsletter</a></li><li><a href="https://www.youtube.com/@fragmentedpodcast">Youtube</a></li><li><a href="https://fragmentedpodcast.com">Website</a></li></ul><h2>Co-hosts:</h2><ul><li><a href="https://kau.sh/">Kaushik Gopal</a></li><li><a href="https://iurysouza.dev/">Iury Souza</a></li></ul><blockquote><p>[!fyi] We transitioned from Android development to AI starting with<br /><a href="/episodes/300">Ep. #300</a>. Listen to that episode for the full story behind<br />our new direction.</p></blockquote>
]]></content:encoded>
      <enclosure length="26653966" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/c3bf3b11-1c58-482b-8ddd-f2741e3dd2b4/audio/2de2d02a-06a1-49e6-8ad9-290e24431e0a/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>304 - Agent Skills - when to use them and why they matter</itunes:title>
      <itunes:author>Kaushik Gopal, Iury Souza</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:26:47</itunes:duration>
      <itunes:summary>Agent Skills look simple, but they are one of the most powerful building blocks in modern AI coding workflows. In this episode, Kaushik and Iury break down when to use skills, how progressive disclosure works, and how skills compare with commands, instructions, and MCPs.

Full shownotes at https://fragmentedpodcast.com/episodes/304</itunes:summary>
      <itunes:subtitle>Agent Skills look simple, but they are one of the most powerful building blocks in modern AI coding workflows. In this episode, Kaushik and Iury break down when to use skills, how progressive disclosure works, and how skills compare with commands, instructions, and MCPs.

Full shownotes at https://fragmentedpodcast.com/episodes/304</itunes:subtitle>
      <itunes:keywords>ai, vibe-coding, aaif, prompt-injection, ai-coding-agent, progressive-disclosure, claude-code, agent-skills</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>304</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">a3b01e2d-43f3-4126-9865-dd3d6ac7d340</guid>
      <title>303 - How LLMs Work - the 20 minute explainer</title>
      <description><![CDATA[<p>Ever get asked "how do LLMs work?" at a party and freeze? We walk through the full pipeline: tokenization, embeddings, inference — so you understand it well enough to explain it. Walk away with a mental model that you can use for your next dinner party.</p><p>_<a href="https://fragmentedpodcast.com/episodes/303">Full shownotes at fragmentedpodcast.com</a>.</p><h1>Show Notes</h1><h2>Words -> Tokens:</h2><ul><li>OpenAI <a href="https://platform.openai.com/tokenizer">Tokenizer visualizer</a> -<br />Visualize how text becomes tokens</li></ul><h2>Tokens -> Embeddings:</h2><ul><li><a href="https://en.wikipedia.org/wiki/RGB_color_model">RGB Color model</a> - wikipedia</li><li><a href="https://en.wikipedia.org/wiki/Word2vec">Word2Vec technique</a> - wikipedia<ul><li><a href="https://arxiv.org/abs/1301.3781">Efficient Estimation of Word Representation</a> -<br />original Word2Vec paper by Mikolov et al.</li></ul></li></ul><h2>Embeddings -> Inference:</h2><ul><li><a href="https://en.wikipedia.org/wiki/Word_embedding">Word embedding</a></li><li><a href="https://codefinity.com/blog/Understanding-Temperature%2C-Top-k%2C-and-Top-p-Sampling-in-Generative-Models">Temperature, Top-k, Top-p samping</a></li></ul><h1>Get in touch</h1><p>We'd love to hear from you. <a href="mailto:contact@fragmentedpodcast.com">Email</a> is the<br />best way to reach us or you can check our <a href="/contact">contact page</a> for other<br />ways.</p><p>We want to hear all the feedback: what's working, what's not, topics you'd like<br />to hear more on. We want to make the show better for you so let us know!</p><ul><li><a href="https://fragmentedpodcast.com/contact">Contact us</a></li><li><a href="https://buttondown.com/fragmentedcast">Newsletter</a></li><li><a href="https://www.youtube.com/@fragmentedpodcast">Youtube</a></li><li><a href="https://fragmentedpodcast.com">Website</a></li></ul><h2>Co-hosts:</h2><ul><li><a href="https://kau.sh/">Kaushik Gopal</a></li><li><a href="https://iurysouza.dev/">Iury Souza</a></li></ul><blockquote><p>[!fyi] We transitioned from Android development to AI starting with<br /><a href="/episodes/300">Ep. #300</a>. Listen to that episode for the full story behind<br />our new direction.</p></blockquote>
]]></description>
      <pubDate>Mon, 2 Feb 2026 08:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal, Iury Souza)</author>
      <link>https://fragmentedpodcast.com/episodes/303</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Ever get asked "how do LLMs work?" at a party and freeze? We walk through the full pipeline: tokenization, embeddings, inference — so you understand it well enough to explain it. Walk away with a mental model that you can use for your next dinner party.</p><p>_<a href="https://fragmentedpodcast.com/episodes/303">Full shownotes at fragmentedpodcast.com</a>.</p><h1>Show Notes</h1><h2>Words -> Tokens:</h2><ul><li>OpenAI <a href="https://platform.openai.com/tokenizer">Tokenizer visualizer</a> -<br />Visualize how text becomes tokens</li></ul><h2>Tokens -> Embeddings:</h2><ul><li><a href="https://en.wikipedia.org/wiki/RGB_color_model">RGB Color model</a> - wikipedia</li><li><a href="https://en.wikipedia.org/wiki/Word2vec">Word2Vec technique</a> - wikipedia<ul><li><a href="https://arxiv.org/abs/1301.3781">Efficient Estimation of Word Representation</a> -<br />original Word2Vec paper by Mikolov et al.</li></ul></li></ul><h2>Embeddings -> Inference:</h2><ul><li><a href="https://en.wikipedia.org/wiki/Word_embedding">Word embedding</a></li><li><a href="https://codefinity.com/blog/Understanding-Temperature%2C-Top-k%2C-and-Top-p-Sampling-in-Generative-Models">Temperature, Top-k, Top-p samping</a></li></ul><h1>Get in touch</h1><p>We'd love to hear from you. <a href="mailto:contact@fragmentedpodcast.com">Email</a> is the<br />best way to reach us or you can check our <a href="/contact">contact page</a> for other<br />ways.</p><p>We want to hear all the feedback: what's working, what's not, topics you'd like<br />to hear more on. We want to make the show better for you so let us know!</p><ul><li><a href="https://fragmentedpodcast.com/contact">Contact us</a></li><li><a href="https://buttondown.com/fragmentedcast">Newsletter</a></li><li><a href="https://www.youtube.com/@fragmentedpodcast">Youtube</a></li><li><a href="https://fragmentedpodcast.com">Website</a></li></ul><h2>Co-hosts:</h2><ul><li><a href="https://kau.sh/">Kaushik Gopal</a></li><li><a href="https://iurysouza.dev/">Iury Souza</a></li></ul><blockquote><p>[!fyi] We transitioned from Android development to AI starting with<br /><a href="/episodes/300">Ep. #300</a>. Listen to that episode for the full story behind<br />our new direction.</p></blockquote>
]]></content:encoded>
      <enclosure length="25656882" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/d0e8970a-e53d-453d-92be-1061cc6a1077/audio/edc5a514-6970-472d-a6c5-ae9fab11751e/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>303 - How LLMs Work - the 20 minute explainer</itunes:title>
      <itunes:author>Kaushik Gopal, Iury Souza</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:25:45</itunes:duration>
      <itunes:summary>Ever get asked &quot;how do LLMs work?&quot; at a party and freeze? We walk through the full pipeline: tokenization, embeddings, inference — so you understand it well enough to explain it. Walk away with a mental model that you can use for your next dinner party.</itunes:summary>
      <itunes:subtitle>Ever get asked &quot;how do LLMs work?&quot; at a party and freeze? We walk through the full pipeline: tokenization, embeddings, inference — so you understand it well enough to explain it. Walk away with a mental model that you can use for your next dinner party.</itunes:subtitle>
      <itunes:keywords>inference, llm, nlp, tokens, word2vec, machine-learning, explainer, embeddings</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>303</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">c9061ae6-462a-43c3-acc5-25f645e0ed6a</guid>
      <title>302 - MCPs Explained - what they are and when to use them</title>
      <description><![CDATA[<p>MCPs are everywhere, but are they worth the token cost? We break down what Model Context Protocol actually is, how it differs from just using CLIs, the tradeoffs you should know about, and when MCPs actually make sense for your workflow.</p><p><a href="https://fragmentedpodcast.com/episodes/302"><i>Full shownotes at fragmentedpodcast.com/episodes/302</i></a><i>.</i></p><h1>Show Notes</h1><ul><li><a href="https://modelcontextprotocol.io/docs/getting-started/intro">MCP - Model Context Protocol</a></li><li><a href="https://developers.glean.com/guides/mcp">Remote MCP server example - Glean</a></li><li>AAIF -<br /><a href="https://aaif.io/press/linux-foundation-announces-the-formation-of-the-agentic-ai-foundation-aaif-anchored-by-new-project-contributions-including-model-context-protocol-mcp-goose-and-agents-md/">Agentic AI Foundation setup by Linux foundation</a></li><li><a href="https://github.com/github/github-mcp-server">Github MCP</a></li><li><a href="https://cli.github.com/">Github gh CLI</a></li><li><a href="https://github.com/microsoft/playwright-mcp">Playwright MCP</a></li><li><a href="https://context7.com/">Context7 MCP</a></li><li>Anthropic's announcement on<br /><a href="https://www.anthropic.com/engineering/advanced-tool-use">Advanced Tool Use</a></li></ul><h1>Tips</h1><ul><li>Iury: use <a href="https://github.com/ast-grep/ast-grep">ast-grep</a> to structurally<br />search code faster</li><li>KG: use <a href="https://agent-browser.dev/">agent-browser by Vercel</a> to give browsing<br />power to your agent</li></ul><h1>Get in touch</h1><p>We'd love to hear from you. <a href="mailto:contact@fragmentedpodcast.com">Email</a> is the<br />best way to reach us or you can check our <a href="/contact">contact page</a> for other<br />ways.</p><p>We want to hear all the feedback: what's working, what's not, topics you'd like<br />to hear more on. We want to make the show better for you so let us know!</p><ul><li><a href="https://fragmentedpodcast.com/contact">Contact us</a></li><li><a href="https://buttondown.com/fragmentedcast">Newsletter</a></li><li><a href="https://www.youtube.com/@fragmentedpodcast">Youtube</a></li><li><a href="https://fragmentedpodcast.com">Website</a></li></ul><h2>Co-hosts:</h2><ul><li><a href="https://kau.sh/">Kaushik Gopal</a></li><li><a href="https://iurysouza.dev/">Iury Souza</a></li></ul><blockquote><p>We transitioned from Android development to AI starting with<br /><a href="/episodes/300">Ep. #300</a>. Listen to that episode for the full story behind<br />our new direction.</p></blockquote>
]]></description>
      <pubDate>Mon, 26 Jan 2026 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Iury Souza, Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/episodes/302/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>MCPs are everywhere, but are they worth the token cost? We break down what Model Context Protocol actually is, how it differs from just using CLIs, the tradeoffs you should know about, and when MCPs actually make sense for your workflow.</p><p><a href="https://fragmentedpodcast.com/episodes/302"><i>Full shownotes at fragmentedpodcast.com/episodes/302</i></a><i>.</i></p><h1>Show Notes</h1><ul><li><a href="https://modelcontextprotocol.io/docs/getting-started/intro">MCP - Model Context Protocol</a></li><li><a href="https://developers.glean.com/guides/mcp">Remote MCP server example - Glean</a></li><li>AAIF -<br /><a href="https://aaif.io/press/linux-foundation-announces-the-formation-of-the-agentic-ai-foundation-aaif-anchored-by-new-project-contributions-including-model-context-protocol-mcp-goose-and-agents-md/">Agentic AI Foundation setup by Linux foundation</a></li><li><a href="https://github.com/github/github-mcp-server">Github MCP</a></li><li><a href="https://cli.github.com/">Github gh CLI</a></li><li><a href="https://github.com/microsoft/playwright-mcp">Playwright MCP</a></li><li><a href="https://context7.com/">Context7 MCP</a></li><li>Anthropic's announcement on<br /><a href="https://www.anthropic.com/engineering/advanced-tool-use">Advanced Tool Use</a></li></ul><h1>Tips</h1><ul><li>Iury: use <a href="https://github.com/ast-grep/ast-grep">ast-grep</a> to structurally<br />search code faster</li><li>KG: use <a href="https://agent-browser.dev/">agent-browser by Vercel</a> to give browsing<br />power to your agent</li></ul><h1>Get in touch</h1><p>We'd love to hear from you. <a href="mailto:contact@fragmentedpodcast.com">Email</a> is the<br />best way to reach us or you can check our <a href="/contact">contact page</a> for other<br />ways.</p><p>We want to hear all the feedback: what's working, what's not, topics you'd like<br />to hear more on. We want to make the show better for you so let us know!</p><ul><li><a href="https://fragmentedpodcast.com/contact">Contact us</a></li><li><a href="https://buttondown.com/fragmentedcast">Newsletter</a></li><li><a href="https://www.youtube.com/@fragmentedpodcast">Youtube</a></li><li><a href="https://fragmentedpodcast.com">Website</a></li></ul><h2>Co-hosts:</h2><ul><li><a href="https://kau.sh/">Kaushik Gopal</a></li><li><a href="https://iurysouza.dev/">Iury Souza</a></li></ul><blockquote><p>We transitioned from Android development to AI starting with<br /><a href="/episodes/300">Ep. #300</a>. Listen to that episode for the full story behind<br />our new direction.</p></blockquote>
]]></content:encoded>
      <enclosure length="19319944" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/3950092c-154b-4a66-acdf-74983f895165/audio/6ff0e5ac-be30-422b-afd5-f3274136db63/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>302 - MCPs Explained - what they are and when to use them</itunes:title>
      <itunes:author>Iury Souza, Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:19:09</itunes:duration>
      <itunes:summary>MCPs are everywhere, but are they worth the token cost? We break down what Model Context Protocol actually is, how it differs from just using CLIs, the tradeoffs you should know about, and when MCPs actually make sense for your workflow.

Full shownotes at https://fragmentedpodcast.com/episodes/302</itunes:summary>
      <itunes:subtitle>MCPs are everywhere, but are they worth the token cost? We break down what Model Context Protocol actually is, how it differs from just using CLIs, the tradeoffs you should know about, and when MCPs actually make sense for your workflow.

Full shownotes at https://fragmentedpodcast.com/episodes/302</itunes:subtitle>
      <itunes:keywords>mcp, anthropic, ai, vibe-coding, aaif, model-context-protocol</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>302</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">68e93432-db2c-4765-9534-fdf3198f2573</guid>
      <title>301 - The AI coding ladder</title>
      <description><![CDATA[<p>Most folks reference "AI coding" like it's one thing. It's really not. In this foundational episode Kaushik & Iury walk through (at least) four paradigms — from super autocomplete to agent orchestration — each with different workflows, expectations, and mental models.</p><p>What do most developers follow today? Where is the frontier? What's coming in the future?</p><p>Listen to the episode and find out!</p><p><a href="https://fragmentedpodcast.com/episodes/301"><i>Full shownotes at fragmentedpodcast.com</i></a>.</p><h1>Show Notes</h1><h2>Gen 1: Super autocomplete</h2><ul><li><a href="https://learn.microsoft.com/en-us/visualstudio/ide/using-intellisense?view=visualstudio">Intellisense - regular autocomplete</a></li><li><a href="https://code.visualstudio.com/docs/copilot/ai-powered-suggestions">Github Copilot</a></li><li><a href="https://cursor.com/docs/tab/overview">Cursor Tab</a></li></ul><h2>Gen 2: Chat Oriented Programming</h2><ul><li><a href="https://cursor.com/">Cursor IDE</a></li><li><a href="https://firebender.com/">Firebender</a></li></ul><h2>Gen 3: Agent</h2><ul><li><a href="https://developer.nvidia.com/blog/introduction-to-llm-agents/">Nvidia's definition of an Agent</a></li><li><a href="https://www.promptingguide.ai/techniques/react">ReAct Prompting</a></li><li><a href="https://arxiv.org/html/2310.06117v2">Chain of Thought was a prompting hack</a></li><li><a href="https://www.deepseek.com/en/">DeepSeek</a><ul><li><a href="https://arxiv.org/pdf/2501.12948">DeepSeek - R1 paper</a></li></ul></li><li>TUI tools (or Harnesses):<ul><li><a href="https://github.com/anthropics/claude-code">Claude Code</a></li><li><a href="https://opencode.ai/">Open Code</a></li><li><a href="https://github.com/openai/codex">Codex Cli</a></li><li><a href="https://github.com/google-gemini/gemini-cli">Gemini Cli</a></li></ul></li><li>IDE style tools<ul><li><a href="https://cursor.com/learn/agents">Cursor Agent</a></li><li><a href="https://github.com/features/copilot">Copilot (MS)</a></li><li><a href="https://www.jetbrains.com/junie/">Junie - Intellij</a></li><li><a href="https://antigravity.google/">Antigravity - Google</a></li></ul></li><li>Headless Tools:<ul><li><a href="https://jules.google/">Jules - Google</a></li><li><a href="https://code.claude.com/docs/en/claude-code-on-the-web">Claude Code on the Web</a></li><li><a href="https://developers.openai.com/codex/cloud/">Codex Web</a></li></ul></li></ul><h2>Gen 4: Agent Orchestration</h2><ul><li><a href="https://git-scm.com/docs/git-worktree">Git worktrees</a></li></ul><h1>Tips</h1><ul><li>Iury: Transfer between agents using your own<br /> <a href="https://gist.github.com/AtlantisPleb/1dbe12a0bc8c668efe1f79c614d36400">compact command</a></li><li>KG: Ask the agent to clarify your prompt</li></ul><blockquote><p>Confirm if my requirements are clear. If you have follow up questions, ask me<br />first and clarify before executing anything.</p></blockquote><h1>Contact us</h1><ul><li><a href="https://buttondown.com/fragmentedcast">Newsletter</a></li><li><a href="https://fragmentedpodcast.com">Website</a></li><li><a href="https://fragmentedpodcast.com/contact">Contact us</a></li><li><a href="https://www.youtube.com/@fragmentedpodcast">Youtube</a></li></ul><h2>Co-hosts:</h2><ul><li><a href="https://kau.sh/">Kaushik Gopal</a></li><li><a href="https://iurysouza.dev/">Iury Souza</a></li></ul>
]]></description>
      <pubDate>Mon, 19 Jan 2026 09:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Iury Souza, Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/episodes/301/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Most folks reference "AI coding" like it's one thing. It's really not. In this foundational episode Kaushik & Iury walk through (at least) four paradigms — from super autocomplete to agent orchestration — each with different workflows, expectations, and mental models.</p><p>What do most developers follow today? Where is the frontier? What's coming in the future?</p><p>Listen to the episode and find out!</p><p><a href="https://fragmentedpodcast.com/episodes/301"><i>Full shownotes at fragmentedpodcast.com</i></a>.</p><h1>Show Notes</h1><h2>Gen 1: Super autocomplete</h2><ul><li><a href="https://learn.microsoft.com/en-us/visualstudio/ide/using-intellisense?view=visualstudio">Intellisense - regular autocomplete</a></li><li><a href="https://code.visualstudio.com/docs/copilot/ai-powered-suggestions">Github Copilot</a></li><li><a href="https://cursor.com/docs/tab/overview">Cursor Tab</a></li></ul><h2>Gen 2: Chat Oriented Programming</h2><ul><li><a href="https://cursor.com/">Cursor IDE</a></li><li><a href="https://firebender.com/">Firebender</a></li></ul><h2>Gen 3: Agent</h2><ul><li><a href="https://developer.nvidia.com/blog/introduction-to-llm-agents/">Nvidia's definition of an Agent</a></li><li><a href="https://www.promptingguide.ai/techniques/react">ReAct Prompting</a></li><li><a href="https://arxiv.org/html/2310.06117v2">Chain of Thought was a prompting hack</a></li><li><a href="https://www.deepseek.com/en/">DeepSeek</a><ul><li><a href="https://arxiv.org/pdf/2501.12948">DeepSeek - R1 paper</a></li></ul></li><li>TUI tools (or Harnesses):<ul><li><a href="https://github.com/anthropics/claude-code">Claude Code</a></li><li><a href="https://opencode.ai/">Open Code</a></li><li><a href="https://github.com/openai/codex">Codex Cli</a></li><li><a href="https://github.com/google-gemini/gemini-cli">Gemini Cli</a></li></ul></li><li>IDE style tools<ul><li><a href="https://cursor.com/learn/agents">Cursor Agent</a></li><li><a href="https://github.com/features/copilot">Copilot (MS)</a></li><li><a href="https://www.jetbrains.com/junie/">Junie - Intellij</a></li><li><a href="https://antigravity.google/">Antigravity - Google</a></li></ul></li><li>Headless Tools:<ul><li><a href="https://jules.google/">Jules - Google</a></li><li><a href="https://code.claude.com/docs/en/claude-code-on-the-web">Claude Code on the Web</a></li><li><a href="https://developers.openai.com/codex/cloud/">Codex Web</a></li></ul></li></ul><h2>Gen 4: Agent Orchestration</h2><ul><li><a href="https://git-scm.com/docs/git-worktree">Git worktrees</a></li></ul><h1>Tips</h1><ul><li>Iury: Transfer between agents using your own<br /> <a href="https://gist.github.com/AtlantisPleb/1dbe12a0bc8c668efe1f79c614d36400">compact command</a></li><li>KG: Ask the agent to clarify your prompt</li></ul><blockquote><p>Confirm if my requirements are clear. If you have follow up questions, ask me<br />first and clarify before executing anything.</p></blockquote><h1>Contact us</h1><ul><li><a href="https://buttondown.com/fragmentedcast">Newsletter</a></li><li><a href="https://fragmentedpodcast.com">Website</a></li><li><a href="https://fragmentedpodcast.com/contact">Contact us</a></li><li><a href="https://www.youtube.com/@fragmentedpodcast">Youtube</a></li></ul><h2>Co-hosts:</h2><ul><li><a href="https://kau.sh/">Kaushik Gopal</a></li><li><a href="https://iurysouza.dev/">Iury Souza</a></li></ul>
]]></content:encoded>
      <enclosure length="24584382" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/aa0766a9-30bd-4a71-bb18-f83e15ef9455/audio/b30427b6-c805-45d4-a98c-5d11bbf2becc/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>301 - The AI coding ladder</itunes:title>
      <itunes:author>Iury Souza, Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:24:38</itunes:duration>
      <itunes:summary>Most folks reference &quot;AI coding&quot; like it&apos;s one thing. It&apos;s really not. In this foundational episode Kaushik &amp; Iury walk through (at least) four paradigms — from super autocomplete to agent orchestration — each with different workflows, expectations, and mental models.

What do most developers follow today? Where is the frontier? What&apos;s coming in the future?

Listen to the episode and find out!</itunes:summary>
      <itunes:subtitle>Most folks reference &quot;AI coding&quot; like it&apos;s one thing. It&apos;s really not. In this foundational episode Kaushik &amp; Iury walk through (at least) four paradigms — from super autocomplete to agent orchestration — each with different workflows, expectations, and mental models.

What do most developers follow today? Where is the frontier? What&apos;s coming in the future?

Listen to the episode and find out!</itunes:subtitle>
      <itunes:keywords>paradigms, ai, vibe-coding, ai-coding-agent, ai-coding-paradigms</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>301</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">040ddc6b-abdf-4aa6-92d5-bf42f5e41fe1</guid>
      <title>300 - From Vibe coding to Software engineering</title>
      <description><![CDATA[<p>Fragmented is changing. New direction, new cohost. Kaushik explains the pivot<br />from Android to AI development and introduces Iury Souza.</p><p>From vibe coding to software engineering — one episode at a time.</p><p><a href="https://fragmentedpodcast.com/episodes/300"><i>Full shownotes at fragmentedpodcast.com</i></a><i>.</i></p><h1>Contact us</h1><ul><li><a href="https://buttondown.com/fragmentedcast">Newsletter</a></li><li><a href="https://fragmentedpodcast.com">Website</a></li><li><a href="https://fragmentedpodcast.com/contact">Contact us</a></li><li><a href="https://www.youtube.com/@fragmentedpodcast">Youtube</a></li></ul><h2>Co-hosts:</h2><ul><li><a href="https://kau.sh/">Kaushik Gopal</a></li><li><a href="https://iurysouza.dev/">Iury Souza</a></li></ul>
]]></description>
      <pubDate>Mon, 12 Jan 2026 09:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Iury Souza, Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/episodes/300)</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Fragmented is changing. New direction, new cohost. Kaushik explains the pivot<br />from Android to AI development and introduces Iury Souza.</p><p>From vibe coding to software engineering — one episode at a time.</p><p><a href="https://fragmentedpodcast.com/episodes/300"><i>Full shownotes at fragmentedpodcast.com</i></a><i>.</i></p><h1>Contact us</h1><ul><li><a href="https://buttondown.com/fragmentedcast">Newsletter</a></li><li><a href="https://fragmentedpodcast.com">Website</a></li><li><a href="https://fragmentedpodcast.com/contact">Contact us</a></li><li><a href="https://www.youtube.com/@fragmentedpodcast">Youtube</a></li></ul><h2>Co-hosts:</h2><ul><li><a href="https://kau.sh/">Kaushik Gopal</a></li><li><a href="https://iurysouza.dev/">Iury Souza</a></li></ul>
]]></content:encoded>
      <enclosure length="9319766" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/63d7400c-f368-4af6-a6ae-cf09f46e6349/audio/56b5d652-11b6-4964-8281-146f3e9380dc/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>300 - From Vibe coding to Software engineering</itunes:title>
      <itunes:author>Iury Souza, Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:08:44</itunes:duration>
      <itunes:summary>Fragmented is changing. New direction, new cohost. Kaushik explains the pivot from Android to AI development and introduces Iury Souza.

From vibe coding to software engineering — one episode at a time.</itunes:summary>
      <itunes:subtitle>Fragmented is changing. New direction, new cohost. Kaushik explains the pivot from Android to AI development and introduces Iury Souza.

From vibe coding to software engineering — one episode at a time.</itunes:subtitle>
      <itunes:keywords>ai developer podcast, pivot, ai</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>300</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">b9085912-986e-4484-8665-4512fec74f97</guid>
      <title>257 - Future of AndroidDev in an AI world with Vinay Gaba</title>
      <description><![CDATA[<p>Join us as we talk with Vinay Gaba, Android GDE and leading voice in Android development, about the future of the field. Vinay shares insights from interviews with top Android devs on their three-year predictions, and offers his own perspective. We cover AI's impact, evolving development roles, and crucial future skills.</p><p>You can find the <a href="https://fragmentedpodcast.com/episodes/257">full shownotes over at fragmentedpodcast.com</a>.</p><h1>Show Notes</h1><ul><li><a href="https://www.vinaygaba.me/writing/">Vinay's personal website</a><ul><li><a href="https://www.jetpackcompose.app/newsletter">Dispatch - Jetpack Compose newsletter</a></li><li><a href="https://www.jetpackcompose.app/newsletter/dispatch-issue-11">Issue #11 - Future of AndroidDev</a></li></ul></li><li><a href="https://www.cursor.com/">Cursor AI IDE</a></li><li><a href="https://www.jetbrains.com/ai/">Jetbrains AI assistant</a></li><li><a href="https://www.jetbrains.com/junie/">Jetbrains Junie - the coding agent</a></li></ul><blockquote><p>Pessimists avoid risk, Optimists change the world.</p></blockquote><h1>Contact us</h1><ul><li><a href="https://fragmentedpodcast.com">fragmentedpodcast.com</a></li><li><a href="https://fragmentedpodcast.com/contact">Contact us</a></li><li><a href="https://www.youtube.com/@fragmentedpodcast">Youtube</a></li></ul><h2>Kaushik:</h2><ul><li><a href="https://kau.sh/contact">kau.sh</a> (links to everything)</li><li><a href="https://threads.kau.sh">Threads</a></li><li><a href="https://bluesky.kau.sh">Bluesky</a></li><li><a href="http://youtube.kau.sh">Youtube</a></li><li><a href="https://twitter.kau.sh">@kaushikgopal</a></li></ul>
]]></description>
      <pubDate>Tue, 4 Mar 2025 06:11:42 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Vinay Gaba, Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/episodes/257</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Join us as we talk with Vinay Gaba, Android GDE and leading voice in Android development, about the future of the field. Vinay shares insights from interviews with top Android devs on their three-year predictions, and offers his own perspective. We cover AI's impact, evolving development roles, and crucial future skills.</p><p>You can find the <a href="https://fragmentedpodcast.com/episodes/257">full shownotes over at fragmentedpodcast.com</a>.</p><h1>Show Notes</h1><ul><li><a href="https://www.vinaygaba.me/writing/">Vinay's personal website</a><ul><li><a href="https://www.jetpackcompose.app/newsletter">Dispatch - Jetpack Compose newsletter</a></li><li><a href="https://www.jetpackcompose.app/newsletter/dispatch-issue-11">Issue #11 - Future of AndroidDev</a></li></ul></li><li><a href="https://www.cursor.com/">Cursor AI IDE</a></li><li><a href="https://www.jetbrains.com/ai/">Jetbrains AI assistant</a></li><li><a href="https://www.jetbrains.com/junie/">Jetbrains Junie - the coding agent</a></li></ul><blockquote><p>Pessimists avoid risk, Optimists change the world.</p></blockquote><h1>Contact us</h1><ul><li><a href="https://fragmentedpodcast.com">fragmentedpodcast.com</a></li><li><a href="https://fragmentedpodcast.com/contact">Contact us</a></li><li><a href="https://www.youtube.com/@fragmentedpodcast">Youtube</a></li></ul><h2>Kaushik:</h2><ul><li><a href="https://kau.sh/contact">kau.sh</a> (links to everything)</li><li><a href="https://threads.kau.sh">Threads</a></li><li><a href="https://bluesky.kau.sh">Bluesky</a></li><li><a href="http://youtube.kau.sh">Youtube</a></li><li><a href="https://twitter.kau.sh">@kaushikgopal</a></li></ul>
]]></content:encoded>
      <enclosure length="47265886" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/c70df156-a79e-44a3-9ebe-30e28c033f32/audio/2d474979-fbc9-41d3-8b21-6f2e0666ac22/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>257 - Future of AndroidDev in an AI world with Vinay Gaba</itunes:title>
      <itunes:author>Vinay Gaba, Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:47:39</itunes:duration>
      <itunes:summary>Join us as we talk with Vinay Gaba, Android GDE and leading voice in Android development, about the future of the field. Vinay shares insights from interviews with top Android devs on their three-year predictions, and offers his own perspective. We cover AI&apos;s impact, evolving development roles, and crucial future skills.

You can find the [full shownotes over at fragmentedpodcast.com](https://fragmentedpodcast.com/episodes/257).</itunes:summary>
      <itunes:subtitle>Join us as we talk with Vinay Gaba, Android GDE and leading voice in Android development, about the future of the field. Vinay shares insights from interviews with top Android devs on their three-year predictions, and offers his own perspective. We cover AI&apos;s impact, evolving development roles, and crucial future skills.

You can find the [full shownotes over at fragmentedpodcast.com](https://fragmentedpodcast.com/episodes/257).</itunes:subtitle>
      <itunes:keywords>airbnb, androiddev, ai, dispatch, future</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>257</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">d996848d-5034-49a0-9d24-f96eb9eeb096</guid>
      <title>256 - Rapid prototyping with Kotlin</title>
      <description><![CDATA[<p>In this episode, we dive into the power of rapid prototyping for Android developers using Kotlin. We explore how this crucial skill can impress stakeholders, accelerate your workflow, and help you stay ahead in today's fast-paced tech landscape. We'll cover use cases across scripting, web development (with Ktor & HTMX), mobile apps (Jetpack Compose), and even touch upon how AI is changing the game!</p><p>You can find the <a href="https://fragmentedpodcast.com/episodes/256/">full shownotes over at fragmentedpodcast.com</a>.</p><h1>Show Notes</h1><ul><li>Simple scripting<ul><li><a href="https://blog.jetbrains.com/kotlin/2024/11/state-of-kotlin-scripting-2024/">State of Kotlin Scripting 2024 - Jetbrains blog</a></li><li>Kotlin mini-app repo <a href="https://github.com/kaushikgopal/playground-kt">playground-kt</a></li><li><a href="https://adventofcode.com/">Advent of Code</a></li></ul></li><li>Web sites<ul><li><a href="https://gohugo.io/">Hugo</a> static site generator</li><li><a href="https://pages.cloudflare.com/">Cloudflare Pages</a></li><li><a href="https://en.wikipedia.org/wiki/Slashdot_effect">Slashdot effect</a></li><li><a href="https://fragmentedpodcast.com">Fragmented Podcast Website</a> powered by <a href="https://github.com/kaushikgopal/henry-hugo">Henry</a> (Kaushik's custom theme)</li></ul></li><li>Web apps<ul><li><a href="https://ktor.io/">Ktor</a></li><li><a href="https://htmx.org/">HTMX</a><ul><li><a href="https://en.wikipedia.org/wiki/Ajax_(programming)">Ajax</a></li><li><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Transitions">CSS Transitions</a></li><li><a href="https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events">Server Sent Events</a></li></ul></li><li><a href="https://www.youtube.com/watch?v=wdOs8HGnYyE">Youtube Video showing Ktor + HTMX</a></li></ul></li><li>Mobile apps<ul><li><a href="https://fragmentedpodcast.com/episodes/252/">Episode 252</a> talking about <a href="https://github.com/kaushikgopal/playground-android">playground-android</a></li><li><a href="https://flutter.dev/">Flutter</a></li><li><a href="https://kotlinlang.org/docs/multiplatform.html">Kotlin Multiplatform KMP</a></li><li><a href="https://reactnative.dev/">React Native</a></li></ul></li><li>LLM Based apps<ul><li><a href="https://streamlit.io/">Streamlit</a>.<ul><li><a href="https://techcrunch.com/2022/03/02/snowflake-acquires-streamlit-for-800m-to-help-customers-build-data-based-apps/">Snowflake acquires Streamlit</a></li></ul></li><li><a href="https://aistudio.google.com/">Google AI Studio</a></li><li><a href="https://kotlin.ai/">Kotlin AI</a></li></ul></li><li><a href="https://x.com/SullyOmarr/status/1893757471799308321">Vibe coding an AirBnb clone</a></li></ul><h1>Contact us</h1><ul><li><a href="https://fragmentedpodcast.com">fragmentedpodcast.com</a></li><li><a href="https://fragmentedpodcast.com/contact">Contact us</a></li><li><a href="https://www.youtube.com/@fragmentedpodcast">Youtube</a></li></ul><h2>Kaushik:</h2><ul><li><a href="https://kau.sh/contact">kau.sh</a> (links to everything)</li><li><a href="https://threads.kau.sh">Threads</a></li><li><a href="https://bluesky.kau.sh">Bluesky</a></li><li><a href="http://youtube.kau.sh">Youtube</a></li><li><a href="https://twitter.kau.sh">@kaushikgopal</a></li></ul>
]]></description>
      <pubDate>Mon, 24 Feb 2025 20:10:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/episodes/256/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, we dive into the power of rapid prototyping for Android developers using Kotlin. We explore how this crucial skill can impress stakeholders, accelerate your workflow, and help you stay ahead in today's fast-paced tech landscape. We'll cover use cases across scripting, web development (with Ktor & HTMX), mobile apps (Jetpack Compose), and even touch upon how AI is changing the game!</p><p>You can find the <a href="https://fragmentedpodcast.com/episodes/256/">full shownotes over at fragmentedpodcast.com</a>.</p><h1>Show Notes</h1><ul><li>Simple scripting<ul><li><a href="https://blog.jetbrains.com/kotlin/2024/11/state-of-kotlin-scripting-2024/">State of Kotlin Scripting 2024 - Jetbrains blog</a></li><li>Kotlin mini-app repo <a href="https://github.com/kaushikgopal/playground-kt">playground-kt</a></li><li><a href="https://adventofcode.com/">Advent of Code</a></li></ul></li><li>Web sites<ul><li><a href="https://gohugo.io/">Hugo</a> static site generator</li><li><a href="https://pages.cloudflare.com/">Cloudflare Pages</a></li><li><a href="https://en.wikipedia.org/wiki/Slashdot_effect">Slashdot effect</a></li><li><a href="https://fragmentedpodcast.com">Fragmented Podcast Website</a> powered by <a href="https://github.com/kaushikgopal/henry-hugo">Henry</a> (Kaushik's custom theme)</li></ul></li><li>Web apps<ul><li><a href="https://ktor.io/">Ktor</a></li><li><a href="https://htmx.org/">HTMX</a><ul><li><a href="https://en.wikipedia.org/wiki/Ajax_(programming)">Ajax</a></li><li><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Transitions">CSS Transitions</a></li><li><a href="https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events">Server Sent Events</a></li></ul></li><li><a href="https://www.youtube.com/watch?v=wdOs8HGnYyE">Youtube Video showing Ktor + HTMX</a></li></ul></li><li>Mobile apps<ul><li><a href="https://fragmentedpodcast.com/episodes/252/">Episode 252</a> talking about <a href="https://github.com/kaushikgopal/playground-android">playground-android</a></li><li><a href="https://flutter.dev/">Flutter</a></li><li><a href="https://kotlinlang.org/docs/multiplatform.html">Kotlin Multiplatform KMP</a></li><li><a href="https://reactnative.dev/">React Native</a></li></ul></li><li>LLM Based apps<ul><li><a href="https://streamlit.io/">Streamlit</a>.<ul><li><a href="https://techcrunch.com/2022/03/02/snowflake-acquires-streamlit-for-800m-to-help-customers-build-data-based-apps/">Snowflake acquires Streamlit</a></li></ul></li><li><a href="https://aistudio.google.com/">Google AI Studio</a></li><li><a href="https://kotlin.ai/">Kotlin AI</a></li></ul></li><li><a href="https://x.com/SullyOmarr/status/1893757471799308321">Vibe coding an AirBnb clone</a></li></ul><h1>Contact us</h1><ul><li><a href="https://fragmentedpodcast.com">fragmentedpodcast.com</a></li><li><a href="https://fragmentedpodcast.com/contact">Contact us</a></li><li><a href="https://www.youtube.com/@fragmentedpodcast">Youtube</a></li></ul><h2>Kaushik:</h2><ul><li><a href="https://kau.sh/contact">kau.sh</a> (links to everything)</li><li><a href="https://threads.kau.sh">Threads</a></li><li><a href="https://bluesky.kau.sh">Bluesky</a></li><li><a href="http://youtube.kau.sh">Youtube</a></li><li><a href="https://twitter.kau.sh">@kaushikgopal</a></li></ul>
]]></content:encoded>
      <enclosure length="22271570" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/983a52d2-a331-4eb6-9326-d8e2de785fd7/audio/abc1aa36-e447-4a15-b336-0470e1192998/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>256 - Rapid prototyping with Kotlin</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:21:37</itunes:duration>
      <itunes:summary>In this episode, we talk about the art of rapid prototyping across various platforms and using Kotlin tech to get it done. Also, how will AI change this? Listen to find out more.


You can find the [full shownotes over at fragmentedpodcast.com](https://fragmentedpodcast.com/episodes/256/).</itunes:summary>
      <itunes:subtitle>In this episode, we talk about the art of rapid prototyping across various platforms and using Kotlin tech to get it done. Also, how will AI change this? Listen to find out more.


You can find the [full shownotes over at fragmentedpodcast.com](https://fragmentedpodcast.com/episodes/256/).</itunes:subtitle>
      <itunes:keywords>rapid-prototyping, kotlin, google-ai-studio, kotlin-script, htmx, ktor</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>256</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">67235c4a-f920-40a5-9957-fa63d0c7ae26</guid>
      <title>255 - Data Oriented Programming</title>
      <description><![CDATA[<p>In this episode, we dive into the programming paradigm — Data Oriented Programming (DOP) and why making data the star can simplify your code. Learn how well-modeled data reduces defensive logic, prevents invalid states, and keeps your apps stable. We’ll also contrast DOP with Object Oriented Programming (OOP) and Functional Programming (FP), sharing practical examples, tips, and resource links to deepen your understanding.</p><p>The <a href="https://fragmentedpodcast.com/episodes/255/">full shownotes with illustrations are on fragmentedpodcast.com</a>.</p><h1>Show Notes</h1><ul><li>[announcement] Fragmented has an <a href="https://buttondown.com/fragmentedcast?tag=podcast">email newsletter</a>.</li><li>Programming Paradigms<ul><li><a href="https://en.wikipedia.org/wiki/Object-oriented_programming">Object Oriented Programming</a></li><li><a href="https://en.wikipedia.org/wiki/Functional_programming">Functional Programming</a></li></ul></li></ul><h2>Data Oriented Programming (DOP)</h2><ul><li><a href="https://en.wikipedia.org/wiki/Universally_unique_identifier">UUID</a><ul><li><a href="https://www.rfc-editor.org/rfc/rfc4122">RFC 4122</a></li><li>Kotlin <a href="https://www.youtube.com/watch?v=V5EOsE_eJLE">now</a> <a href="https://github.com/Kotlin/KEEP/blob/uuid/proposals/stdlib/uuid.md">includes</a> <a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.uuid/-uuid/">UUID</a> in the standard lib even for kotlin multiplatform.</li></ul></li></ul><h2>Resources</h2><ul><li>Brian Goetz's <a href="https://www.infoq.com/articles/data-oriented-programming-java/">seminal article</a> on DOP</li><li><a href="https://youtu.be/ixLMO4iPIHo?si=Ikokk9UyXYERGFsJ">Ties Van de Ven</a> Advanced Kotlin Dev Day in 2022</li><li><a href="https://www.manning.com/books/data-oriented-programming-in-java">Data Oriented Programming in Java</a> by Chris Kiehl (by Manning Publications)</li><li><a href="https://www.youtube.com/watch?v=8FRU_aGY4mY">Devoxx talk by Nicolai Parlog</a> on youtube</li></ul><h1>Contact us</h1><ul><li><a href="https://fragmentedpodcast.com">fragmentedpodcast.com</a></li><li><a href="https://fragmentedpodcast.com/contact">Contact us</a></li><li><a href="https://www.youtube.com/@fragmentedpodcast">Youtube</a></li></ul><h2>Kaushik:</h2><ul><li><a href="https://kau.sh/contact">kau.sh</a> (links to everything)</li><li><a href="https://threads.kau.sh">Threads</a></li><li><a href="https://bluesky.kau.sh">Bluesky</a></li><li><a href="http://youtube.kau.sh">Youtube</a></li><li><a href="https://twitter.kau.sh">@kaushikgopal</a></li></ul>
]]></description>
      <pubDate>Tue, 18 Feb 2025 05:36:21 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/episodes/255/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, we dive into the programming paradigm — Data Oriented Programming (DOP) and why making data the star can simplify your code. Learn how well-modeled data reduces defensive logic, prevents invalid states, and keeps your apps stable. We’ll also contrast DOP with Object Oriented Programming (OOP) and Functional Programming (FP), sharing practical examples, tips, and resource links to deepen your understanding.</p><p>The <a href="https://fragmentedpodcast.com/episodes/255/">full shownotes with illustrations are on fragmentedpodcast.com</a>.</p><h1>Show Notes</h1><ul><li>[announcement] Fragmented has an <a href="https://buttondown.com/fragmentedcast?tag=podcast">email newsletter</a>.</li><li>Programming Paradigms<ul><li><a href="https://en.wikipedia.org/wiki/Object-oriented_programming">Object Oriented Programming</a></li><li><a href="https://en.wikipedia.org/wiki/Functional_programming">Functional Programming</a></li></ul></li></ul><h2>Data Oriented Programming (DOP)</h2><ul><li><a href="https://en.wikipedia.org/wiki/Universally_unique_identifier">UUID</a><ul><li><a href="https://www.rfc-editor.org/rfc/rfc4122">RFC 4122</a></li><li>Kotlin <a href="https://www.youtube.com/watch?v=V5EOsE_eJLE">now</a> <a href="https://github.com/Kotlin/KEEP/blob/uuid/proposals/stdlib/uuid.md">includes</a> <a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.uuid/-uuid/">UUID</a> in the standard lib even for kotlin multiplatform.</li></ul></li></ul><h2>Resources</h2><ul><li>Brian Goetz's <a href="https://www.infoq.com/articles/data-oriented-programming-java/">seminal article</a> on DOP</li><li><a href="https://youtu.be/ixLMO4iPIHo?si=Ikokk9UyXYERGFsJ">Ties Van de Ven</a> Advanced Kotlin Dev Day in 2022</li><li><a href="https://www.manning.com/books/data-oriented-programming-in-java">Data Oriented Programming in Java</a> by Chris Kiehl (by Manning Publications)</li><li><a href="https://www.youtube.com/watch?v=8FRU_aGY4mY">Devoxx talk by Nicolai Parlog</a> on youtube</li></ul><h1>Contact us</h1><ul><li><a href="https://fragmentedpodcast.com">fragmentedpodcast.com</a></li><li><a href="https://fragmentedpodcast.com/contact">Contact us</a></li><li><a href="https://www.youtube.com/@fragmentedpodcast">Youtube</a></li></ul><h2>Kaushik:</h2><ul><li><a href="https://kau.sh/contact">kau.sh</a> (links to everything)</li><li><a href="https://threads.kau.sh">Threads</a></li><li><a href="https://bluesky.kau.sh">Bluesky</a></li><li><a href="http://youtube.kau.sh">Youtube</a></li><li><a href="https://twitter.kau.sh">@kaushikgopal</a></li></ul>
]]></content:encoded>
      <enclosure length="31780930" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/9bcca143-e2b6-4afb-a7f3-0dce45e31cc1/audio/f3ab5d78-6763-4031-a9fa-57d164604420/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>255 - Data Oriented Programming</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:31:32</itunes:duration>
      <itunes:summary>In this episode, we dive into the programming paradigm — Data Oriented Programming (DOP) and why making data the star can simplify your code. Learn how well-modeled data reduces defensive logic, prevents invalid states, and keeps your apps stable. We’ll also contrast DOP with Object Oriented Programming (OOP) and Functional Programming (FP), sharing practical examples, tips, and resource links to deepen your understanding.

The [full shownotes with illustrations are on fragmentedpodcast.com](https://fragmentedpodcast.com/episodes/255/).</itunes:summary>
      <itunes:subtitle>In this episode, we dive into the programming paradigm — Data Oriented Programming (DOP) and why making data the star can simplify your code. Learn how well-modeled data reduces defensive logic, prevents invalid states, and keeps your apps stable. We’ll also contrast DOP with Object Oriented Programming (OOP) and Functional Programming (FP), sharing practical examples, tips, and resource links to deepen your understanding.

The [full shownotes with illustrations are on fragmentedpodcast.com](https://fragmentedpodcast.com/episodes/255/).</itunes:subtitle>
      <itunes:keywords>functional programming, data oriented programming, object oriented programming, dop</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>255</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">6e74ddd9-330e-4c9a-85c6-8d08a772f568</guid>
      <title>254 - 8× faster 5× memory savings with Dan Rusu’s Immutable Arrays</title>
      <description><![CDATA[<p>In this episode, discover how Dan Rusu’s pods4k Immutable Arrays library can deliver 2–8× speed boosts and 5× lower memory usage in Kotlin/Android apps. We first revisit the fundamentals of autoboxing/unboxing and immutability to understand their impact on performance. Then we hear from Dan himself on his library, motiviations for building it, how the benchmarks were calculated and much much more. Our grand finale episode for 2024. Hope you enjoy it!</p><p>Full Shownotes at <a href="https://fragmentedpodcast.com/episodes/254">https://fragmentedpodcast.com/episodes/254</a>.</p><h1>Show Notes</h1><ul><li><a href="https://github.com/daniel-rusu/pods4k/tree/main/immutable-arrays">Immutable Arrays on github</a></li><li><a href="/episodes/66/">Immutability episode #66</a> on Immutability with Ryan Harter</li><li><a href="https://jenkov.com/tutorials/java-performance/jmh.html">JMH</a> - Java Microbenchmark Harness</li><li>Immutable Arrays <a href="https://github.com/daniel-rusu/pods4k/blob/main/immutable-arrays/BENCHMARKS.md">Benchmarks page</a> for Immutable Arrays (pods4k)</li><li>Dan's post - <a href="https://proandroiddev.com/kotlin-avoids-entire-categories-of-java-defects-89f160ba4671">Kotlin avoids entire categories of Java defects</a></li><li><a href="https://kotlinlang.org/docs/k2-compiler-migration-guide.html">K2 compiler</a></li><li>Dan Rusu<ul><li><a href="https://danrusu.com/">Website</a></li><li><a href="https://github.com/daniel-rusu/pods4k/discussions">pods4k github discussions</a></li></ul></li></ul><h1>Contact us</h1><ul><li><a href="https://fragmentedpodcast.com">fragmentedpodcast.com</a></li><li><a href="https://fragmentedpodcast.com/contact">Contact us</a></li><li><a href="https://www.youtube.com/@fragmentedpodcast">Youtube</a></li></ul><h2>Kaushik:</h2><ul><li><a href="https://kau.sh/contact">kau.sh</a> (links to everything)</li><li><a href="https://threads.kau.sh">Threads</a></li><li><a href="https://bluesky.kau.sh">Bluesky</a></li><li><a href="http://youtube.kau.sh">Youtube</a></li><li><a href="https://twitter.kau.sh">@kaushikgopal</a></li></ul><p><i>Disclaimer: Links shared might be affiliate links. They help support the production of Fragmented. Thank you for your support.</i></p>
]]></description>
      <pubDate>Tue, 24 Dec 2024 09:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Dan Rusu, Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/episodes/254</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, discover how Dan Rusu’s pods4k Immutable Arrays library can deliver 2–8× speed boosts and 5× lower memory usage in Kotlin/Android apps. We first revisit the fundamentals of autoboxing/unboxing and immutability to understand their impact on performance. Then we hear from Dan himself on his library, motiviations for building it, how the benchmarks were calculated and much much more. Our grand finale episode for 2024. Hope you enjoy it!</p><p>Full Shownotes at <a href="https://fragmentedpodcast.com/episodes/254">https://fragmentedpodcast.com/episodes/254</a>.</p><h1>Show Notes</h1><ul><li><a href="https://github.com/daniel-rusu/pods4k/tree/main/immutable-arrays">Immutable Arrays on github</a></li><li><a href="/episodes/66/">Immutability episode #66</a> on Immutability with Ryan Harter</li><li><a href="https://jenkov.com/tutorials/java-performance/jmh.html">JMH</a> - Java Microbenchmark Harness</li><li>Immutable Arrays <a href="https://github.com/daniel-rusu/pods4k/blob/main/immutable-arrays/BENCHMARKS.md">Benchmarks page</a> for Immutable Arrays (pods4k)</li><li>Dan's post - <a href="https://proandroiddev.com/kotlin-avoids-entire-categories-of-java-defects-89f160ba4671">Kotlin avoids entire categories of Java defects</a></li><li><a href="https://kotlinlang.org/docs/k2-compiler-migration-guide.html">K2 compiler</a></li><li>Dan Rusu<ul><li><a href="https://danrusu.com/">Website</a></li><li><a href="https://github.com/daniel-rusu/pods4k/discussions">pods4k github discussions</a></li></ul></li></ul><h1>Contact us</h1><ul><li><a href="https://fragmentedpodcast.com">fragmentedpodcast.com</a></li><li><a href="https://fragmentedpodcast.com/contact">Contact us</a></li><li><a href="https://www.youtube.com/@fragmentedpodcast">Youtube</a></li></ul><h2>Kaushik:</h2><ul><li><a href="https://kau.sh/contact">kau.sh</a> (links to everything)</li><li><a href="https://threads.kau.sh">Threads</a></li><li><a href="https://bluesky.kau.sh">Bluesky</a></li><li><a href="http://youtube.kau.sh">Youtube</a></li><li><a href="https://twitter.kau.sh">@kaushikgopal</a></li></ul><p><i>Disclaimer: Links shared might be affiliate links. They help support the production of Fragmented. Thank you for your support.</i></p>
]]></content:encoded>
      <enclosure length="48816662" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/a7ad9258-e0f2-4aa6-9db4-a4f7169917d0/audio/9d96d8bd-e37b-429e-b81d-a388b4615c3d/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>254 - 8× faster 5× memory savings with Dan Rusu’s Immutable Arrays</itunes:title>
      <itunes:author>Dan Rusu, Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:49:16</itunes:duration>
      <itunes:summary>In this episode, discover how Dan Rusu’s pods4k Immutable Arrays library can deliver 2–8× speed boosts and 5× lower memory usage in Kotlin/Android apps. We first revisit the fundamentals of autoboxing/unboxing and immutability to understand their impact on performance. Then we hear from Dan himself on his library, motiviations for building it, how the benchmarks were calculated and much much more. Our grand finale episode for 2024. Hope you enjoy it!

Full Shownotes at https://fragmentedpodcast.com/episodes/254.</itunes:summary>
      <itunes:subtitle>In this episode, discover how Dan Rusu’s pods4k Immutable Arrays library can deliver 2–8× speed boosts and 5× lower memory usage in Kotlin/Android apps. We first revisit the fundamentals of autoboxing/unboxing and immutability to understand their impact on performance. Then we hear from Dan himself on his library, motiviations for building it, how the benchmarks were calculated and much much more. Our grand finale episode for 2024. Hope you enjoy it!

Full Shownotes at https://fragmentedpodcast.com/episodes/254.</itunes:subtitle>
      <itunes:keywords>mutable-array, kotlin, pods4k, immutable-arrays, data-structures, immutability, dan-rusu</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>254</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">7e8ecf9f-a324-48a9-89c2-23ae3683c4ec</guid>
      <title>253 - logcat - a new look at logging with Piwai from Square</title>
      <description><![CDATA[<p>Kaushik looks at a new logging library from Square called <a href="https://github.com/square/logcat">logcat</a>. He starts by seeing how the popular <a href="https://github.com/JakeWharton/timber">Timber</a> library does it along with the benefits. He then interviews Pierre-Yves Ricau (Piwai) of Square, the creator of logcat, to explore its origins and advantages.</p><p>You can find the <a href="https://fragmentedpodcast.com/episodes/253">full shownotes over at fragmentedpodcast.com</a>.</p><h1>Show Notes</h1><ul><li><a href="https://github.com/JakeWharton/timber">Timber</a></li><li><a href="https://github.com/square/logcat">logcat</a><ul><li><a href="https://github.com/square/logcat?tab=readme-ov-file#motivations">Motivations in README</a></li><li><a href="https://github.com/square/logcat/issues/6">Compiler plugin issue</a></li><li><a href="https://github.com/kaushikgopal/playground-android?tab=readme-ov-file">Playground android app demonstrating logcat</a></li></ul></li><li><a href="https://bitdrift.io/">bitdrift.io</a></li><li><a href="https://amzn.to/41qKR0U">Design of everyday things</a></li><li><a href="https://fragmentedpodcast.com/episodes/191/">Previous episode #191 on logging</a></li><li>Contact Piwai:<ul><li><a href="https://p-y.wtf/">Website</a></li><li><a href="https://bsky.app/profile/p-y.wtf">Bluesky</a></li></ul></li></ul><h1>Contact</h1><p>You can find us on a few places:</p><ul><li><a href="https://fragmentedpodcast.com">fragmentedpodcast.com</a></li><li><a href="https://fragmentedpodcast.com/contact">Contact us</a></li><li><a href="https://www.youtube.com/@fragmentedpodcast">Youtube</a></li></ul><h2>Kaushik:</h2><ul><li><a href="https://kau.sh/contact">kau.sh</a> (links to everything)</li><li><a href="https://threads.kau.sh">Threads</a></li><li><a href="https://bluesky.kau.sh">Bluesky</a></li><li><a href="http://youtube.kau.sh">Youtube</a></li><li><a href="https://twitter.kau.sh">@kaushikgopal</a></li></ul><p><i>Disclaimer: Links shared might be affiliate links. They help support the production of Fragmented. Thank you for your support.</i></p>
]]></description>
      <pubDate>Tue, 10 Dec 2024 09:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Pierre-Yves Ricau, Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/episodes/253/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Kaushik looks at a new logging library from Square called <a href="https://github.com/square/logcat">logcat</a>. He starts by seeing how the popular <a href="https://github.com/JakeWharton/timber">Timber</a> library does it along with the benefits. He then interviews Pierre-Yves Ricau (Piwai) of Square, the creator of logcat, to explore its origins and advantages.</p><p>You can find the <a href="https://fragmentedpodcast.com/episodes/253">full shownotes over at fragmentedpodcast.com</a>.</p><h1>Show Notes</h1><ul><li><a href="https://github.com/JakeWharton/timber">Timber</a></li><li><a href="https://github.com/square/logcat">logcat</a><ul><li><a href="https://github.com/square/logcat?tab=readme-ov-file#motivations">Motivations in README</a></li><li><a href="https://github.com/square/logcat/issues/6">Compiler plugin issue</a></li><li><a href="https://github.com/kaushikgopal/playground-android?tab=readme-ov-file">Playground android app demonstrating logcat</a></li></ul></li><li><a href="https://bitdrift.io/">bitdrift.io</a></li><li><a href="https://amzn.to/41qKR0U">Design of everyday things</a></li><li><a href="https://fragmentedpodcast.com/episodes/191/">Previous episode #191 on logging</a></li><li>Contact Piwai:<ul><li><a href="https://p-y.wtf/">Website</a></li><li><a href="https://bsky.app/profile/p-y.wtf">Bluesky</a></li></ul></li></ul><h1>Contact</h1><p>You can find us on a few places:</p><ul><li><a href="https://fragmentedpodcast.com">fragmentedpodcast.com</a></li><li><a href="https://fragmentedpodcast.com/contact">Contact us</a></li><li><a href="https://www.youtube.com/@fragmentedpodcast">Youtube</a></li></ul><h2>Kaushik:</h2><ul><li><a href="https://kau.sh/contact">kau.sh</a> (links to everything)</li><li><a href="https://threads.kau.sh">Threads</a></li><li><a href="https://bluesky.kau.sh">Bluesky</a></li><li><a href="http://youtube.kau.sh">Youtube</a></li><li><a href="https://twitter.kau.sh">@kaushikgopal</a></li></ul><p><i>Disclaimer: Links shared might be affiliate links. They help support the production of Fragmented. Thank you for your support.</i></p>
]]></content:encoded>
      <enclosure length="40390107" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/f4e36c96-b9d2-4caa-aa7f-55ffddf98ad3/audio/b3ff6ab2-29eb-4c00-9e9f-cadb80c781e8/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>253 - logcat - a new look at logging with Piwai from Square</itunes:title>
      <itunes:author>Pierre-Yves Ricau, Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:40:30</itunes:duration>
      <itunes:summary>Kaushik looks at a new logging library from Square called logcat. He starts by seeing how the popular Timber library does it along with the benefits. He then interviews Pierre-Yves Ricau (Piwai) of Square, the creator of logcat, to explore its origins and advantages. 

Shownotes: https://fragmentedpodcast.com/episodes/253 </itunes:summary>
      <itunes:subtitle>Kaushik looks at a new logging library from Square called logcat. He starts by seeing how the popular Timber library does it along with the benefits. He then interviews Pierre-Yves Ricau (Piwai) of Square, the creator of logcat, to explore its origins and advantages. 

Shownotes: https://fragmentedpodcast.com/episodes/253 </itunes:subtitle>
      <itunes:keywords>logcat, pyv, timber, logging, piwai</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>253</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">6090075a-565b-4089-93ee-f12d79cbbd53</guid>
      <title>252 - Everyone needs a starter template</title>
      <description><![CDATA[<p>In this episode of Fragmented, Kaushik dives into the importance of creating your own starter template to streamline app development and minimize decision fatigue. He shares insights from his own starter template - <a href="https://github.com/kaushikgopal/playground-android">Playground Android</a>.</p><p>Looking to the future, JetBrains has an exciting tool called <a href="https://blog.jetbrains.com/amper/">Amper</a> that might make all of this much easier. Kaushik chats with JetBrains’ <a href="https://bsky.app/profile/zsmb.co">Márton Braun</a> about Amper, an exciting new tool that could revolutionize Kotlin & Android project setups.</p><p>Tune in to learn how to go from idea to code with less friction!</p><p>You can find the <a href="https://fragmentedpodcast.com/episodes/252">full shownotes over at fragmentedpodcast.com</a>.</p><h1>Show Notes</h1><ul><li><a href="https://github.com/kaushikgopal/playground-android">Playground Android</a></li><li><a href="https://github.com/android/architecture-templates">The Architecture Templates</a> (<a href="https://medium.com/androiddevelopers/introducing-the-architecture-templates-3151323e4e34">blog post</a>)</li><li>Inspiration (Other starter templates):<ul><li><a href="https://www.bloco.io/blog/android-app-starter-update">Bloco's starter template</a> <i>what i referenced a lot</i></li><li><a href="https://jumpstartrails.com/android">Donn's project - Jumpstart Android</a> <i>if you care about quickly getting a Rails app integrated with Android in a hybrid experience</i></li><li><a href="https://github.com/android/nowinandroid">Now in Android</a> <i>too much functionality for my taste</i></li><li><a href="https://github.com/JakeWharton/u2020">Jake's u2020</a> <i>for some good times nostalgia</i></li></ul></li><li><a href="https://github.com/kaushikgopal/playground-android">Playground Android</a><ul><li>gradle <a href="https://github.com/kaushikgopal/playground-android/blob/master/gradle/libs.versions.toml">version catalog</a> - BOM & Bundles (one source of truth)</li><li><a href="./build-logic/README.md">sharing build logic</a> with <a href="https://docs.gradle.org/current/samples/sample_convention_plugins.html">gradle convention plugin</a></li><li><a href="https://github.com/kaushikgopal/playground-android/blob/master/Makefile">Makefile</a> with common cli commands</li><li><a href="https://github.com/kaushikgopal/playground-android/pull/5/files">Custom lint-rules</a></li><li><a href="https://github.com/kaushikgopal/playground-android/tree/master?tab=readme-ov-file#app-module-diagram-multi-module-setup">Multi module setup</a></li><li><a href="https://github.com/kaushikgopal/playground-android/pull/12">dependency injection with kotlin-inject-anvil</a><ul><li><a href="https://fragmentedpodcast.com/episodes/251/">Episode 251 - There's a new king in DI town</a></li></ul></li><li><a href="https://github.com/kaushikgopal/playground-android/pull/9/commits/aad254957a003982633006fb2f350ee7a372f11d">function-injection</a> demo in @Composable</li></ul></li><li><a href="https://blog.jetbrains.com/amper/">Amper</a><ul><li><a href="https://github.com/square/logcat">logcat</a> lib and injecting <a href="https://github.com/kaushikgopal/playground-android/blob/master/common/log/src/main/java/sh/kau/playground/common/log/CompositeLogger.kt">multiple loggers</a></li><li>basic networking with <a href="https://ktor.io/docs/client.html">ktor</a> <a href="https://github.com/kaushikgopal/playground-android/pull/10/files#diff-61300620752e698467343ba4270127d0cbb3c9e3153bb001ff51102244d2c7b2">#10</a></li><li>compose-navigation between feature modules</li></ul></li><li><a href="https://iurysouza.dev/kotlin-devex-is-not-great-amper-could-fix-it/">Iury's post on Kotlin Devex</a></li><li><a href="https://blog.jetbrains.com/amper/">Amper</a><ul><li><a href="https://blog.jetbrains.com/amper/">blog posts on Amper</a></li></ul></li><li><a href="https://surveys.jetbrains.com/s3/kotlin-slack-sign-up">Feedback on Amper - kotlinlang slack</a></li><li>Contact <a href="https://bsky.app/profile/zsmb.co">Márton Braun</a></li></ul><h1>Contact</h1><p>You can find us on a few places:</p><ul><li><a href="https://fragmentedpodcast.com/contact">fragmentedpodcast.com</a></li><li><a href="https://www.youtube.com/@fragmentedpodcast">Youtube</a></li></ul><h2>Kaushik:</h2><ul><li><a href="https://kau.sh/contact">kau.sh</a> (links to everything)</li><li><a href="https://bluesky.kau.sh">Bluesky</a></li><li><a href="https://twitter.kau.sh">@kaushikgopal</a></li><li><a href="https://threads.kau.sh">Threads</a></li><li><a href="http://youtube.kau.sh">Youtube</a></li></ul><p><i>Disclaimer: Links shared might be affiliate links. They help support the production of Fragmented. Thank you for your support.</i></p>
]]></description>
      <pubDate>Tue, 26 Nov 2024 09:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Márton Braun, Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/episodes/252</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode of Fragmented, Kaushik dives into the importance of creating your own starter template to streamline app development and minimize decision fatigue. He shares insights from his own starter template - <a href="https://github.com/kaushikgopal/playground-android">Playground Android</a>.</p><p>Looking to the future, JetBrains has an exciting tool called <a href="https://blog.jetbrains.com/amper/">Amper</a> that might make all of this much easier. Kaushik chats with JetBrains’ <a href="https://bsky.app/profile/zsmb.co">Márton Braun</a> about Amper, an exciting new tool that could revolutionize Kotlin & Android project setups.</p><p>Tune in to learn how to go from idea to code with less friction!</p><p>You can find the <a href="https://fragmentedpodcast.com/episodes/252">full shownotes over at fragmentedpodcast.com</a>.</p><h1>Show Notes</h1><ul><li><a href="https://github.com/kaushikgopal/playground-android">Playground Android</a></li><li><a href="https://github.com/android/architecture-templates">The Architecture Templates</a> (<a href="https://medium.com/androiddevelopers/introducing-the-architecture-templates-3151323e4e34">blog post</a>)</li><li>Inspiration (Other starter templates):<ul><li><a href="https://www.bloco.io/blog/android-app-starter-update">Bloco's starter template</a> <i>what i referenced a lot</i></li><li><a href="https://jumpstartrails.com/android">Donn's project - Jumpstart Android</a> <i>if you care about quickly getting a Rails app integrated with Android in a hybrid experience</i></li><li><a href="https://github.com/android/nowinandroid">Now in Android</a> <i>too much functionality for my taste</i></li><li><a href="https://github.com/JakeWharton/u2020">Jake's u2020</a> <i>for some good times nostalgia</i></li></ul></li><li><a href="https://github.com/kaushikgopal/playground-android">Playground Android</a><ul><li>gradle <a href="https://github.com/kaushikgopal/playground-android/blob/master/gradle/libs.versions.toml">version catalog</a> - BOM & Bundles (one source of truth)</li><li><a href="./build-logic/README.md">sharing build logic</a> with <a href="https://docs.gradle.org/current/samples/sample_convention_plugins.html">gradle convention plugin</a></li><li><a href="https://github.com/kaushikgopal/playground-android/blob/master/Makefile">Makefile</a> with common cli commands</li><li><a href="https://github.com/kaushikgopal/playground-android/pull/5/files">Custom lint-rules</a></li><li><a href="https://github.com/kaushikgopal/playground-android/tree/master?tab=readme-ov-file#app-module-diagram-multi-module-setup">Multi module setup</a></li><li><a href="https://github.com/kaushikgopal/playground-android/pull/12">dependency injection with kotlin-inject-anvil</a><ul><li><a href="https://fragmentedpodcast.com/episodes/251/">Episode 251 - There's a new king in DI town</a></li></ul></li><li><a href="https://github.com/kaushikgopal/playground-android/pull/9/commits/aad254957a003982633006fb2f350ee7a372f11d">function-injection</a> demo in @Composable</li></ul></li><li><a href="https://blog.jetbrains.com/amper/">Amper</a><ul><li><a href="https://github.com/square/logcat">logcat</a> lib and injecting <a href="https://github.com/kaushikgopal/playground-android/blob/master/common/log/src/main/java/sh/kau/playground/common/log/CompositeLogger.kt">multiple loggers</a></li><li>basic networking with <a href="https://ktor.io/docs/client.html">ktor</a> <a href="https://github.com/kaushikgopal/playground-android/pull/10/files#diff-61300620752e698467343ba4270127d0cbb3c9e3153bb001ff51102244d2c7b2">#10</a></li><li>compose-navigation between feature modules</li></ul></li><li><a href="https://iurysouza.dev/kotlin-devex-is-not-great-amper-could-fix-it/">Iury's post on Kotlin Devex</a></li><li><a href="https://blog.jetbrains.com/amper/">Amper</a><ul><li><a href="https://blog.jetbrains.com/amper/">blog posts on Amper</a></li></ul></li><li><a href="https://surveys.jetbrains.com/s3/kotlin-slack-sign-up">Feedback on Amper - kotlinlang slack</a></li><li>Contact <a href="https://bsky.app/profile/zsmb.co">Márton Braun</a></li></ul><h1>Contact</h1><p>You can find us on a few places:</p><ul><li><a href="https://fragmentedpodcast.com/contact">fragmentedpodcast.com</a></li><li><a href="https://www.youtube.com/@fragmentedpodcast">Youtube</a></li></ul><h2>Kaushik:</h2><ul><li><a href="https://kau.sh/contact">kau.sh</a> (links to everything)</li><li><a href="https://bluesky.kau.sh">Bluesky</a></li><li><a href="https://twitter.kau.sh">@kaushikgopal</a></li><li><a href="https://threads.kau.sh">Threads</a></li><li><a href="http://youtube.kau.sh">Youtube</a></li></ul><p><i>Disclaimer: Links shared might be affiliate links. They help support the production of Fragmented. Thank you for your support.</i></p>
]]></content:encoded>
      <enclosure length="25291400" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/c81b3f94-53b8-4962-9dfe-4506fb61d9fc/audio/e5a9a560-eea7-4f64-96cf-16e16ac859b6/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>252 - Everyone needs a starter template</itunes:title>
      <itunes:author>Márton Braun, Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:24:44</itunes:duration>
      <itunes:summary>In this episode of Fragmented, Kaushik dives into the importance of creating your own starter template to streamline app development and minimize decision fatigue. He shares insights from his own starter template - Playground Android.

Looking to the future, JetBrains has an exciting tool called Amper that might make all of this much easier. Kaushik chats with JetBrains’ Márton Braun about Amper, an exciting new tool that could revolutionize Kotlin &amp; Android project setups. Tune in to learn how to go from idea to code with less friction!

You can find the full shownotes  at https://fragmentedpodcast.com/episodes/252</itunes:summary>
      <itunes:subtitle>In this episode of Fragmented, Kaushik dives into the importance of creating your own starter template to streamline app development and minimize decision fatigue. He shares insights from his own starter template - Playground Android.

Looking to the future, JetBrains has an exciting tool called Amper that might make all of this much easier. Kaushik chats with JetBrains’ Márton Braun about Amper, an exciting new tool that could revolutionize Kotlin &amp; Android project setups. Tune in to learn how to go from idea to code with less friction!

You can find the full shownotes  at https://fragmentedpodcast.com/episodes/252</itunes:subtitle>
      <itunes:keywords>android, makefile, podcast, amper, marton-braun, androiddev, compose-navigation, lint, developer, template, playground-android, fragmented, gradle-plugin</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>252</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">585b10a2-99d4-49c8-8139-7192ce35beca</guid>
      <title>251- There&apos;s a new king in DI town</title>
      <description><![CDATA[<p>In this episode, Kaushik explores the evolution of dependency injection (DI) in Android development. Dagger has been the de-facto solution for DI in Android but there might be a new king in DI-town. He also chats with friend of the show and dependency injection expert Ralf Wondratschek for a final gut check.</p><p>Shownotes: <a href="https://fragmentedpodcast.com/episodes/251">https://fragmentedpodcast.com/episodes/251</a></p>
]]></description>
      <pubDate>Tue, 12 Nov 2024 09:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Ralf Wondratschek, Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/episodes/251</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Kaushik explores the evolution of dependency injection (DI) in Android development. Dagger has been the de-facto solution for DI in Android but there might be a new king in DI-town. He also chats with friend of the show and dependency injection expert Ralf Wondratschek for a final gut check.</p><p>Shownotes: <a href="https://fragmentedpodcast.com/episodes/251">https://fragmentedpodcast.com/episodes/251</a></p>
]]></content:encoded>
      <enclosure length="19191456" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/d08442d5-ae7d-4687-ba4f-f5f2d56bcd52/audio/ed095bc6-5981-428a-9ce0-189d3daf55cc/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>251- There&apos;s a new king in DI town</itunes:title>
      <itunes:author>Ralf Wondratschek, Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/74a47f94-0994-439f-b4e4-2b08eaee78a6/3000x3000/logo-3000x3000.jpg?aid=rss_feed"/>
      <itunes:duration>00:18:22</itunes:duration>
      <itunes:summary>In this episode, Kaushik explores the evolution of dependency injection (DI) in Android development. Dagger has been the de-facto solution for DI in Android but there might be a new king in DI-town. He also chats with friend of the show and dependency injection expert Ralf Wondratschek for a final gut check.

Shownotes: https://fragmentedpodcast.com/episodes/251</itunes:summary>
      <itunes:subtitle>In this episode, Kaushik explores the evolution of dependency injection (DI) in Android development. Dagger has been the de-facto solution for DI in Android but there might be a new king in DI-town. He also chats with friend of the show and dependency injection expert Ralf Wondratschek for a final gut check.

Shownotes: https://fragmentedpodcast.com/episodes/251</itunes:subtitle>
      <itunes:keywords>dagger, koin, kaushik-gopal, hilt, kotlin-inject, service-locator, di, anvil, ralf-wondratschek</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>251</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">e8162e2d-1600-4910-8b88-a8215e10164f</guid>
      <title>250 - Bittersweet beginnings</title>
      <description><![CDATA[<p>We're back from the hiatus with our SemiQuicentennial episode! With the momentous 250 comes some big announcements and a shift in the way we do things.</p><p>Listen to find out the details!</p><p>Shownotes: <a href="https://fragmentedpodcast.com/episodes/250">https://fragmentedpodcast.com/episodes/250</a></p>
]]></description>
      <pubDate>Tue, 29 Oct 2024 09:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Donn Felker, Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/episodes/250</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>We're back from the hiatus with our SemiQuicentennial episode! With the momentous 250 comes some big announcements and a shift in the way we do things.</p><p>Listen to find out the details!</p><p>Shownotes: <a href="https://fragmentedpodcast.com/episodes/250">https://fragmentedpodcast.com/episodes/250</a></p>
]]></content:encoded>
      <enclosure length="18812164" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/6334f44e-ba1e-4176-9996-003c36525191/audio/f46e45eb-01df-43f4-a444-4222bbcbeb95/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>250 - Bittersweet beginnings</itunes:title>
      <itunes:author>Donn Felker, Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:34:06</itunes:duration>
      <itunes:summary>We&apos;re back from the hiatus with our SemiQuicentennial episode! With the momentous 250 comes some big announcements and a shift in the way we do things.

Listen to find out the details!</itunes:summary>
      <itunes:subtitle>We&apos;re back from the hiatus with our SemiQuicentennial episode! With the momentous 250 comes some big announcements and a shift in the way we do things.

Listen to find out the details!</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>250</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">dbd976b0-1942-4ada-8ef7-031e10bfa9fd</guid>
      <title>249 - Java and the JDK: Powering the Android Landscape with Michael Bailey</title>
      <description><![CDATA[<p>In this episode of our podcast, we explore the diverse landscape of Java versions within the Android ecosystem. Our guest is Michael Bailey, a seasoned Java expert who has been a frequent presence on our show since the early days of our podcast. We kick off with a solid foundation, discussing the differences between JDK and JRE, as well as the distinctions between the available Java JDKs. We also guide listeners through Android Studio settings, exploring how to select a suitable JDK, its utilization, and how it relates to JAVA_VERSION on one's home path/terminal.</p><p>As we dig deeper, we start to unpack some of the crucial Android app settings. From compileOptions to sourceCompatibility/targetCompatibility, we shed light on why these versions are important. We also demystify the compileSdk vs minSdk vs targetSdk, and how they interconnect. Drawing from Kaushiks's recent experience in building a new app, we provide real-life examples that can better clarify these topics for our listeners.</p><p>We conclude the episode by providing some valuable resources for further understanding and exploration. This episode is designed to be a comprehensive guide to understanding and navigating the intricacies of Java versions in Android development.</p><h2>Links</h2><ul><li><a href="https://fragmentedpodcast.com/episodes/9/">Michaely Fragmented Episode 9 (Google IO Special)</a></li><li><a href="https://fragmentedpodcast.com/episodes/10/">Fragmented Episode 10 (core java)</a></li><li><a href="https://fragmentedpodcast.com/episodes/78/">Fragmented Episode 78 (testing strategies)</a></li><li><a href="https://github.com/openjdk/jdk">OpenJDK on GitHub</a></li><li><a href="https://foojay.io/">FooJay</a></li><li><a href="https://developer.android.com/reference/tools/gradle-api/7.2/com/android/build/api/dsl/CompileOptions">Compile Options Reference</a></li><li><a href="https://developer.android.com/guide/sdk-extensions">SDK extensions</a></li><li><a href="https://file+.vscode-resource.vscode-cdn.net/Users/donnfelker/Library/CloudStorage/Dropbox/2%20Areas/Fragmented-Shared/2_Areas/episodes/1_Recorded/249-bailey/...">@Yogurtearl explanation</a></li><li><a href="http://www.jpackage.org/">Jpackage</a></li></ul><p>Find Michael Online</p><ul><li><a href="https://twitter.com/yogurtearl">@yogurtearl on Twitter</a></li></ul><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/?utm_campaign=fragmented&utm_source=podcast_notes&utm_medium=textlink">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO 🎉</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://fragmentedpodcast.com/?utm_campaign=fragmented&utm_source=podcast_notes&utm_medium=textlink">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> on Twitter or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our YouTube channel</a></p><p>Donn</p><ul><li><a href="https://twitter.com/donnfelker">@donnfelker</a></li><li><a href="https://www.instagram.com/donnfelker/">donnfelker</a></li><li><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Donn's YouTube</a></li><li><a href="https://donnfelker.com/">Donn's Website</a></li></ul><p>Kaushik</p><ul><li><a href="https://kau.sh/">kau.sh</a> (has links to all my networks)</li><li><a href="https://twitter.com/kaushikgopal">twitter.kau.sh</a></li><li><a href="https://mastodon.kau.sh/">mastodon.kau.sh</a></li><li><a href="http://youtube.kau.sh/">youtube.kau.sh</a> (on YouTube)</li></ul><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 10 Jul 2023 10:45:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode of our podcast, we explore the diverse landscape of Java versions within the Android ecosystem. Our guest is Michael Bailey, a seasoned Java expert who has been a frequent presence on our show since the early days of our podcast. We kick off with a solid foundation, discussing the differences between JDK and JRE, as well as the distinctions between the available Java JDKs. We also guide listeners through Android Studio settings, exploring how to select a suitable JDK, its utilization, and how it relates to JAVA_VERSION on one's home path/terminal.</p><p>As we dig deeper, we start to unpack some of the crucial Android app settings. From compileOptions to sourceCompatibility/targetCompatibility, we shed light on why these versions are important. We also demystify the compileSdk vs minSdk vs targetSdk, and how they interconnect. Drawing from Kaushiks's recent experience in building a new app, we provide real-life examples that can better clarify these topics for our listeners.</p><p>We conclude the episode by providing some valuable resources for further understanding and exploration. This episode is designed to be a comprehensive guide to understanding and navigating the intricacies of Java versions in Android development.</p><h2>Links</h2><ul><li><a href="https://fragmentedpodcast.com/episodes/9/">Michaely Fragmented Episode 9 (Google IO Special)</a></li><li><a href="https://fragmentedpodcast.com/episodes/10/">Fragmented Episode 10 (core java)</a></li><li><a href="https://fragmentedpodcast.com/episodes/78/">Fragmented Episode 78 (testing strategies)</a></li><li><a href="https://github.com/openjdk/jdk">OpenJDK on GitHub</a></li><li><a href="https://foojay.io/">FooJay</a></li><li><a href="https://developer.android.com/reference/tools/gradle-api/7.2/com/android/build/api/dsl/CompileOptions">Compile Options Reference</a></li><li><a href="https://developer.android.com/guide/sdk-extensions">SDK extensions</a></li><li><a href="https://file+.vscode-resource.vscode-cdn.net/Users/donnfelker/Library/CloudStorage/Dropbox/2%20Areas/Fragmented-Shared/2_Areas/episodes/1_Recorded/249-bailey/...">@Yogurtearl explanation</a></li><li><a href="http://www.jpackage.org/">Jpackage</a></li></ul><p>Find Michael Online</p><ul><li><a href="https://twitter.com/yogurtearl">@yogurtearl on Twitter</a></li></ul><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/?utm_campaign=fragmented&utm_source=podcast_notes&utm_medium=textlink">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO 🎉</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://fragmentedpodcast.com/?utm_campaign=fragmented&utm_source=podcast_notes&utm_medium=textlink">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> on Twitter or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our YouTube channel</a></p><p>Donn</p><ul><li><a href="https://twitter.com/donnfelker">@donnfelker</a></li><li><a href="https://www.instagram.com/donnfelker/">donnfelker</a></li><li><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Donn's YouTube</a></li><li><a href="https://donnfelker.com/">Donn's Website</a></li></ul><p>Kaushik</p><ul><li><a href="https://kau.sh/">kau.sh</a> (has links to all my networks)</li><li><a href="https://twitter.com/kaushikgopal">twitter.kau.sh</a></li><li><a href="https://mastodon.kau.sh/">mastodon.kau.sh</a></li><li><a href="http://youtube.kau.sh/">youtube.kau.sh</a> (on YouTube)</li></ul><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="52710921" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/c763ebae-3eb3-47f4-aa35-f4c4d0a2a30f/audio/0e9f5ec5-9869-46f9-a3b1-765bf29ff246/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>249 - Java and the JDK: Powering the Android Landscape with Michael Bailey</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:54:54</itunes:duration>
      <itunes:summary>In this episode, Michael Bailey helps us explore the complexities of Java versions in the Android ecosystem, discussing JDK, JRE, Android Studio settings, Android app settings like compileSdk vs minSdk vs targetSdk, and concludes by providing resources for further learning.</itunes:summary>
      <itunes:subtitle>In this episode, Michael Bailey helps us explore the complexities of Java versions in the Android ecosystem, discussing JDK, JRE, Android Studio settings, Android app settings like compileSdk vs minSdk vs targetSdk, and concludes by providing resources for further learning.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>249</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">88a60214-9c8b-43ff-b130-8c81378a39ad</guid>
      <title>248 - Feature Flags &amp; A/B Testing: A Deep Dive with Ishan Khanna</title>
      <description><![CDATA[<p>In this edition of Fragmented, we're thrilled to host Ishan Khanna, a software engineer at Tinder who possesses great enthusiasm for feature flags and A/B testing. Donn discusses why he invited Ishan on the show, highlighting Ishan's passion for feature flagging and A/B testing. The conversation kicks off with an insightful story from Ishan about feature flagging at Booking.com, leading to a discussion on the difference between A/B Testing and Feature Flags, when and why to introduce feature flagging, and how to measure its effectiveness. The show also focuses on the benefits and risks of feature flagging, along with ways to manage potential complexities in the codebase.</p><p>We then delve deeper into the topic of feature flagging, covering how to get started, what to look for in a tool, and the role of testing. Discussion points include the best practices for rollout percentages, considerations for multi-platform implementation, and the specifics of targeting in feature flagging. The conversation wraps up with an exploration of available tools for those looking to introduce feature flagging or A/B testing frameworks into their operations, examining when it might be necessary to build a bespoke solution.</p><p>The episode offers a wealth of resources for listeners, including links to an array of feature flagging and A/B testing tools, such as Firebase Remote Config, Optimizely, and LaunchDarkly. For more insight into the topics discussed, Ishan recommends his Droidcon Berlin talk on 'Customer Driven Development' and Stuart Frisby’s talk on A/B Testing. To reach out to Ishan, listeners can contact him via Twitter, LinkedIn, or his website.</p><h2>Links</h2><p>Here are the links mentioned in the document, in markdown format:</p><ol><li><a href="https://firebase.google.com/products/remote-config">Firebase Remote Config</a></li><li><a href="https://www.optimizely.com/">Optimizely</a></li><li><a href="https://launchdarkly.com/">LaunchDarkly</a></li><li><a href="https://aws.amazon.com/blogs/mt/using-aws-appconfig-feature-flags/">AWS AppConfig for Feature Flags</a></li><li><a href="https://vwo.com/">VWO</a></li><li><a href="https://www.getunleash.io/">Unleash - Open Source Feature Flags</a></li><li><a href="https://posthog.com/">Posthog Feature Flags and A/B Testing</a></li><li><a href="https://www.droidcon.com/2019/07/03/customer-driven-development-what-why-how/">Ishan's Droidcon Berlin Talk</a></li><li><a href="https://www.youtube.com/watch?v=VQpQ0YHSfqM">Stuart Frisby's Talk on A/B Testing</a></li><li><a href="https://erindoesthings.com/">Erindoesthings</a></li></ol><h2>Contact Ishan</h2><ol><li><a href="https://twitter.com/droidchef">Ishan on Twitter - @droidchef</a></li><li><a href="https://www.linkedin.com/in/droidchef/">Ishan on LinkedIn</a></li><li><a href="https://blog.droidchef.dev/">Ishan's Website</a></li></ol><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/?utm_campaign=fragmented&utm_source=podcast_notes&utm_medium=textlink">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO 🎉</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://fragmentedpodcast.com/?utm_campaign=fragmented&utm_source=podcast_notes&utm_medium=textlink">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> on Twitter or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our YouTube channel</a></p><p>Donn</p><ul><li><a href="https://twitter.com/donnfelker">@donnfelker</a></li><li><a href="https://www.instagram.com/donnfelker/">donnfelker</a></li><li><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Donn's YouTube</a></li><li><a href="https://donnfelker.com/">Donn's Website</a></li></ul><p>Kaushik</p><ul><li><a href="https://kau.sh/">kau.sh</a> (has links to all my networks)</li><li><a href="https://twitter.com/kaushikgopal">twitter.kau.sh</a></li><li><a href="https://mastodon.kau.sh/">mastodon.kau.sh</a></li><li><a href="http://youtube.kau.sh/">youtube.kau.sh</a> (on YouTube)</li></ul><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 26 Jun 2023 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this edition of Fragmented, we're thrilled to host Ishan Khanna, a software engineer at Tinder who possesses great enthusiasm for feature flags and A/B testing. Donn discusses why he invited Ishan on the show, highlighting Ishan's passion for feature flagging and A/B testing. The conversation kicks off with an insightful story from Ishan about feature flagging at Booking.com, leading to a discussion on the difference between A/B Testing and Feature Flags, when and why to introduce feature flagging, and how to measure its effectiveness. The show also focuses on the benefits and risks of feature flagging, along with ways to manage potential complexities in the codebase.</p><p>We then delve deeper into the topic of feature flagging, covering how to get started, what to look for in a tool, and the role of testing. Discussion points include the best practices for rollout percentages, considerations for multi-platform implementation, and the specifics of targeting in feature flagging. The conversation wraps up with an exploration of available tools for those looking to introduce feature flagging or A/B testing frameworks into their operations, examining when it might be necessary to build a bespoke solution.</p><p>The episode offers a wealth of resources for listeners, including links to an array of feature flagging and A/B testing tools, such as Firebase Remote Config, Optimizely, and LaunchDarkly. For more insight into the topics discussed, Ishan recommends his Droidcon Berlin talk on 'Customer Driven Development' and Stuart Frisby’s talk on A/B Testing. To reach out to Ishan, listeners can contact him via Twitter, LinkedIn, or his website.</p><h2>Links</h2><p>Here are the links mentioned in the document, in markdown format:</p><ol><li><a href="https://firebase.google.com/products/remote-config">Firebase Remote Config</a></li><li><a href="https://www.optimizely.com/">Optimizely</a></li><li><a href="https://launchdarkly.com/">LaunchDarkly</a></li><li><a href="https://aws.amazon.com/blogs/mt/using-aws-appconfig-feature-flags/">AWS AppConfig for Feature Flags</a></li><li><a href="https://vwo.com/">VWO</a></li><li><a href="https://www.getunleash.io/">Unleash - Open Source Feature Flags</a></li><li><a href="https://posthog.com/">Posthog Feature Flags and A/B Testing</a></li><li><a href="https://www.droidcon.com/2019/07/03/customer-driven-development-what-why-how/">Ishan's Droidcon Berlin Talk</a></li><li><a href="https://www.youtube.com/watch?v=VQpQ0YHSfqM">Stuart Frisby's Talk on A/B Testing</a></li><li><a href="https://erindoesthings.com/">Erindoesthings</a></li></ol><h2>Contact Ishan</h2><ol><li><a href="https://twitter.com/droidchef">Ishan on Twitter - @droidchef</a></li><li><a href="https://www.linkedin.com/in/droidchef/">Ishan on LinkedIn</a></li><li><a href="https://blog.droidchef.dev/">Ishan's Website</a></li></ol><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/?utm_campaign=fragmented&utm_source=podcast_notes&utm_medium=textlink">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO 🎉</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://fragmentedpodcast.com/?utm_campaign=fragmented&utm_source=podcast_notes&utm_medium=textlink">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> on Twitter or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our YouTube channel</a></p><p>Donn</p><ul><li><a href="https://twitter.com/donnfelker">@donnfelker</a></li><li><a href="https://www.instagram.com/donnfelker/">donnfelker</a></li><li><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Donn's YouTube</a></li><li><a href="https://donnfelker.com/">Donn's Website</a></li></ul><p>Kaushik</p><ul><li><a href="https://kau.sh/">kau.sh</a> (has links to all my networks)</li><li><a href="https://twitter.com/kaushikgopal">twitter.kau.sh</a></li><li><a href="https://mastodon.kau.sh/">mastodon.kau.sh</a></li><li><a href="http://youtube.kau.sh/">youtube.kau.sh</a> (on YouTube)</li></ul><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="63106402" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/f27a36f8-4b2c-45a5-b35f-12ec055a9579/audio/04a9e235-0e68-4f53-b312-5cdde4af09dc/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>248 - Feature Flags &amp; A/B Testing: A Deep Dive with Ishan Khanna</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>01:05:44</itunes:duration>
      <itunes:summary>In this Fragmented podcast episode, host Donn Felker invites Ishan Khanna for an in-depth discussion about feature flags and A/B testing. They delve into the benefits, implementation strategies, best practices, and available tools, offering listeners valuable insights and resources to enhance their understanding of these critical development techniques.</itunes:summary>
      <itunes:subtitle>In this Fragmented podcast episode, host Donn Felker invites Ishan Khanna for an in-depth discussion about feature flags and A/B testing. They delve into the benefits, implementation strategies, best practices, and available tools, offering listeners valuable insights and resources to enhance their understanding of these critical development techniques.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>248</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">3b99aaa1-98eb-4228-879c-426a17e61fcb</guid>
      <title>247: The Art of App Modularization with Siggi Jonsson</title>
      <description><![CDATA[<p>In this episode, we talk to, Siggi Jonsson. Siggi helps guide us through the complex and often confusing world of Android app modularization. Our conversation will begin by shedding light on the importance of modularization, what triggers the need for breaking projects into multiple modules, and how modularization relates to team size, feature teams, and code ownership. This discussion is aimed at demystifying how and why developers often choose to modularize their applications.</p><p>As we move forward, we'll dive into more advanced aspects of modularization, such as the challenges of scaling and the potential missteps in over-modularization. Drawing on real-world experiences, we'll examine the red flags that signal a need for revising your modularization strategy. This part of our discussion will also highlight some specific tools and techniques that can help manage and visualize your project's modularization, and Siggi will share his own experiences and insights into how these tools have assisted in his modularization strategy.</p><p>In the final part of the episode, we'll touch on the benefits and strategies of proper modularization. Siggi will share practical advice on how to tackle big projects, fix issues with modularization, and make a smooth transition from monolithic to modular structures. We'll also talk about some tools that can be handy in this process. Before closing, Siggi will offer his top tips for developers embarking on their modularization journey and share some valuable resources to help them. Siggi will also provide updates on his latest work and how listeners can reach out to him.</p><h2>Links</h2><p>Sure, here are the links provided in the text, formatted in Markdown:</p><ul><li><a href="https://www.droidcon.com/2022/06/28/solid-modularization-untangling-the-dependency-graph/">Siggi Jonsson's Droidcon Talk</a></li><li><a href="https://github.com/jraska/modules-graph-assert">Graph Assert Plugin</a></li><li><a href="https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin">Dependency Analysis Android Gradle Plugin</a></li><li><a href="https://github.com/siggijons/graph-untangler-plugin">Graph Untangler Plugin by Siggi Jonsson</a></li><li><a href="https://graphviz.org/">GraphViz</a></li><li><a href="https://gephi.org/">Gephi</a></li><li><a href="https://www.youtube.com/watch?v=k4H20WxhbsA">Driving architectural improvements with dependency metrics</a></li><li><a href="https://twitter.com/inyaki_mwc">Inaki Villar Twitter - Build Engineer Siggi Mentioned</a></li></ul><p>Find Siggi online here:</p><ul><li><a href="https://twitter.com/siggijons">Siggi Jonsson on Twitter</a></li><li><a href="https://github.com/siggijons">Siggi Jonsson on Github</a></li><li><a href="https://www.siggijons.net/">Siggi Jonsson's Website</a></li><li><a href="https://www.linkedin.com/in/siggijons/">Siggi Jonsson on LinkedIn</a></li><li><a href="https://livekindred.com/">Kindred</a> - Use code SIG.JON to register.</li></ul><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course, you'll learn everything you need to know to start working with Git daily. <a href="https://www.donnfelker.com/git/?utm_campaign=fragmented&utm_source=podcast_notes&utm_medium=textlink">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO 🎉</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://fragmentedpodcast.com/?utm_campaign=fragmented&utm_source=podcast_notes&utm_medium=textlink">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> on Twitter or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our YouTube channel</a></p><p>Donn</p><ul><li><a href="https://twitter.com/donnfelker">@donnfelker</a></li><li><a href="https://www.instagram.com/donnfelker/">donnfelker</a></li><li><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Donn's YouTube</a></li><li><a href="https://donnfelker.com/">Donn's Website</a></li></ul><p>Kaushik</p><ul><li><a href="https://kau.sh/">kau.sh</a> (has links to all my networks)</li><li><a href="https://twitter.com/kaushikgopal">twitter.kau.sh</a></li><li><a href="https://mastodon.kau.sh/">mastodon.kau.sh</a></li><li><a href="http://youtube.kau.sh/">youtube.kau.sh</a> (on YouTube)</li></ul><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 12 Jun 2023 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, we talk to, Siggi Jonsson. Siggi helps guide us through the complex and often confusing world of Android app modularization. Our conversation will begin by shedding light on the importance of modularization, what triggers the need for breaking projects into multiple modules, and how modularization relates to team size, feature teams, and code ownership. This discussion is aimed at demystifying how and why developers often choose to modularize their applications.</p><p>As we move forward, we'll dive into more advanced aspects of modularization, such as the challenges of scaling and the potential missteps in over-modularization. Drawing on real-world experiences, we'll examine the red flags that signal a need for revising your modularization strategy. This part of our discussion will also highlight some specific tools and techniques that can help manage and visualize your project's modularization, and Siggi will share his own experiences and insights into how these tools have assisted in his modularization strategy.</p><p>In the final part of the episode, we'll touch on the benefits and strategies of proper modularization. Siggi will share practical advice on how to tackle big projects, fix issues with modularization, and make a smooth transition from monolithic to modular structures. We'll also talk about some tools that can be handy in this process. Before closing, Siggi will offer his top tips for developers embarking on their modularization journey and share some valuable resources to help them. Siggi will also provide updates on his latest work and how listeners can reach out to him.</p><h2>Links</h2><p>Sure, here are the links provided in the text, formatted in Markdown:</p><ul><li><a href="https://www.droidcon.com/2022/06/28/solid-modularization-untangling-the-dependency-graph/">Siggi Jonsson's Droidcon Talk</a></li><li><a href="https://github.com/jraska/modules-graph-assert">Graph Assert Plugin</a></li><li><a href="https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin">Dependency Analysis Android Gradle Plugin</a></li><li><a href="https://github.com/siggijons/graph-untangler-plugin">Graph Untangler Plugin by Siggi Jonsson</a></li><li><a href="https://graphviz.org/">GraphViz</a></li><li><a href="https://gephi.org/">Gephi</a></li><li><a href="https://www.youtube.com/watch?v=k4H20WxhbsA">Driving architectural improvements with dependency metrics</a></li><li><a href="https://twitter.com/inyaki_mwc">Inaki Villar Twitter - Build Engineer Siggi Mentioned</a></li></ul><p>Find Siggi online here:</p><ul><li><a href="https://twitter.com/siggijons">Siggi Jonsson on Twitter</a></li><li><a href="https://github.com/siggijons">Siggi Jonsson on Github</a></li><li><a href="https://www.siggijons.net/">Siggi Jonsson's Website</a></li><li><a href="https://www.linkedin.com/in/siggijons/">Siggi Jonsson on LinkedIn</a></li><li><a href="https://livekindred.com/">Kindred</a> - Use code SIG.JON to register.</li></ul><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course, you'll learn everything you need to know to start working with Git daily. <a href="https://www.donnfelker.com/git/?utm_campaign=fragmented&utm_source=podcast_notes&utm_medium=textlink">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO 🎉</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://fragmentedpodcast.com/?utm_campaign=fragmented&utm_source=podcast_notes&utm_medium=textlink">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> on Twitter or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our YouTube channel</a></p><p>Donn</p><ul><li><a href="https://twitter.com/donnfelker">@donnfelker</a></li><li><a href="https://www.instagram.com/donnfelker/">donnfelker</a></li><li><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Donn's YouTube</a></li><li><a href="https://donnfelker.com/">Donn's Website</a></li></ul><p>Kaushik</p><ul><li><a href="https://kau.sh/">kau.sh</a> (has links to all my networks)</li><li><a href="https://twitter.com/kaushikgopal">twitter.kau.sh</a></li><li><a href="https://mastodon.kau.sh/">mastodon.kau.sh</a></li><li><a href="http://youtube.kau.sh/">youtube.kau.sh</a> (on YouTube)</li></ul><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="63373060" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/826d28dd-aad2-4f86-99ff-ac1957ed7b66/audio/cbb50aab-67b4-4730-b6cf-da9e26509a13/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>247: The Art of App Modularization with Siggi Jonsson</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>01:06:00</itunes:duration>
      <itunes:summary>In this episode, we talk to, Siggi Jonsson. Siggi helps guide us through the complex and often confusing world of Android app modularization.</itunes:summary>
      <itunes:subtitle>In this episode, we talk to, Siggi Jonsson. Siggi helps guide us through the complex and often confusing world of Android app modularization.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>247</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">dd7d54a6-5a27-4b9c-a200-20abbceaf61b</guid>
      <title>246 - Dependency Injection: Kotlin Inject with Fred Porciúncula</title>
      <description><![CDATA[<p>In this podcast episode, we have the pleasure to host Fred Porciúncula, a Google Developer Expert (GDE) known for his work with Kotlin Inject and his invaluable contributions to the Android development community. Fred offers his expertise on Dependency Injection (DI), Kotlin Multiplatform (KMP), and how they intersect.</p><p>We kick off the conversation by discussing Dependency Injection (DI), its importance, and the options available to developers, including Dagger, Hilt, Anvil, Koin, and Kotlin-Inject. Fred explains the use and impact of DI in the Kotlin Multiplatform (KMP) world, considering Dagger’s current lack of KMP support and debating whether one should use separate DI tools for Android apps and KMP components.</p><p>Delving further into Kotlin-Inject, we explore its features, usage, and how it differentiates itself from other DI solutions. Topics discussed include its unique handling of Scopes, its support of constructor injection, and its utility in building dependency graphs. Furthermore, we examine the timeless debate of Dependency Injection versus Service Locator.</p><p>Toward the end of the episode, Fred presents his thoughts on the advantages and disadvantages of exclusively using Kotlin-Inject throughout an application. We also tackle the concept of “Vanilla Injection” - refraining from using DI libraries at all.</p><p>For further learning, we recommend resources like Fred's insightful article on transitioning from Dagger/Hilt to Kotlin-Inject, a Dagger issue discussing KSP support, and a Kotlin-Inject discussion on Anvil-like features. Links to these resources, among others, are provided below. Don’t miss out on this engaging and informative episode with Fred Porciúncula!</p><h2>Links</h2><ul><li><a href="https://github.com/evant/kotlin-inject">Kotlin Inject Library</a></li><li><a href="https://proandroiddev.com/from-dagger-hilt-into-the-multiplatform-world-with-kotlin-inject-647d8e3bddd5">Fred's Kotlin Inject Article</a></li><li><a href="https://github.com/evant/kotlin-inject/blob/main/docs/testing.md">Testing with Kotlin Inject</a></li><li><a href="https://github.com/evant/kotlin-inject/issues/187">Kotlin Inject Scope Issue</a></li><li><a href="https://github.com/evant/kotlin-inject/blob/main/docs/android.md#pull-code-out-of-the-platform-class">Pulling code out of the platform class</a></li><li><a href="https://www.baeldung.com/cs/dependency-injection-vs-service-locator#:~:text=The%20Dependency%20Injection%20is%20explicit,depend%20on%20the%20Service%20Locator">DI vs Service Locators</a></li><li><a href="https://github.com/google/dagger/issues/2349">Dagger KSP Support</a></li><li><a href="https://github.com/evant/kotlin-inject/issues/212">Kotlin Inject Anvil Like Features</a></li><li><a href="https://youtu.be/CIZU_NNAZsA?t=3439">Making Your Android Application Work on iOS (Touchlab mentioning interfaces over expect)</a></li><li><a href="https://github.com/icerockdev/moko-resources">Moko Resources</a></li><li><a href="https://klima.hashnode.dev/">Klima Engineering</a></li></ul><p>Find Fred Online Here</p><ul><li><a href="https://twitter.com/tfcporciuncula">Twitter - @tfcporciuncula</a></li><li><a href="https://androiddev.social/@fred">androiddev.social/@fred</a></li><li><a href="https://klima.hashnode.dev/">Klima Engineering Blog</a></li></ul><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/?utm_campaign=fragmented&utm_source=podcast_notes&utm_medium=textlink">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO 🎉</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://fragmentedpodcast.com/?utm_campaign=fragmented&utm_source=podcast_notes&utm_medium=textlink">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/?utm_campaign=fragmented&utm_source=podcast_notes&utm_medium=textlink">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> on Twitter or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our YouTube channel</a></p><p>Donn</p><ul><li><a href="https://twitter.com/donnfelker">@donnfelker</a></li><li><a href="https://www.instagram.com/donnfelker/">donnfelker</a></li><li><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Donn's YouTube</a></li><li><a href="https://donnfelker.com/">Donn's Website</a></li></ul><p>Kaushik</p><ul><li><a href="https://kau.sh/">kau.sh</a> (has links to all my networks)</li><li><a href="https://twitter.com/kaushikgopal">twitter.kau.sh</a></li><li><a href="https://mastodon.kau.sh/">mastodon.kau.sh</a></li><li><a href="http://youtube.kau.sh/">youtube.kau.sh</a> (on YouTube)</li></ul><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 29 May 2023 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this podcast episode, we have the pleasure to host Fred Porciúncula, a Google Developer Expert (GDE) known for his work with Kotlin Inject and his invaluable contributions to the Android development community. Fred offers his expertise on Dependency Injection (DI), Kotlin Multiplatform (KMP), and how they intersect.</p><p>We kick off the conversation by discussing Dependency Injection (DI), its importance, and the options available to developers, including Dagger, Hilt, Anvil, Koin, and Kotlin-Inject. Fred explains the use and impact of DI in the Kotlin Multiplatform (KMP) world, considering Dagger’s current lack of KMP support and debating whether one should use separate DI tools for Android apps and KMP components.</p><p>Delving further into Kotlin-Inject, we explore its features, usage, and how it differentiates itself from other DI solutions. Topics discussed include its unique handling of Scopes, its support of constructor injection, and its utility in building dependency graphs. Furthermore, we examine the timeless debate of Dependency Injection versus Service Locator.</p><p>Toward the end of the episode, Fred presents his thoughts on the advantages and disadvantages of exclusively using Kotlin-Inject throughout an application. We also tackle the concept of “Vanilla Injection” - refraining from using DI libraries at all.</p><p>For further learning, we recommend resources like Fred's insightful article on transitioning from Dagger/Hilt to Kotlin-Inject, a Dagger issue discussing KSP support, and a Kotlin-Inject discussion on Anvil-like features. Links to these resources, among others, are provided below. Don’t miss out on this engaging and informative episode with Fred Porciúncula!</p><h2>Links</h2><ul><li><a href="https://github.com/evant/kotlin-inject">Kotlin Inject Library</a></li><li><a href="https://proandroiddev.com/from-dagger-hilt-into-the-multiplatform-world-with-kotlin-inject-647d8e3bddd5">Fred's Kotlin Inject Article</a></li><li><a href="https://github.com/evant/kotlin-inject/blob/main/docs/testing.md">Testing with Kotlin Inject</a></li><li><a href="https://github.com/evant/kotlin-inject/issues/187">Kotlin Inject Scope Issue</a></li><li><a href="https://github.com/evant/kotlin-inject/blob/main/docs/android.md#pull-code-out-of-the-platform-class">Pulling code out of the platform class</a></li><li><a href="https://www.baeldung.com/cs/dependency-injection-vs-service-locator#:~:text=The%20Dependency%20Injection%20is%20explicit,depend%20on%20the%20Service%20Locator">DI vs Service Locators</a></li><li><a href="https://github.com/google/dagger/issues/2349">Dagger KSP Support</a></li><li><a href="https://github.com/evant/kotlin-inject/issues/212">Kotlin Inject Anvil Like Features</a></li><li><a href="https://youtu.be/CIZU_NNAZsA?t=3439">Making Your Android Application Work on iOS (Touchlab mentioning interfaces over expect)</a></li><li><a href="https://github.com/icerockdev/moko-resources">Moko Resources</a></li><li><a href="https://klima.hashnode.dev/">Klima Engineering</a></li></ul><p>Find Fred Online Here</p><ul><li><a href="https://twitter.com/tfcporciuncula">Twitter - @tfcporciuncula</a></li><li><a href="https://androiddev.social/@fred">androiddev.social/@fred</a></li><li><a href="https://klima.hashnode.dev/">Klima Engineering Blog</a></li></ul><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/?utm_campaign=fragmented&utm_source=podcast_notes&utm_medium=textlink">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO 🎉</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://fragmentedpodcast.com/?utm_campaign=fragmented&utm_source=podcast_notes&utm_medium=textlink">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/?utm_campaign=fragmented&utm_source=podcast_notes&utm_medium=textlink">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> on Twitter or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our YouTube channel</a></p><p>Donn</p><ul><li><a href="https://twitter.com/donnfelker">@donnfelker</a></li><li><a href="https://www.instagram.com/donnfelker/">donnfelker</a></li><li><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Donn's YouTube</a></li><li><a href="https://donnfelker.com/">Donn's Website</a></li></ul><p>Kaushik</p><ul><li><a href="https://kau.sh/">kau.sh</a> (has links to all my networks)</li><li><a href="https://twitter.com/kaushikgopal">twitter.kau.sh</a></li><li><a href="https://mastodon.kau.sh/">mastodon.kau.sh</a></li><li><a href="http://youtube.kau.sh/">youtube.kau.sh</a> (on YouTube)</li></ul><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="53315290" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/7c168db3-00e0-47ce-ae1c-1b7afc19f7d3/audio/29e0f235-5960-4554-a3c7-e1c41f854675/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>246 - Dependency Injection: Kotlin Inject with Fred Porciúncula</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:55:32</itunes:duration>
      <itunes:summary>In this podcast episode, we have the pleasure to host Fred Porciúncula, a Google Developer Expert (GDE) known for his work with Kotlin Inject and his invaluable contributions to the Android development community. Fred offers his expertise on Dependency Injection (DI), Kotlin Multiplatform (KMP), and how they intersect.</itunes:summary>
      <itunes:subtitle>In this podcast episode, we have the pleasure to host Fred Porciúncula, a Google Developer Expert (GDE) known for his work with Kotlin Inject and his invaluable contributions to the Android development community. Fred offers his expertise on Dependency Injection (DI), Kotlin Multiplatform (KMP), and how they intersect.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>246</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">5538be22-7475-4509-b457-a5f8fa6f5b6f</guid>
      <title>245: Treehouse, Redwood and Zipline with Colin White</title>
      <description><![CDATA[<p>In this episode, Donn and Kaushik talk to an old friend of the show, Colin White, about Treehouse, a combination of the Redwood and Zipline libraries.</p><p>Colin is a Staff Engineer at Cash App (Block).</p><p>Redwood is a multiplatform Compose library that allows you to target multiple UI toolkits on various native platforms. Ultimately this allows you to share presentation logic.</p><p>Zipline is a multiplatform JavaScript engine for Android, iOS, and the JVM, which uses Kotlin for calls in/out of the JavaScript land. This allows you to update the application logic of your apps without the traditional song and dance of the app store approval and release process.</p><p>Treehouse is the combination of both libraries, Redwood and Zipline. Listen in to learn more ...</p><h2>Links</h2><ul><li><a href="https://github.com/cashapp/redwood">Redwood</a></li><li><a href="https://github.com/cashapp/zipline">Zipline</a></li><li><a href="https://bellard.org/quickjs/">QuickJS</a></li><li><a href="https://www.youtube.com/watch?v=G4LK_euTadU">Kotlin Conf Talk on Treehouse</a></li><li><a href="https://jakewharton.com/native-ui-with-multiplatform-compose/">Droicon NY talk - Redwood</a></li><li><a href="https://www.droidcon.com/2022/09/29/dynamic-code-with-zipline/">Droidcon NY talk - Zipline</a></li></ul><h2>Find Colin Online here</h2><ul><li><a href="https://twitter.com/colinwhi">Twitter - @colinwhi</a></li><li><a href="https://androiddev.social/@colin">Mastodon</a></li></ul><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO!</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io/">AndroidJobs.IO</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> on Twitter or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p>Donn</p><ul><li><a href="https://twitter.com/donnfelker">@donnfelker (Twitter)</a></li><li><a href="https://www.instagram.com/donnfelker/">donnfelker (Instagram)</a></li><li><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Donn's YouTube</a></li><li><a href="https://donnfelker.com/">Donn's Website</a></li></ul><p>Kaushik</p><ul><li><a href="https://kau.sh/">kau.sh</a></li><li><a href="https://twitter.com/kaushikgopal">@kaushikgopal (Twitter)</a></li><li><a href="https://mastodon.kau.sh/">mastodon.kau.sh</a></li><li><a href="http://y.kau.sh/">kaushikgopal - YouTube</a> </li></ul><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 15 May 2023 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Colin White)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn and Kaushik talk to an old friend of the show, Colin White, about Treehouse, a combination of the Redwood and Zipline libraries.</p><p>Colin is a Staff Engineer at Cash App (Block).</p><p>Redwood is a multiplatform Compose library that allows you to target multiple UI toolkits on various native platforms. Ultimately this allows you to share presentation logic.</p><p>Zipline is a multiplatform JavaScript engine for Android, iOS, and the JVM, which uses Kotlin for calls in/out of the JavaScript land. This allows you to update the application logic of your apps without the traditional song and dance of the app store approval and release process.</p><p>Treehouse is the combination of both libraries, Redwood and Zipline. Listen in to learn more ...</p><h2>Links</h2><ul><li><a href="https://github.com/cashapp/redwood">Redwood</a></li><li><a href="https://github.com/cashapp/zipline">Zipline</a></li><li><a href="https://bellard.org/quickjs/">QuickJS</a></li><li><a href="https://www.youtube.com/watch?v=G4LK_euTadU">Kotlin Conf Talk on Treehouse</a></li><li><a href="https://jakewharton.com/native-ui-with-multiplatform-compose/">Droicon NY talk - Redwood</a></li><li><a href="https://www.droidcon.com/2022/09/29/dynamic-code-with-zipline/">Droidcon NY talk - Zipline</a></li></ul><h2>Find Colin Online here</h2><ul><li><a href="https://twitter.com/colinwhi">Twitter - @colinwhi</a></li><li><a href="https://androiddev.social/@colin">Mastodon</a></li></ul><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO!</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io/">AndroidJobs.IO</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> on Twitter or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p>Donn</p><ul><li><a href="https://twitter.com/donnfelker">@donnfelker (Twitter)</a></li><li><a href="https://www.instagram.com/donnfelker/">donnfelker (Instagram)</a></li><li><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Donn's YouTube</a></li><li><a href="https://donnfelker.com/">Donn's Website</a></li></ul><p>Kaushik</p><ul><li><a href="https://kau.sh/">kau.sh</a></li><li><a href="https://twitter.com/kaushikgopal">@kaushikgopal (Twitter)</a></li><li><a href="https://mastodon.kau.sh/">mastodon.kau.sh</a></li><li><a href="http://y.kau.sh/">kaushikgopal - YouTube</a> </li></ul><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="52594728" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/349bd9af-af59-4d52-9549-73b633192262/audio/4dccbcdc-2138-4e33-8673-d33f2ac4b5a0/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>245: Treehouse, Redwood and Zipline with Colin White</itunes:title>
      <itunes:author>Colin White</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:54:47</itunes:duration>
      <itunes:summary>In this episode, Donn and Kaushik talk to an old friend of the show, Colin White, about Treehouse, a combination of the Redwood and Zipline libraries.</itunes:summary>
      <itunes:subtitle>In this episode, Donn and Kaushik talk to an old friend of the show, Colin White, about Treehouse, a combination of the Redwood and Zipline libraries.</itunes:subtitle>
      <itunes:keywords>jetpack compose, redwood, zipline, compose, treehouse</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>245</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">2c094456-22ec-4386-af96-46ab9c4887b3</guid>
      <title>244: Reviving Our Passion for Android Development</title>
      <description><![CDATA[<p>In this episode, Donn and Kaushik announce that they are steering the podcast back into Android waters. In other words, the Fragmented Podcast is returning to its roots ... we're back to being a 100% Android Development focused show.</p><p>We're glad to have you as a listener, here's to the future of Android Development. 🚀</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO 🎉</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://fragmentedpodcast.com/?utm_campaign=fragmented&utm_source=podcast_notes&utm_medium=textlink">AndroidJobs.IO</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.kau.sh/">kaushikgopal</a> (on YouTube) or <a href="https://kau.sh/blog/"><strong>kau.sh/blog</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Wed, 10 May 2023 15:30:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn and Kaushik announce that they are steering the podcast back into Android waters. In other words, the Fragmented Podcast is returning to its roots ... we're back to being a 100% Android Development focused show.</p><p>We're glad to have you as a listener, here's to the future of Android Development. 🚀</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO 🎉</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://fragmentedpodcast.com/?utm_campaign=fragmented&utm_source=podcast_notes&utm_medium=textlink">AndroidJobs.IO</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.kau.sh/">kaushikgopal</a> (on YouTube) or <a href="https://kau.sh/blog/"><strong>kau.sh/blog</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="9185906" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/bc0a1eb9-a4bc-43a1-9e63-d9499346c775/audio/cf89cb1a-5747-4cce-ba77-759691a52083/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>244: Reviving Our Passion for Android Development</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:09:34</itunes:duration>
      <itunes:summary>In this episode, Donn and Kaushik announce that they are steering the podcast back into Android waters. In other words, the Fragmented Podcast is returning to its roots ... we&apos;re back to being a 100% Android Development focused show.</itunes:summary>
      <itunes:subtitle>In this episode, Donn and Kaushik announce that they are steering the podcast back into Android waters. In other words, the Fragmented Podcast is returning to its roots ... we&apos;re back to being a 100% Android Development focused show.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>244</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">2588ffad-ae79-407f-ba23-38eda8304885</guid>
      <title>243: Mastering the Art of Switching Careers in Tech with Dan Lew</title>
      <description><![CDATA[<p>In this episode, Donn and Kaushik talk to long-time friend Dan Lew about his recent career switch from Android developer to TypeScript/Node.js/Progressive Web App Developer (and more).</p><p>It's an interesting discussion that covers ...</p><ul><li>Why Dan decided to leave the Android world</li><li>The challenges he faced when he moved from one tech stack to another</li><li>How to prepare for a big change like this (mentally, financially, etc.)</li><li>How to create the life you want live vi by identifying what's important to you</li><li>and much more ...</li></ul><h2>Links</h2><ul><li><a href="https://rheaply.com/">Rheaply</a></li></ul><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course, you'll learn everything you need to know to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs every week as well.</li><li><a href="https://androidjobs.io/">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.kau.sh/">kaushikgopal</a> (on YouTube) or <a href="https://kau.sh/blog/"><strong>kau.sh/blog</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 10 Apr 2023 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Dan Lew, Donn Felker, Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn and Kaushik talk to long-time friend Dan Lew about his recent career switch from Android developer to TypeScript/Node.js/Progressive Web App Developer (and more).</p><p>It's an interesting discussion that covers ...</p><ul><li>Why Dan decided to leave the Android world</li><li>The challenges he faced when he moved from one tech stack to another</li><li>How to prepare for a big change like this (mentally, financially, etc.)</li><li>How to create the life you want live vi by identifying what's important to you</li><li>and much more ...</li></ul><h2>Links</h2><ul><li><a href="https://rheaply.com/">Rheaply</a></li></ul><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course, you'll learn everything you need to know to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs every week as well.</li><li><a href="https://androidjobs.io/">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.kau.sh/">kaushikgopal</a> (on YouTube) or <a href="https://kau.sh/blog/"><strong>kau.sh/blog</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="46446131" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/476bb5e5-6029-4c91-bd1b-7317d48e2ca2/audio/e317db83-2238-46f1-8617-f8fad0bd6a92/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>243: Mastering the Art of Switching Careers in Tech with Dan Lew</itunes:title>
      <itunes:author>Dan Lew, Donn Felker, Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:48:22</itunes:duration>
      <itunes:summary>In this episode, Donn and Kaushik talk to long-time friend Dan Lew about his recent career switch from Android developer to TypeScript/Node.js/Progressive Web App Developer and what he learned.</itunes:summary>
      <itunes:subtitle>In this episode, Donn and Kaushik talk to long-time friend Dan Lew about his recent career switch from Android developer to TypeScript/Node.js/Progressive Web App Developer and what he learned.</itunes:subtitle>
      <itunes:keywords>android, tech, nodejs, job hunt, switching jobs, career change, typescript</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>243</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">3cdc584d-eb8b-421d-ab13-0b437a393730</guid>
      <title>242 - Kotlin Code Formatting with ktfmt and spotless</title>
      <description><![CDATA[<p>In this episode, Donn and Kaushik talk about one of the age old bike shedding topics - code formatting, and how you can solve it with automation and tools.</p><p>Code formatting can turn into an endless debate amongst peers and teams, and what Kaushik and Donn have found is that this can be delegated to a tool and automated. Freeing you and your team of having to worry about proper indentation, bracket placement, etc. By relying on a well defined tool and some automation you can clean your code up, make it much more uniform and easier maintain.</p><p>We talk about ktfmt, a Kotlin code formatter that was released by Facebook. We dive into ktlint, detekt and more. We also dive into spotless which can help you by integrating ktfmt into your gradle build pipeline.</p><h2>Links</h2><ul><li>ktfmt - <a href="https://facebook.github.io/ktfmt/">website</a>, <a href="https://github.com/facebook/ktfmt">github</a></li><li>spotless - <a href="https://github.com/diffplug/spotless">github</a></li><li>detekt - <a href="https://detekt.dev/">website</a></li><li>ktlint - <a href="https://pinterest.github.io/ktlint/">website</a></li></ul><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io/">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.kau.sh/">kaushikgopal</a> (on YouTube) or <a href="https://kau.sh/blog/"><strong>kau.sh/blog</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 20 Mar 2023 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn and Kaushik talk about one of the age old bike shedding topics - code formatting, and how you can solve it with automation and tools.</p><p>Code formatting can turn into an endless debate amongst peers and teams, and what Kaushik and Donn have found is that this can be delegated to a tool and automated. Freeing you and your team of having to worry about proper indentation, bracket placement, etc. By relying on a well defined tool and some automation you can clean your code up, make it much more uniform and easier maintain.</p><p>We talk about ktfmt, a Kotlin code formatter that was released by Facebook. We dive into ktlint, detekt and more. We also dive into spotless which can help you by integrating ktfmt into your gradle build pipeline.</p><h2>Links</h2><ul><li>ktfmt - <a href="https://facebook.github.io/ktfmt/">website</a>, <a href="https://github.com/facebook/ktfmt">github</a></li><li>spotless - <a href="https://github.com/diffplug/spotless">github</a></li><li>detekt - <a href="https://detekt.dev/">website</a></li><li>ktlint - <a href="https://pinterest.github.io/ktlint/">website</a></li></ul><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io/">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.kau.sh/">kaushikgopal</a> (on YouTube) or <a href="https://kau.sh/blog/"><strong>kau.sh/blog</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="38388296" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/f7e8b5bc-8872-49e2-94f6-cf354591449b/audio/98e95abc-7a69-4687-8847-af97139422ba/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>242 - Kotlin Code Formatting with ktfmt and spotless</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:39:59</itunes:duration>
      <itunes:summary>In this episode, Donn and Kaushik talk about one of the age old bike shedding topics - code formatting, and how you can solve it with automation and tools.</itunes:summary>
      <itunes:subtitle>In this episode, Donn and Kaushik talk about one of the age old bike shedding topics - code formatting, and how you can solve it with automation and tools.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>242</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">2851cc07-5c05-4d97-a973-fca5f39e02ae</guid>
      <title>241: The Pressure to Ship. Fear, Uncertainty and Doubt</title>
      <description><![CDATA[<p>In this episode, Donn and Kaushik talk about the fear of shipping, some impostor syndrome and how it contributes to uncertainty and doubt in your capabilities as a software developer.</p><p>Recently Donn embarked on a mission to come up with an idea and ship it within 24 hours (which he did do). The end result was a net benefit of confidence, speed and skill acquisition. This helped reduce any doubt, uncertainty and ultimately fear of shipping a product faster.</p><p>That's what this conversation is about ... how to doing a project like the 24 hour MVP can remove fear, uncertainty and doubt and help you ship your side project/products faster.</p><h2>Links</h2><ul><li><a href="https://exifr.com/">Donn's 24 Hour Project - EXIFR</a></li><li><a href="https://jumpstartrails.com/">Jumpstart Rails Template that Donn Used</a></li><li><a href="https://www.books-ai.app/">Books-AI App</a> by <a href="https://twitter.com/flo_walther">Florian Walther</a></li><li><a href="https://openai.com/">Open AI</a></li></ul><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io/">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.kau.sh/">kaushikgopal</a> (on YouTube) or <a href="https://kau.sh/blog/"><strong>kau.sh/blog</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Tue, 10 Jan 2023 13:30:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn and Kaushik talk about the fear of shipping, some impostor syndrome and how it contributes to uncertainty and doubt in your capabilities as a software developer.</p><p>Recently Donn embarked on a mission to come up with an idea and ship it within 24 hours (which he did do). The end result was a net benefit of confidence, speed and skill acquisition. This helped reduce any doubt, uncertainty and ultimately fear of shipping a product faster.</p><p>That's what this conversation is about ... how to doing a project like the 24 hour MVP can remove fear, uncertainty and doubt and help you ship your side project/products faster.</p><h2>Links</h2><ul><li><a href="https://exifr.com/">Donn's 24 Hour Project - EXIFR</a></li><li><a href="https://jumpstartrails.com/">Jumpstart Rails Template that Donn Used</a></li><li><a href="https://www.books-ai.app/">Books-AI App</a> by <a href="https://twitter.com/flo_walther">Florian Walther</a></li><li><a href="https://openai.com/">Open AI</a></li></ul><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io/">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.kau.sh/">kaushikgopal</a> (on YouTube) or <a href="https://kau.sh/blog/"><strong>kau.sh/blog</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="43481964" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/60e26fb1-acf3-42e9-88a1-12f63c5004e3/audio/e7b6d3f8-61fb-43ca-ba9c-15ebe9c9e166/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>241: The Pressure to Ship. Fear, Uncertainty and Doubt</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:45:17</itunes:duration>
      <itunes:summary>In this episode, Donn and Kaushik talk about the fear of shipping, some impostor syndrome and how it contributes to uncertainty and doubt in your capabilities as a software developer. </itunes:summary>
      <itunes:subtitle>In this episode, Donn and Kaushik talk about the fear of shipping, some impostor syndrome and how it contributes to uncertainty and doubt in your capabilities as a software developer. </itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>241</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">755588b7-10dd-4548-8fed-3ac7e987ad77</guid>
      <title>240: Important Kotlin Constructs</title>
      <description><![CDATA[<p>In this episode, Donn and Kaushik talk about 5 new-ish Kotlin constructs that you might not be aware of.</p><p>The constructs that they talk about are:</p><ol><li>fun interface (SAM - Single Abstract Method), and they juxtapose them vs function types</li><li>type alias</li><li>import alias</li><li>value class</li><li>data object</li></ol><p>You'll learn what they are, how you can use them and when or when you might not want to use them, and more. We hope you enjoy.</p><h2>Links</h2><ul><li><a href="https://kau.sh/blog/important-kotlin-constructs/">Kaushik's Blog Post - Important Kotlin Constructs</a></li><li><a href="https://kotlinlang.org/docs/fun-interfaces.html">SAM Interface - Kotlin Docs</a></li><li><a href="https://kotlinlang.org/docs/lambdas.html#function-types">Function Types - Kotlin Docs</a></li><li><a href="https://kotlinlang.org/docs/type-aliases.html">Type Aliases - Kotlin Docs</a></li><li><a href="https://kotlinlang.org/docs/packages.html#imports">Import Alias - Kotlin Docs</a></li><li><a href="https://github.com/Kotlin/KEEP/blob/master/notes/value-classes.md">Value Class - KEEP</a></li><li><a href="https://github.com/Kotlin/KEEP/pull/316/files">Data Object - KEEP</a></li></ul><p>Enjoy!</p><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io/">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg/">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Thu, 15 Dec 2022 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn and Kaushik talk about 5 new-ish Kotlin constructs that you might not be aware of.</p><p>The constructs that they talk about are:</p><ol><li>fun interface (SAM - Single Abstract Method), and they juxtapose them vs function types</li><li>type alias</li><li>import alias</li><li>value class</li><li>data object</li></ol><p>You'll learn what they are, how you can use them and when or when you might not want to use them, and more. We hope you enjoy.</p><h2>Links</h2><ul><li><a href="https://kau.sh/blog/important-kotlin-constructs/">Kaushik's Blog Post - Important Kotlin Constructs</a></li><li><a href="https://kotlinlang.org/docs/fun-interfaces.html">SAM Interface - Kotlin Docs</a></li><li><a href="https://kotlinlang.org/docs/lambdas.html#function-types">Function Types - Kotlin Docs</a></li><li><a href="https://kotlinlang.org/docs/type-aliases.html">Type Aliases - Kotlin Docs</a></li><li><a href="https://kotlinlang.org/docs/packages.html#imports">Import Alias - Kotlin Docs</a></li><li><a href="https://github.com/Kotlin/KEEP/blob/master/notes/value-classes.md">Value Class - KEEP</a></li><li><a href="https://github.com/Kotlin/KEEP/pull/316/files">Data Object - KEEP</a></li></ul><p>Enjoy!</p><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io/">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg/">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="53001821" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/36f2a3e2-6b0b-4996-89f2-afc9223bf731/audio/b797d487-587e-4d99-afa5-a2c460743203/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>240: Important Kotlin Constructs</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:55:12</itunes:duration>
      <itunes:summary>In this episode, Donn and Kaushik talk about 5 new-ish Kotlin constructs that you might not be aware of.</itunes:summary>
      <itunes:subtitle>In this episode, Donn and Kaushik talk about 5 new-ish Kotlin constructs that you might not be aware of.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>240</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">0292f8e1-09f3-40f6-a0bb-166201122c94</guid>
      <title>239: Require PR Reviews with CODEOWNERS</title>
      <description><![CDATA[<p>In this short episode, Donn talks about the CODEOWNERS file and how it can help you ensure teams review the code that they are responsible for before merging.</p><p>The CODEOWNERS file is a file that you drop into the root of your project (or into the /docs or .github/ directory) that tells GitHub (or whatever git host you're using) to require a review for any code changes that match the patterns as defined in the CODEOWNERS file. You'll specify a matching pattern and users, or teams that own that pattern of files and they will be required to review the PR before it can be merged. This helps prevent unwanted changes to files that may or may not be owned by one team or another. This is useful as teams grow larger and need more control over the changes in their application codebase.</p><h2>Links</h2><ul><li><a href="https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners">CODEOWNERS GitHub Doc</a></li><li><a href="https://fragmentedpodcast.com/episodes/12/">Episode 012 - CI and Collective Code Ownership</a></li><li><a href="https://docs.github.com/en/organizations/organizing-members-into-teams/about-teams">GitHub Organization Teams</a></li></ul><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io/">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg/">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 28 Nov 2022 16:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this short episode, Donn talks about the CODEOWNERS file and how it can help you ensure teams review the code that they are responsible for before merging.</p><p>The CODEOWNERS file is a file that you drop into the root of your project (or into the /docs or .github/ directory) that tells GitHub (or whatever git host you're using) to require a review for any code changes that match the patterns as defined in the CODEOWNERS file. You'll specify a matching pattern and users, or teams that own that pattern of files and they will be required to review the PR before it can be merged. This helps prevent unwanted changes to files that may or may not be owned by one team or another. This is useful as teams grow larger and need more control over the changes in their application codebase.</p><h2>Links</h2><ul><li><a href="https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners">CODEOWNERS GitHub Doc</a></li><li><a href="https://fragmentedpodcast.com/episodes/12/">Episode 012 - CI and Collective Code Ownership</a></li><li><a href="https://docs.github.com/en/organizations/organizing-members-into-teams/about-teams">GitHub Organization Teams</a></li></ul><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io/">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg/">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="11590007" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/a8950c84-3830-4dcb-8047-bd7ac338860b/audio/6c1ae7bd-90b1-41da-bdce-a538b39ebd26/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>239: Require PR Reviews with CODEOWNERS</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:12:04</itunes:duration>
      <itunes:summary>In this short episode, Donn talks about the CODEOWNERS file and how it can help you ensure teams review the code that they are responsible for before merging.</itunes:summary>
      <itunes:subtitle>In this short episode, Donn talks about the CODEOWNERS file and how it can help you ensure teams review the code that they are responsible for before merging.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>239</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">4570db1b-39fd-4b9b-b8e7-cb776a9e74ae</guid>
      <title>238: How to Land a Job (if you got laid off or if you&apos;re just starting out)</title>
      <description><![CDATA[<p>In this episode, Donn talks about the tips and tricks he's used over the last 20 years of consulting, freelancing and working full time to find jobs and new opporftunities. We're hoping some of these tips help those affected by the recent tech layoffs.</p><p>These are tips that Donn still uses to this day. They work wonders to help you land a job quickly when you do them.</p><p>The tips:</p><ol><li>Update your LinkedIn Profile and Build a Resume with the LinkedIn Resume Builder</li><li>Set your LinkedIn status to "Open to Work" via the "Open to Work" feature on LinkedIn</li><li>Directly Reach out to Recruiters you know or have interacted with</li><li>Manual Discovery: Visit various companies career pages and job board and apply directly</li></ol><p>Ancillary Tips to Boost Your Chances of Landing a Job:</p><ol><li>Blog about the technology you’re looking to get a job in</li><li>Create a demo app or an app you can use to showcase your talents and put it on GitHub</li><li>Record a How To Video and post it to YouTube showing how to do something, such as a tutorial</li><li>Record/Start a podcast or reach out to hosts of other podcasts and offer to share some deep knowledge you have, or even talk about soft skills, etc</li><li>Speak at local user groups or conferences (where you don’t need to worry about travel and costs, just show up and speak)</li></ol><h2>Links</h2><ul><li><a href="https://www.linkedin.com/help/linkedin/answer/a507508/let-recruiters-know-you-re-open-to-work?lang=en">LinkedIn Open to Work Feature</a></li><li><a href="https://www.linkedin.com/help/linkedin/answer/a551182/linkedin-resume-builder?lang=en">LinkedIn Resume Builder</a></li><li><a href="https://androidjobs.io/">Android Jobs</a></li></ul><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io/">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg/">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 21 Nov 2022 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn talks about the tips and tricks he's used over the last 20 years of consulting, freelancing and working full time to find jobs and new opporftunities. We're hoping some of these tips help those affected by the recent tech layoffs.</p><p>These are tips that Donn still uses to this day. They work wonders to help you land a job quickly when you do them.</p><p>The tips:</p><ol><li>Update your LinkedIn Profile and Build a Resume with the LinkedIn Resume Builder</li><li>Set your LinkedIn status to "Open to Work" via the "Open to Work" feature on LinkedIn</li><li>Directly Reach out to Recruiters you know or have interacted with</li><li>Manual Discovery: Visit various companies career pages and job board and apply directly</li></ol><p>Ancillary Tips to Boost Your Chances of Landing a Job:</p><ol><li>Blog about the technology you’re looking to get a job in</li><li>Create a demo app or an app you can use to showcase your talents and put it on GitHub</li><li>Record a How To Video and post it to YouTube showing how to do something, such as a tutorial</li><li>Record/Start a podcast or reach out to hosts of other podcasts and offer to share some deep knowledge you have, or even talk about soft skills, etc</li><li>Speak at local user groups or conferences (where you don’t need to worry about travel and costs, just show up and speak)</li></ol><h2>Links</h2><ul><li><a href="https://www.linkedin.com/help/linkedin/answer/a507508/let-recruiters-know-you-re-open-to-work?lang=en">LinkedIn Open to Work Feature</a></li><li><a href="https://www.linkedin.com/help/linkedin/answer/a551182/linkedin-resume-builder?lang=en">LinkedIn Resume Builder</a></li><li><a href="https://androidjobs.io/">Android Jobs</a></li></ul><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io/">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg/">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="25914722" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/1a86efc0-ed64-49e2-904f-026f83321c1e/audio/e4db4d61-e751-4305-bf6a-6ac9f3a30b53/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>238: How to Land a Job (if you got laid off or if you&apos;re just starting out)</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:26:59</itunes:duration>
      <itunes:summary>In this episode, Donn talks about the tips and tricks he&apos;s used over the last 20 years of consulting, freelancing and working full time to find work. We&apos;re hoping some of these tips help those affected by the recent tech layoffs.</itunes:summary>
      <itunes:subtitle>In this episode, Donn talks about the tips and tricks he&apos;s used over the last 20 years of consulting, freelancing and working full time to find work. We&apos;re hoping some of these tips help those affected by the recent tech layoffs.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>238</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">d4d43723-e73c-4522-8247-fa53e5adf1aa</guid>
      <title>237: Compose vs XML - Which one should you learn as an Android Dev?</title>
      <description><![CDATA[<p>In this episode, Donn and Kaushik talk about their thoughts on Jetpack Compose and XML for Android layouts and which one you should learn first.</p><p>As with every conversation in tech ... it depends on what you're trying to do, where you are at in your career, what the company is doing and more. Donn and Kaushik go into both of their thought processes around Compose and XML and when you should learn one or the other, or even both and whether Jetpack is the future ... or is XML here to stay?</p><h2>Links</h2><ul><li><a href="https://www.tuthub.io/">TutHub.io</a></li><li><a href="https://www.youtube.com/c/codinginflow">Coding in Flow YouTube</a></li><li><a href="https://www.youtube.com/watch?v=cDabx3SjuOY&list=PLQkwcJG4YTCSpJ2NLhDTHhi6XBNfk9WiC">Philip Lackner's Compose Playlist</a></li><li><a href="https://fragmentedpodcast.com/episodes/231/">Episode 231: Learning Jetpack Compose with Vinay Gaba</a></li><li><a href="https://fragmentedpodcast.com/episodes/172/">Episode 171: Jetpack Compose with Leland Richardson from Google</a></li></ul><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO. Post your Android Job and get it in front of thousands of Android pros.</li><li>Are you an Android Dev? Sign up to get notified of new jobs on a weekly basis.</li><li><a href="https://androidjobs.io/">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg/">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 14 Nov 2022 17:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn and Kaushik talk about their thoughts on Jetpack Compose and XML for Android layouts and which one you should learn first.</p><p>As with every conversation in tech ... it depends on what you're trying to do, where you are at in your career, what the company is doing and more. Donn and Kaushik go into both of their thought processes around Compose and XML and when you should learn one or the other, or even both and whether Jetpack is the future ... or is XML here to stay?</p><h2>Links</h2><ul><li><a href="https://www.tuthub.io/">TutHub.io</a></li><li><a href="https://www.youtube.com/c/codinginflow">Coding in Flow YouTube</a></li><li><a href="https://www.youtube.com/watch?v=cDabx3SjuOY&list=PLQkwcJG4YTCSpJ2NLhDTHhi6XBNfk9WiC">Philip Lackner's Compose Playlist</a></li><li><a href="https://fragmentedpodcast.com/episodes/231/">Episode 231: Learning Jetpack Compose with Vinay Gaba</a></li><li><a href="https://fragmentedpodcast.com/episodes/172/">Episode 171: Jetpack Compose with Leland Richardson from Google</a></li></ul><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO. Post your Android Job and get it in front of thousands of Android pros.</li><li>Are you an Android Dev? Sign up to get notified of new jobs on a weekly basis.</li><li><a href="https://androidjobs.io/">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg/">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="38698421" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/ebb47ada-582d-4eea-b362-a4873145832f/audio/42f088ca-461f-4dc1-837e-046f0fd614b6/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>237: Compose vs XML - Which one should you learn as an Android Dev?</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:40:18</itunes:duration>
      <itunes:summary>In this episode, Donn and Kaushik talk about their thoughts on Jetpack Compose and XML for Android layouts and which one you should learn first.</itunes:summary>
      <itunes:subtitle>In this episode, Donn and Kaushik talk about their thoughts on Jetpack Compose and XML for Android layouts and which one you should learn first.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>237</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">f0738307-8388-4842-8782-45f52a9e1f0b</guid>
      <title>236: A Terminal for Android?</title>
      <description><![CDATA[<p>In this episode, Donn and Kaushik talk about the thought of having a terminal for Android.</p><p>Have you ever wished you could whip up a quick script to get the current location of a device, add it to cron and do some automated tasks on your phone? Wouldn't it be nice to have low level access to your system like you do on your desktop?</p><p>In this episode, Donn and Kaushik dive into the details of what that might look like and why they find it intriguing.</p><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Tue, 25 Oct 2022 13:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn and Kaushik talk about the thought of having a terminal for Android.</p><p>Have you ever wished you could whip up a quick script to get the current location of a device, add it to cron and do some automated tasks on your phone? Wouldn't it be nice to have low level access to your system like you do on your desktop?</p><p>In this episode, Donn and Kaushik dive into the details of what that might look like and why they find it intriguing.</p><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="36844354" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/aa34ab69-8cad-424b-987e-48487297f203/audio/230e242f-dad4-492a-b0b4-b5015ce5543d/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>236: A Terminal for Android?</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:38:22</itunes:duration>
      <itunes:summary>In this episode, Donn and Kaushik talk about the thought of having a terminal for Android and how it would work.</itunes:summary>
      <itunes:subtitle>In this episode, Donn and Kaushik talk about the thought of having a terminal for Android and how it would work.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>236</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">ca35f2cc-58c9-4acd-b900-824626df5d30</guid>
      <title>235: Pair programming with Ben Orenstein &amp; Tuple</title>
      <description><![CDATA[<p>In this episode, Kaushik goes solo and interviews Ben Orenstein. Ben is a prolific Ruby developer, an amazing conference speaker, an ardent vim-ster, and now the CEO of Tuple.</p><p>Kaushik has been a big fan of Ben's work and was super stoked to talk to Ben and pick his brains on a host of topics: starting the company Tuple, pair programming in general, learning different programming languages and technology, giving better conference talks and more!</p><p>This episode is chock full of wisdom from Ben. Enjoy!</p><h2>Links</h2><ul><li><a href="https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/">Pragmatic Programmer</a></li><li><a href="https://twitter.com/kaushikgopal/status/1291202657856573440?s=20&t=oFtM2aVNMagWPgPpmptqhQ">Tweet: Best Android Studio Pair Programming Service</a></li><li><a href="https://learntopair.com/">learntopair.com - Tuple's Pair programming guide</a></li><li><a href="https://sfhbook.netlify.app/">Speaking for Hackers</a></li><li><a href="https://tuple.app/oss/">Tuple App - OSS</a></li><li>Ben's talks:<ul><li><a href="https://www.youtube.com/watch?v=DC-pQPq0acs">Refactoring from Good to Great by Ben Orenstein</a></li><li><a href="https://www.youtube.com/watch?v=C4WOfEyogo8&t=1922s">Idea to Validation to Launch - Microconf 2019</a></li><li><a href="https://www.youtube.com/watch?v=SkdrYWhh-8s">Write code faster: expert-level vim</a></li></ul></li></ul><h2>Contact</h2><p>Ben is <a href="https://twitter.com/r00k">@r00k</a> listen to <a href="https://artofproductpodcast.com/">his podcast - The Art of Product</a></p><p>Follow <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://kau.sh/blog/">kau.sh's blog</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> (on Twitter)</p>
]]></description>
      <pubDate>Wed, 21 Sep 2022 00:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Kaushik goes solo and interviews Ben Orenstein. Ben is a prolific Ruby developer, an amazing conference speaker, an ardent vim-ster, and now the CEO of Tuple.</p><p>Kaushik has been a big fan of Ben's work and was super stoked to talk to Ben and pick his brains on a host of topics: starting the company Tuple, pair programming in general, learning different programming languages and technology, giving better conference talks and more!</p><p>This episode is chock full of wisdom from Ben. Enjoy!</p><h2>Links</h2><ul><li><a href="https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/">Pragmatic Programmer</a></li><li><a href="https://twitter.com/kaushikgopal/status/1291202657856573440?s=20&t=oFtM2aVNMagWPgPpmptqhQ">Tweet: Best Android Studio Pair Programming Service</a></li><li><a href="https://learntopair.com/">learntopair.com - Tuple's Pair programming guide</a></li><li><a href="https://sfhbook.netlify.app/">Speaking for Hackers</a></li><li><a href="https://tuple.app/oss/">Tuple App - OSS</a></li><li>Ben's talks:<ul><li><a href="https://www.youtube.com/watch?v=DC-pQPq0acs">Refactoring from Good to Great by Ben Orenstein</a></li><li><a href="https://www.youtube.com/watch?v=C4WOfEyogo8&t=1922s">Idea to Validation to Launch - Microconf 2019</a></li><li><a href="https://www.youtube.com/watch?v=SkdrYWhh-8s">Write code faster: expert-level vim</a></li></ul></li></ul><h2>Contact</h2><p>Ben is <a href="https://twitter.com/r00k">@r00k</a> listen to <a href="https://artofproductpodcast.com/">his podcast - The Art of Product</a></p><p>Follow <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://kau.sh/blog/">kau.sh's blog</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> (on Twitter)</p>
]]></content:encoded>
      <enclosure length="51675218" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/7031dbf6-0b33-4c41-ab91-c89ffc7cfd36/audio/88518df9-5707-4c56-b0c8-48222f20d721/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>235: Pair programming with Ben Orenstein &amp; Tuple</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:53:49</itunes:duration>
      <itunes:summary>In this episode, Kaushik goes solo and interviews Ben Orenstein. Ben is a prolific Ruby developer, an amazing conference speaker, an ardent vim-ster, and now the CEO of Tuple.

Kaushik has been a big fan of Ben&apos;s work and was super stoked to talk to Ben and pick his brains on a host of topics: starting the company Tuple, pair programming in general, learning different programming languages and technology, giving better conference talks and more!

This episode is chock full of wisdom from Ben. Enjoy!</itunes:summary>
      <itunes:subtitle>In this episode, Kaushik goes solo and interviews Ben Orenstein. Ben is a prolific Ruby developer, an amazing conference speaker, an ardent vim-ster, and now the CEO of Tuple.

Kaushik has been a big fan of Ben&apos;s work and was super stoked to talk to Ben and pick his brains on a host of topics: starting the company Tuple, pair programming in general, learning different programming languages and technology, giving better conference talks and more!

This episode is chock full of wisdom from Ben. Enjoy!</itunes:subtitle>
      <itunes:keywords>tuple, pair programming, pairing, ben orenstein</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>235</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">6470df17-8a46-4428-bada-9e7ee13ca7ac</guid>
      <title>234: More Product. Less Architecture?</title>
      <description><![CDATA[<p>In this episode, Donn and Kaushik talk about how many Android applications seem to suffer from the disease of over-architecture while neglecting the product (UI/UX) itself. They discuss why this is deterimental to the user experience in the Android platform and how they've seen it evolve over the years. They attempt to provide some thoughful ideas on how this can be rectified in the future and more.</p><p>We're looking for your feedback on this show. What are your favorite product apps that are just a joy to use on Android? Let us know on Twitter at <a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a></p><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 8 Aug 2022 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn and Kaushik talk about how many Android applications seem to suffer from the disease of over-architecture while neglecting the product (UI/UX) itself. They discuss why this is deterimental to the user experience in the Android platform and how they've seen it evolve over the years. They attempt to provide some thoughful ideas on how this can be rectified in the future and more.</p><p>We're looking for your feedback on this show. What are your favorite product apps that are just a joy to use on Android? Let us know on Twitter at <a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a></p><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="57880658" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/c33a02b1-39cb-42ee-b89c-8c28780dc6b5/audio/7dfb8557-9eff-4025-a7f7-47f71c6890f4/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>234: More Product. Less Architecture?</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>01:00:17</itunes:duration>
      <itunes:summary>In this episode, Donn and Kaushik talk about how many Android applications seem to suffer from the disease of over-architecture while neglecting the product (UI/UX) itself.</itunes:summary>
      <itunes:subtitle>In this episode, Donn and Kaushik talk about how many Android applications seem to suffer from the disease of over-architecture while neglecting the product (UI/UX) itself.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>234</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">3d2cb960-beec-4c8b-bce1-7b65aad3cb30</guid>
      <title>233: UI Screenshot Testing with Paparazzi and John Rodriguez</title>
      <description><![CDATA[<p>In this episode, Donn and Kaushik talk to John Rodriguez (jrod) about the <a href="https://cashapp.github.io/paparazzi/">Paparazzi</a> library which allows you to perform UI screenshot testing on Android without an emulator or physical device.</p><p>They talk to John about what screenshot testing is, why it's important, advantages and it's disadvantages as well. You'll learn how to use Paparazzi and how it can test various different screen configurations without having to run an emulator. You read that correct ... without an emulator.</p><p>If you're looking to incorporate screenshot testing into your app, this is the episode for you.</p><h2>Links</h2><ul><li><a href="https://cashapp.github.io/paparazzi/">Paparazzi Project website</a></li><li><a href="https://github.com/cashapp/paparazzi">GitHub Repo</a></li><li><a href="https://twitter.com/jrodbx">John's Twitter</a></li><li><a href="https://github.com/cashapp">Cashapp GitHub</a></li><li><a href="https://github.com/google/TestParameterInjector">TestParameterInjector</a></li><li><a href="https://fragmentedpodcast.com/episodes/052/">Fragmented Episode 52</a></li></ul><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Wed, 29 Jun 2022 12:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn and Kaushik talk to John Rodriguez (jrod) about the <a href="https://cashapp.github.io/paparazzi/">Paparazzi</a> library which allows you to perform UI screenshot testing on Android without an emulator or physical device.</p><p>They talk to John about what screenshot testing is, why it's important, advantages and it's disadvantages as well. You'll learn how to use Paparazzi and how it can test various different screen configurations without having to run an emulator. You read that correct ... without an emulator.</p><p>If you're looking to incorporate screenshot testing into your app, this is the episode for you.</p><h2>Links</h2><ul><li><a href="https://cashapp.github.io/paparazzi/">Paparazzi Project website</a></li><li><a href="https://github.com/cashapp/paparazzi">GitHub Repo</a></li><li><a href="https://twitter.com/jrodbx">John's Twitter</a></li><li><a href="https://github.com/cashapp">Cashapp GitHub</a></li><li><a href="https://github.com/google/TestParameterInjector">TestParameterInjector</a></li><li><a href="https://fragmentedpodcast.com/episodes/052/">Fragmented Episode 52</a></li></ul><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="47506911" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/921f5263-fd0b-41af-b982-0159860c30ad/audio/876699b9-0075-488a-8989-06bdef1c692f/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>233: UI Screenshot Testing with Paparazzi and John Rodriguez</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:49:29</itunes:duration>
      <itunes:summary>In this episode, Donn and Kaushik talk to John Rodriguez (jrod) about the Paparazzi library which allows you to perform UI screenshot testing on Android.</itunes:summary>
      <itunes:subtitle>In this episode, Donn and Kaushik talk to John Rodriguez (jrod) about the Paparazzi library which allows you to perform UI screenshot testing on Android.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>233</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">caba1fe0-9153-4730-bd7f-fccef6f6fffa</guid>
      <title>232: Frustration, Flow State and &quot;The Madness&quot;</title>
      <description><![CDATA[<p>In this episode Donn and Kaushik talk about frustration, finding "flow state" and how it's known as "the madness" and how to deal with it.</p><p>We originally were going to talk about an other topic, but during the off air banter Donn brought up how he was frustrated with losing/burning so much time on a task that he had for his side project. He only meant to spend a little bit of time on it and then spent WAY more time than he meant to. He got to the point where he had to stop working on the project, yell at himself for not time boxing it and then he had to refocus. This piqued Kaushik's interest and they decided to hit record to talk about this topic as its something they both deal with and have also hear many other developers deal with too. </p><p>The "Madness" is when you get consumed by your work and you're so passionate that you lose track of time, eating and more. You've become consumed ... you have "The Madness". This happens to all developers, and Donn and Kaushik talk about how to not let this derail your day when you have other responsibilities as well as life and work. We hope you enjoy today's off the cuff developer discussion.</p><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 13 Jun 2022 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode Donn and Kaushik talk about frustration, finding "flow state" and how it's known as "the madness" and how to deal with it.</p><p>We originally were going to talk about an other topic, but during the off air banter Donn brought up how he was frustrated with losing/burning so much time on a task that he had for his side project. He only meant to spend a little bit of time on it and then spent WAY more time than he meant to. He got to the point where he had to stop working on the project, yell at himself for not time boxing it and then he had to refocus. This piqued Kaushik's interest and they decided to hit record to talk about this topic as its something they both deal with and have also hear many other developers deal with too. </p><p>The "Madness" is when you get consumed by your work and you're so passionate that you lose track of time, eating and more. You've become consumed ... you have "The Madness". This happens to all developers, and Donn and Kaushik talk about how to not let this derail your day when you have other responsibilities as well as life and work. We hope you enjoy today's off the cuff developer discussion.</p><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="42010748" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/679ce3c1-ea7a-4286-86fa-b705f9d75910/audio/9396a030-28b4-475d-b627-f9f623e1fd6e/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>232: Frustration, Flow State and &quot;The Madness&quot;</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:43:45</itunes:duration>
      <itunes:summary>In this episode Donn and Kaushik talk about frustration, finding &quot;flow state&quot; and how it&apos;s known as &quot;the madness&quot; and how to deal with it.</itunes:summary>
      <itunes:subtitle>In this episode Donn and Kaushik talk about frustration, finding &quot;flow state&quot; and how it&apos;s known as &quot;the madness&quot; and how to deal with it.</itunes:subtitle>
      <itunes:explicit>true</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>232</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">e4b43cb2-9e91-492a-b364-e5e731fc044d</guid>
      <title>231: Learning Jetpack Compose with Vinay Gaba</title>
      <description><![CDATA[<p>In this episode, Donn and Kaushik talk to Android GDE <a href="https://twitter.com/vinaygaba">Vinay Gaba</a> about learning Jetpack Compose.</p><p>They talk about how to learn how to use Jetpack Compose by example (and <a href="https://www.youtube.com/watch?v=33W2_fxq5mk">Vinay's excellent talk by the same name</a>). How to use <a href="https://www.jetpackcompose.app/">Jetpackcompose.app</a> to help you find the right Jetpack Compose component and how to use <a href="https://medium.com/airbnb-engineering/introducing-showkase-a-library-to-organize-discover-and-visualize-your-jetpack-compose-elements-d5c34ef01095">ShowKase</a> to organize discover and visualize your Jetpack Compose Elements. </p><p>We then dive into why someone might want to learn Jetpack Compose and how to start learning it. They touch briefly on the parts of Compose, such as the compiler, runtime, UI, foundation, and more. They wrap up by talking about Unidirectional State flow and by answering the hot question ... "Is Jetpack Compose ready for production?" </p><p>If you're looking to learn more about Jetpack Compose, this is an episode for you. </p><h2>Links</h2><ul><li><a href="https://twitter.com/vinaygaba">Vinay's Twitter</a></li><li><a href="https://www.youtube.com/watch?v=33W2_fxq5mk">Vinays Learning Jetpack Compose by Example Video</a></li><li><a href="https://www.jetpackcompose.app/">JetpackCompose.app (find the Jetpack Compose component you're looking for by typing in the XML equivalent)</a></li><li><a href="https://medium.com/airbnb-engineering/introducing-showkase-a-library-to-organize-discover-and-visualize-your-jetpack-compose-elements-d5c34ef01095">ShowKase - A library to organize, discover and visualize your Jetpack Compose Elements</a></li><li><a href="https://developer.android.com/jetpack/compose">Jetpack Compose Official Docs</a></li><li><a href="https://developer.android.com/jetpack/androidx/releases/compose-runtime">Compose Runtime</a></li><li><a href="https://github.com/takahirom/inside-jetpack-compose-diagram">Inside Jetpack Compose Diagram</a></li><li>Other Jetpack Compose Episodes<ul><li><a href="https://fragmentedpodcast.com/episodes/172/">EP 172</a></li><li><a href="https://fragmentedpodcast.com/episodes/196/">EP 196</a></li></ul></li></ul><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 6 Jun 2022 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn and Kaushik talk to Android GDE <a href="https://twitter.com/vinaygaba">Vinay Gaba</a> about learning Jetpack Compose.</p><p>They talk about how to learn how to use Jetpack Compose by example (and <a href="https://www.youtube.com/watch?v=33W2_fxq5mk">Vinay's excellent talk by the same name</a>). How to use <a href="https://www.jetpackcompose.app/">Jetpackcompose.app</a> to help you find the right Jetpack Compose component and how to use <a href="https://medium.com/airbnb-engineering/introducing-showkase-a-library-to-organize-discover-and-visualize-your-jetpack-compose-elements-d5c34ef01095">ShowKase</a> to organize discover and visualize your Jetpack Compose Elements. </p><p>We then dive into why someone might want to learn Jetpack Compose and how to start learning it. They touch briefly on the parts of Compose, such as the compiler, runtime, UI, foundation, and more. They wrap up by talking about Unidirectional State flow and by answering the hot question ... "Is Jetpack Compose ready for production?" </p><p>If you're looking to learn more about Jetpack Compose, this is an episode for you. </p><h2>Links</h2><ul><li><a href="https://twitter.com/vinaygaba">Vinay's Twitter</a></li><li><a href="https://www.youtube.com/watch?v=33W2_fxq5mk">Vinays Learning Jetpack Compose by Example Video</a></li><li><a href="https://www.jetpackcompose.app/">JetpackCompose.app (find the Jetpack Compose component you're looking for by typing in the XML equivalent)</a></li><li><a href="https://medium.com/airbnb-engineering/introducing-showkase-a-library-to-organize-discover-and-visualize-your-jetpack-compose-elements-d5c34ef01095">ShowKase - A library to organize, discover and visualize your Jetpack Compose Elements</a></li><li><a href="https://developer.android.com/jetpack/compose">Jetpack Compose Official Docs</a></li><li><a href="https://developer.android.com/jetpack/androidx/releases/compose-runtime">Compose Runtime</a></li><li><a href="https://github.com/takahirom/inside-jetpack-compose-diagram">Inside Jetpack Compose Diagram</a></li><li>Other Jetpack Compose Episodes<ul><li><a href="https://fragmentedpodcast.com/episodes/172/">EP 172</a></li><li><a href="https://fragmentedpodcast.com/episodes/196/">EP 196</a></li></ul></li></ul><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="47826650" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/13676b56-e3b0-4037-aa02-c5577e0fc037/audio/c7481697-43df-429b-80ec-2699d50af4b4/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>231: Learning Jetpack Compose with Vinay Gaba</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:49:49</itunes:duration>
      <itunes:summary>In this episode, Donn and Kaushik talk to Android GDE Vinay Gaba about learning Jetpack Compose.</itunes:summary>
      <itunes:subtitle>In this episode, Donn and Kaushik talk to Android GDE Vinay Gaba about learning Jetpack Compose.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>231</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">7e0bc34f-eff4-49a3-8ebf-08c0092c77bd</guid>
      <title>230: Feeling Like an Idiot</title>
      <description><![CDATA[<p>In this episode Donn talks about that pit of the stomach feeling we all get when we feel like we should know something but we  don't. It's that voice in our head as developers that makes you feel like an idiot even when you're not.</p><p>Donn gives examples of how even senior engineers are subject to this feeling and how they are often the ones to not speak up about it simply because of their experience level and seniority. </p><p>This episode talks about why we get this feeling and how to combat it going forward. </p><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 30 May 2022 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode Donn talks about that pit of the stomach feeling we all get when we feel like we should know something but we  don't. It's that voice in our head as developers that makes you feel like an idiot even when you're not.</p><p>Donn gives examples of how even senior engineers are subject to this feeling and how they are often the ones to not speak up about it simply because of their experience level and seniority. </p><p>This episode talks about why we get this feeling and how to combat it going forward. </p><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="18138173" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/c00853f8-236b-4699-94e9-2382aed9649e/audio/abf3a9fd-ee07-4f93-9946-626286907d1c/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>230: Feeling Like an Idiot</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:18:53</itunes:duration>
      <itunes:summary>In this episode Donn talks about that pit of the stomach feeling we all get when we feel like we should know something but we  don&apos;t. It&apos;s that voice in our head as developers that makes you feel like an idiot even when you&apos;re not.</itunes:summary>
      <itunes:subtitle>In this episode Donn talks about that pit of the stomach feeling we all get when we feel like we should know something but we  don&apos;t. It&apos;s that voice in our head as developers that makes you feel like an idiot even when you&apos;re not.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>230</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">9cb6f306-a1cc-489e-a6ef-99b703b9e0ff</guid>
      <title>229: Native Where You Need It with Turbo (Launch Your Side Projects Faster)</title>
      <description><![CDATA[<p>In this episode, Kaushik peppers Donn with questions about his foray into Android Turbo, Hotwire, and the concept of "Native Where You Need It".</p><p>Donn recently launched Android Jumpstart, the Android client for the Jumpstart Rails trifecta. Jumpstart Rails allow you to launch your SaaS business much faster than if you were to do it from the ground up.</p><p>The Android client for Jumpstart Rails builds on top of Turbo and Hotwire, two technologies that help power the Hey email client and Basecamp (the project management app). By using Turbo and Hotwire you're able to get very fast response times and speed with "HTML Over the Wire" (aka Hotwire) with Websockets and much more. This allows your web app to be super fast and when packaged with Android Turbo, allows your web app to live within a native shell. HOWEVER, this doesn't mean its simply a web wrapper. With Android Turbo you can specify which URL routes you'd like to be as native and which ones you'd like to remain web-based. This means you can choose to use Native when you need it, and delegate back to the web for everything else.</p><p>This is the solo founder, indie-hacker, and startup SaaS dream come true. You can come to market faster, iterate with a smaller team and get native benefits when and where you need it, all while also allowing your application to be flexible in a web manner.</p><p>If you're thinking about building a SaaS app that needs a web presence, Android and iOS presence but want fully native experiences in certain areas then this will be the episode for you.</p><h2>Links</h2><ul><li><a href="https://hotwired.dev/">Hotwired.dev</a></li><li><a href="https://stimulus.hotwired.dev/">Stimulus JS</a></li><li><a href="https://jumpstartrails.com/android">Jumpstart Android</a></li><li><a href="https://jumpstartrails.com/">Jumpstart Rails</a></li><li><a href="https://jumpstartrails.com/ios">Jumpstart iOS</a></li><li><a href="https://fragmentedpodcast.com/episodes/220/">Episode 220 with Jay Ohms - Turbo Native for Android</a></li><li><a href="https://gorails.com/">Go Rails Tutorials</a></li></ul><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 23 May 2022 12:15:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Kaushik peppers Donn with questions about his foray into Android Turbo, Hotwire, and the concept of "Native Where You Need It".</p><p>Donn recently launched Android Jumpstart, the Android client for the Jumpstart Rails trifecta. Jumpstart Rails allow you to launch your SaaS business much faster than if you were to do it from the ground up.</p><p>The Android client for Jumpstart Rails builds on top of Turbo and Hotwire, two technologies that help power the Hey email client and Basecamp (the project management app). By using Turbo and Hotwire you're able to get very fast response times and speed with "HTML Over the Wire" (aka Hotwire) with Websockets and much more. This allows your web app to be super fast and when packaged with Android Turbo, allows your web app to live within a native shell. HOWEVER, this doesn't mean its simply a web wrapper. With Android Turbo you can specify which URL routes you'd like to be as native and which ones you'd like to remain web-based. This means you can choose to use Native when you need it, and delegate back to the web for everything else.</p><p>This is the solo founder, indie-hacker, and startup SaaS dream come true. You can come to market faster, iterate with a smaller team and get native benefits when and where you need it, all while also allowing your application to be flexible in a web manner.</p><p>If you're thinking about building a SaaS app that needs a web presence, Android and iOS presence but want fully native experiences in certain areas then this will be the episode for you.</p><h2>Links</h2><ul><li><a href="https://hotwired.dev/">Hotwired.dev</a></li><li><a href="https://stimulus.hotwired.dev/">Stimulus JS</a></li><li><a href="https://jumpstartrails.com/android">Jumpstart Android</a></li><li><a href="https://jumpstartrails.com/">Jumpstart Rails</a></li><li><a href="https://jumpstartrails.com/ios">Jumpstart iOS</a></li><li><a href="https://fragmentedpodcast.com/episodes/220/">Episode 220 with Jay Ohms - Turbo Native for Android</a></li><li><a href="https://gorails.com/">Go Rails Tutorials</a></li></ul><h2>Donn's Git Course</h2><p>Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. <a href="https://www.donnfelker.com/git/">Watch it here</a>.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="60814314" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/e5cbbcc5-c6da-487e-bfe0-45b97cdfca80/audio/455f2027-651b-4160-91cc-0e1075ee8f88/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>229: Native Where You Need It with Turbo (Launch Your Side Projects Faster)</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>01:03:20</itunes:duration>
      <itunes:summary>In this episode, Kaushik peppers Donn with questions about his foray into Android Turbo, Hotwire, and the concept of &quot;Native Where You Need It&quot;.</itunes:summary>
      <itunes:subtitle>In this episode, Kaushik peppers Donn with questions about his foray into Android Turbo, Hotwire, and the concept of &quot;Native Where You Need It&quot;.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>230</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">c7b308e4-ab54-45db-8b38-be6c272a7a85</guid>
      <title>228: Expo Development with Konstantin Liakhovskii</title>
      <description><![CDATA[<p>In this episode Donn and Kaushik talk to Konstantin Liakhovskii about Expo development and how it takes cross platform development and its productivity to the next level. </p><p>Konstantin dives deep into the usages and reasons why Expo (and React Native) are still very good options for companies that are looking to adopt a cross-platform application. </p><h2>Links from the show</h2><ul><li><a href="https://expo.dev/">Expo.dev</a></li><li><a href="https://twitter.com/getKonstantin">Konstantin's Twitter</a></li><li><a href="https://fragmentedpodcast.com/episodes/129/">Reactive Native Episode with Gabriel Peal #129</a></li><li><a href="https://fragmentedpodcast.com/episodes/130/">Reactive Native Episode with Gabriel Peal #130 (Part 2)</a></li></ul><h3>Stoa</h3><p>Stoa is a community platform for creators and anyone who wants to monetize their community. Sign up at <a href="https://getstoa.com">getstoa.com</a> and get 3 months free when we launch. Early access coming soon.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 18 Apr 2022 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode Donn and Kaushik talk to Konstantin Liakhovskii about Expo development and how it takes cross platform development and its productivity to the next level. </p><p>Konstantin dives deep into the usages and reasons why Expo (and React Native) are still very good options for companies that are looking to adopt a cross-platform application. </p><h2>Links from the show</h2><ul><li><a href="https://expo.dev/">Expo.dev</a></li><li><a href="https://twitter.com/getKonstantin">Konstantin's Twitter</a></li><li><a href="https://fragmentedpodcast.com/episodes/129/">Reactive Native Episode with Gabriel Peal #129</a></li><li><a href="https://fragmentedpodcast.com/episodes/130/">Reactive Native Episode with Gabriel Peal #130 (Part 2)</a></li></ul><h3>Stoa</h3><p>Stoa is a community platform for creators and anyone who wants to monetize their community. Sign up at <a href="https://getstoa.com">getstoa.com</a> and get 3 months free when we launch. Early access coming soon.</p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="54829556" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/6e75ca3f-5397-4544-930c-8896d0e37eba/audio/6cb57772-4f20-474e-8bb8-57087088c6e2/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>228: Expo Development with Konstantin Liakhovskii</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:57:07</itunes:duration>
      <itunes:summary>In this episode Donn and Kaushik talk to Konstantin Liakhovskii about Expo development and how it takes cross platform development and its productivity to the next level. </itunes:summary>
      <itunes:subtitle>In this episode Donn and Kaushik talk to Konstantin Liakhovskii about Expo development and how it takes cross platform development and its productivity to the next level. </itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>228</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">06167507-4f86-40c9-956f-25014bdb3295</guid>
      <title>227: Exotic Car Salesman to Mobile Developer with Ephraim Schmitt</title>
      <description><![CDATA[<p>In this episode Donn sits down and talks to Ephraim Schmitt about how he changed careers from being an exotic car salesman to a mobile software developer. It's a fascinating and inspiring story for anyone looking to get into software development. </p><p>We talk about the mental and financial struggles, how he learned to start coding, how you can find opportunities everywhere, how to interview better, where to look for positions when you're just starting out, why volunteering/doing something for free early on is fast way to open doors and build your network and so much more.</p><p>If you or anyone you know is looking to break into the software industry, this is the podcast for you. You'll leave with a couple  pages of notes, tips and the inspiration you need to jump into the world of software development.</p><h2>Links from the show</h2><ul><li><a href="https://1stphorm.com">1st Phorm</a> (Ephraim's current employer)</li></ul><h3> </h3><h3>Stoa</h3><p>Stoa is a community platform for creators and anyone who wants to monetize their community. Sign up at <a href="https://getstoa.com">getstoa.com</a> and get 3 months free when we launch. Early access coming soon.</p><p> </p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 11 Apr 2022 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode Donn sits down and talks to Ephraim Schmitt about how he changed careers from being an exotic car salesman to a mobile software developer. It's a fascinating and inspiring story for anyone looking to get into software development. </p><p>We talk about the mental and financial struggles, how he learned to start coding, how you can find opportunities everywhere, how to interview better, where to look for positions when you're just starting out, why volunteering/doing something for free early on is fast way to open doors and build your network and so much more.</p><p>If you or anyone you know is looking to break into the software industry, this is the podcast for you. You'll leave with a couple  pages of notes, tips and the inspiration you need to jump into the world of software development.</p><h2>Links from the show</h2><ul><li><a href="https://1stphorm.com">1st Phorm</a> (Ephraim's current employer)</li></ul><h3> </h3><h3>Stoa</h3><p>Stoa is a community platform for creators and anyone who wants to monetize their community. Sign up at <a href="https://getstoa.com">getstoa.com</a> and get 3 months free when we launch. Early access coming soon.</p><p> </p><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Software Freelancing</h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="44250173" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/82784c68-10a4-4008-b890-f7ef0c88260b/audio/9c8accf9-9170-4116-8f61-4809defe5b1b/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>227: Exotic Car Salesman to Mobile Developer with Ephraim Schmitt</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:46:06</itunes:duration>
      <itunes:summary>In this episode Donn sits down and talks to Ephraim Schmitt about how he changed careers midlife from being an exotic car salesman to a mobile software developer. It&apos;s a fascinating and inspiring story for anyone looking to get into software development.</itunes:summary>
      <itunes:subtitle>In this episode Donn sits down and talks to Ephraim Schmitt about how he changed careers midlife from being an exotic car salesman to a mobile software developer. It&apos;s a fascinating and inspiring story for anyone looking to get into software development.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>227</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">9a1c3c4d-0323-4236-b808-68776f01fb08</guid>
      <title>226: The Reunion - Themes, VS Code and More</title>
      <description><![CDATA[<p>In this episode Donn and Kaushik are back together on the mic. After an extended break, they both returned renewed and ready to dive into all things software, starting off with IDE themes, plugins and what they've been up to since they were last on the show together.</p><h2>Links from the show</h2><ul><li>Monokai Pro Theme<ul><li><a href="https://monokai.pro/">VS Code & Atom</a></li><li><a href="https://plugins.jetbrains.com/plugin/13643-monokai-pro-theme">IntelliJ/Android Studio/WebStorm/etc</a></li></ul></li><li>VS Code Plugins<ul><li><a href="https://marketplace.visualstudio.com/items?itemName=HookyQR.beautify">Beautify</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=bbugh.change-color-format">Change Color Format</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=skyapps.fish-vscode">Fish VS Code</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=ms-python.python">Python</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance">Pylance</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=foxundermoon.shell-format">Shell Format</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens">Git Lens</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint">ES Lint</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode">Prettier</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=mechatroner.rainbow-csv">Rainbow CSV</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss">TailwindCSS Intellisense</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby">Ruby</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-typescript-next">TypeScript</a></li></ul></li><li><a href="https://www.caper.ai/">Caper.AI</a></li><li><a href="https://getstoa.com">Stoa - Community Platform for Creators</a></li><li><a href="https://www.donnfelker.com/community">Freelance Faction - Donn's Freelance Community</a></li></ul><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Software Freelancing </h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 4 Apr 2022 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode Donn and Kaushik are back together on the mic. After an extended break, they both returned renewed and ready to dive into all things software, starting off with IDE themes, plugins and what they've been up to since they were last on the show together.</p><h2>Links from the show</h2><ul><li>Monokai Pro Theme<ul><li><a href="https://monokai.pro/">VS Code & Atom</a></li><li><a href="https://plugins.jetbrains.com/plugin/13643-monokai-pro-theme">IntelliJ/Android Studio/WebStorm/etc</a></li></ul></li><li>VS Code Plugins<ul><li><a href="https://marketplace.visualstudio.com/items?itemName=HookyQR.beautify">Beautify</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=bbugh.change-color-format">Change Color Format</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=skyapps.fish-vscode">Fish VS Code</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=ms-python.python">Python</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance">Pylance</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=foxundermoon.shell-format">Shell Format</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens">Git Lens</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint">ES Lint</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode">Prettier</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=mechatroner.rainbow-csv">Rainbow CSV</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss">TailwindCSS Intellisense</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby">Ruby</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-typescript-next">TypeScript</a></li></ul></li><li><a href="https://www.caper.ai/">Caper.AI</a></li><li><a href="https://getstoa.com">Stoa - Community Platform for Creators</a></li><li><a href="https://www.donnfelker.com/community">Freelance Faction - Donn's Freelance Community</a></li></ul><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Software Freelancing </h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="40897305" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/a16c82af-cfbc-4056-9b10-a516f0cff196/audio/5749d6a6-1b8e-448f-9eef-eb1b5fd7a70d/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>226: The Reunion - Themes, VS Code and More</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:42:36</itunes:duration>
      <itunes:summary>In this episode Donn and Kaushik are back together on the mic. After an extended break, they both returned renewed and ready to dive into all things software, starting off with IDE themes, plugins and what they&apos;ve been up to since they were last on the show together.</itunes:summary>
      <itunes:subtitle>In this episode Donn and Kaushik are back together on the mic. After an extended break, they both returned renewed and ready to dive into all things software, starting off with IDE themes, plugins and what they&apos;ve been up to since they were last on the show together.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>226</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">69846264-2d7c-4059-b26b-23cfd7e664a5</guid>
      <title>225: Don&apos;t Give Up - Persevere</title>
      <description><![CDATA[<p>In this episode Donn talks about something not giving up and persevering when the going gets tough in software, your career and more. It's easy to give up, but the real reward is when you persevere.</p><h2>Links from the show</h2><ul><li><a href="https://amzn.to/3qBbZHw">Growth Mindset Book</a></li></ul><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Software Freelancing </h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 28 Mar 2022 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode Donn talks about something not giving up and persevering when the going gets tough in software, your career and more. It's easy to give up, but the real reward is when you persevere.</p><h2>Links from the show</h2><ul><li><a href="https://amzn.to/3qBbZHw">Growth Mindset Book</a></li></ul><h3>AndroidJobs.IO</h3><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Software Freelancing </h2><ul><li><a href="https://www.donnfelker.com/community/">Donn's Freelance Faction Community</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics Book</a></li><li><a href="https://www.donnfelker.com/youtube">Donn's Freelancing Content on YouTube</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="16656926" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/4b2aea3b-0048-4f35-a6f1-f9dcae981629/audio/4ea024b1-c185-4048-8601-39b01e7776c8/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>225: Don&apos;t Give Up - Persevere</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:17:21</itunes:duration>
      <itunes:summary>In this episode Donn talks about something not giving up and persevering when the going gets tough in software, your career and more. It&apos;s easy to give up, but the real reward is when you persevere.</itunes:summary>
      <itunes:subtitle>In this episode Donn talks about something not giving up and persevering when the going gets tough in software, your career and more. It&apos;s easy to give up, but the real reward is when you persevere.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>225</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">3c2bc53d-bd3e-4814-87c5-a327997b7ce2</guid>
      <title>224: Our Latest Book Recommendations</title>
      <description><![CDATA[<p>In this episode, Donn and Kaushik talk about some of the books that they're reading and thoughts and recommendations on each.</p><h2>Links from the show</h2><h3>Donn's Books</h3><ul><li><a href="https://amzn.to/3kWAQm2">Designing Data Intensive Applications</a></li><li><a href="https://amzn.to/30Q1ZjK">Systemology</a></li><li><a href="https://amzn.to/3DGMYPs">Who Not How</a></li><li><a href="https://amzn.to/32m8taJ">Skin in the Game</a></li><li><a href="https://amzn.to/2ZepDpC">Zero To Sold</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics</a></li></ul><h3>Kaushik's Books</h3><ul><li><a href="https://amzn.to/3qX8Z9t">Staff Engineer</a><ul><li><a href="https://amzn.to/3CBFADW">An Elegant Puzzle: Systems of Engineering Management</a></li></ul></li><li><a href="https://amzn.to/3oOPm0v">Grokking Algorithms</a></li><li><a href="https://amzn.to/3DFUYR1">Coders At Work</a></li><li><a href="https://amzn.to/3kYZZN0">A Philosophy of Software Design</a></li><li><a href="https://amzn.to/3HDtv4K">Androids</a></li></ul><h2>AndroidJobs.IO</h2><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Donn's Book on Freelancing Tactics</h2><ul><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 22 Nov 2021 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn and Kaushik talk about some of the books that they're reading and thoughts and recommendations on each.</p><h2>Links from the show</h2><h3>Donn's Books</h3><ul><li><a href="https://amzn.to/3kWAQm2">Designing Data Intensive Applications</a></li><li><a href="https://amzn.to/30Q1ZjK">Systemology</a></li><li><a href="https://amzn.to/3DGMYPs">Who Not How</a></li><li><a href="https://amzn.to/32m8taJ">Skin in the Game</a></li><li><a href="https://amzn.to/2ZepDpC">Zero To Sold</a></li><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics</a></li></ul><h3>Kaushik's Books</h3><ul><li><a href="https://amzn.to/3qX8Z9t">Staff Engineer</a><ul><li><a href="https://amzn.to/3CBFADW">An Elegant Puzzle: Systems of Engineering Management</a></li></ul></li><li><a href="https://amzn.to/3oOPm0v">Grokking Algorithms</a></li><li><a href="https://amzn.to/3DFUYR1">Coders At Work</a></li><li><a href="https://amzn.to/3kYZZN0">A Philosophy of Software Design</a></li><li><a href="https://amzn.to/3HDtv4K">Androids</a></li></ul><h2>AndroidJobs.IO</h2><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Donn's Book on Freelancing Tactics</h2><ul><li><a href="https://amzn.to/3cC7Xat">Freelance Tactics</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://jkl.gg/b/"><strong>jkl.gg/b</strong></a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="67443564" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/5151dbef-6277-4b5d-af29-4c54cae8b814/audio/8c224fcb-bd92-4386-8251-e05ee1f8a13f/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>224: Our Latest Book Recommendations</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>01:10:15</itunes:duration>
      <itunes:summary>In this episode, Donn and Kaushik talk about some of the books that they&apos;re reading and thoughts and recommendations on each. </itunes:summary>
      <itunes:subtitle>In this episode, Donn and Kaushik talk about some of the books that they&apos;re reading and thoughts and recommendations on each. </itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>224</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">ec630787-81db-493d-8bd2-a2bd237f6d12</guid>
      <title>223: Productivity with TODO Apps and Personal Knowledge Management Systems</title>
      <description><![CDATA[<p>In this episode, Donn and Kaushik reunite for an episode on how they use productivity tools like various todo apps as well as how the organize information for storage and easy retrieval in their day to day lives.</p><h2>Shownotes</h2><p>In this episode, Donn and Kaushik reunite for an episode on how they use productivity tools like various todo apps as well as how the organize information for storage and easy retrieval in their day to day lives.</p><h3>Links from the show</h3><ul><li><a href="https://amzn.to/3Asg5E4">Taskwarrior</a></li><li><a href="https://amzn.to/3Asg5E4">GTD Book</a></li><li><a href="https://fortelabs.co/blog/para/">P.A.R.A. Method</a></li><li><a href="https://www.buildingasecondbrain.com/">Building a Second Brain Course</a></li><li><a href="https://bulletjournal.com/pages/learn">Bullet Journal Method</a></li><li><a href="https://taskwarrior.org/">Task Warrior</a><ul><li><a href="https://wingtask.com/">Wing Task for Task Warrior</a></li></ul></li><li><a href="https://en.wikipedia.org/wiki/Parkinson%27s_law">Parkinsons Law</a></li><li><a href="https://www.notion.so/">Notion</a></li><li><a href="https://kanbanflow.com/">Kanbanflow</a></li><li><a href="https://culturedcode.com/things/">Things App for Mac and iOS</a></li><li><a href="https://happenapps.com/">Quiver Code Snippet Organizer</a></li></ul><h2>AndroidJobs.IO</h2><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.<br />m* <a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Donn's Free E-Book on Freelancing/Consulting Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 11 Oct 2021 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn and Kaushik reunite for an episode on how they use productivity tools like various todo apps as well as how the organize information for storage and easy retrieval in their day to day lives.</p><h2>Shownotes</h2><p>In this episode, Donn and Kaushik reunite for an episode on how they use productivity tools like various todo apps as well as how the organize information for storage and easy retrieval in their day to day lives.</p><h3>Links from the show</h3><ul><li><a href="https://amzn.to/3Asg5E4">Taskwarrior</a></li><li><a href="https://amzn.to/3Asg5E4">GTD Book</a></li><li><a href="https://fortelabs.co/blog/para/">P.A.R.A. Method</a></li><li><a href="https://www.buildingasecondbrain.com/">Building a Second Brain Course</a></li><li><a href="https://bulletjournal.com/pages/learn">Bullet Journal Method</a></li><li><a href="https://taskwarrior.org/">Task Warrior</a><ul><li><a href="https://wingtask.com/">Wing Task for Task Warrior</a></li></ul></li><li><a href="https://en.wikipedia.org/wiki/Parkinson%27s_law">Parkinsons Law</a></li><li><a href="https://www.notion.so/">Notion</a></li><li><a href="https://kanbanflow.com/">Kanbanflow</a></li><li><a href="https://culturedcode.com/things/">Things App for Mac and iOS</a></li><li><a href="https://happenapps.com/">Quiver Code Snippet Organizer</a></li></ul><h2>AndroidJobs.IO</h2><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.<br />m* <a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Donn's Free E-Book on Freelancing/Consulting Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="62187310" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/0665b01e-4220-4e85-af97-eea9f78ed540/audio/4e86ff01-14eb-4b11-9a2d-d6167f6b5835/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>223: Productivity with TODO Apps and Personal Knowledge Management Systems</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>01:04:47</itunes:duration>
      <itunes:summary>In this episode, Donn and Kaushik reunite for an episode on how they use productivity tools like various todo apps as well as how the organize information for storage and easy retrieval in their day to day lives.</itunes:summary>
      <itunes:subtitle>In this episode, Donn and Kaushik reunite for an episode on how they use productivity tools like various todo apps as well as how the organize information for storage and easy retrieval in their day to day lives.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>223</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">09168cfe-4e97-41cc-997c-3dd28150a60e</guid>
      <title>222: Managing Android devices (EMM) with Prabhjot</title>
      <description><![CDATA[<p>In this episode, Kaushik talks to his good friend Prabhjot and learns about "<a href="https://developers.google.com/android/work/overview">Android Enterprise</a>". This is the official way for companies or organizations to enable the use of Android devices and apps in the workplace. </p><p>Prabhjot talks about how he setup the infrastructure to provision devices and the different capabilities the solution allows.</p><p>If you ever wondered what kind of control is possible, listen to this episode and get a nice scary reality check. After listening to this episode, you'll think twice before accepting free devices from companies or letting policy apps be installed on your phone.</p><h2>Links from the show</h2><ul><li><a href="https://developers.google.com/android/work/overview">Android Enterprise</a><ul><li><a href="https://developers.google.com/android/work/terminology">Terminology</a></li><li><a href="https://developers.google.com/android/work/requirements">Feature List</a></li></ul></li><li><a href="oracle.com/cloud/free/">Oracle Cloud Free<strong> (not a referral link)</strong></a><ul><li>10 TB of outbound data transfer free (vs 1GB from competitors)</li></ul></li></ul><h2>Contact</h2><ul><li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li><li><a href="https://twitter.com/singh_prabhjot">Prabhjot on Twitter</a></li><li><strong>Donn</strong><ul><li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li><li><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</li></ul></li><li><strong>Kaushik</strong><ul><li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal">kaushikgopal</a> (on Instagram)</li><li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube)  or <a href="https://jkl.gg/b"><strong>Kaushik's Blog</strong></a></li></ul></li></ul><h2>AndroidJobs.IO</h2><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Donn's Free E-Book on Freelancing/Consulting Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 27 Sep 2021 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Kaushik talks to his good friend Prabhjot and learns about "<a href="https://developers.google.com/android/work/overview">Android Enterprise</a>". This is the official way for companies or organizations to enable the use of Android devices and apps in the workplace. </p><p>Prabhjot talks about how he setup the infrastructure to provision devices and the different capabilities the solution allows.</p><p>If you ever wondered what kind of control is possible, listen to this episode and get a nice scary reality check. After listening to this episode, you'll think twice before accepting free devices from companies or letting policy apps be installed on your phone.</p><h2>Links from the show</h2><ul><li><a href="https://developers.google.com/android/work/overview">Android Enterprise</a><ul><li><a href="https://developers.google.com/android/work/terminology">Terminology</a></li><li><a href="https://developers.google.com/android/work/requirements">Feature List</a></li></ul></li><li><a href="oracle.com/cloud/free/">Oracle Cloud Free<strong> (not a referral link)</strong></a><ul><li>10 TB of outbound data transfer free (vs 1GB from competitors)</li></ul></li></ul><h2>Contact</h2><ul><li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li><li><a href="https://twitter.com/singh_prabhjot">Prabhjot on Twitter</a></li><li><strong>Donn</strong><ul><li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li><li><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</li></ul></li><li><strong>Kaushik</strong><ul><li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal">kaushikgopal</a> (on Instagram)</li><li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube)  or <a href="https://jkl.gg/b"><strong>Kaushik's Blog</strong></a></li></ul></li></ul><h2>AndroidJobs.IO</h2><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Donn's Free E-Book on Freelancing/Consulting Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="15272593" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/d5acb034-3257-4a80-a3c7-c9dcec19f919/audio/7275d606-deae-48c8-b5fb-d62b016eaad6/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>222: Managing Android devices (EMM) with Prabhjot</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:31:44</itunes:duration>
      <itunes:summary>In this episode, Kaushik talks to his good friend Prabhjot and learns about &quot;Android Enterprise&quot;. This is the official way for companies or organizations to enable the use of Android devices and apps in the workplace. 

Prabhjot talks about how he setup the infrastructure to provision Android devices and the different capabilities the solution allows.

If you ever wondered what kind of control is possible, listen to this episode and get a nice scary reality check. After listening to this episode, you&apos;ll think twice before accepting free devices from companies or letting policy apps be installed on your phone.</itunes:summary>
      <itunes:subtitle>In this episode, Kaushik talks to his good friend Prabhjot and learns about &quot;Android Enterprise&quot;. This is the official way for companies or organizations to enable the use of Android devices and apps in the workplace. 

Prabhjot talks about how he setup the infrastructure to provision Android devices and the different capabilities the solution allows.

If you ever wondered what kind of control is possible, listen to this episode and get a nice scary reality check. After listening to this episode, you&apos;ll think twice before accepting free devices from companies or letting policy apps be installed on your phone.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>222</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">8e889364-2138-4762-bb41-c8b376ac82de</guid>
      <title>221: How to Introduce Seams into Legacy Code</title>
      <description><![CDATA[<p>In this episode, Donn continues to dive into his favorite software book: Working Effectively with Legacy Code. He talks about one of the fundamental tactics of the book: Introducing seams</p><p>You'll learn what a seam is according to the book, as well as how Donn interprets it so that you can get the same benefit he has gotten from it. You'll learn how to introduce seams into your codebase through method injection, interfaces, abstract classes, and the static gateway pattern (aka: wrapper pattern).</p><h2>Links from the show</h2><ul><li><a href="https://amzn.to/3hOFzp6">Working Effectively with Legacy Code</a></li></ul><h2>AndroidJobs.IO</h2><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Donn's Free E-Book on Freelancing/Consulting Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Sun, 8 Aug 2021 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn continues to dive into his favorite software book: Working Effectively with Legacy Code. He talks about one of the fundamental tactics of the book: Introducing seams</p><p>You'll learn what a seam is according to the book, as well as how Donn interprets it so that you can get the same benefit he has gotten from it. You'll learn how to introduce seams into your codebase through method injection, interfaces, abstract classes, and the static gateway pattern (aka: wrapper pattern).</p><h2>Links from the show</h2><ul><li><a href="https://amzn.to/3hOFzp6">Working Effectively with Legacy Code</a></li></ul><h2>AndroidJobs.IO</h2><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Donn's Free E-Book on Freelancing/Consulting Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="25567816" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/c52401d1-990c-4a55-8f9f-a6fffa45ed9c/audio/f6de3688-9e3c-4a68-9d00-e7d88087dd21/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>221: How to Introduce Seams into Legacy Code</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:26:38</itunes:duration>
      <itunes:summary>In this episode, Donn continues to dive into his favorite software book: Working Effectively with Legacy Code. He talks about one of the fundamental tactics of the book: Introducing seams</itunes:summary>
      <itunes:subtitle>In this episode, Donn continues to dive into his favorite software book: Working Effectively with Legacy Code. He talks about one of the fundamental tactics of the book: Introducing seams</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>221</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">328e4393-8a9b-449b-942f-d0f60f672945</guid>
      <title>220: Turbo Native for Android and Hotwire with Jay Ohms</title>
      <description><![CDATA[<p>In this episode, Donn talks to Jay Ohms about Turbo Native for Android, Hotwire, and how to build apps faster with Hotwire, Turbo, Stimulus, and Strata. Jay is an Android developer at <a href="https://basecamp.com">Basecamp.com</a> and <a href="https://hey.com">Hey.com</a> and has been building Hey with Android Turbo since it has been released (he's one of the developers of it).</p><p>You'll learn what Hotwire is, how to use it with Android Turbo (and Stimulus and Strata) and how you can create apps faster and more maintainable by marrying the concepts of the web with native code. It's a fascinating technology, and one that Donn will be using very shortly for a SaaS product he's working on.</p><h2>Links from the show</h2><ul><li><a href="https://hotwire.dev/">Hotwire.dev</a></li><li><a href="https://github.com/hotwired/turbo-android">Turbo Native for Android</a></li><li><a href="https://github.com/hotwired/turbo-ios">Turbo Native for iOS</a></li><li><a href="https://github.com/hotwired/stimulus">Stimulus</a></li><li><a href="https://hey.com">Hey</a></li><li><a href="https://basecamp.com">Basecamp</a></li><li><strong>Basecamp is Hiring an Android Dev - email jay @ basecamp dot com</strong></li></ul><h2>Get Ahold of Jays Contact</h2><ul><li><a href="https://twitter.com/jayohms">Jay's Twitter</a></li><li>Email: jay @ basecamp dot com</li></ul><h2>AndroidJobs.IO</h2><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Donn's Free E-Book on Freelancing/Consulting Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 2 Aug 2021 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn talks to Jay Ohms about Turbo Native for Android, Hotwire, and how to build apps faster with Hotwire, Turbo, Stimulus, and Strata. Jay is an Android developer at <a href="https://basecamp.com">Basecamp.com</a> and <a href="https://hey.com">Hey.com</a> and has been building Hey with Android Turbo since it has been released (he's one of the developers of it).</p><p>You'll learn what Hotwire is, how to use it with Android Turbo (and Stimulus and Strata) and how you can create apps faster and more maintainable by marrying the concepts of the web with native code. It's a fascinating technology, and one that Donn will be using very shortly for a SaaS product he's working on.</p><h2>Links from the show</h2><ul><li><a href="https://hotwire.dev/">Hotwire.dev</a></li><li><a href="https://github.com/hotwired/turbo-android">Turbo Native for Android</a></li><li><a href="https://github.com/hotwired/turbo-ios">Turbo Native for iOS</a></li><li><a href="https://github.com/hotwired/stimulus">Stimulus</a></li><li><a href="https://hey.com">Hey</a></li><li><a href="https://basecamp.com">Basecamp</a></li><li><strong>Basecamp is Hiring an Android Dev - email jay @ basecamp dot com</strong></li></ul><h2>Get Ahold of Jays Contact</h2><ul><li><a href="https://twitter.com/jayohms">Jay's Twitter</a></li><li>Email: jay @ basecamp dot com</li></ul><h2>AndroidJobs.IO</h2><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Donn's Free E-Book on Freelancing/Consulting Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="53862817" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/a65ba266-78bf-4982-b5ef-ab55a63126f9/audio/834dc4d4-a48d-43b4-92ba-5bd79ae1efbe/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>220: Turbo Native for Android and Hotwire with Jay Ohms</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:56:06</itunes:duration>
      <itunes:summary>In this episode, Donn talks to Jay Ohms about Turbo Native for Android, Hotwire, and how to build apps faster with Hotwire, Turbo, Stimulus and Strata. Jay is an Android developer at [Basecamp.com](https://basecamp.com) and [Hey.com](https://hey.com) and has been building Hey with Android Turbo since it has been released (he&apos;s one of the developers of it).</itunes:summary>
      <itunes:subtitle>In this episode, Donn talks to Jay Ohms about Turbo Native for Android, Hotwire, and how to build apps faster with Hotwire, Turbo, Stimulus and Strata. Jay is an Android developer at [Basecamp.com](https://basecamp.com) and [Hey.com](https://hey.com) and has been building Hey with Android Turbo since it has been released (he&apos;s one of the developers of it).</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>220</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">ff76bbeb-38ce-4978-a998-bdb55dd02b51</guid>
      <title>219: The Legacy Code Change Algorithm</title>
      <description><![CDATA[<p>In this episode, Donn talks dives into his favorite software book: Working Effectively with Legacy Code. He talks about one of the introduction level topics: The Legacy Code Change Algorithm</p><p>You'll learn what it is and how you can use it as the basis for this new series that will be focused on the book, Working Effectively with Legacy Code.</p><h2>Links from the show</h2><ul><li><a href="https://amzn.to/3hOFzp6">Working Effectively with Legacy Code</a></li></ul><h2>AndroidJobs.IO</h2><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well. </li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Donn's Free E-Book on Freelancing/Consulting Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><ul><li><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p></li><li><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p></li><li><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p></li><li><p><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p></li><li><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p></li></ul>
]]></description>
      <pubDate>Mon, 19 Jul 2021 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn talks dives into his favorite software book: Working Effectively with Legacy Code. He talks about one of the introduction level topics: The Legacy Code Change Algorithm</p><p>You'll learn what it is and how you can use it as the basis for this new series that will be focused on the book, Working Effectively with Legacy Code.</p><h2>Links from the show</h2><ul><li><a href="https://amzn.to/3hOFzp6">Working Effectively with Legacy Code</a></li></ul><h2>AndroidJobs.IO</h2><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well. </li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Donn's Free E-Book on Freelancing/Consulting Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><ul><li><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p></li><li><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p></li><li><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p></li><li><p><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p></li><li><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p></li></ul>
]]></content:encoded>
      <enclosure length="22319019" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/a843b1aa-838d-4d73-9283-2a6e34c15ec8/audio/ba540ba3-f7d1-4a6e-8ff7-fad62b781558/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>219: The Legacy Code Change Algorithm</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:23:15</itunes:duration>
      <itunes:summary>In this episode, Donn talks dives into his favorite software book: Working Effectively with Legacy Code. He talks about one of the introduction level topics: The Legacy Code Change Algorithm</itunes:summary>
      <itunes:subtitle>In this episode, Donn talks dives into his favorite software book: Working Effectively with Legacy Code. He talks about one of the introduction level topics: The Legacy Code Change Algorithm</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>219</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">a834298d-3ac7-488a-95c3-6ad79e5671ee</guid>
      <title>218: Growth Mindset with Software Developer Alan Hill</title>
      <description><![CDATA[<p>In this episode, Donn talks to software developer Alan Hill about the Growth Mindset and how it applies to software development and life in general.</p><p>They chat about pull request feedback lifecycle, learning new tech, and how applying a growth mindset can advance you in your career further than you could have imagined. They wrap up by going through Fixed Mindset vs Growth Mindset "back and forth" to discuss the differences.</p><p><a href="http://fragmentedpodcast.com/wp-content/uploads/2021/07/Fixed-and-growth-mindset-infinity-scaled.jpeg">Mindset image</a></p><h2>Alans Link</h2><ul><li><a href="https://followalan.online/">Alan Hill Social and Web Links</a></li></ul><h2>Links from the show</h2><ul><li><a href="https://amzn.to/3yfcOqM">Can't Hurt Me - David Goggins</a></li><li><a href="https://amzn.to/3hxRZ30">Mindset by Carol S. Dweck</a></li><li><a href="https://amzn.to/2TyVi1X">Extreme Ownership - Jocko Willink</a></li><li><a href="https://www.instagram.com/tombilyeu/?hl=en">Tom Bilyeu Instagram</a></li></ul><h2>AndroidJobs.IO</h2><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Donn's Free E-Book on Freelancing/Consulting Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 5 Jul 2021 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn talks to software developer Alan Hill about the Growth Mindset and how it applies to software development and life in general.</p><p>They chat about pull request feedback lifecycle, learning new tech, and how applying a growth mindset can advance you in your career further than you could have imagined. They wrap up by going through Fixed Mindset vs Growth Mindset "back and forth" to discuss the differences.</p><p><a href="http://fragmentedpodcast.com/wp-content/uploads/2021/07/Fixed-and-growth-mindset-infinity-scaled.jpeg">Mindset image</a></p><h2>Alans Link</h2><ul><li><a href="https://followalan.online/">Alan Hill Social and Web Links</a></li></ul><h2>Links from the show</h2><ul><li><a href="https://amzn.to/3yfcOqM">Can't Hurt Me - David Goggins</a></li><li><a href="https://amzn.to/3hxRZ30">Mindset by Carol S. Dweck</a></li><li><a href="https://amzn.to/2TyVi1X">Extreme Ownership - Jocko Willink</a></li><li><a href="https://www.instagram.com/tombilyeu/?hl=en">Tom Bilyeu Instagram</a></li></ul><h2>AndroidJobs.IO</h2><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Donn's Free E-Book on Freelancing/Consulting Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="55513337" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/284b5386-12ed-4caf-a32c-810d83c322fb/audio/14bfc160-8fd2-4a12-b3a3-ddbd653b312c/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>218: Growth Mindset with Software Developer Alan Hill</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:57:50</itunes:duration>
      <itunes:summary>In this episode, Donn talks to software developer Alan Hill about the Growth Mindset and how it applies to software development and life in general.</itunes:summary>
      <itunes:subtitle>In this episode, Donn talks to software developer Alan Hill about the Growth Mindset and how it applies to software development and life in general.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>218</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">efb5b9c5-d16e-4460-ac2b-643f44cdefa1</guid>
      <title>217: Working at a Big Tech Company vs Freelancing</title>
      <description><![CDATA[<p>In this episode, Donn talks about the difference between working at a big tech company vs freelancing.</p><p>There are many pro's and con's for each. What is best for you? Listen to the episode and find out. </p><h2>AndroidJobs.IO</h2><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well. </li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Donn's Free E-Book on Freelancing/Consulting Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><ul><li><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p></li><li><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p></li><li><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p></li><li><p><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p></li><li><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p></li></ul>
]]></description>
      <pubDate>Wed, 30 Jun 2021 07:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn talks about the difference between working at a big tech company vs freelancing.</p><p>There are many pro's and con's for each. What is best for you? Listen to the episode and find out. </p><h2>AndroidJobs.IO</h2><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well. </li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Donn's Free E-Book on Freelancing/Consulting Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><ul><li><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p></li><li><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p></li><li><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p></li><li><p><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p></li><li><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p></li></ul>
]]></content:encoded>
      <enclosure length="29122977" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/51e23d87-03f2-43f1-9436-558780cea1aa/audio/df542b8b-e5ac-4759-a55a-c8a69d960024/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>217: Working at a Big Tech Company vs Freelancing</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:30:20</itunes:duration>
      <itunes:summary>In this episode, Donn talks about the difference between working at a big tech company vs freelancing.</itunes:summary>
      <itunes:subtitle>In this episode, Donn talks about the difference between working at a big tech company vs freelancing.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>217</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">24c65e5a-4a69-4a4d-b41a-892deea54eaa</guid>
      <title>216: Code Conventions - Why It&apos;s Important to Follow Them</title>
      <description><![CDATA[<p>In this episode, Donn talks about the importance of following code conventions and coding styles in codebases. </p><p>You'll run into various different coding conventions throughout your career. Sometimes it's as an employee, sometimes it's as a freelancer or consultant or just a small side project. The number of coding "styles" that you'll see will blow your mind as you work through your career. The big question is ... should you adhere to the current coding convention that is used in the app/file/etc or should you use your own favorite or an industry standard? </p><p>In this episode, I'll help explain the differences so you can make an informed decision going forward.</p><h2>Links from the show</h2><ul><li><a href="https://martinfowler.com/">Martin Fowlers Blog</a></li></ul><h2>AndroidJobs.IO</h2><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well. </li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Donn's Free E-Book on Freelancing/Consulting Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><ul><li><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p></li><li><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p></li><li><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p></li><li><p><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p></li><li><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p></li></ul>
]]></description>
      <pubDate>Wed, 23 Jun 2021 17:51:29 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn talks about the importance of following code conventions and coding styles in codebases. </p><p>You'll run into various different coding conventions throughout your career. Sometimes it's as an employee, sometimes it's as a freelancer or consultant or just a small side project. The number of coding "styles" that you'll see will blow your mind as you work through your career. The big question is ... should you adhere to the current coding convention that is used in the app/file/etc or should you use your own favorite or an industry standard? </p><p>In this episode, I'll help explain the differences so you can make an informed decision going forward.</p><h2>Links from the show</h2><ul><li><a href="https://martinfowler.com/">Martin Fowlers Blog</a></li></ul><h2>AndroidJobs.IO</h2><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well. </li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Donn's Free E-Book on Freelancing/Consulting Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><ul><li><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p></li><li><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p></li><li><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p></li><li><p><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p></li><li><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p></li></ul>
]]></content:encoded>
      <enclosure length="16827871" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/8048dee3-d664-4071-827e-f8ac58344ab8/audio/0bdcdff0-7172-4472-bd6b-12d6e2652bf8/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>216: Code Conventions - Why It&apos;s Important to Follow Them</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:17:32</itunes:duration>
      <itunes:summary>In this episode, Donn talks about the importance of following code conventions and coding styles in codebases. </itunes:summary>
      <itunes:subtitle>In this episode, Donn talks about the importance of following code conventions and coding styles in codebases. </itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>216</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">37cdaaa4-c447-41ac-ac2c-07a3335874c5</guid>
      <title>215: From Side Project to Full Time via Watch Faces with David Whittaker and Ross Manges</title>
      <description><![CDATA[<p>In this episode, Donn talks to David and Ross from Squeaky Dog Studios about building a business out of a side project.</p><p>David and Ross are long-time serial side project developers with experience that dates back to the Palm era. They've built games, apps, and now Watch Faces.</p><p>We dive deep into how they went from building their watch faces for Android as a side project and how they turned it into a full-time business in which one of the co-founders works full-time. We talk about building the app, pricing, support, which features to build, paid vs free, trial conversions, supporting your app and much much more.</p><p>If you've ever wanted to build a side project into a business, and it's app-based... this one is for you.</p><h2>Links from the show</h2><h3>David and Ross's Links</h3><p>Android Apps by Squeaky Dog Studios on Google Play</p><ul><li><a href="https://play.google.com/store/apps/details?id=com.sparkistic.photowear">Photowear</a></li><li><a href="https://play.google.com/store/apps/details?id=com.sparkistic.justaminute">Just A Minute</a></li><li><a href="https://play.google.com/store/apps/details?id=com.sparkistic.justaminutepride"><strong>Pride Time</strong></a></li><li><a href="https://play.google.com/store/apps/details?id=com.sparkistic.unicornwear">UnicornWear</a></li></ul><p>Other links by Squeaky Dog Studios</p><ul><li><a href="https://squeaky.dog/">Squeaky Dog Studios</a></li><li><a href="https://youtube.com/c/Sparkistic">YouTube</a></li><li><a href="https://twitter.com/codelikeadog">Company Twitter</a></li><li><a href="https://linkedin.com/company/codelikeadog">LinkedIn</a></li><li><a href="https://instagram.com/codelikeadog">Instagram</a></li><li><a href="https://www.facebook.com/codelikeadog">Facebook</a></li><li><a href="https://twitter.com/rundavidrun">David's Twitter</a></li></ul><h2>AndroidJobs.IO</h2><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Donn's Free E-Book on Freelancing/Consulting Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 14 Jun 2021 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn talks to David and Ross from Squeaky Dog Studios about building a business out of a side project.</p><p>David and Ross are long-time serial side project developers with experience that dates back to the Palm era. They've built games, apps, and now Watch Faces.</p><p>We dive deep into how they went from building their watch faces for Android as a side project and how they turned it into a full-time business in which one of the co-founders works full-time. We talk about building the app, pricing, support, which features to build, paid vs free, trial conversions, supporting your app and much much more.</p><p>If you've ever wanted to build a side project into a business, and it's app-based... this one is for you.</p><h2>Links from the show</h2><h3>David and Ross's Links</h3><p>Android Apps by Squeaky Dog Studios on Google Play</p><ul><li><a href="https://play.google.com/store/apps/details?id=com.sparkistic.photowear">Photowear</a></li><li><a href="https://play.google.com/store/apps/details?id=com.sparkistic.justaminute">Just A Minute</a></li><li><a href="https://play.google.com/store/apps/details?id=com.sparkistic.justaminutepride"><strong>Pride Time</strong></a></li><li><a href="https://play.google.com/store/apps/details?id=com.sparkistic.unicornwear">UnicornWear</a></li></ul><p>Other links by Squeaky Dog Studios</p><ul><li><a href="https://squeaky.dog/">Squeaky Dog Studios</a></li><li><a href="https://youtube.com/c/Sparkistic">YouTube</a></li><li><a href="https://twitter.com/codelikeadog">Company Twitter</a></li><li><a href="https://linkedin.com/company/codelikeadog">LinkedIn</a></li><li><a href="https://instagram.com/codelikeadog">Instagram</a></li><li><a href="https://www.facebook.com/codelikeadog">Facebook</a></li><li><a href="https://twitter.com/rundavidrun">David's Twitter</a></li></ul><h2>AndroidJobs.IO</h2><ul><li>Job postings are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Donn's Free E-Book on Freelancing/Consulting Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="48103339" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/9991faff-b6e8-4c80-9808-2d193be5668a/audio/25f72d80-3b84-4a62-ab93-d97000e3f1e6/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>215: From Side Project to Full Time via Watch Faces with David Whittaker and Ross Manges</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:50:06</itunes:duration>
      <itunes:summary>In this episode, Donn talks to David and Ross from Squeaky Dog Studios about building a business out of a side project.</itunes:summary>
      <itunes:subtitle>In this episode, Donn talks to David and Ross from Squeaky Dog Studios about building a business out of a side project.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>215</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">c6399fff-8d2e-40ba-a389-f793d3d68c36</guid>
      <title>214: 3 Things Every Developer Needs To Know How To Do</title>
      <description><![CDATA[<p>In this episode, Donn talks about the three things that every developer needs to know how to do. </p><p>These three things include: </p><ol><li><p>How to identify and stop premature optimization</p></li><li><p>How to write tests and know the difference between unit, integration and end-to-end tests.</p></li><li><p>How to set up a continuous integration server</p><p>While there are vast arrays of other things all developers need to know how to do, and we will cover them in future episodes, this small list will help you vastly in your career. It has helped mine (Donn) a ton.</p></li></ol><h3>Links from the show</h3><h4>Continuous Integration Server Platforms</h4><ol><li>Managed Services<ol><li><a href="https://github.com">Github</a></li><li><a href="https://gitlab.com">GitLab</a></li><li><a href="https://bitbucket.org">Bitbucket</a></li><li><a href="https://azure.microsoft.com/en-us/services/devops/">Azure Devops</a></li><li><a href="https://circleci.com">CircleCI</a></li><li><a href="https://bitrise.io">Bitrise</a></li><li><a href="https://codemagic.io">Codemagic</a></li></ol></li><li>Self hosted<ol><li><a href="https://www.jenkins.io/">Jenkins</a></li><li><a href="https://www.jetbrains.com/teamcity/">TeamCity</a></li></ol></li></ol><h4>Book</h4><ul><li><a href="https://amzn.to/3z7JeVs">Working Effectively with Legacy Code by Michael Feathers</a></li></ul><h2>AndroidJobs.IO</h2><ul><li>Job postigns are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notififed of new jobs on a weekly basis as well. </li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Donn's Free E-Book on Freelancing Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><ul><li><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p></li><li><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p></li><li><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p></li><li><p><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p></li><li><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p></li></ul>
]]></description>
      <pubDate>Mon, 7 Jun 2021 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn talks about the three things that every developer needs to know how to do. </p><p>These three things include: </p><ol><li><p>How to identify and stop premature optimization</p></li><li><p>How to write tests and know the difference between unit, integration and end-to-end tests.</p></li><li><p>How to set up a continuous integration server</p><p>While there are vast arrays of other things all developers need to know how to do, and we will cover them in future episodes, this small list will help you vastly in your career. It has helped mine (Donn) a ton.</p></li></ol><h3>Links from the show</h3><h4>Continuous Integration Server Platforms</h4><ol><li>Managed Services<ol><li><a href="https://github.com">Github</a></li><li><a href="https://gitlab.com">GitLab</a></li><li><a href="https://bitbucket.org">Bitbucket</a></li><li><a href="https://azure.microsoft.com/en-us/services/devops/">Azure Devops</a></li><li><a href="https://circleci.com">CircleCI</a></li><li><a href="https://bitrise.io">Bitrise</a></li><li><a href="https://codemagic.io">Codemagic</a></li></ol></li><li>Self hosted<ol><li><a href="https://www.jenkins.io/">Jenkins</a></li><li><a href="https://www.jetbrains.com/teamcity/">TeamCity</a></li></ol></li></ol><h4>Book</h4><ul><li><a href="https://amzn.to/3z7JeVs">Working Effectively with Legacy Code by Michael Feathers</a></li></ul><h2>AndroidJobs.IO</h2><ul><li>Job postigns are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notififed of new jobs on a weekly basis as well. </li><li><a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Donn's Free E-Book on Freelancing Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><ul><li><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p></li><li><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p></li><li><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p></li><li><p><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p></li><li><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p></li></ul>
]]></content:encoded>
      <enclosure length="35506094" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/3b77f2bd-fe43-4344-8a01-d9f6eb43e71f/audio/76e9d7f4-5ca6-4a10-aaed-ed0e66d667fb/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>214: 3 Things Every Developer Needs To Know How To Do</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:37:00</itunes:duration>
      <itunes:summary>In this episode, Donn talks about the three things that every developer needs to know how to do. </itunes:summary>
      <itunes:subtitle>In this episode, Donn talks about the three things that every developer needs to know how to do. </itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>214</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">4c3700b2-96a3-49d1-a624-1f92858086f5</guid>
      <title>213: How to Pick What Technology to Learn Next</title>
      <description><![CDATA[<p>In this episode, Donn answers a listener's question. The listener wanted to know how to choose what to learn next in Tech.</p><p>Donn provides 6 tips (actually 7 if you count a hidden one) on how to pick what technology to learn next. He provides a simple framework that will help you check whether you should pursue a particular technology or not.</p><h3>Links from the show</h3><ul><li><a href="https://www.startupsfortherestofus.com/">Startups for the Rest of Us Podcast</a></li><li><a href="https://robwalling.com/">Rob Walling</a></li></ul><h2>AndroidJobs.IO</h2><ul><li><a href="https://androidjobs.io">Job postings</a> are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li>Post jobs and sign up here: <a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Donn's Free E-Book on Freelancing/Consulting Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 31 May 2021 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn answers a listener's question. The listener wanted to know how to choose what to learn next in Tech.</p><p>Donn provides 6 tips (actually 7 if you count a hidden one) on how to pick what technology to learn next. He provides a simple framework that will help you check whether you should pursue a particular technology or not.</p><h3>Links from the show</h3><ul><li><a href="https://www.startupsfortherestofus.com/">Startups for the Rest of Us Podcast</a></li><li><a href="https://robwalling.com/">Rob Walling</a></li></ul><h2>AndroidJobs.IO</h2><ul><li><a href="https://androidjobs.io">Job postings</a> are FREE on AndroidJobs.IO during the early release phase (at the time of this recording).</li><li>Sign up to get notified of new jobs on a weekly basis as well.</li><li>Post jobs and sign up here: <a href="https://androidjobs.io">AndroidJobs.IO</a></li></ul><h2>Donn's Free E-Book on Freelancing/Consulting Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p><p><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="22790602" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/c45c96db-f3e3-4454-8cd9-61b9aa87e1f3/audio/8a419da2-1024-4037-b71a-c21b4ca62afb/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>213: How to Pick What Technology to Learn Next</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:23:43</itunes:duration>
      <itunes:summary>In this episode, Donn answers a listener&apos;s question. The listener wanted to know how to choose what to learn next in Tech.</itunes:summary>
      <itunes:subtitle>In this episode, Donn answers a listener&apos;s question. The listener wanted to know how to choose what to learn next in Tech.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>213</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">98f57734-83d6-4753-bd37-b0906c180359</guid>
      <title>212: Growing an Online Presence in the Software Industry with Philipp Lackner</title>
      <description><![CDATA[<p>In this episode, Donn talks with Philipp Lackner about growing an online presence within the Software Industry with Instagram and YouTube.</p><h2>Shownotes</h2><p>You'll learn how Philipp went from 0 to over 80,000 followers on Instagram. This was done all organically by posting valuable content every single day to his feed.</p><p>You'll also learn how he uses YouTube (as well as Instagram) as a marketing channel for his own course products that he sells via his site. </p><p>We wrap up by talking about content strategy, what tools are used, captions and hashtags. This episode is chock full of great info if you're learning how to grow your following online.</p><h3>Tools that Philipp Mentioned</h3><ul><li><a href="https://canva.com">Canva</a></li><li><a href="https://www.adobe.com/creativecloud.html">Adobe Creative Cloud - Photoshop/After Effects/Illustrator</a></li><li><a href="https://www.freepik.com/">FreePik - Images and Icons</a></li><li><a href="https://www.techsmith.com/video-editor.html">Camtasia</a></li><li><a href="https://later.com/r/donnfelker-626995">Later.com - Social Scheduling</a></li><li><a href="https://www.contentrow.com">ContentRow.com</a></li></ul><h2>Find Philipp Lackner online here</h2><ul><li><a href="https://instagram.com/philipplackner_official">Instagram</a></li><li><a href="https://youtube.com/c/PhilippLackner">YouTube</a></li><li><a href="https://twitter.com/plcoding">Twitter</a></li><li><a href="https://www.linkedin.com/in/philipp-lackner-a0b2201b3/">LinkedIn</a></li><li><a href="https://pl-coding.com">Website</a></li></ul><h2>Donn's Free E-Book on Freelancing/Consulting Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><ul><li><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p></li><li><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p></li><li><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p></li><li><p><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p></li><li><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p></li></ul>
]]></description>
      <pubDate>Mon, 24 May 2021 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn talks with Philipp Lackner about growing an online presence within the Software Industry with Instagram and YouTube.</p><h2>Shownotes</h2><p>You'll learn how Philipp went from 0 to over 80,000 followers on Instagram. This was done all organically by posting valuable content every single day to his feed.</p><p>You'll also learn how he uses YouTube (as well as Instagram) as a marketing channel for his own course products that he sells via his site. </p><p>We wrap up by talking about content strategy, what tools are used, captions and hashtags. This episode is chock full of great info if you're learning how to grow your following online.</p><h3>Tools that Philipp Mentioned</h3><ul><li><a href="https://canva.com">Canva</a></li><li><a href="https://www.adobe.com/creativecloud.html">Adobe Creative Cloud - Photoshop/After Effects/Illustrator</a></li><li><a href="https://www.freepik.com/">FreePik - Images and Icons</a></li><li><a href="https://www.techsmith.com/video-editor.html">Camtasia</a></li><li><a href="https://later.com/r/donnfelker-626995">Later.com - Social Scheduling</a></li><li><a href="https://www.contentrow.com">ContentRow.com</a></li></ul><h2>Find Philipp Lackner online here</h2><ul><li><a href="https://instagram.com/philipplackner_official">Instagram</a></li><li><a href="https://youtube.com/c/PhilippLackner">YouTube</a></li><li><a href="https://twitter.com/plcoding">Twitter</a></li><li><a href="https://www.linkedin.com/in/philipp-lackner-a0b2201b3/">LinkedIn</a></li><li><a href="https://pl-coding.com">Website</a></li></ul><h2>Donn's Free E-Book on Freelancing/Consulting Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><ul><li><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p></li><li><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p></li><li><p><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</p></li><li><p><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p></li><li><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p></li></ul>
]]></content:encoded>
      <enclosure length="52119980" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/9dc1056a-3e23-4854-aefa-8afb2fa4b2b8/audio/ac4c36bc-df1b-4f49-9067-d2ef802760d6/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>212: Growing an Online Presence in the Software Industry with Philipp Lackner</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:54:16</itunes:duration>
      <itunes:summary>In this episode, Donn talks with Philipp Lackner about growing an online presence within the Software Industry with Instagram and YouTube.</itunes:summary>
      <itunes:subtitle>In this episode, Donn talks with Philipp Lackner about growing an online presence within the Software Industry with Instagram and YouTube.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>212</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">47d9f50d-684f-4ab4-8a6d-a8a676eae943</guid>
      <title>211: Why Learning React is Good For You as a Developer</title>
      <description><![CDATA[<p>In this episode Donn talks about why you need to learn React (or Flutter) - so you can truly understand the Unidirectional data flow pattern in a framework that was built for that purpose alone.</p><p>Working with other frameworks which bolt on a custom unidirectional data flow is often hard to understand. When you work with React and learn how it works, the concept of Unidirectional data flow starts to make much more sense as that is the default way to implement UI's in technologies like React (and Flutter).</p><p>This exposes you to the pattern and helps you understand it. In turn, this will help you become a better developer.</p><h2>Show Notes</h2><p><a href="http://www.donnfelker.com/wp-content/uploads/2021/05/unidirectional-donnfelker.png">Unidirectional Data flow Image</a></p><img src="http://www.donnfelker.com/wp-content/uploads/2021/05/unidirectional-donnfelker.png" alt="http://www.donnfelker.com/wp-content/uploads/2021/05/unidirectional-donnfelker.png" /><p>How to learn React:</p><ul><li><a href="https://ui.dev/react/">Tyler McGinnis Course on React (this is how I learned it)</a></li><li><a href="https://ui.dev/react-hooks/">Tyler McGinnis React Hooks Course</a></li></ul><p>How to Learn Flutter</p><ul><li><a href="https://www.youtube.com/playlist?list=PLI-zgtmWlWvXEaogxCUejByJxwv5Vl-X3">Rohan Taneja's Flutter from Zero to Hero Course</a> (Free)</li><li><a href="https://www.youtube.com/watch?v=x0uinJvhNxI">Flutter Crash Course</a></li></ul><h2>Donn's Free E-Book on Freelancing Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><ul><li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li><li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li><li><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</li><li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li></ul><p><i>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</i></p>
]]></description>
      <pubDate>Tue, 18 May 2021 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode Donn talks about why you need to learn React (or Flutter) - so you can truly understand the Unidirectional data flow pattern in a framework that was built for that purpose alone.</p><p>Working with other frameworks which bolt on a custom unidirectional data flow is often hard to understand. When you work with React and learn how it works, the concept of Unidirectional data flow starts to make much more sense as that is the default way to implement UI's in technologies like React (and Flutter).</p><p>This exposes you to the pattern and helps you understand it. In turn, this will help you become a better developer.</p><h2>Show Notes</h2><p><a href="http://www.donnfelker.com/wp-content/uploads/2021/05/unidirectional-donnfelker.png">Unidirectional Data flow Image</a></p><img src="http://www.donnfelker.com/wp-content/uploads/2021/05/unidirectional-donnfelker.png" alt="http://www.donnfelker.com/wp-content/uploads/2021/05/unidirectional-donnfelker.png" /><p>How to learn React:</p><ul><li><a href="https://ui.dev/react/">Tyler McGinnis Course on React (this is how I learned it)</a></li><li><a href="https://ui.dev/react-hooks/">Tyler McGinnis React Hooks Course</a></li></ul><p>How to Learn Flutter</p><ul><li><a href="https://www.youtube.com/playlist?list=PLI-zgtmWlWvXEaogxCUejByJxwv5Vl-X3">Rohan Taneja's Flutter from Zero to Hero Course</a> (Free)</li><li><a href="https://www.youtube.com/watch?v=x0uinJvhNxI">Flutter Crash Course</a></li></ul><h2>Donn's Free E-Book on Freelancing Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><ul><li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li><li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li><li><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</li><li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li></ul><p><i>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</i></p>
]]></content:encoded>
      <enclosure length="14216363" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/b63bf3dd-25c7-417d-9f05-be281581984c/audio/1ff2033d-a444-4941-89cc-16146bec994e/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>211: Why Learning React is Good For You as a Developer</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:14:48</itunes:duration>
      <itunes:summary>In this episode Donn talks about why you need to learn React (or Flutter) - so you can truly understand the Unidirectional data flow pattern in a framework that was built for that purpose alone.</itunes:summary>
      <itunes:subtitle>In this episode Donn talks about why you need to learn React (or Flutter) - so you can truly understand the Unidirectional data flow pattern in a framework that was built for that purpose alone.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>211</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">f2bf4078-3c41-47b9-a18e-f7d03f9c129f</guid>
      <title>210: Kotlin Multiplatform Mobile (KMM) with Mitch Tabian</title>
      <description><![CDATA[<p>In this episode, Donn talks with Mitch Tabian about Kotlin Multiplatform Mobile, also known as KMM.</p><p>Mitch explains what KMM is, why he decided to use it, and how it works from a developer's perspective. The goal was to build an app and develop both the iOS and Android versions. Mitch talks about his experience in building a KMM app. We cover the pros and cons, what worked vs what did not, and his advice on using KMM going forward. Mitch also shares content about how to build native components in Jetpack Compose and SwiftUI as well as architectures used in his KMM project.</p><h3>Links from the show</h3><ul><li><a href="https://kotlinlang.org/docs/mobile/">KMM Docs</a></li><li><a href="https://kotlinlang.org/docs/mobile/getting-started.html">KMM Getting Started</a></li><li><a href="https://twitter.com/joreilly">John O'Reilly Twitter</a></li><li><a href="https://raw.githubusercontent.com/mitchtabian/KMM-Playground/test/extras/clean_architecture_kmm.png">Diagram from Mitch for KMM clean architecture</a></li><li><a href="https://cashapp.github.io/sqldelight/">SQL Delight</a></li><li><a href="https://ktor.io/">Ktor Library</a></li><li><a href="https://github.com/Kotlin/kotlinx-datetime">kotlinx-datetime</a></li><li><a href="https://github.com/Kotlin/kotlinx.serialization">kotlinx.serialization</a></li><li><a href="https://kotlinlang.org/docs/mobile/connect-to-platform-specific-apis.html">Expect-actual</a></li><li><a href="https://www.hackingwithswift.com/">Hacking with Swift Course</a></li><li><a href="https://www.hackingwithswift.com/100/swiftui">100 days of SwiftUI</a></li><li><a href="https://www.youtube.com/watch?v=L8Xq15NTuCc">Is KMM ready for production? - A Video by Mitch</a></li><li><a href="https://www.droidcon.com/media-detail?video=491032635">D-KMP architecture</a></li></ul><h3>Find Mitch online here:</h3><ul><li><a href="https://twitter.com/mitch_tabian">Mitch's Twitter</a></li><li><a href="https://www.instagram.com/codingwithmitch/">Mitch's Instagram</a></li><li><a href="https://www.youtube.com/codingwithmitch">Mitch's YouTube</a></li><li><a href="https://codingwithmitch.com">Mitch's Website and Courses</a></li><li><a href="https://raw.githubusercontent.com/mitchtabian/KMM-Playground/test/extras/clean_architecture_kmm.png">Mitch's KMM Clean Architecture diagram</a></li></ul><h2>Donn's Free E-Book on Freelancing Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><ul><li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li><li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li><li><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</li><li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li></ul><p><i>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</i></p>
]]></description>
      <pubDate>Mon, 10 May 2021 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn talks with Mitch Tabian about Kotlin Multiplatform Mobile, also known as KMM.</p><p>Mitch explains what KMM is, why he decided to use it, and how it works from a developer's perspective. The goal was to build an app and develop both the iOS and Android versions. Mitch talks about his experience in building a KMM app. We cover the pros and cons, what worked vs what did not, and his advice on using KMM going forward. Mitch also shares content about how to build native components in Jetpack Compose and SwiftUI as well as architectures used in his KMM project.</p><h3>Links from the show</h3><ul><li><a href="https://kotlinlang.org/docs/mobile/">KMM Docs</a></li><li><a href="https://kotlinlang.org/docs/mobile/getting-started.html">KMM Getting Started</a></li><li><a href="https://twitter.com/joreilly">John O'Reilly Twitter</a></li><li><a href="https://raw.githubusercontent.com/mitchtabian/KMM-Playground/test/extras/clean_architecture_kmm.png">Diagram from Mitch for KMM clean architecture</a></li><li><a href="https://cashapp.github.io/sqldelight/">SQL Delight</a></li><li><a href="https://ktor.io/">Ktor Library</a></li><li><a href="https://github.com/Kotlin/kotlinx-datetime">kotlinx-datetime</a></li><li><a href="https://github.com/Kotlin/kotlinx.serialization">kotlinx.serialization</a></li><li><a href="https://kotlinlang.org/docs/mobile/connect-to-platform-specific-apis.html">Expect-actual</a></li><li><a href="https://www.hackingwithswift.com/">Hacking with Swift Course</a></li><li><a href="https://www.hackingwithswift.com/100/swiftui">100 days of SwiftUI</a></li><li><a href="https://www.youtube.com/watch?v=L8Xq15NTuCc">Is KMM ready for production? - A Video by Mitch</a></li><li><a href="https://www.droidcon.com/media-detail?video=491032635">D-KMP architecture</a></li></ul><h3>Find Mitch online here:</h3><ul><li><a href="https://twitter.com/mitch_tabian">Mitch's Twitter</a></li><li><a href="https://www.instagram.com/codingwithmitch/">Mitch's Instagram</a></li><li><a href="https://www.youtube.com/codingwithmitch">Mitch's YouTube</a></li><li><a href="https://codingwithmitch.com">Mitch's Website and Courses</a></li><li><a href="https://raw.githubusercontent.com/mitchtabian/KMM-Playground/test/extras/clean_architecture_kmm.png">Mitch's KMM Clean Architecture diagram</a></li></ul><h2>Donn's Free E-Book on Freelancing Rates</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><ul><li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li><li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li><li><a href="https://www.donnfelker.com/youtube-channel-from-podcast">Freelancing for Mobile Developers</a> (Donn's YouTube)</li><li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li></ul><p><i>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</i></p>
]]></content:encoded>
      <enclosure length="50583338" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/421a6c25-57fe-4902-a027-ad73595fe0cd/audio/f87b555c-a857-4695-b3aa-579ea0074b6d/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>210: Kotlin Multiplatform Mobile (KMM) with Mitch Tabian</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:52:41</itunes:duration>
      <itunes:summary>In this episode, Donn talks with Mitch Tabian about Kotlin Multiplatform Mobile, also known as KMM.</itunes:summary>
      <itunes:subtitle>In this episode, Donn talks with Mitch Tabian about Kotlin Multiplatform Mobile, also known as KMM.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>210</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">94ea9dcb-eed6-4ce1-b411-2fb6b0bcdb57</guid>
      <title>209: Secure Development Lifecycle with Glenn Leifheit</title>
      <description><![CDATA[<p>In this episode, Donn talks with Glenn Leifheit from Microsoft about a concept known as "Secure Development Lifecycle". Glenn is a Senior Security Program Manager at Microsoft.</p><p>Glenn explains to you what the secure development lifecycle is, how it works and how you can implement something like this in your company. He also shares the top tips you can implement in order to get the quickest benefit of the Secure Development Lifecycle</p><h3>Links from the show</h3><ul><li>Application Inspector:  <a href="https://github.com/Microsoft/ApplicationInspector">GitHub</a></li><li>DevSkim:  <a href="https://github.com/microsoft/devskim">GitHub</a></li><li>Attack Surface Analyzer:  <a href="https://github.com/Microsoft/AttackSurfaceAnalyzer">GitHub</a></li><li>OSS Gadget:  <a href="https://github.com/typescript-eslint/typescript-eslint">GitHub</a></li><li>Recursive Extractor:  <a href="https://github.com/microsoft/RecursiveExtractor">GitHub</a></li><li>Microsoft SDL: <a href="https://www.microsoft.com/en-us/securityengineering/sdl/">Microsoft Security Development Lifecycle</a></li><li>CodeQL: <a href="https://securitylab.github.com/tools/codeql/">CodeQL for research | GitHub Security Lab</a></li><li>OWASP:  <a href="https://owasp.org/">OWASP Foundation | Open Source Foundation for Application Security</a></li><li>OWASP Top 10: <a href="https://owasp.org/www-project-top-ten/">OWASP Top Ten Web Application Security Risks | OWASP</a></li><li>OWASP Web Security Testing Guide: <a href="https://owasp.org/www-project-web-security-testing-guide/">OWASP Web Security Testing Guide</a></li><li>Python basic code analysis:  <a href="https://pylint.org/">Pylint - code analysis for Python | www.pylint.org</a></li><li>TypeScript basic code analysis: <a href="https://github.com/typescript-eslint/typescript-eslint">GitHub - typescript-eslint/typescript-eslint: Monorepo for all the tooling which enables ESLint to support TypeScript</a></li></ul><h3>Find Glenn online here</h3><ul><li><a href="https://www.linkedin.com/in/gleifhe/">Glenn's LinkedIn</a></li><li><a href="https://twitter.com/gleifhe">Glenn's Twitter</a></li></ul><h2>Donn's Free E-Book on Freelancing</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><ul><li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li><li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li><li><a href="https://www.youtube.com/channel/UCX-K1HK8ejnnQF_GWcMHveg">Freelancing for Mobile Developers</a> (Donn's YouTube)</li><li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li></ul><p><i>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</i></p>
]]></description>
      <pubDate>Mon, 3 May 2021 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn talks with Glenn Leifheit from Microsoft about a concept known as "Secure Development Lifecycle". Glenn is a Senior Security Program Manager at Microsoft.</p><p>Glenn explains to you what the secure development lifecycle is, how it works and how you can implement something like this in your company. He also shares the top tips you can implement in order to get the quickest benefit of the Secure Development Lifecycle</p><h3>Links from the show</h3><ul><li>Application Inspector:  <a href="https://github.com/Microsoft/ApplicationInspector">GitHub</a></li><li>DevSkim:  <a href="https://github.com/microsoft/devskim">GitHub</a></li><li>Attack Surface Analyzer:  <a href="https://github.com/Microsoft/AttackSurfaceAnalyzer">GitHub</a></li><li>OSS Gadget:  <a href="https://github.com/typescript-eslint/typescript-eslint">GitHub</a></li><li>Recursive Extractor:  <a href="https://github.com/microsoft/RecursiveExtractor">GitHub</a></li><li>Microsoft SDL: <a href="https://www.microsoft.com/en-us/securityengineering/sdl/">Microsoft Security Development Lifecycle</a></li><li>CodeQL: <a href="https://securitylab.github.com/tools/codeql/">CodeQL for research | GitHub Security Lab</a></li><li>OWASP:  <a href="https://owasp.org/">OWASP Foundation | Open Source Foundation for Application Security</a></li><li>OWASP Top 10: <a href="https://owasp.org/www-project-top-ten/">OWASP Top Ten Web Application Security Risks | OWASP</a></li><li>OWASP Web Security Testing Guide: <a href="https://owasp.org/www-project-web-security-testing-guide/">OWASP Web Security Testing Guide</a></li><li>Python basic code analysis:  <a href="https://pylint.org/">Pylint - code analysis for Python | www.pylint.org</a></li><li>TypeScript basic code analysis: <a href="https://github.com/typescript-eslint/typescript-eslint">GitHub - typescript-eslint/typescript-eslint: Monorepo for all the tooling which enables ESLint to support TypeScript</a></li></ul><h3>Find Glenn online here</h3><ul><li><a href="https://www.linkedin.com/in/gleifhe/">Glenn's LinkedIn</a></li><li><a href="https://twitter.com/gleifhe">Glenn's Twitter</a></li></ul><h2>Donn's Free E-Book on Freelancing</h2><ul><li><a href="https://www.donnfelker.com/ebook">Free E-Book on Freelancing Rates</a></li></ul><h2>Contact</h2><ul><li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li><li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li><li><a href="https://www.youtube.com/channel/UCX-K1HK8ejnnQF_GWcMHveg">Freelancing for Mobile Developers</a> (Donn's YouTube)</li><li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li></ul><p><i>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</i></p>
]]></content:encoded>
      <enclosure length="46463716" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/72da4121-c057-44df-91ee-8f1d24ea7fd7/audio/760c8c18-4685-45c5-9379-cf76ba9bff63/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>209: Secure Development Lifecycle with Glenn Leifheit</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:48:23</itunes:duration>
      <itunes:summary>In this episode, Donn talks with Glenn Leifheit from Microsoft about a concept known as &quot;Secure Development Lifecycle&quot;.
</itunes:summary>
      <itunes:subtitle>In this episode, Donn talks with Glenn Leifheit from Microsoft about a concept known as &quot;Secure Development Lifecycle&quot;.
</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>209</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">7393fac0-4550-4efe-98ba-d6540a540bed</guid>
      <title>208: Developing Software at Startups with Jason Roberts</title>
      <description><![CDATA[<p>This is the original story of how Uber was built ... this is a fascinating story. You don't want to miss this. Donn talks to Jason Roberts. Jason was chosen to be Uber's CTO when the company was in its infancy (but didn't accept the offer). Jason shares the story of developing the code that eventually ran Uber from a couple of cars to a highly distributed system with an impressive amount of rides.</p><p>We talk about building what is needed when it's needed, the tools that he chose to build Uber's platform on. Early startup learnings, and how Uber originally ran on PHP before he chose to move it to Node.js.</p><p>Jason shares his story of how he met Travis (Uber's CEO who took it from a small company to a huge international corporation), how they built the systems, and team and much more. You'll learn how networking, working on interesting things, and seizing the moment and luck played into him landing his role at Uber.</p><p>Finally, we wrap up by chatting a bit about how being a generalist in an early-stage startup is beneficial (vs being a specialist).</p><h3>Find Jason online here</h3><ul><li><a href="https://twitter.com/exojason">Jason's Twitter</a></li><li><a href="http://www.codusoperandi.com/posts/">Jason's Blog</a><ul><li><a href="http://www.codusoperandi.com/posts/how-i-screwed-up-my-google-acquisition">How I Screwed up My Google Acquisition</a></li></ul></li><li><a href="https://www.mathacademy.us/">Jason's New Project - Math Academy</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.youtube.com/channel/UCX-K1HK8ejnnQF_GWcMHveg">Consulting for Mobile Developers</a> (Donn's YouTube)</p><p><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Mon, 26 Apr 2021 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>This is the original story of how Uber was built ... this is a fascinating story. You don't want to miss this. Donn talks to Jason Roberts. Jason was chosen to be Uber's CTO when the company was in its infancy (but didn't accept the offer). Jason shares the story of developing the code that eventually ran Uber from a couple of cars to a highly distributed system with an impressive amount of rides.</p><p>We talk about building what is needed when it's needed, the tools that he chose to build Uber's platform on. Early startup learnings, and how Uber originally ran on PHP before he chose to move it to Node.js.</p><p>Jason shares his story of how he met Travis (Uber's CEO who took it from a small company to a huge international corporation), how they built the systems, and team and much more. You'll learn how networking, working on interesting things, and seizing the moment and luck played into him landing his role at Uber.</p><p>Finally, we wrap up by chatting a bit about how being a generalist in an early-stage startup is beneficial (vs being a specialist).</p><h3>Find Jason online here</h3><ul><li><a href="https://twitter.com/exojason">Jason's Twitter</a></li><li><a href="http://www.codusoperandi.com/posts/">Jason's Blog</a><ul><li><a href="http://www.codusoperandi.com/posts/how-i-screwed-up-my-google-acquisition">How I Screwed up My Google Acquisition</a></li></ul></li><li><a href="https://www.mathacademy.us/">Jason's New Project - Math Academy</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.youtube.com/channel/UCX-K1HK8ejnnQF_GWcMHveg">Consulting for Mobile Developers</a> (Donn's YouTube)</p><p><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="54549338" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/1f2b990c-6d15-465b-9cf2-b229709e14eb/audio/1e47a49a-b9a1-470b-847d-1914adb6f460/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>208: Developing Software at Startups with Jason Roberts</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:56:48</itunes:duration>
      <itunes:summary>This is the original story of how Uber was built ... this is a fascinating story. You don&apos;t want to miss this. Donn talks to Jason Roberts. Jason was chosen to be Uber&apos;s CTO when the company was in its infancy (but didn&apos;t accept the offer). Jason shares the story of developing the code that eventually ran Uber from a couple of cars to a highly distributed system with an impressive amount of rides.</itunes:summary>
      <itunes:subtitle>This is the original story of how Uber was built ... this is a fascinating story. You don&apos;t want to miss this. Donn talks to Jason Roberts. Jason was chosen to be Uber&apos;s CTO when the company was in its infancy (but didn&apos;t accept the offer). Jason shares the story of developing the code that eventually ran Uber from a couple of cars to a highly distributed system with an impressive amount of rides.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>208</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">ebb6f9ee-29f4-4fb4-8e9d-c6d1751e1720</guid>
      <title>207: How to Optimize Your Home Office</title>
      <description><![CDATA[<p>In this episode, Donn outlines how you can optimize your home office so that you look, sound, and perform the best that you can. From audio to video, to your body, and everything beyond, it's covered here.</p><h2>Shownotes</h2><p>In this episode, Donn outlines how you can optimize your home office so that you look, sound, and perform the best that you can. From audio to video, to your body, and everything beyond, it's covered here.</p><p>Donn talks about everything you can do to improve your home office. From microphones, lighting, and webcams for your video calls to chairs, standing desks, and more. This episode has all the links below for all the products discussed.</p><p>Take even 20% of the recommendations and apply them to your home office and you'll see a drastic difference in your productivity and happiness in your home office.</p><h3>Links to Items Discussed</h3><p>Microphones</p><ul><li><a href="https://amzn.to/3tAn0Il">Audio-Technica ATR2100x-USB</a></li><li><a href="https://amzn.to/3dwsFtE">Blue Snowball</a></li><li><a href="https://amzn.to/3dvxgMx">Blue Yeti</a></li><li><a href="https://amzn.to/3sDZ5qi">Shure MV7</a></li><li><a href="https://amzn.to/3tzBqJ3">Shure SM7B (High End)</a> & <a href="https://amzn.to/3n0Wfuo">CloudLifter</a><ul><li><a href="https://amzn.to/3gD7zfd">Lower Cost Preamp</a></li><li><a href="https://www.bhphotovideo.com/c/product/734341-REG/Sound_Devices_USBPRE_2_USBPre_2_Microphone.html">High End Preamp</a></li></ul></li></ul><p>Boom arms for Mics</p><ul><li><a href="https://amzn.to/2RKzDTb">Rode PSA 1 Boom Arm</a></li><li><a href="https://amzn.to/2RTDa1T">Heil PL-2T</a></li><li><a href="https://amzn.to/3dE7ztv">Gator Frameworks Boom (same one used on Joe Rogans podcast)</a></li></ul><p>Webcams</p><ul><li><a href="https://amzn.to/3nb0hAn">Logitech C920x HD</a></li><li><a href="https://amzn.to/3xcRaUk">Logitech Brio Ultra HD 4k</a></li><li><a href="https://amzn.to/32JpWXH">DSLR HDMI Capture Card by Elgato - Camlink 4k</a></li></ul><p>Docking Hub</p><ul><li><a href="https://amzn.to/3dxc60r">CalDigit TS3 Docking Hub for Mac</a></li><li><a href="https://amzn.to/2QE0tMj">Brydge Vertical Dock for Mac</a></li></ul><p>Lighting</p><ul><li><a href="https://amzn.to/2P4rJ6e">LumeCube Video Conference Lighting Kit</a></li><li><a href="https://amzn.to/2P4rJ6e">LumeCube Suction Cup Mount (indluced in kit above)</a></li><li><a href="https://amzn.to/3gkF3ia">Benq Desklap (high end)</a></li></ul><p>Headphones</p><p><a href="https://amzn.to/3v8cqsO">JVC Xtreme-Xplosivs Wired Earbuds - Donn's Go to</a></p><p><a href="https://amzn.to/3egiQPv">Sony MDR-7506 Professional Headphone</a></p><p><a href="https://amzn.to/3x9ImPc">Audio Technical M20x</a></p><p>No, I don't use Bluetooth headsets at work, though many do. If they work for you, you might want to check out the <a href="https://amzn.to/3vaDFCZ">Audio Technica ATHM50XBT's</a> or the <a href="https://amzn.to/3n2XqJL">Bose Quiet Comfort 35's</a></p><p>Chairs</p><ul><li><a href="https://store.hermanmiller.com/office/office-chairs/aeron-chair/100077461.html">Herman Miller Aeron - make sure you know your size</a></li><li><a href="https://store.hermanmiller.com/office/office-chairs/mirra-2-task-chair/1453.html?lang=en_US">Herman Miller Mirra</a></li><li><a href="https://amzn.to/32zn9A9">Steelcase Leap V2</a></li></ul><p>Standing Desk</p><ul><li><a href="https://www.autonomous.ai/standing-desks">Autonomous AI Standing Desks</a></li><li><a href="https://www.ikea.com/us/en/cat/bekant-office-desks-18962/">IKEA Bekant Standing Desk</a></li><li><a href="https://www.fully.com/standing-desks/jarvis.html">Jarvis Standing Desks</a></li><li><a href="https://amzn.to/3as12jh">VariDesk Adjustable Standing Desk</a></li></ul><p>Anti-Fatigue Mats</p><ul><li><a href="https://amzn.to/3gpSk8Z">ErgoDriven Topo Comfort Mat</a></li><li><a href="https://amzn.to/3sx6mrT">Cheap Anti-Fatigue Mat</a></li></ul><p>Monitor and Monitor Arms</p><ul><li><a href="https://amzn.to/3sx6mrT">LG 5K Monitor - this thing is amazing</a></li><li><a href="https://amzn.to/3tzvlwc">Amazon Basics Monitor Arm</a></li><li><a href="https://amzn.to/3n2mn80">Ergotron Tall Monitor Mount (this is what I have)</a></li></ul><p>Keyboard</p><ul><li><a href="https://amzn.to/3va6hMy">Kinesis Advantage 2 (my keyboard)</a></li><li><a href="https://www.zsa.io/moonlander/">Moonlander Keyboard</a></li></ul><p>Mouse</p><ul><li><a href="https://amzn.to/3n2nUeg">Magic Trackpad</a></li><li><a href="https://amzn.to/3xeeUHF">Logitech Trackman Marble Ergonomic Mouse</a></li><li><a href="https://amzn.to/3sCmWXr">Logitech M570 Wireless Trackball Mouse</a></li></ul><p>Air Quality</p><ul><li><a href="https://amzn.to/3su9d4Y">Awair Element</a></li><li><a href="https://www.youtube.com/watch?v=MRqh8oLY7Ik">DHH Video on Air Quality</a></li></ul><p>Focus Music</p><ul><li><a href="https://www.brain.fm/">Brain.fm</a></li><li><a href="https://coffitivity.com/">Coffitivity</a></li><li><a href="https://freedom.to/">Freedom.to</a></li><li><a href="https://heyfocus.com/">HeyFocus Mac App</a></li><li><a href="https://sereneapp.com/website-blocker/">Serene Blocker</a></li><li><a href="https://getcoldturkey.com/">Cold Turkey</a></li></ul><p>Mobility, Desk Ergo, and Back Pain Resources</p><ul><li><a href="https://amzn.to/3aoTv4O">Deskbound Book</a></li><li><a href="https://amzn.to/3x9aPVl">8 Steps to a Pain Free Back</a></li><li><a href="https://amzn.to/3nbXbME">Foot Rubz</a></li><li><a href="https://amzn.to/3tNvEmU">Lacrosse Ball</a></li><li><a href="https://thereadystate.com/product/shoulder-pain-protocol/">Shoulder Pain Protocol</a></li><li><a href="https://www.youtube.com/watch?v=ay3xNBukCTo">Standing Desk Video 1</a></li><li><a href="https://www.youtube.com/watch?v=A3pCN86lm5Y">Standing Desk Video 2</a></li><li><a href="https://www.youtube.com/watch?v=X6oyEI_vxL8">Standing Desk Video 3</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.youtube.com/channel/UCX-K1HK8ejnnQF_GWcMHveg">Consulting for Mobile Developers</a> (Donn's YouTube)</p><p><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links are affiliate links. They help suppor the production of Fragmented. Thank you for your support.</p>
]]></description>
      <pubDate>Tue, 20 Apr 2021 13:30:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn outlines how you can optimize your home office so that you look, sound, and perform the best that you can. From audio to video, to your body, and everything beyond, it's covered here.</p><h2>Shownotes</h2><p>In this episode, Donn outlines how you can optimize your home office so that you look, sound, and perform the best that you can. From audio to video, to your body, and everything beyond, it's covered here.</p><p>Donn talks about everything you can do to improve your home office. From microphones, lighting, and webcams for your video calls to chairs, standing desks, and more. This episode has all the links below for all the products discussed.</p><p>Take even 20% of the recommendations and apply them to your home office and you'll see a drastic difference in your productivity and happiness in your home office.</p><h3>Links to Items Discussed</h3><p>Microphones</p><ul><li><a href="https://amzn.to/3tAn0Il">Audio-Technica ATR2100x-USB</a></li><li><a href="https://amzn.to/3dwsFtE">Blue Snowball</a></li><li><a href="https://amzn.to/3dvxgMx">Blue Yeti</a></li><li><a href="https://amzn.to/3sDZ5qi">Shure MV7</a></li><li><a href="https://amzn.to/3tzBqJ3">Shure SM7B (High End)</a> & <a href="https://amzn.to/3n0Wfuo">CloudLifter</a><ul><li><a href="https://amzn.to/3gD7zfd">Lower Cost Preamp</a></li><li><a href="https://www.bhphotovideo.com/c/product/734341-REG/Sound_Devices_USBPRE_2_USBPre_2_Microphone.html">High End Preamp</a></li></ul></li></ul><p>Boom arms for Mics</p><ul><li><a href="https://amzn.to/2RKzDTb">Rode PSA 1 Boom Arm</a></li><li><a href="https://amzn.to/2RTDa1T">Heil PL-2T</a></li><li><a href="https://amzn.to/3dE7ztv">Gator Frameworks Boom (same one used on Joe Rogans podcast)</a></li></ul><p>Webcams</p><ul><li><a href="https://amzn.to/3nb0hAn">Logitech C920x HD</a></li><li><a href="https://amzn.to/3xcRaUk">Logitech Brio Ultra HD 4k</a></li><li><a href="https://amzn.to/32JpWXH">DSLR HDMI Capture Card by Elgato - Camlink 4k</a></li></ul><p>Docking Hub</p><ul><li><a href="https://amzn.to/3dxc60r">CalDigit TS3 Docking Hub for Mac</a></li><li><a href="https://amzn.to/2QE0tMj">Brydge Vertical Dock for Mac</a></li></ul><p>Lighting</p><ul><li><a href="https://amzn.to/2P4rJ6e">LumeCube Video Conference Lighting Kit</a></li><li><a href="https://amzn.to/2P4rJ6e">LumeCube Suction Cup Mount (indluced in kit above)</a></li><li><a href="https://amzn.to/3gkF3ia">Benq Desklap (high end)</a></li></ul><p>Headphones</p><p><a href="https://amzn.to/3v8cqsO">JVC Xtreme-Xplosivs Wired Earbuds - Donn's Go to</a></p><p><a href="https://amzn.to/3egiQPv">Sony MDR-7506 Professional Headphone</a></p><p><a href="https://amzn.to/3x9ImPc">Audio Technical M20x</a></p><p>No, I don't use Bluetooth headsets at work, though many do. If they work for you, you might want to check out the <a href="https://amzn.to/3vaDFCZ">Audio Technica ATHM50XBT's</a> or the <a href="https://amzn.to/3n2XqJL">Bose Quiet Comfort 35's</a></p><p>Chairs</p><ul><li><a href="https://store.hermanmiller.com/office/office-chairs/aeron-chair/100077461.html">Herman Miller Aeron - make sure you know your size</a></li><li><a href="https://store.hermanmiller.com/office/office-chairs/mirra-2-task-chair/1453.html?lang=en_US">Herman Miller Mirra</a></li><li><a href="https://amzn.to/32zn9A9">Steelcase Leap V2</a></li></ul><p>Standing Desk</p><ul><li><a href="https://www.autonomous.ai/standing-desks">Autonomous AI Standing Desks</a></li><li><a href="https://www.ikea.com/us/en/cat/bekant-office-desks-18962/">IKEA Bekant Standing Desk</a></li><li><a href="https://www.fully.com/standing-desks/jarvis.html">Jarvis Standing Desks</a></li><li><a href="https://amzn.to/3as12jh">VariDesk Adjustable Standing Desk</a></li></ul><p>Anti-Fatigue Mats</p><ul><li><a href="https://amzn.to/3gpSk8Z">ErgoDriven Topo Comfort Mat</a></li><li><a href="https://amzn.to/3sx6mrT">Cheap Anti-Fatigue Mat</a></li></ul><p>Monitor and Monitor Arms</p><ul><li><a href="https://amzn.to/3sx6mrT">LG 5K Monitor - this thing is amazing</a></li><li><a href="https://amzn.to/3tzvlwc">Amazon Basics Monitor Arm</a></li><li><a href="https://amzn.to/3n2mn80">Ergotron Tall Monitor Mount (this is what I have)</a></li></ul><p>Keyboard</p><ul><li><a href="https://amzn.to/3va6hMy">Kinesis Advantage 2 (my keyboard)</a></li><li><a href="https://www.zsa.io/moonlander/">Moonlander Keyboard</a></li></ul><p>Mouse</p><ul><li><a href="https://amzn.to/3n2nUeg">Magic Trackpad</a></li><li><a href="https://amzn.to/3xeeUHF">Logitech Trackman Marble Ergonomic Mouse</a></li><li><a href="https://amzn.to/3sCmWXr">Logitech M570 Wireless Trackball Mouse</a></li></ul><p>Air Quality</p><ul><li><a href="https://amzn.to/3su9d4Y">Awair Element</a></li><li><a href="https://www.youtube.com/watch?v=MRqh8oLY7Ik">DHH Video on Air Quality</a></li></ul><p>Focus Music</p><ul><li><a href="https://www.brain.fm/">Brain.fm</a></li><li><a href="https://coffitivity.com/">Coffitivity</a></li><li><a href="https://freedom.to/">Freedom.to</a></li><li><a href="https://heyfocus.com/">HeyFocus Mac App</a></li><li><a href="https://sereneapp.com/website-blocker/">Serene Blocker</a></li><li><a href="https://getcoldturkey.com/">Cold Turkey</a></li></ul><p>Mobility, Desk Ergo, and Back Pain Resources</p><ul><li><a href="https://amzn.to/3aoTv4O">Deskbound Book</a></li><li><a href="https://amzn.to/3x9aPVl">8 Steps to a Pain Free Back</a></li><li><a href="https://amzn.to/3nbXbME">Foot Rubz</a></li><li><a href="https://amzn.to/3tNvEmU">Lacrosse Ball</a></li><li><a href="https://thereadystate.com/product/shoulder-pain-protocol/">Shoulder Pain Protocol</a></li><li><a href="https://www.youtube.com/watch?v=ay3xNBukCTo">Standing Desk Video 1</a></li><li><a href="https://www.youtube.com/watch?v=A3pCN86lm5Y">Standing Desk Video 2</a></li><li><a href="https://www.youtube.com/watch?v=X6oyEI_vxL8">Standing Desk Video 3</a></li></ul><h2>Contact</h2><p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></p><p><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</p><p><a href="https://www.youtube.com/channel/UCX-K1HK8ejnnQF_GWcMHveg">Consulting for Mobile Developers</a> (Donn's YouTube)</p><p><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></p><p>Disclaimer: Many of the links are affiliate links. They help suppor the production of Fragmented. Thank you for your support.</p>
]]></content:encoded>
      <enclosure length="46952329" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/f66bde19-8e46-4bb1-81e0-a48049d2a84d/audio/8901a9a2-08d7-407e-8fff-42d83065ce96/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>207: How to Optimize Your Home Office</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:48:53</itunes:duration>
      <itunes:summary>In this episode, Donn outlines how you can optimize your home office so that you look, sound, and perform the best that you can. From audio to video, to your body, and everything beyond, it&apos;s covered here.</itunes:summary>
      <itunes:subtitle>In this episode, Donn outlines how you can optimize your home office so that you look, sound, and perform the best that you can. From audio to video, to your body, and everything beyond, it&apos;s covered here.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>207</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">cca3c750-81ef-4a71-8a83-d5385d04105e</guid>
      <title>206: DevOps for Developers with Will Button</title>
      <description><![CDATA[<p>In this episode, Donn talks with DevOps expert, Will Button about everything DevOps-related. If you're ever wondered how and what DevOps is, then listen in.</p><h2>Shownotes</h2><p>Will walks you through the definition of DevOps and how it's used in a company. You'll learn the 20% of DevOps you should know that will get you 80% of the benefit. You'll also learn about a bunch of automation technology that will help you and your team level up your environments so that you can become super efficient in your day-to-day engineering activities.<br /> <br />In this episode, Donn talks about the best way to learn a new technology from the ground up. Want to learn something new?  This episode is for you.</p><p>You'll learn Donn's proven 5-step methodology for learning new technology. This is the same method Donn has used for over 2 decades of learning new technology. We hope it helps you.   </p><h3>Find Will Online</h3><ul><li><a href="https://www.youtube.com/channel/UC5ZFyTivwhmZXUcOoMavyAQ">DevOps for Developers</a></li><li><a href="https://twitter.com/wfbutton">Will's Twitter</a></li><li><a href="https://devopsfordevelopers.io">DevOps for Developers Website</a>   </li></ul><h2>Contact</h2><ul><li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li><li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li><li><a href="https://www.youtube.com/channel/UCX-K1HK8ejnnQF_GWcMHveg">Consulting for Mobile Developers</a> (Donn's YouTube)</li><li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li></ul>
]]></description>
      <pubDate>Mon, 12 Apr 2021 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn talks with DevOps expert, Will Button about everything DevOps-related. If you're ever wondered how and what DevOps is, then listen in.</p><h2>Shownotes</h2><p>Will walks you through the definition of DevOps and how it's used in a company. You'll learn the 20% of DevOps you should know that will get you 80% of the benefit. You'll also learn about a bunch of automation technology that will help you and your team level up your environments so that you can become super efficient in your day-to-day engineering activities.<br /> <br />In this episode, Donn talks about the best way to learn a new technology from the ground up. Want to learn something new?  This episode is for you.</p><p>You'll learn Donn's proven 5-step methodology for learning new technology. This is the same method Donn has used for over 2 decades of learning new technology. We hope it helps you.   </p><h3>Find Will Online</h3><ul><li><a href="https://www.youtube.com/channel/UC5ZFyTivwhmZXUcOoMavyAQ">DevOps for Developers</a></li><li><a href="https://twitter.com/wfbutton">Will's Twitter</a></li><li><a href="https://devopsfordevelopers.io">DevOps for Developers Website</a>   </li></ul><h2>Contact</h2><ul><li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li><li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li><li><a href="https://www.youtube.com/channel/UCX-K1HK8ejnnQF_GWcMHveg">Consulting for Mobile Developers</a> (Donn's YouTube)</li><li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li></ul>
]]></content:encoded>
      <enclosure length="43131169" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/9c41e942-22bb-404e-b201-d8b27728aac0/audio/8ce9099e-9d58-4936-8d32-dd2bb70209d4/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>206: DevOps for Developers with Will Button</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:44:55</itunes:duration>
      <itunes:summary>In this episode, Donn talks with DevOps expert, Will Button about everything DevOps-related. If you&apos;re ever wondered how and what DevOps is, then listen in. </itunes:summary>
      <itunes:subtitle>In this episode, Donn talks with DevOps expert, Will Button about everything DevOps-related. If you&apos;re ever wondered how and what DevOps is, then listen in. </itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>206</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">cbdbf2fd-8d6c-4a1f-8e96-e82bad3ec4c3</guid>
      <title>205: How to Learn New Technologies</title>
      <description><![CDATA[<p>In this episode, Donn talks about the best way to learn a new technology from the ground up. Want to learn something new?  This episode is for you. </p><p>You'll learn Donn's proven 5-step methodology for learning new technology. This is the same method Donn has used for over 2 decades of learning new technology. We hope it helps you.</p><h2>Shownotes</h2><p>The 5 Steps: </p><ol><li>Choose a Simple Problem Domain (Note Taking app or Calorie/Protein Tracker)</li><li>Do not worry about best practices</li><li>Start Small, then go smaller: Super tiny nibbles of work</li><li>Build Something Ugly and just "Get it working"</li><li>Don't Conflate Technologies if you don't have to. Keep it simple.</li></ol><h3>Donn's Free 9+ Hour Kotlin Course</h3><p><a href="https://www.youtube.com/watch?v=wuiT4T_LJQo">Watch the entire course here, for free</a></p><h2>Contact</h2><ul><li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li><li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li><li><a href="https://www.youtube.com/channel/UCX-K1HK8ejnnQF_GWcMHveg">Consulting for Mobile Developers</a> (Donn's YouTube)</li><li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li></ul>
]]></description>
      <pubDate>Thu, 8 Apr 2021 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn talks about the best way to learn a new technology from the ground up. Want to learn something new?  This episode is for you. </p><p>You'll learn Donn's proven 5-step methodology for learning new technology. This is the same method Donn has used for over 2 decades of learning new technology. We hope it helps you.</p><h2>Shownotes</h2><p>The 5 Steps: </p><ol><li>Choose a Simple Problem Domain (Note Taking app or Calorie/Protein Tracker)</li><li>Do not worry about best practices</li><li>Start Small, then go smaller: Super tiny nibbles of work</li><li>Build Something Ugly and just "Get it working"</li><li>Don't Conflate Technologies if you don't have to. Keep it simple.</li></ol><h3>Donn's Free 9+ Hour Kotlin Course</h3><p><a href="https://www.youtube.com/watch?v=wuiT4T_LJQo">Watch the entire course here, for free</a></p><h2>Contact</h2><ul><li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li><li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li><li><a href="https://www.youtube.com/channel/UCX-K1HK8ejnnQF_GWcMHveg">Consulting for Mobile Developers</a> (Donn's YouTube)</li><li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li></ul>
]]></content:encoded>
      <enclosure length="31335237" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/2a4d5996-df58-4f70-9a54-57403361b87f/audio/09d772ec-06c3-49a2-87ae-fd4051e35192/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>205: How to Learn New Technologies</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:32:38</itunes:duration>
      <itunes:summary>In this episode, Donn talks about the best way to learn a new technology from the ground up. Want to learn something new? This episode is bound to help you.</itunes:summary>
      <itunes:subtitle>In this episode, Donn talks about the best way to learn a new technology from the ground up. Want to learn something new? This episode is bound to help you.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>205</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">49c63d8e-99e6-47d7-a5e5-111321be6aab</guid>
      <title>204: Quality over Quantity</title>
      <description><![CDATA[<p>In this episode, Donn returns for a solo episode to talk about his thoughts on Quality over Quantity and why it's important to software development and productivity in general. </p><h2>Shownotes</h2><ul><li>What is being "in Flow"? - <a href="https://en.wikipedia.org/wiki/Flow_(psychology)">Learn more</a></li></ul><h3> </h3><h2>Contact</h2><ul><li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li><li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram) </li><li><a href="https://www.youtube.com/channel/UCX-K1HK8ejnnQF_GWcMHveg">Consulting for Mobile Developers </a>(Donn's YouTube)</li><li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li></ul>
]]></description>
      <pubDate>Mon, 29 Mar 2021 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn returns for a solo episode to talk about his thoughts on Quality over Quantity and why it's important to software development and productivity in general. </p><h2>Shownotes</h2><ul><li>What is being "in Flow"? - <a href="https://en.wikipedia.org/wiki/Flow_(psychology)">Learn more</a></li></ul><h3> </h3><h2>Contact</h2><ul><li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li><li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram) </li><li><a href="https://www.youtube.com/channel/UCX-K1HK8ejnnQF_GWcMHveg">Consulting for Mobile Developers </a>(Donn's YouTube)</li><li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li></ul>
]]></content:encoded>
      <enclosure length="17574752" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/3667db0e-0145-4cda-8ed8-e850404331fe/audio/ed7c1e80-62bf-4e7a-b948-036baf78abf0/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>204: Quality over Quantity</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:18:18</itunes:duration>
      <itunes:summary>In this episode, Donn returns for a solo episode to talk about his thoughts on Quality over Quantity and why it&apos;s important to software development and productivity in general. </itunes:summary>
      <itunes:subtitle>In this episode, Donn returns for a solo episode to talk about his thoughts on Quality over Quantity and why it&apos;s important to software development and productivity in general. </itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>204</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">50d30903-812a-4265-a984-57b96ff31ef5</guid>
      <title>203: Jetbrains Projector with Joaquim</title>
      <description><![CDATA[<p>In this episode, we talk to acclaimed Android developer Joaquim Verges. He recently embarked on a journey of making is laptop not burn like a furnace when using Android Studio. He landed up on this unknown effort by Jetbrains called Projector and seems to have found programmer Nirvana.</p><p>Listen to his adventures.</p><h2>Shownotes</h2><ul><li><a href="https://medium.com/swlh/how-to-run-android-studio-on-any-device-with-jetbrains-projector-3d9d23a8c179">How to Run Android Studio on ANY Device With JetBrains Projector</a></li><li><a href="https://github.com/Adambl4/mirakle">Mirakle Gradle plugin</a></li><li>Jetbrains M1 Macbook updates:<ul><li><a href="https://youtrack.jetbrains.com/issue/JBR-2526">Jetbrains JBR-2526</a></li><li><a href="https://blog.jetbrains.com/idea/2020/12/intellij-idea-2020-3-1/">IntelliJ IDEA 2020.3.1 Is out with Apple Silicon Support</a></li></ul></li></ul><h3>Jetbrains Projector</h3><ul><li><a href="https://github.com/JetBrains/projector-server">Projector-Server: Github</a></li><li><a href="https://jetbrains.github.io/projector-client/mkdocs/latest/">Projector Documentation</a></li><li><a href="https://en.wikipedia.org/wiki/Swing_(Java)">Swing UI</a></li><li><a href="https://github.com/joaquim-verges/ProjectorAndroidStudio/blob/main/README.md">Joaquim's Projector Instructions</a></li></ul><h2>Contact</h2><ul><li>  <a href="https://twitter.com/joenrv">@joenrv</a></li><li>  <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li><li>  <a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li><li>  <a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li></ul>
]]></description>
      <pubDate>Mon, 8 Mar 2021 00:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, we talk to acclaimed Android developer Joaquim Verges. He recently embarked on a journey of making is laptop not burn like a furnace when using Android Studio. He landed up on this unknown effort by Jetbrains called Projector and seems to have found programmer Nirvana.</p><p>Listen to his adventures.</p><h2>Shownotes</h2><ul><li><a href="https://medium.com/swlh/how-to-run-android-studio-on-any-device-with-jetbrains-projector-3d9d23a8c179">How to Run Android Studio on ANY Device With JetBrains Projector</a></li><li><a href="https://github.com/Adambl4/mirakle">Mirakle Gradle plugin</a></li><li>Jetbrains M1 Macbook updates:<ul><li><a href="https://youtrack.jetbrains.com/issue/JBR-2526">Jetbrains JBR-2526</a></li><li><a href="https://blog.jetbrains.com/idea/2020/12/intellij-idea-2020-3-1/">IntelliJ IDEA 2020.3.1 Is out with Apple Silicon Support</a></li></ul></li></ul><h3>Jetbrains Projector</h3><ul><li><a href="https://github.com/JetBrains/projector-server">Projector-Server: Github</a></li><li><a href="https://jetbrains.github.io/projector-client/mkdocs/latest/">Projector Documentation</a></li><li><a href="https://en.wikipedia.org/wiki/Swing_(Java)">Swing UI</a></li><li><a href="https://github.com/joaquim-verges/ProjectorAndroidStudio/blob/main/README.md">Joaquim's Projector Instructions</a></li></ul><h2>Contact</h2><ul><li>  <a href="https://twitter.com/joenrv">@joenrv</a></li><li>  <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li><li>  <a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li><li>  <a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.jkl.gg/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li></ul>
]]></content:encoded>
      <enclosure length="27129198" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/567299f0-d2f5-4cd9-811f-0ee71739112a/audio/298ee60a-d73a-4869-b19c-479f4f7b8322/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>203: Jetbrains Projector with Joaquim</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:55:58</itunes:duration>
      <itunes:summary>In this episode, we talk to acclaimed Android developer Joaquim Verges. He recently embarked on a journey of making is laptop not burn like a furnace when using Android Studio. He landed up on this unknown effort by Jetbrains called Projector and seems to have found programmer Nirvana. Listen to his adventures.</itunes:summary>
      <itunes:subtitle>In this episode, we talk to acclaimed Android developer Joaquim Verges. He recently embarked on a journey of making is laptop not burn like a furnace when using Android Studio. He landed up on this unknown effort by Jetbrains called Projector and seems to have found programmer Nirvana. Listen to his adventures.</itunes:subtitle>
      <itunes:keywords>jetbrains, intellij, twitter, joaquim, swing ui, projector, falcon</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>203</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">7a1edbf1-b6e5-4ba2-ab46-8492c01f90ab</guid>
      <title>202: Dagger on the Anvil with Ralf Wondratschek</title>
      <description><![CDATA[<p>Anvil is a Kotlin compiler plugin that makes your life a tad bit easier when using Dagger 2. In this episode we talk to Ralf Wondratschek from Square who created the library and open sourced it for all of us.</p><p>After touching on some of the basics, Ralf dives into the thinking behind Anvil and how it evolved into the tool it is today. It's filled with nuggets of wisdom especially if your app uses Dagger for Dependency Injection.</p><p>Enjoy!</p><h2>Shownotes</h2><ul><li><a href="https://github.com/square/anvil">Anvil</a> for Dagger</li><li><a href="https://www.droidcon.com/media-detail?video=380843878">Ralf's talk at Droidcon: Android at Scale @Square</a></li><li><a href="https://speakerdeck.com/vrallev/android-at-scale-at-square">Slides for above talk</a></li></ul><h2>Contact</h2><ul><li><a href="https://twitter.com/vRallev">@vRallev</a></li><li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li><li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li><li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.kaush.co/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li></ul>
]]></description>
      <pubDate>Mon, 1 Feb 2021 07:56:21 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/episodes/202/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Anvil is a Kotlin compiler plugin that makes your life a tad bit easier when using Dagger 2. In this episode we talk to Ralf Wondratschek from Square who created the library and open sourced it for all of us.</p><p>After touching on some of the basics, Ralf dives into the thinking behind Anvil and how it evolved into the tool it is today. It's filled with nuggets of wisdom especially if your app uses Dagger for Dependency Injection.</p><p>Enjoy!</p><h2>Shownotes</h2><ul><li><a href="https://github.com/square/anvil">Anvil</a> for Dagger</li><li><a href="https://www.droidcon.com/media-detail?video=380843878">Ralf's talk at Droidcon: Android at Scale @Square</a></li><li><a href="https://speakerdeck.com/vrallev/android-at-scale-at-square">Slides for above talk</a></li></ul><h2>Contact</h2><ul><li><a href="https://twitter.com/vRallev">@vRallev</a></li><li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li><li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li><li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.kaush.co/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li></ul>
]]></content:encoded>
      <enclosure length="37337205" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/985790b0-f982-46be-b670-39ad0a9696bc/audio/b3060bed-d76d-4ab3-9c84-8840e18dd32a/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>202: Dagger on the Anvil with Ralf Wondratschek</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>01:17:18</itunes:duration>
      <itunes:summary>Anvil is a Kotlin compiler plugin that makes your life a tad bit easier when using Dagger 2. In this episode we talk to Ralf Wondratschek from Square who created the library and open sourced it for all of us.

After touching on some of the basics, Ralf dives into the thinking behind Anvil and how it evolved into the tool it is today. It&apos;s filled with nuggets of wisdom especially if your app uses Dagger for Dependency Injection.

Enjoy!</itunes:summary>
      <itunes:subtitle>Anvil is a Kotlin compiler plugin that makes your life a tad bit easier when using Dagger 2. In this episode we talk to Ralf Wondratschek from Square who created the library and open sourced it for all of us.

After touching on some of the basics, Ralf dives into the thinking behind Anvil and how it evolved into the tool it is today. It&apos;s filled with nuggets of wisdom especially if your app uses Dagger for Dependency Injection.

Enjoy!</itunes:subtitle>
      <itunes:keywords>dagger, dependency injection, di, anvil</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>202</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">e89ecbe8-b0fd-443f-ac36-bc7e1506bf3b</guid>
      <title>201: State of the Testing Union with Valera Zakharov</title>
      <description><![CDATA[<p>In episode 1 of Fragmented we talked about Testing. 200 episodes in, we decided it's a good time to do a state of the union for mobile testing. We talk with Valera Zakharov who's a Staff Engineer at Slack and considered one of the experts in the field of mobile testing. Hope you enjoy this one!</p><h2>Shownotes</h2><ul><li><a href="https://developer.android.com/training/testing/espresso">Espresso Testing with Android</a></li><li><a href="https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator">Android Test Orchestrator</a></li><li><a href="https://fragmentedpodcast.com/episodes/163/">Flank : Fragemented Episode</a></li><li><a href="https://github.com/linkedin/bluepill">Bluepill : LinkedIn's iOS Testing Framework</a></li><li><a href="https://www.droidcon.com/media-detail?video=380845617">Valera's Droidcon Talk - E2E2U: Slack's Journey to Developer-driven End-to-end Testing</a></li><li><a href="https://slack.engineering/android-ui-automation-part-1-building-trust/">Valera's blog post on Slack - Android UI Automation: Part 1, Building Trust</a></li><li><a href="https://jakewharton.com/testing-robots/">Jake Wharton's Testing Robots</a></li></ul><h2>Contact</h2><ul><li><a href="https://twitter.com/valera_zakharov">@valera_zakharov</a></li><li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li><li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li><li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.kaush.co/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li></ul>
]]></description>
      <pubDate>Mon, 2 Nov 2020 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Donn Felker, Valera Zakharov, Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/episodes/201/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In episode 1 of Fragmented we talked about Testing. 200 episodes in, we decided it's a good time to do a state of the union for mobile testing. We talk with Valera Zakharov who's a Staff Engineer at Slack and considered one of the experts in the field of mobile testing. Hope you enjoy this one!</p><h2>Shownotes</h2><ul><li><a href="https://developer.android.com/training/testing/espresso">Espresso Testing with Android</a></li><li><a href="https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator">Android Test Orchestrator</a></li><li><a href="https://fragmentedpodcast.com/episodes/163/">Flank : Fragemented Episode</a></li><li><a href="https://github.com/linkedin/bluepill">Bluepill : LinkedIn's iOS Testing Framework</a></li><li><a href="https://www.droidcon.com/media-detail?video=380845617">Valera's Droidcon Talk - E2E2U: Slack's Journey to Developer-driven End-to-end Testing</a></li><li><a href="https://slack.engineering/android-ui-automation-part-1-building-trust/">Valera's blog post on Slack - Android UI Automation: Part 1, Building Trust</a></li><li><a href="https://jakewharton.com/testing-robots/">Jake Wharton's Testing Robots</a></li></ul><h2>Contact</h2><ul><li><a href="https://twitter.com/valera_zakharov">@valera_zakharov</a></li><li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li><li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li><li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.kaush.co/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li></ul>
]]></content:encoded>
      <enclosure length="52264710" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/b020803f-4116-41e9-b3fd-5a5027594738/audio/4f7b8f35-e69d-4783-a982-015b482b492c/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>201: State of the Testing Union with Valera Zakharov</itunes:title>
      <itunes:author>Donn Felker, Valera Zakharov, Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:54:02</itunes:duration>
      <itunes:summary>In episode 1 of Fragmented we talked about Testing. 200 episodes in, we decided it&apos;s a good time to do a state of the union for mobile testing. We talk with Valera Zakharov who&apos;s a Staff Engineer at Slack and considered one of the experts in the field of mobile testing. Hope you enjoy this one!</itunes:summary>
      <itunes:subtitle>In episode 1 of Fragmented we talked about Testing. 200 episodes in, we decided it&apos;s a good time to do a state of the union for mobile testing. We talk with Valera Zakharov who&apos;s a Staff Engineer at Slack and considered one of the experts in the field of mobile testing. Hope you enjoy this one!</itunes:subtitle>
      <itunes:keywords>flank, robolectric, espresso, testing, android ui testing</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>201</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">db331510-1984-4f4c-9dfa-78ab448f3913</guid>
      <title>200: Serverless Programming</title>
      <description><![CDATA[<p>In our 200th episode, we talk about Serverless Programming.</p><p>What is it? What's an example of a service I could build with Serverless Programming? What are the advantages or disadvantages? We talk about it all in this episode.</p><p>Also, 🙏 for being listeners. We've stuck together for 200 of these. Kaushik & Donn are incredibly grateful to have you folks as listeners.</p><h2>Shownotes</h2><ul><li><a href="https://www.heroku.com/">Heroku</a></li><li><a href="https://en.wikipedia.org/wiki/Platform_as_a_service">Platform as a Service</a></li><li>Donn's gif service <a href="https://gifstagram.com/">gifstagram.com</a></li><li><a href="https://flippa.com/">Flippa</a> : Buy and Sell services online</li><li><a href="https://baremetrics.com/founder-chats/josh-pigford">Founder's Chats: Ep 41</a></li><li>Options for different services:<ul><li><a href="https://aws.amazon.com/lambda/">AWS Lambda Function</a></li><li><a href="https://azure.microsoft.com/en-us/services/functions/">Azure Functions</a></li></ul></li><li><a href="https://www.postman.com/">Postman</a> : The Collaboration Platform for API Development</li><li><a href="https://vercel.com/">Vercel</a></li></ul><h2>Contact</h2><ul><li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li><li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li><li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.kaush.co/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li></ul>
]]></description>
      <pubDate>Mon, 5 Oct 2020 06:07:27 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Donn Felker, Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In our 200th episode, we talk about Serverless Programming.</p><p>What is it? What's an example of a service I could build with Serverless Programming? What are the advantages or disadvantages? We talk about it all in this episode.</p><p>Also, 🙏 for being listeners. We've stuck together for 200 of these. Kaushik & Donn are incredibly grateful to have you folks as listeners.</p><h2>Shownotes</h2><ul><li><a href="https://www.heroku.com/">Heroku</a></li><li><a href="https://en.wikipedia.org/wiki/Platform_as_a_service">Platform as a Service</a></li><li>Donn's gif service <a href="https://gifstagram.com/">gifstagram.com</a></li><li><a href="https://flippa.com/">Flippa</a> : Buy and Sell services online</li><li><a href="https://baremetrics.com/founder-chats/josh-pigford">Founder's Chats: Ep 41</a></li><li>Options for different services:<ul><li><a href="https://aws.amazon.com/lambda/">AWS Lambda Function</a></li><li><a href="https://azure.microsoft.com/en-us/services/functions/">Azure Functions</a></li></ul></li><li><a href="https://www.postman.com/">Postman</a> : The Collaboration Platform for API Development</li><li><a href="https://vercel.com/">Vercel</a></li></ul><h2>Contact</h2><ul><li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li><li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li><li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.kaush.co/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li></ul>
]]></content:encoded>
      <enclosure length="50048233" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/4005772a-63b7-4c1d-bb24-4510ae5a293f/audio/9bc64330-f32b-4170-af91-0bfcba1a6022/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>200: Serverless Programming</itunes:title>
      <itunes:author>Donn Felker, Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:51:44</itunes:duration>
      <itunes:summary>In our 200th episode, we talk about Serverless Programming.

What is it? What&apos;s an example of a service I could build with Serverless Programming? What are the advantages or disadvantages? We talk about it all in this episode.

Also, 🙏 for being listeners. We&apos;ve stuck together for 200 of these. Kaushik &amp; Donn are incredibly grateful to have you folks as listeners.</itunes:summary>
      <itunes:subtitle>In our 200th episode, we talk about Serverless Programming.

What is it? What&apos;s an example of a service I could build with Serverless Programming? What are the advantages or disadvantages? We talk about it all in this episode.

Also, 🙏 for being listeners. We&apos;ve stuck together for 200 of these. Kaushik &amp; Donn are incredibly grateful to have you folks as listeners.</itunes:subtitle>
      <itunes:keywords>azure, aws lambda, gifstagram, serverless</itunes:keywords>
      <itunes:explicit>true</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>200</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">f22059ed-24db-404e-8219-bbb544ed3380</guid>
      <title>199: iOSDev vs AndroidDev.lazy().not()</title>
      <description><![CDATA[<p>A tweet from a famous tech journalist about Android vs iOS spurs a storm. In this episode, Donn and Kaushik given their honest thoughts on iOS vs Android; and being developers for the platform.</p><h2>Shownotes</h2><ul><li><a href="https://blog.jkl.gg/iphones-pixels-lazy-android-developers/">KG's post - iPhones, Pixels and lazy Android developers</a></li><li><a href="https://twitter.com/benthompson/status/1301909021977227265">Ben Thompson's tweet</a></li><li><a href="https://www.donnfelker.com/the-rule-of-thirds/">Donn's post - The Three Buckets (The Rule of Thirds)</a></li><li><a href="https://apps.apple.com/us/app/garageband/id408709785">Garage Band - Apple iPhone app</a></li><li><a href="https://apps.apple.com/us/app/reeder-4/id1449412357">Reeder 4 - iOS RSS Reader app</a></li><li><a href="https://culturedcode.com/things/">CultureCode's Things - iOS Todo app</a></li></ul><h2>Contact</h2><ul><li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li><li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li><li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.kaush.co/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li></ul>
]]></description>
      <pubDate>Mon, 21 Sep 2020 06:37:53 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Donn Felker, Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>A tweet from a famous tech journalist about Android vs iOS spurs a storm. In this episode, Donn and Kaushik given their honest thoughts on iOS vs Android; and being developers for the platform.</p><h2>Shownotes</h2><ul><li><a href="https://blog.jkl.gg/iphones-pixels-lazy-android-developers/">KG's post - iPhones, Pixels and lazy Android developers</a></li><li><a href="https://twitter.com/benthompson/status/1301909021977227265">Ben Thompson's tweet</a></li><li><a href="https://www.donnfelker.com/the-rule-of-thirds/">Donn's post - The Three Buckets (The Rule of Thirds)</a></li><li><a href="https://apps.apple.com/us/app/garageband/id408709785">Garage Band - Apple iPhone app</a></li><li><a href="https://apps.apple.com/us/app/reeder-4/id1449412357">Reeder 4 - iOS RSS Reader app</a></li><li><a href="https://culturedcode.com/things/">CultureCode's Things - iOS Todo app</a></li></ul><h2>Contact</h2><ul><li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li><li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li><li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.kaush.co/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li></ul>
]]></content:encoded>
      <enclosure length="32663649" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f35050-e836-44cd-8f7f-fd13e8cb2e44/episodes/46c87779-d526-4a7f-89af-1f29e9d31c3f/audio/8d21f235-6bb7-4e67-b4e7-6fa39b69f9ae/default_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>199: iOSDev vs AndroidDev.lazy().not()</itunes:title>
      <itunes:author>Donn Felker, Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:33:39</itunes:duration>
      <itunes:summary>A tweet from a famous tech journalist about Android vs iOS spurs a storm. In this episode, Donn and Kaushik given their honest thoughts on iOS vs Android, and being developers for the platform.</itunes:summary>
      <itunes:subtitle>A tweet from a famous tech journalist about Android vs iOS spurs a storm. In this episode, Donn and Kaushik given their honest thoughts on iOS vs Android, and being developers for the platform.</itunes:subtitle>
      <itunes:keywords>android, ios, stratechery, ben thompson</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>199</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">e77439f9-93ad-4780-96cf-80846e22a17e</guid>
      <title>198: Fragmented.reset( Mode.Indie )</title>
      <description><![CDATA[<p>We're back and Fragmented is going Indie again. A quick episode on the future of Fragmented.</p><ul><li><a href="https://medium.com/@SwapnilBorkar/fragmented-podcast-breaking-down-the-rebrand-2675eb478f01">New Artwork! Story on how Swapnil helped with our new artwork</a></li></ul><h2>Contact</h2><ul><li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li><li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li><li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.kaush.co/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li></ul>
]]></description>
      <pubDate>Mon, 14 Sep 2020 09:00:19 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>We're back and Fragmented is going Indie again. A quick episode on the future of Fragmented.</p><ul><li><a href="https://medium.com/@SwapnilBorkar/fragmented-podcast-breaking-down-the-rebrand-2675eb478f01">New Artwork! Story on how Swapnil helped with our new artwork</a></li></ul><h2>Contact</h2><ul><li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li><li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li><li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&sort=dd&shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.kaush.co/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li></ul>
]]></content:encoded>
      <enclosure length="14503318" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/eb75aecf-c022-41e9-ae20-49b5673f7266/198_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>198: Fragmented.reset( Mode.Indie )</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:14:46</itunes:duration>
      <itunes:summary>We&apos;re back and Fragmented is going Indie again. A quick episode on the future of Fragmented.</itunes:summary>
      <itunes:subtitle>We&apos;re back and Fragmented is going Indie again. A quick episode on the future of Fragmented.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>198</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">d8324955-b4ef-44f6-9bc2-730fc213d29f</guid>
      <title>✊🏽✊🏾✊🏿</title>
      <description><![CDATA[<p>We interrupt our regular programming for this extremely important message.</p><p>We stand with our black sisters and brothers against the evil that is racism. The recent events of police brutality and oppression against black people have been truly horrifying.</p><p>Please take the time to listen to the audio snippet on the <a href="https://blacklivesmatter.com/">#BlackLivesMatter</a> movement from today's episode. It is a <a href="https://www.youtube.com/watch?v=Sd-VUOgS3rE">TedX talk by the far more eloquent Kennedy Cook</a> who's voice and words are more powerful than ours.</p><p>We've never been very vocal about political issues at Fragmented. But that doesn't mean we don't care about these issues. On the contrary! We do our best to have our actions speak louder than our words and let others with first hand experience speak out. Then importantly <strong>we aim to listen</strong>.</p><p>But these aren't regular times are they? The horrifying brutality we're seeing against people of color is nauseating. The Covid-19 outbreak has made action particularly difficult so for today we will start with these words.</p><h3>How to help:</h3><ul><li><a href="https://www.change.org/t/racial-justice-4">change.org [racial justice]</a></li></ul>
]]></description>
      <pubDate>Mon, 8 Jun 2020 05:50:37 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Kaushik Gopal)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>We interrupt our regular programming for this extremely important message.</p><p>We stand with our black sisters and brothers against the evil that is racism. The recent events of police brutality and oppression against black people have been truly horrifying.</p><p>Please take the time to listen to the audio snippet on the <a href="https://blacklivesmatter.com/">#BlackLivesMatter</a> movement from today's episode. It is a <a href="https://www.youtube.com/watch?v=Sd-VUOgS3rE">TedX talk by the far more eloquent Kennedy Cook</a> who's voice and words are more powerful than ours.</p><p>We've never been very vocal about political issues at Fragmented. But that doesn't mean we don't care about these issues. On the contrary! We do our best to have our actions speak louder than our words and let others with first hand experience speak out. Then importantly <strong>we aim to listen</strong>.</p><p>But these aren't regular times are they? The horrifying brutality we're seeing against people of color is nauseating. The Covid-19 outbreak has made action particularly difficult so for today we will start with these words.</p><h3>How to help:</h3><ul><li><a href="https://www.change.org/t/racial-justice-4">change.org [racial justice]</a></li></ul>
]]></content:encoded>
      <enclosure length="5225468" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/cb62e51b-b1a6-473e-b0aa-2a7385cb9f03/blacklivesmatter_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>✊🏽✊🏾✊🏿</itunes:title>
      <itunes:author>Kaushik Gopal</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/6b6055b3-d801-4e9a-bf4a-121b116ab0bb/3000x3000/logo_3000x3000_dark.jpg?aid=rss_feed"/>
      <itunes:duration>00:05:27</itunes:duration>
      <itunes:summary></itunes:summary>
      <itunes:subtitle></itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>198</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">376c1b23-eddc-40b2-92dd-e234eee6c735</guid>
      <title>197: .git internals with Gordon 🔧</title>
      <description><![CDATA[<p>OK, If you <strong>really</strong> want to know how git works, this is the episode for you.<br />
KG talks with his longtime colleague and mentor Gordon McCreight. Gordon is a<br />
wiz in general but his knowledge of git goes deep. So in this episode, KG goes<br />
solo and really dives in-depth about how git works.</p>
<p>Buckle up and listen on; you'll come out on the outer side with a much<br />
sounder understanding of <a href="https://git-scm.com/">git</a>.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain">Plumbing and Porcelain<br />
commands</a></li>
<li><a href="http://alblue.bandlem.com/2011/11/git-tip-of-week-gc-and-pruning-this.html">git gc vs<br />
prune</a></li>
</ul>
<blockquote>
<p>Objects which are no longer referenced can be evicted with git prune; though this is a low-level operation which is often called from git gc. By default it will not remove commits newer than 2 weeks old, and of course the commits that are reachable from that; so provided the branch (or tag) deleted has recent commits, it will stay around in the git repository for up two a fortnight afterwards.</p>
</blockquote>
<ul>
<li><a href="https://www.youtube.com/watch?v=lG90LZotrpo&amp;feature=youtu.be">Git internals by John Britton of GitHub - CS50 Tech<br />
Talk</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<h3><a href="https://educative.io/fragmented">Educative.io</a></h3>
<p>Learn and practice Android development from inside your browser. Visit <a href="https://educative.io/fragmented">Educative.io/Fragmented</a> to get 10% off.</p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/gmccreight">@gmccreight</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://blog.kaush.co/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li>
</ul>
]]></description>
      <pubDate>Mon, 4 May 2020 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>OK, If you <strong>really</strong> want to know how git works, this is the episode for you.<br />
KG talks with his longtime colleague and mentor Gordon McCreight. Gordon is a<br />
wiz in general but his knowledge of git goes deep. So in this episode, KG goes<br />
solo and really dives in-depth about how git works.</p>
<p>Buckle up and listen on; you'll come out on the outer side with a much<br />
sounder understanding of <a href="https://git-scm.com/">git</a>.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain">Plumbing and Porcelain<br />
commands</a></li>
<li><a href="http://alblue.bandlem.com/2011/11/git-tip-of-week-gc-and-pruning-this.html">git gc vs<br />
prune</a></li>
</ul>
<blockquote>
<p>Objects which are no longer referenced can be evicted with git prune; though this is a low-level operation which is often called from git gc. By default it will not remove commits newer than 2 weeks old, and of course the commits that are reachable from that; so provided the branch (or tag) deleted has recent commits, it will stay around in the git repository for up two a fortnight afterwards.</p>
</blockquote>
<ul>
<li><a href="https://www.youtube.com/watch?v=lG90LZotrpo&amp;feature=youtu.be">Git internals by John Britton of GitHub - CS50 Tech<br />
Talk</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<h3><a href="https://educative.io/fragmented">Educative.io</a></h3>
<p>Learn and practice Android development from inside your browser. Visit <a href="https://educative.io/fragmented">Educative.io/Fragmented</a> to get 10% off.</p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/gmccreight">@gmccreight</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://blog.kaush.co/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li>
</ul>
]]></content:encoded>
      <enclosure length="54783651" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/1cc1a828-c854-48c3-942f-9d7a0386414e/197_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>197: .git internals with Gordon 🔧</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/1cc1a828-c854-48c3-942f-9d7a0386414e/3000x3000/1588574239-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:56:51</itunes:duration>
      <itunes:summary>OK, If you **really** want to know how git works, this is the episode for you.
KG talks with his longtime colleague and mentor Gordon McCreight. Gordon is a
wiz in general but his knowledge of git goes deep. So in this episode, KG goes
solo and really dives in-depth about how git works.

Buckle up and listen on; you&apos;ll come out on the outer side with a much
sounder understanding of [git](https://git-scm.com/).</itunes:summary>
      <itunes:subtitle>OK, If you **really** want to know how git works, this is the episode for you.
KG talks with his longtime colleague and mentor Gordon McCreight. Gordon is a
wiz in general but his knowledge of git goes deep. So in this episode, KG goes
solo and really dives in-depth about how git works.

Buckle up and listen on; you&apos;ll come out on the outer side with a much
sounder understanding of [git](https://git-scm.com/).</itunes:subtitle>
      <itunes:keywords>internals, git</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>197</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">f7ad667b-58a0-460f-a215-8e374613263e</guid>
      <title>196: Composing with Leland 👨‍🎨</title>
      <description><![CDATA[<p>In this episode, we chat with friend of the show Leland Richardson. Leland is a<br />
main contributor to Jetpack Compose. But in this episode, we pepper him with<br />
questions on how he came to the position he's in viz. a reputed Software<br />
Engineer contributing to probably the most cutting edge library in development<br />
for Android.</p>
<p>This was a treat and inspiring episode! Listen on:</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://fragmentedpodcast.com/episodes/172/">Jetpack Compose with Leland Richardson</a></li>
<li><a href="https://www.youtube.com/watch?v=Q9MtlmmN4Q0">Understanding Compose (Android Dev Summit<br />
'19)</a></li>
<li><a href="https://adambennett.dev/2020/04/adventures-in-compose-the-doom-fire-effect/">Adventures in Compose - The Doom fire<br />
effect</a></li>
<li><a href="https://en.wikipedia.org/wiki/Gap_buffer">Gap Buffer - Wikipedia</a></li>
<li><a href="https://github.com/vinaygaba/Learn-Jetpack-Compose-By-Example">Learning Jetpack Conpose by example</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<h3><a href="https://www.educative.io/?siteCoupon=fragmented10&amp;utm_source=podcast&amp;utm_medium=sponsor&amp;utm_campaign=fragmented">Educative.io</a></h3>
<p>Learn and practice Android development from inside your browser. Visit <a href="https://www.educative.io/?siteCoupon=fragmented10&amp;utm_source=podcast&amp;utm_medium=sponsor&amp;utm_campaign=fragmented">Educative.io/Fragmented</a> to get 10% off.</p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/intelligibabble">@intelligibabble</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://blog.kaush.co/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li>
</ul>
]]></description>
      <pubDate>Mon, 27 Apr 2020 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, we chat with friend of the show Leland Richardson. Leland is a<br />
main contributor to Jetpack Compose. But in this episode, we pepper him with<br />
questions on how he came to the position he's in viz. a reputed Software<br />
Engineer contributing to probably the most cutting edge library in development<br />
for Android.</p>
<p>This was a treat and inspiring episode! Listen on:</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://fragmentedpodcast.com/episodes/172/">Jetpack Compose with Leland Richardson</a></li>
<li><a href="https://www.youtube.com/watch?v=Q9MtlmmN4Q0">Understanding Compose (Android Dev Summit<br />
'19)</a></li>
<li><a href="https://adambennett.dev/2020/04/adventures-in-compose-the-doom-fire-effect/">Adventures in Compose - The Doom fire<br />
effect</a></li>
<li><a href="https://en.wikipedia.org/wiki/Gap_buffer">Gap Buffer - Wikipedia</a></li>
<li><a href="https://github.com/vinaygaba/Learn-Jetpack-Compose-By-Example">Learning Jetpack Conpose by example</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<h3><a href="https://www.educative.io/?siteCoupon=fragmented10&amp;utm_source=podcast&amp;utm_medium=sponsor&amp;utm_campaign=fragmented">Educative.io</a></h3>
<p>Learn and practice Android development from inside your browser. Visit <a href="https://www.educative.io/?siteCoupon=fragmented10&amp;utm_source=podcast&amp;utm_medium=sponsor&amp;utm_campaign=fragmented">Educative.io/Fragmented</a> to get 10% off.</p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/intelligibabble">@intelligibabble</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://blog.kaush.co/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li>
</ul>
]]></content:encoded>
      <enclosure length="43490390" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/ba0fd5dc-5c96-4e4e-87a3-fcf8a795cdc6/196_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>196: Composing with Leland 👨‍🎨</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/ba0fd5dc-5c96-4e4e-87a3-fcf8a795cdc6/3000x3000/1588052612-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:45:05</itunes:duration>
      <itunes:summary>In this episode, we chat with friend of the show Leland Richardson. Leland is a
main contributor to Jetpack Compose. But in this episode, we pepper him with
questions on how he came to the position he&apos;s in viz. a reputed Software
Engineer contributing to probably the most cutting edge library in development
for Android.

This was a treat and inspiring episode! Listen on:</itunes:summary>
      <itunes:subtitle>In this episode, we chat with friend of the show Leland Richardson. Leland is a
main contributor to Jetpack Compose. But in this episode, we pepper him with
questions on how he came to the position he&apos;s in viz. a reputed Software
Engineer contributing to probably the most cutting edge library in development
for Android.

This was a treat and inspiring episode! Listen on:</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>196</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">fa5894bf-7834-4310-b36b-6c5233978d2f</guid>
      <title>195: Going on-call 🚨</title>
      <description><![CDATA[<p>Have you ever gone on on-call rotations for your company? What is on-call? How<br />
to operate a successful on-call strategy? What does on-call for mobile mean? What are some tools and<br />
resources to help with on-call rotations?</p>
<p>In this episode Donn and Kaushik dive into these topics.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://firebase.google.com/docs/crashlytics">Firebase Crashlytics</a></li>
<li><a href="https://www.pagerduty.com/docs/guides/rollbar-integration-guide/">Rollbar Integration</a></li>
<li><a href="https://www.atlassian.com/software/opsgenie">Ops Genie</a></li>
<li><a href="www.pagerduty.com/">Pager Duty</a></li>
<li><a href="https://www.statuspage.io/">Statuspage.io</a></li>
<li><a href="https://status.io/">Status.io</a></li>
<li><a href="http://www.stairways.com/action/kmdiscount?REF6JZA">Keyboard Maestro</a></li>
</ul>
<h3>Good resources</h3>
<ul>
<li><a href="https://increment.com/on-call/when-the-pager-goes-off/">What happens when the pager goes off?</a></li>
<li><a href="https://www.pagerduty.com/eng/engineering-needs-incident-commanders/">Why Your Engineering Teams need Incident Commanders</a></li>
</ul>
<h3>Steps to handle on-call</h3>
<ol>
<li>Triage</li>
<li>Coordinate</li>
<li>Mitigate</li>
<li>Resolve</li>
<li>Follow up (Root Cause Analysis or Post Mortem)</li>
</ol>
<h2>Sponsors 🙏</h2>
<h3><a href="https://www.educative.io/?siteCoupon=fragmented10&amp;utm_source=podcast&amp;utm_medium=sponsor&amp;utm_campaign=fragmented">Educative.io</a></h3>
<p>Learn and practice Android development from inside your browser. Visit <a href="https://www.educative.io/?siteCoupon=fragmented10&amp;utm_source=podcast&amp;utm_medium=sponsor&amp;utm_campaign=fragmented">Educative.io/fragmented</a> to get 10% off.</p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&amp;sort=dd&amp;shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.kaush.co/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li>
</ul>
]]></description>
      <pubDate>Mon, 20 Apr 2020 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Have you ever gone on on-call rotations for your company? What is on-call? How<br />
to operate a successful on-call strategy? What does on-call for mobile mean? What are some tools and<br />
resources to help with on-call rotations?</p>
<p>In this episode Donn and Kaushik dive into these topics.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://firebase.google.com/docs/crashlytics">Firebase Crashlytics</a></li>
<li><a href="https://www.pagerduty.com/docs/guides/rollbar-integration-guide/">Rollbar Integration</a></li>
<li><a href="https://www.atlassian.com/software/opsgenie">Ops Genie</a></li>
<li><a href="www.pagerduty.com/">Pager Duty</a></li>
<li><a href="https://www.statuspage.io/">Statuspage.io</a></li>
<li><a href="https://status.io/">Status.io</a></li>
<li><a href="http://www.stairways.com/action/kmdiscount?REF6JZA">Keyboard Maestro</a></li>
</ul>
<h3>Good resources</h3>
<ul>
<li><a href="https://increment.com/on-call/when-the-pager-goes-off/">What happens when the pager goes off?</a></li>
<li><a href="https://www.pagerduty.com/eng/engineering-needs-incident-commanders/">Why Your Engineering Teams need Incident Commanders</a></li>
</ul>
<h3>Steps to handle on-call</h3>
<ol>
<li>Triage</li>
<li>Coordinate</li>
<li>Mitigate</li>
<li>Resolve</li>
<li>Follow up (Root Cause Analysis or Post Mortem)</li>
</ol>
<h2>Sponsors 🙏</h2>
<h3><a href="https://www.educative.io/?siteCoupon=fragmented10&amp;utm_source=podcast&amp;utm_medium=sponsor&amp;utm_campaign=fragmented">Educative.io</a></h3>
<p>Learn and practice Android development from inside your browser. Visit <a href="https://www.educative.io/?siteCoupon=fragmented10&amp;utm_source=podcast&amp;utm_medium=sponsor&amp;utm_campaign=fragmented">Educative.io/fragmented</a> to get 10% off.</p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&amp;sort=dd&amp;shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.kaush.co/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li>
</ul>
]]></content:encoded>
      <enclosure length="51693247" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/8a77bc11-9c3c-40da-914b-b81615033f1c/195_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>195: Going on-call 🚨</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/8a77bc11-9c3c-40da-914b-b81615033f1c/3000x3000/1587355996-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:53:38</itunes:duration>
      <itunes:summary>Have you ever gone on on-call rotations for your company? What is on-call? How
to operate a successful on-call strategy? What does on-call for mobile mean? What are some tools and 
resources to help with on-call rotations? 

In this episode Donn and Kaushik dive into these topics.</itunes:summary>
      <itunes:subtitle>Have you ever gone on on-call rotations for your company? What is on-call? How
to operate a successful on-call strategy? What does on-call for mobile mean? What are some tools and 
resources to help with on-call rotations? 

In this episode Donn and Kaushik dive into these topics.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>195</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">80a81e10-e070-4a6f-b339-e4cb3a5849f8</guid>
      <title>194: Polyglot programmers 🐙</title>
      <description><![CDATA[<p>What are Polyglot programmers, should you be one? Listen to this episode and find out!</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=LaHIQ2Bwvjo">KG's youtube screencast</a></li>
<li><a href="https://en.wikipedia.org/wiki/AWK">awk</a> programming language</li>
<li><a href="https://www.joelonsoftware.com/2007/06/05/smart-and-gets-things-done/">Smart and Gettings Things Done : Joel<br />
Sposky</a></li>
<li><a href="https://fragmentedpodcast.com/episodes/119/">Ep #119: Flutter with GDE Eugenio<br />
Marletti</a></li>
<li><a href="https://poignant.guide/">Learning Ruby: Why's poignant GUIDE to Ruby</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<h3><a href="https://www.educative.io/?siteCoupon=fragmented10&amp;utm_source=podcast&amp;utm_medium=sponsor&amp;utm_campaign=fragmented">Educative.io</a></h3>
<p>Learn and practice Android development from inside your browser. Visit <a href="https://www.educative.io/?siteCoupon=fragmented10&amp;utm_source=podcast&amp;utm_medium=sponsor&amp;utm_campaign=fragmented">Educative.io/Fragmented</a> to get 10% off.</p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://b.jkl.gg/">b.jkl.gg</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li>
</ul>
]]></description>
      <pubDate>Mon, 13 Apr 2020 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>What are Polyglot programmers, should you be one? Listen to this episode and find out!</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=LaHIQ2Bwvjo">KG's youtube screencast</a></li>
<li><a href="https://en.wikipedia.org/wiki/AWK">awk</a> programming language</li>
<li><a href="https://www.joelonsoftware.com/2007/06/05/smart-and-gets-things-done/">Smart and Gettings Things Done : Joel<br />
Sposky</a></li>
<li><a href="https://fragmentedpodcast.com/episodes/119/">Ep #119: Flutter with GDE Eugenio<br />
Marletti</a></li>
<li><a href="https://poignant.guide/">Learning Ruby: Why's poignant GUIDE to Ruby</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<h3><a href="https://www.educative.io/?siteCoupon=fragmented10&amp;utm_source=podcast&amp;utm_medium=sponsor&amp;utm_campaign=fragmented">Educative.io</a></h3>
<p>Learn and practice Android development from inside your browser. Visit <a href="https://www.educative.io/?siteCoupon=fragmented10&amp;utm_source=podcast&amp;utm_medium=sponsor&amp;utm_campaign=fragmented">Educative.io/Fragmented</a> to get 10% off.</p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="http://y.jkl.gg">kaushikgopal</a> (on YouTube) or <a href="https://b.jkl.gg/">b.jkl.gg</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li>
</ul>
]]></content:encoded>
      <enclosure length="32478829" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/02aa2f28-0b33-462b-9d5f-6ebf925659b5/194_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>194: Polyglot programmers 🐙</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/02aa2f28-0b33-462b-9d5f-6ebf925659b5/3000x3000/1586745655-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:33:37</itunes:duration>
      <itunes:summary>What are Polyglot programmers, should you be one? Listen to this episode and find out!</itunes:summary>
      <itunes:subtitle>What are Polyglot programmers, should you be one? Listen to this episode and find out!</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>194</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">0e1c29f1-09ea-47d3-94a1-03befca4d2f1</guid>
      <title>193: Working from Home - Pandemic on hard mode 🏡</title>
      <description><![CDATA[<p>Well, the world took a crazy turn and everyone's working from home now. How do<br />
you work from home? An experienced developer who's done this before talks to a<br />
newbie and discuss their thoughts.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="http://www.paulgraham.com/makersschedule.html">Maker's schedule vs Manager's<br />
schedule</a></li>
<li><code>git commit --allow-empty -m &quot;todo: listen to fragmented&quot; -m &quot;send KG &amp; DF tweet&quot;</code></li>
<li>git <a href="https://docs.gitlab.com/ee/user/project/merge_requests/squash_and_merge.html">squash &amp;<br />
merge</a></li>
<li><a href="https://www.instacart.com/">Instacart.com</a></li>
<li><a href="https://www.autonomous.ai/">Autonomous AI Smart desk</a></li>
<li><a href="https://www.donnfelker.com/android-from-the-trenches/">Android from the<br />
trenches</a></li>
<li><a href="https://www.fully.com/jarvis-adjustable-height-desk-bamboo.html">Jarvis Bamboo Standing<br />
desk</a></li>
<li><a href="https://www.standingdesknation.com/products/ergodriven-topo-mat?variant=15388030763042">Ergo driven TOPO<br />
footmat</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<h3><a href="https://www.educative.io/?siteCoupon=fragmented10&amp;utm_source=podcast&amp;utm_medium=sponsor&amp;utm_campaign=fragmented">Educative.io</a></h3>
<p>Learn and practice Android development from inside your browser. Visit <a href="https://www.educative.io/?siteCoupon=fragmented10&amp;utm_source=podcast&amp;utm_medium=sponsor&amp;utm_campaign=fragmented">Educative.io/Fragmented</a> to get 10% off.</p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&amp;sort=dd&amp;shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.kaush.co/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li>
</ul>
]]></description>
      <pubDate>Mon, 6 Apr 2020 05:55:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Well, the world took a crazy turn and everyone's working from home now. How do<br />
you work from home? An experienced developer who's done this before talks to a<br />
newbie and discuss their thoughts.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="http://www.paulgraham.com/makersschedule.html">Maker's schedule vs Manager's<br />
schedule</a></li>
<li><code>git commit --allow-empty -m &quot;todo: listen to fragmented&quot; -m &quot;send KG &amp; DF tweet&quot;</code></li>
<li>git <a href="https://docs.gitlab.com/ee/user/project/merge_requests/squash_and_merge.html">squash &amp;<br />
merge</a></li>
<li><a href="https://www.instacart.com/">Instacart.com</a></li>
<li><a href="https://www.autonomous.ai/">Autonomous AI Smart desk</a></li>
<li><a href="https://www.donnfelker.com/android-from-the-trenches/">Android from the<br />
trenches</a></li>
<li><a href="https://www.fully.com/jarvis-adjustable-height-desk-bamboo.html">Jarvis Bamboo Standing<br />
desk</a></li>
<li><a href="https://www.standingdesknation.com/products/ergodriven-topo-mat?variant=15388030763042">Ergo driven TOPO<br />
footmat</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<h3><a href="https://www.educative.io/?siteCoupon=fragmented10&amp;utm_source=podcast&amp;utm_medium=sponsor&amp;utm_campaign=fragmented">Educative.io</a></h3>
<p>Learn and practice Android development from inside your browser. Visit <a href="https://www.educative.io/?siteCoupon=fragmented10&amp;utm_source=podcast&amp;utm_medium=sponsor&amp;utm_campaign=fragmented">Educative.io/Fragmented</a> to get 10% off.</p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&amp;sort=dd&amp;shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.kaush.co/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li>
</ul>
]]></content:encoded>
      <enclosure length="53797297" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/e0851c1e-7cce-4722-bcb4-226c291b5594/193_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>193: Working from Home - Pandemic on hard mode 🏡</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/e0851c1e-7cce-4722-bcb4-226c291b5594/3000x3000/1586191967-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:55:49</itunes:duration>
      <itunes:summary>Well, the world took a crazy turn and everyone&apos;s working from home now. How do
you work from home? An experienced developer who&apos;s done this before talks to a
newbie and discuss their thoughts.
</itunes:summary>
      <itunes:subtitle>Well, the world took a crazy turn and everyone&apos;s working from home now. How do
you work from home? An experienced developer who&apos;s done this before talks to a
newbie and discuss their thoughts.
</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>193</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">f618ba13-b9c9-45c3-9d53-8174e3889493</guid>
      <title>192: What is your backup strategy? 📼</title>
      <description><![CDATA[<hr />
<h2>Wordpress</h2>
<p>title     : 192: What is your backup strategy? 📼<br />
permalink : 192</p>
<p>In this episode, we talk about what a good backup strategy looks like and the<br />
different kinds of data you should be backing up.</p>
<p>Stay safe and think about your backup strategies.</p>
<h2>Shownotes</h2>
<h3>3-2-1 Backup Rule</h3>
<ul>
<li><a href="https://www.backblaze.com/blog/the-3-2-1-backup-strategy/">The 3-2-1 Backup Strategy</a></li>
<li><a href="https://www.nakivo.com/blog/3-2-1-backup-rule-efficient-data-protection-strategy/">The 3-2-1 Backup Rule – An Efficient Data Protection Strategy</a></li>
<li><a href="https://www.unitrends.com/blog/3-2-1-backup-sucks">Why 3-2-1 Backup Sucks</a></li>
</ul>
<h3>Backup Software</h3>
<ul>
<li>
<p>KG's primary Mac:</p>
<ul>
<li><a href="https://www.shirt-pocket.com/SuperDuper/SuperDuperDescription.html">SuperDuper! by Shirt Pocket</a> for bootable backups</li>
<li><a href="https://www.arqbackup.com/">Arq Backup</a> for versioned backups -&gt; <a href="https://www.backblaze.com/b2/cloud-storage.html">Backblaze B2 Cloud Storage</a></li>
</ul>
</li>
<li>
<p>rsync script that KG uses:</p>
</li>
</ul>
<p>This mirrors both drives defensively (-n is dry run)</p>
<pre><code class="language-sh">    rsync --partial --progress --archive --update \
      --verbose\
      --human-readable\
      --exclude='$RECYCLE.BIN' --exclude='$Recycle.Bin' --exclude='.AppleDB' \
      --exclude='.AppleDesktop' --exclude='.AppleDouble' --exclude='.com.apple.timemachine.supported'\
      --exclude='.dbfseventsd' --exclude='.DocumentRevisions-V100*' --exclude='.DS_Store'\
      --exclude='.fseventsd' --exclude='.PKInstallSandboxManager' --exclude='.Spotlight*'\
      --exclude='.SymAV*' --exclude='.symSchedScanLockxz' --exclude='.TemporaryItems'\
      --exclude='.Trash*' --exclude='.vol' --exclude='.VolumeIcon.icns' --exclude='Desktop DB'\
      --exclude='Desktop DF' --exclude='hiberfil.sys' --exclude='lost+found'\
      --exclude='Network Trash Folder' --exclude='pagefile.sys' --exclude='Recycled'\
      --exclude='RECYCLER' --exclude='System Volume Information' --exclude='Temporary Items' --exclude='Thumbs.db'\
      -n\
      /Volumes/xhd_strg/ /Volumes/xhd_strg_bkp
</code></pre>
<h3>Misc</h3>
<ul>
<li><a href="https://thewirecutter.com/reviews/best-portable-hard-drive/">Wirecutter recommends SeaGate drives</a> instead of the Western Digital Kaushik uses 🤷‍♀️</li>
</ul>
<h2>Sponsors 🙏</h2>
<h3><a href="https://www.youtube.com/squaredev">Square</a></h3>
<p>Check out the new Square <a href="https://www.youtube.com/squaredev">YouTube channel for developers</a>. Square has SDKs and APIs to make payments and run a business.</p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&amp;sort=dd&amp;shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.kaush.co/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li>
</ul>
]]></description>
      <pubDate>Tue, 17 Mar 2020 04:36:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<hr />
<h2>Wordpress</h2>
<p>title     : 192: What is your backup strategy? 📼<br />
permalink : 192</p>
<p>In this episode, we talk about what a good backup strategy looks like and the<br />
different kinds of data you should be backing up.</p>
<p>Stay safe and think about your backup strategies.</p>
<h2>Shownotes</h2>
<h3>3-2-1 Backup Rule</h3>
<ul>
<li><a href="https://www.backblaze.com/blog/the-3-2-1-backup-strategy/">The 3-2-1 Backup Strategy</a></li>
<li><a href="https://www.nakivo.com/blog/3-2-1-backup-rule-efficient-data-protection-strategy/">The 3-2-1 Backup Rule – An Efficient Data Protection Strategy</a></li>
<li><a href="https://www.unitrends.com/blog/3-2-1-backup-sucks">Why 3-2-1 Backup Sucks</a></li>
</ul>
<h3>Backup Software</h3>
<ul>
<li>
<p>KG's primary Mac:</p>
<ul>
<li><a href="https://www.shirt-pocket.com/SuperDuper/SuperDuperDescription.html">SuperDuper! by Shirt Pocket</a> for bootable backups</li>
<li><a href="https://www.arqbackup.com/">Arq Backup</a> for versioned backups -&gt; <a href="https://www.backblaze.com/b2/cloud-storage.html">Backblaze B2 Cloud Storage</a></li>
</ul>
</li>
<li>
<p>rsync script that KG uses:</p>
</li>
</ul>
<p>This mirrors both drives defensively (-n is dry run)</p>
<pre><code class="language-sh">    rsync --partial --progress --archive --update \
      --verbose\
      --human-readable\
      --exclude='$RECYCLE.BIN' --exclude='$Recycle.Bin' --exclude='.AppleDB' \
      --exclude='.AppleDesktop' --exclude='.AppleDouble' --exclude='.com.apple.timemachine.supported'\
      --exclude='.dbfseventsd' --exclude='.DocumentRevisions-V100*' --exclude='.DS_Store'\
      --exclude='.fseventsd' --exclude='.PKInstallSandboxManager' --exclude='.Spotlight*'\
      --exclude='.SymAV*' --exclude='.symSchedScanLockxz' --exclude='.TemporaryItems'\
      --exclude='.Trash*' --exclude='.vol' --exclude='.VolumeIcon.icns' --exclude='Desktop DB'\
      --exclude='Desktop DF' --exclude='hiberfil.sys' --exclude='lost+found'\
      --exclude='Network Trash Folder' --exclude='pagefile.sys' --exclude='Recycled'\
      --exclude='RECYCLER' --exclude='System Volume Information' --exclude='Temporary Items' --exclude='Thumbs.db'\
      -n\
      /Volumes/xhd_strg/ /Volumes/xhd_strg_bkp
</code></pre>
<h3>Misc</h3>
<ul>
<li><a href="https://thewirecutter.com/reviews/best-portable-hard-drive/">Wirecutter recommends SeaGate drives</a> instead of the Western Digital Kaushik uses 🤷‍♀️</li>
</ul>
<h2>Sponsors 🙏</h2>
<h3><a href="https://www.youtube.com/squaredev">Square</a></h3>
<p>Check out the new Square <a href="https://www.youtube.com/squaredev">YouTube channel for developers</a>. Square has SDKs and APIs to make payments and run a business.</p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://www.youtube.com/user/kequinoxed/videos?view=0&amp;sort=dd&amp;shelf_id=0">kaushikgopal</a> (on YouTube) or <a href="https://blog.kaush.co/">blog.kaush.co</a> or <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a></li>
</ul>
]]></content:encoded>
      <enclosure length="28432600" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/4b903c35-6b47-4691-aa06-3d8489e14828/192_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>192: What is your backup strategy? 📼</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/4b903c35-6b47-4691-aa06-3d8489e14828/3000x3000/1584420564-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:29:24</itunes:duration>
      <itunes:summary>In this episode, we talk about what a good backup strategy looks like and the different kinds of data you should be backing up.

Stay safe and think about your backup strategies.</itunes:summary>
      <itunes:subtitle>In this episode, we talk about what a good backup strategy looks like and the different kinds of data you should be backing up.

Stay safe and think about your backup strategies.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>192</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">25bb9e12-ad49-4b73-969a-d41ba331425c</guid>
      <title>191: Logging 🌲</title>
      <description><![CDATA[<p>Today we talk about logging. When to log, how to log, what to log - our thoughts on the subject.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://gdpr-info.eu/">GDPR</a></li>
<li><a href="https://developer.android.com/studio/debug/am-logcat#WriteLogs">Android Logging priorities</a></li>
<li><a href="https://logdna.com">LogDna</a></li>
<li>[Loggly](https://www.loggly.com/lp-loggly-general/</li>
<li><a href="https://www.datadoghq.com/">Datadog</a></li>
<li><a href="https://www.papertrail.com/">Papertrail</a></li>
<li>Android logging: <a href="https://github.com/JakeWharton/timber">Timber by Jake</a></li>
<li>JS Logging: <a href="https://github.com/winstonjs/winston">Winston</a></li>
<li><a href="https://github.com/google/libphonenumber">Google - libphonenumber</a></li>
<li><a href="https://www.youtube.com/watch?v=2c2o10Pr90Y">Fragmented Podcast Episode #145: Tracking Network Requests With x-Request-ID</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<h3><a href="https://www.youtube.com/squaredev">Square</a></h3>
<p>Check out the new Square <a href="https://www.youtube.com/squaredev">YouTube channel for developers</a>. Square has SDKs and APIs to make payments and run a business.</p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://blog.kaush.co">blog.kaush.co</a></li>
</ul>
]]></description>
      <pubDate>Mon, 9 Mar 2020 14:56:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Today we talk about logging. When to log, how to log, what to log - our thoughts on the subject.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://gdpr-info.eu/">GDPR</a></li>
<li><a href="https://developer.android.com/studio/debug/am-logcat#WriteLogs">Android Logging priorities</a></li>
<li><a href="https://logdna.com">LogDna</a></li>
<li>[Loggly](https://www.loggly.com/lp-loggly-general/</li>
<li><a href="https://www.datadoghq.com/">Datadog</a></li>
<li><a href="https://www.papertrail.com/">Papertrail</a></li>
<li>Android logging: <a href="https://github.com/JakeWharton/timber">Timber by Jake</a></li>
<li>JS Logging: <a href="https://github.com/winstonjs/winston">Winston</a></li>
<li><a href="https://github.com/google/libphonenumber">Google - libphonenumber</a></li>
<li><a href="https://www.youtube.com/watch?v=2c2o10Pr90Y">Fragmented Podcast Episode #145: Tracking Network Requests With x-Request-ID</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<h3><a href="https://www.youtube.com/squaredev">Square</a></h3>
<p>Check out the new Square <a href="https://www.youtube.com/squaredev">YouTube channel for developers</a>. Square has SDKs and APIs to make payments and run a business.</p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://blog.kaush.co">blog.kaush.co</a></li>
</ul>
]]></content:encoded>
      <enclosure length="24205426" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/4a007945-c684-4805-b75c-cc393dff4698/191_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>191: Logging 🌲</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/4a007945-c684-4805-b75c-cc393dff4698/3000x3000/1583767952-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:49:53</itunes:duration>
      <itunes:summary>Today we talk about logging. When to log, how to log, what to log - our thoughts on the subject.

https://fragmentedpodcast.com/episodes/190/</itunes:summary>
      <itunes:subtitle>Today we talk about logging. When to log, how to log, what to log - our thoughts on the subject.

https://fragmentedpodcast.com/episodes/190/</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>191</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">3148e34e-b341-413a-a04b-7abcfc581d35</guid>
      <title>190: The Privacy of ***********</title>
      <description><![CDATA[<p>In this episode, Donn and KG talk about the post Tim Bray recently wrote - <a href="https://www.tbray.org/ongoing/When/202x/2020/02/09/Why-Android">Why Google did Android</a>. They then touch on Chrome becoming a monopoly and tips on what folks can do to be a little more privacy conscious on the web.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://www.tbray.org/ongoing/When/202x/2020/02/09/Why-Android">Why Google did Android</a></li>
<li>KG privacy notes <a href="https://blog.kaush.co/2019/01/21/new-year-2019/#care-about-your-privacy">2019</a> -&gt; <a href="https://blog.kaush.co/2020/02/04/2020/#care-about-your-privacy">2020</a></li>
<li><a href="https://duckduckgo.com/bang">DuckDuck Bang syntax</a></li>
</ul>
<h3>Google Chromium and Ad-blocking</h3>
<ul>
<li><a href="https://9to5google.com/2019/05/29/chrome-ad-blocking-enterprise-manifest-v3/">Google to restrict modern ad blocking Chrome extensions to enterprise users</a></li>
<li><a href="https://www.wired.com/story/google-chrome-ad-blockers-extensions-api/">Google saying it isn't killing Ad Blockers. Ad Blockers Disagree</a></li>
</ul>
<h2>Misc</h2>
<ul>
<li><a href="https://support.microsoft.com/en-us/help/4501095/download-the-new-microsoft-edge-based-on-chromium">New Microsoft Edge is based on Chromium</a></li>
<li>Download <a href="https://www.mozilla.org/en-US/firefox/new/">Firefox</a></li>
<li>Firefox <a href="https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers/">Multi-Account Containers</a> add-on + <a href="https://addons.mozilla.org/en-US/firefox/addon/temporary-containers/">Temporary Containers</a> for the privacy conscious.</li>
</ul>
<h3>Follow up from a previous episode:</h3>
<ul>
<li><a href="https://svelte.dev/">Svelte : framework that spawned from New York Times</a>. Thanks <a href="https://twitter.com/midhunhk/status/1227055151967502336">Midhun</a>.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> or <a href="https://blog.kaush.co">blog.kaush.co</a></li>
</ul>
]]></description>
      <pubDate>Mon, 24 Feb 2020 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn and KG talk about the post Tim Bray recently wrote - <a href="https://www.tbray.org/ongoing/When/202x/2020/02/09/Why-Android">Why Google did Android</a>. They then touch on Chrome becoming a monopoly and tips on what folks can do to be a little more privacy conscious on the web.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://www.tbray.org/ongoing/When/202x/2020/02/09/Why-Android">Why Google did Android</a></li>
<li>KG privacy notes <a href="https://blog.kaush.co/2019/01/21/new-year-2019/#care-about-your-privacy">2019</a> -&gt; <a href="https://blog.kaush.co/2020/02/04/2020/#care-about-your-privacy">2020</a></li>
<li><a href="https://duckduckgo.com/bang">DuckDuck Bang syntax</a></li>
</ul>
<h3>Google Chromium and Ad-blocking</h3>
<ul>
<li><a href="https://9to5google.com/2019/05/29/chrome-ad-blocking-enterprise-manifest-v3/">Google to restrict modern ad blocking Chrome extensions to enterprise users</a></li>
<li><a href="https://www.wired.com/story/google-chrome-ad-blockers-extensions-api/">Google saying it isn't killing Ad Blockers. Ad Blockers Disagree</a></li>
</ul>
<h2>Misc</h2>
<ul>
<li><a href="https://support.microsoft.com/en-us/help/4501095/download-the-new-microsoft-edge-based-on-chromium">New Microsoft Edge is based on Chromium</a></li>
<li>Download <a href="https://www.mozilla.org/en-US/firefox/new/">Firefox</a></li>
<li>Firefox <a href="https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers/">Multi-Account Containers</a> add-on + <a href="https://addons.mozilla.org/en-US/firefox/addon/temporary-containers/">Temporary Containers</a> for the privacy conscious.</li>
</ul>
<h3>Follow up from a previous episode:</h3>
<ul>
<li><a href="https://svelte.dev/">Svelte : framework that spawned from New York Times</a>. Thanks <a href="https://twitter.com/midhunhk/status/1227055151967502336">Midhun</a>.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> or <a href="https://blog.kaush.co">blog.kaush.co</a></li>
</ul>
]]></content:encoded>
      <enclosure length="31922976" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/1dbfbaee-6382-4402-aead-85abad32e18e/190-privacy_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>190: The Privacy of ***********</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/1dbfbaee-6382-4402-aead-85abad32e18e/3000x3000/1581804815-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:33:12</itunes:duration>
      <itunes:summary>In this episode, Donn and KG talk about the post Tim Bray recently wrote - [Why Google did Android](https://www.tbray.org/ongoing/When/202x/2020/02/09/Why-Android). They then touch on Chrome becoming a monopoly and tips on what folks can do to be a little more privacy conscious on the web.</itunes:summary>
      <itunes:subtitle>In this episode, Donn and KG talk about the post Tim Bray recently wrote - [Why Google did Android](https://www.tbray.org/ongoing/When/202x/2020/02/09/Why-Android). They then touch on Chrome becoming a monopoly and tips on what folks can do to be a little more privacy conscious on the web.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>190</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">75979542-1492-43fd-ba44-3426a5ab85b4</guid>
      <title>189: The 2038 Problem</title>
      <description><![CDATA[<p>We've all heard of the <a href="https://en.wikipedia.org/wiki/Year_2000_problem">Y2K problem</a>, but there's also a similar coming up this 2038 for us programmers. In this episode we dive into the 2038 problem (... after of course talking about our opinions on new year resolutions).</p>
<p>Get 1% better every day folks... Listen here:</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://blog.kaush.co/2020/02/04/2020/">KG's 2020 New Year Resolution blog post</a></li>
<li>The <a href="https://en.wikipedia.org/wiki/Year_2000_problem">Year 2000 problem</a></li>
<li>The <a href="https://en.wikipedia.org/wiki/Year_2038_problem">Year 2038 problem</a></li>
<li><a href="https://www.youtube.com/watch?v=yd1i3vkkh-0">The Leap Year as Explained by Neil deGrasse Tyson</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> or <a href="https://blog.kaush.co">blog.kaush.co</a></li>
</ul>
]]></description>
      <pubDate>Mon, 17 Feb 2020 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>We've all heard of the <a href="https://en.wikipedia.org/wiki/Year_2000_problem">Y2K problem</a>, but there's also a similar coming up this 2038 for us programmers. In this episode we dive into the 2038 problem (... after of course talking about our opinions on new year resolutions).</p>
<p>Get 1% better every day folks... Listen here:</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://blog.kaush.co/2020/02/04/2020/">KG's 2020 New Year Resolution blog post</a></li>
<li>The <a href="https://en.wikipedia.org/wiki/Year_2000_problem">Year 2000 problem</a></li>
<li>The <a href="https://en.wikipedia.org/wiki/Year_2038_problem">Year 2038 problem</a></li>
<li><a href="https://www.youtube.com/watch?v=yd1i3vkkh-0">The Leap Year as Explained by Neil deGrasse Tyson</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> or <a href="https://blog.kaush.co">blog.kaush.co</a></li>
</ul>
]]></content:encoded>
      <enclosure length="29964011" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/b04326c5-b8f2-4c13-87cf-a9637671bae6/189-problem-2038_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>189: The 2038 Problem</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/b04326c5-b8f2-4c13-87cf-a9637671bae6/3000x3000/1581804758-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:31:10</itunes:duration>
      <itunes:summary>We&apos;ve all heard of the [Y2K problem][1], but there&apos;s also a similar coming up this 2038 for us programmers. In this episode we dive into the 2038 problem (... after of course talking about our opinions on new year resolutions).

Get 1% better every day folks... Listen here:

 http://fragmentedpodcast.com/episodes/189</itunes:summary>
      <itunes:subtitle>We&apos;ve all heard of the [Y2K problem][1], but there&apos;s also a similar coming up this 2038 for us programmers. In this episode we dive into the 2038 problem (... after of course talking about our opinions on new year resolutions).

Get 1% better every day folks... Listen here:

 http://fragmentedpodcast.com/episodes/189</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>189</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">f3113fc6-f76d-4c34-b55f-3cc5f8c27ccf</guid>
      <title>188: Containerized applications with Docker</title>
      <description><![CDATA[<h2>Shownotes</h2>
<p>In this episode KG and Donn talk about KG's recent jaunt with Docker. In the attempt to setup continuous deployment for his blog, KG explains his simple requirement and how it lands up requiring some basic Docker.  Donn then closes it out with some interesting in-depth knowledge on how to use Docker</p>
<h3>Personal website hosting</h3>
<ul>
<li><a href="https://www.donnfelker.com">Donn Felker</a></li>
<li><a href="https://2kg.dev">Kaushik's website</a></li>
<li><a href="https://github.com/gjtorikian/html-proofer">html-proofer</a></li>
<li><a href="https://wordpress.com">Wordpress</a></li>
<li><a href="https://jekyllrb.com">jekyll static website blogging</a></li>
</ul>
<h3>Domain checking services</h3>
<ul>
<li><a href="https://domainr.com">Domainr</a></li>
<li><a href="https://leandomainsearch.com/search/?q=cow">Lead Domain Search</a></li>
</ul>
<h3>Docker</h3>
<ul>
<li><a href="https://hub.docker.com">Docker Hub</a></li>
<li><a href="https://github.com/circleci-public/dockerfile-wizard">Circle CI : dockerfile wizard</a></li>
<li><a href="https://hub.docker.com/r/kaushikgopal/ruby-node/tags">KG's ruby-node docker container</a></li>
<li><a href="https://docs.docker.com/compose/">Docker Compose</a></li>
<li><a href="https://www.rabbitmq.com">RabbitMq</a></li>
<li><a href="https://kubernetes.io">Kubernetes : K8s</a></li>
<li><a href="https://www.udemy.com/course/docker-and-kubernetes-the-complete-guide/">Udemy course: Docker &amp; Kubernetes - The complete guide</a></li>
<li><a href="https://vuejs.org">Vue Js</a></li>
<li><a href="https://nodejs.org/de/docs/guides/nodejs-docker-webapp/">Dockerizing a Node.JS Server</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 3 Feb 2020 05:03:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<h2>Shownotes</h2>
<p>In this episode KG and Donn talk about KG's recent jaunt with Docker. In the attempt to setup continuous deployment for his blog, KG explains his simple requirement and how it lands up requiring some basic Docker.  Donn then closes it out with some interesting in-depth knowledge on how to use Docker</p>
<h3>Personal website hosting</h3>
<ul>
<li><a href="https://www.donnfelker.com">Donn Felker</a></li>
<li><a href="https://2kg.dev">Kaushik's website</a></li>
<li><a href="https://github.com/gjtorikian/html-proofer">html-proofer</a></li>
<li><a href="https://wordpress.com">Wordpress</a></li>
<li><a href="https://jekyllrb.com">jekyll static website blogging</a></li>
</ul>
<h3>Domain checking services</h3>
<ul>
<li><a href="https://domainr.com">Domainr</a></li>
<li><a href="https://leandomainsearch.com/search/?q=cow">Lead Domain Search</a></li>
</ul>
<h3>Docker</h3>
<ul>
<li><a href="https://hub.docker.com">Docker Hub</a></li>
<li><a href="https://github.com/circleci-public/dockerfile-wizard">Circle CI : dockerfile wizard</a></li>
<li><a href="https://hub.docker.com/r/kaushikgopal/ruby-node/tags">KG's ruby-node docker container</a></li>
<li><a href="https://docs.docker.com/compose/">Docker Compose</a></li>
<li><a href="https://www.rabbitmq.com">RabbitMq</a></li>
<li><a href="https://kubernetes.io">Kubernetes : K8s</a></li>
<li><a href="https://www.udemy.com/course/docker-and-kubernetes-the-complete-guide/">Udemy course: Docker &amp; Kubernetes - The complete guide</a></li>
<li><a href="https://vuejs.org">Vue Js</a></li>
<li><a href="https://nodejs.org/de/docs/guides/nodejs-docker-webapp/">Dockerizing a Node.JS Server</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="61789572" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/fc3441f0-e4d1-4b89-bd81-036fe76fd6d0/188-containerized-applications-with-docker_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>188: Containerized applications with Docker</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/fc3441f0-e4d1-4b89-bd81-036fe76fd6d0/3000x3000/1580511105-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:04:19</itunes:duration>
      <itunes:summary>In this episode KG and Donn talk about KG&apos;s recent jaunt with Docker. In the attempt to setup continuous deployment for his blog, KG explains his simple requirement and how it lands up requiring some basic Docker.  Donn then closes it out with some interesting in-depth knowledge on how to use Docker</itunes:summary>
      <itunes:subtitle>In this episode KG and Donn talk about KG&apos;s recent jaunt with Docker. In the attempt to setup continuous deployment for his blog, KG explains his simple requirement and how it lands up requiring some basic Docker.  Donn then closes it out with some interesting in-depth knowledge on how to use Docker</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>188</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">bbffde5a-7bdd-4f50-8589-437f120bba7c</guid>
      <title>187: Coroutines with Manuel Vivo &amp; Sean McQuillan</title>
      <description><![CDATA[<p>It finally happens! KG and Donn talk about Coroutines with two experts at Google Manuel &amp; Sean. We've waited quite sometime on Fragmented to discuss this topic. We wanted to make sure Coroutines was mature enough to be compared with the contenders. Listen to find out more!</p>
<h1>Resources</h1>
<ul>
<li><a href="https://medium.com/androiddevelopers/suspending-over-views-19de9ebd7020">Chris Banes - Suspending over Views Animations &amp; CoRoutines</a></li>
<li><a href="">KotlinConf 2018: Exploring coRoutines in Kotlin</a></li>
<li><a href="https://developer.android.com/topic/libraries/architecture/coroutines">Coroutines Guide</a></li>
<li><a href="https://github.com/Kotlin/kotlinx.coroutines/tree/master/kotlinx-coroutines-test">Coroutines test library</a></li>
<li><a href="https://codelabs.developers.google.com/codelabs/kotlin-coroutines/#0">Codelab: Kotlin Coroutines</a></li>
<li><a href="https://codelabs.developers.google.com/codelabs/advanced-kotlin-coroutines/index.html#0">Codelab: Kotlin Advanced Coroutines</a></li>
<li><a href="https://www.youtube.com/watch?v=KMb0Fs8rCRs">Testing Coroutines Talk</a></li>
<li><a href="https://www.youtube.com/watch?v=w0kfnydnFWI">Cancellation and Exceptions in Coroutines Talk</a></li>
<li><a href="https://medium.com/androiddevelopers/coroutines-on-android-part-i-getting-the-background-3e0e54d20bb">Sean’s Coroutines blog series</a></li>
<li><a href="https://medium.com/androiddevelopers/lessons-learnt-using-coroutines-flow-4a6b285c0d06">Manuel's blog post about Flow in the Android Developer Summit app</a></li>
</ul>
<h1>Contact</h1>
<ul>
<li><a href="https://twitter.com/objcode">Sean McQuillan @objcode</a></li>
<li><a href="https://twitter.com/manuelvicnt">Manuel Vivo @objcode</a></li>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Tue, 21 Jan 2020 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>It finally happens! KG and Donn talk about Coroutines with two experts at Google Manuel &amp; Sean. We've waited quite sometime on Fragmented to discuss this topic. We wanted to make sure Coroutines was mature enough to be compared with the contenders. Listen to find out more!</p>
<h1>Resources</h1>
<ul>
<li><a href="https://medium.com/androiddevelopers/suspending-over-views-19de9ebd7020">Chris Banes - Suspending over Views Animations &amp; CoRoutines</a></li>
<li><a href="">KotlinConf 2018: Exploring coRoutines in Kotlin</a></li>
<li><a href="https://developer.android.com/topic/libraries/architecture/coroutines">Coroutines Guide</a></li>
<li><a href="https://github.com/Kotlin/kotlinx.coroutines/tree/master/kotlinx-coroutines-test">Coroutines test library</a></li>
<li><a href="https://codelabs.developers.google.com/codelabs/kotlin-coroutines/#0">Codelab: Kotlin Coroutines</a></li>
<li><a href="https://codelabs.developers.google.com/codelabs/advanced-kotlin-coroutines/index.html#0">Codelab: Kotlin Advanced Coroutines</a></li>
<li><a href="https://www.youtube.com/watch?v=KMb0Fs8rCRs">Testing Coroutines Talk</a></li>
<li><a href="https://www.youtube.com/watch?v=w0kfnydnFWI">Cancellation and Exceptions in Coroutines Talk</a></li>
<li><a href="https://medium.com/androiddevelopers/coroutines-on-android-part-i-getting-the-background-3e0e54d20bb">Sean’s Coroutines blog series</a></li>
<li><a href="https://medium.com/androiddevelopers/lessons-learnt-using-coroutines-flow-4a6b285c0d06">Manuel's blog post about Flow in the Android Developer Summit app</a></li>
</ul>
<h1>Contact</h1>
<ul>
<li><a href="https://twitter.com/objcode">Sean McQuillan @objcode</a></li>
<li><a href="https://twitter.com/manuelvicnt">Manuel Vivo @objcode</a></li>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="62621248" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/b989c251-2548-449b-b0e9-bf0d486b2604/187-coroutine_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>187: Coroutines with Manuel Vivo &amp; Sean McQuillan</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/b989c251-2548-449b-b0e9-bf0d486b2604/3000x3000/1579554295-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:05:11</itunes:duration>
      <itunes:summary>It finally happens! KG and Donn talk about Coroutines with two experts at Google Manuel &amp; Sean. We&apos;ve waited quite sometime on Fragmented to discuss this topic. We wanted to make sure Coroutines was mature enough to be compared with the contenders. Listen to find out more!</itunes:summary>
      <itunes:subtitle>It finally happens! KG and Donn talk about Coroutines with two experts at Google Manuel &amp; Sean. We&apos;ve waited quite sometime on Fragmented to discuss this topic. We wanted to make sure Coroutines was mature enough to be compared with the contenders. Listen to find out more!</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>187</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">3cc90cee-d550-4b68-a3c4-178b08c3ae95</guid>
      <title>186: Announcement 2020</title>
      <description><![CDATA[<p>In this episode, Donn and Kaushik talk about some changes coming down the pipe for the podcast and what it means in the long run.</p>
<p>Want to know what the changes are? Well, you're going to have to listen to the show... click play and listen away.</p>
<p>Once again, thank you all for joining us on this journey, it's been a fun and wild one.</p>
<h1>Contact</h1>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 6 Jan 2020 05:01:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn and Kaushik talk about some changes coming down the pipe for the podcast and what it means in the long run.</p>
<p>Want to know what the changes are? Well, you're going to have to listen to the show... click play and listen away.</p>
<p>Once again, thank you all for joining us on this journey, it's been a fun and wild one.</p>
<h1>Contact</h1>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="11040917" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/d0aa3490-d293-42a9-8ab3-21ab46765fc7/186-announcement-2020_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>186: Announcement 2020</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/d0aa3490-d293-42a9-8ab3-21ab46765fc7/3000x3000/1577819517-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:11:27</itunes:duration>
      <itunes:summary>In this episode, Donn and Kaushik talk about some changes coming down the pipe for the podcast and what it means in the long run. </itunes:summary>
      <itunes:subtitle>In this episode, Donn and Kaushik talk about some changes coming down the pipe for the podcast and what it means in the long run. </itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>186</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">8a11ef78-4ca7-4e61-a031-14e1539a8bc5</guid>
      <title>185: Year End Decompress</title>
      <description><![CDATA[<p>In this decompress episode, Donn and KG talk about how their 2019 went. It goes from Dagger talk to Kotlin talk to Kotlin Conf talk. Give it a listen and enjoy!</p>
<h1>Sponsors 🙏</h1>
<h2><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__youtube.com_squaredev&amp;d=DwMFaQ&amp;c=Hso5VlsiAbVjjQbjbkggFA&amp;r=5rswfIrZ3jVQKjXDtb9aJ7x0EBd4bwewuxP5wKrNbTY&amp;m=hPRbjx-2eHbr8PV9JaOdTBJ-Ma1mfUz__WKALHiX4eg&amp;s=yf1KdtXZj8B_Q8t6Tz0vHxYCMYT9l5u5-dOst-u3Pn8&amp;e=">Square</a></h2>
<p>Square has SDKs and APIs to make payments and run a business. Even better, Square has a new YouTube channel for developers! Check out Square's new YouTube Channel for Developers at <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__youtube.com_squaredev&amp;d=DwMFaQ&amp;c=Hso5VlsiAbVjjQbjbkggFA&amp;r=5rswfIrZ3jVQKjXDtb9aJ7x0EBd4bwewuxP5wKrNbTY&amp;m=hPRbjx-2eHbr8PV9JaOdTBJ-Ma1mfUz__WKALHiX4eg&amp;s=yf1KdtXZj8B_Q8t6Tz0vHxYCMYT9l5u5-dOst-u3Pn8&amp;e=">youtube.com/squaredev</a> and let them know you heard about it from us.</p>
<h1>Contact</h1>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 16 Dec 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this decompress episode, Donn and KG talk about how their 2019 went. It goes from Dagger talk to Kotlin talk to Kotlin Conf talk. Give it a listen and enjoy!</p>
<h1>Sponsors 🙏</h1>
<h2><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__youtube.com_squaredev&amp;d=DwMFaQ&amp;c=Hso5VlsiAbVjjQbjbkggFA&amp;r=5rswfIrZ3jVQKjXDtb9aJ7x0EBd4bwewuxP5wKrNbTY&amp;m=hPRbjx-2eHbr8PV9JaOdTBJ-Ma1mfUz__WKALHiX4eg&amp;s=yf1KdtXZj8B_Q8t6Tz0vHxYCMYT9l5u5-dOst-u3Pn8&amp;e=">Square</a></h2>
<p>Square has SDKs and APIs to make payments and run a business. Even better, Square has a new YouTube channel for developers! Check out Square's new YouTube Channel for Developers at <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__youtube.com_squaredev&amp;d=DwMFaQ&amp;c=Hso5VlsiAbVjjQbjbkggFA&amp;r=5rswfIrZ3jVQKjXDtb9aJ7x0EBd4bwewuxP5wKrNbTY&amp;m=hPRbjx-2eHbr8PV9JaOdTBJ-Ma1mfUz__WKALHiX4eg&amp;s=yf1KdtXZj8B_Q8t6Tz0vHxYCMYT9l5u5-dOst-u3Pn8&amp;e=">youtube.com/squaredev</a> and let them know you heard about it from us.</p>
<h1>Contact</h1>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="56000787" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/27886e9e-8b05-4f23-b2e5-39369ecc39de/185-yearenddecompress_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>185: Year End Decompress</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/27886e9e-8b05-4f23-b2e5-39369ecc39de/3000x3000/1576452266-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:58:17</itunes:duration>
      <itunes:summary>In this decompress episode, Donn and KG talk about how their 2019 went. It goes from Dagger talk to Kotlin talk to Kotlin Conf talk. Give it a listen and enjoy!</itunes:summary>
      <itunes:subtitle>In this decompress episode, Donn and KG talk about how their 2019 went. It goes from Dagger talk to Kotlin talk to Kotlin Conf talk. Give it a listen and enjoy!</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>185</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">56bc8bdb-2a25-49fb-a35f-fb70e0b5106e</guid>
      <title>184: Should I use a BaseActivity in my Android apps?</title>
      <description><![CDATA[<p>In this episode, Kaushik tries to talk through this question.</p>
<p>Thanks to friends of the show <a href="https://twitter.com/molsjeroen">Jeroen</a>, <a href="https://twitter.com/yigitboyar?lang=en">Yigit</a> and a bunch of others who ran through some ideas on this one.</p>
<ul>
<li><a href="https://developer.android.com/reference/android/app/Application#registerActivityLifecycleCallbacks(android.app.Application.ActivityLifecycleCallbacks)">Application.registerActivityLifecycleCallbacks</a></li>
<li><a href="https://developer.android.com/topic/libraries/architecture/lifecycle">Android X Lifecycle Component</a></li>
<li><a href="https://fragmentedpodcast.com/episodes/16/">Ep 16: Favor composition over inheritance</a></li>
</ul>
<h1>Sponsors 🙏</h1>
<h2><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__youtube.com_squaredev&amp;d=DwMFaQ&amp;c=Hso5VlsiAbVjjQbjbkggFA&amp;r=5rswfIrZ3jVQKjXDtb9aJ7x0EBd4bwewuxP5wKrNbTY&amp;m=hPRbjx-2eHbr8PV9JaOdTBJ-Ma1mfUz__WKALHiX4eg&amp;s=yf1KdtXZj8B_Q8t6Tz0vHxYCMYT9l5u5-dOst-u3Pn8&amp;e=">Square</a></h2>
<p>Square has SDKs and APIs to make payments and run a business. Even better, Square has a new YouTube channel for developers! Check out Square's new YouTube Channel for Developers at <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__youtube.com_squaredev&amp;d=DwMFaQ&amp;c=Hso5VlsiAbVjjQbjbkggFA&amp;r=5rswfIrZ3jVQKjXDtb9aJ7x0EBd4bwewuxP5wKrNbTY&amp;m=hPRbjx-2eHbr8PV9JaOdTBJ-Ma1mfUz__WKALHiX4eg&amp;s=yf1KdtXZj8B_Q8t6Tz0vHxYCMYT9l5u5-dOst-u3Pn8&amp;e=">youtube.com/squaredev</a> and let them know you heard about it from us.</p>
<h1>Contact</h1>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 2 Dec 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Kaushik tries to talk through this question.</p>
<p>Thanks to friends of the show <a href="https://twitter.com/molsjeroen">Jeroen</a>, <a href="https://twitter.com/yigitboyar?lang=en">Yigit</a> and a bunch of others who ran through some ideas on this one.</p>
<ul>
<li><a href="https://developer.android.com/reference/android/app/Application#registerActivityLifecycleCallbacks(android.app.Application.ActivityLifecycleCallbacks)">Application.registerActivityLifecycleCallbacks</a></li>
<li><a href="https://developer.android.com/topic/libraries/architecture/lifecycle">Android X Lifecycle Component</a></li>
<li><a href="https://fragmentedpodcast.com/episodes/16/">Ep 16: Favor composition over inheritance</a></li>
</ul>
<h1>Sponsors 🙏</h1>
<h2><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__youtube.com_squaredev&amp;d=DwMFaQ&amp;c=Hso5VlsiAbVjjQbjbkggFA&amp;r=5rswfIrZ3jVQKjXDtb9aJ7x0EBd4bwewuxP5wKrNbTY&amp;m=hPRbjx-2eHbr8PV9JaOdTBJ-Ma1mfUz__WKALHiX4eg&amp;s=yf1KdtXZj8B_Q8t6Tz0vHxYCMYT9l5u5-dOst-u3Pn8&amp;e=">Square</a></h2>
<p>Square has SDKs and APIs to make payments and run a business. Even better, Square has a new YouTube channel for developers! Check out Square's new YouTube Channel for Developers at <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__youtube.com_squaredev&amp;d=DwMFaQ&amp;c=Hso5VlsiAbVjjQbjbkggFA&amp;r=5rswfIrZ3jVQKjXDtb9aJ7x0EBd4bwewuxP5wKrNbTY&amp;m=hPRbjx-2eHbr8PV9JaOdTBJ-Ma1mfUz__WKALHiX4eg&amp;s=yf1KdtXZj8B_Q8t6Tz0vHxYCMYT9l5u5-dOst-u3Pn8&amp;e=">youtube.com/squaredev</a> and let them know you heard about it from us.</p>
<h1>Contact</h1>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="22528590" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/1e53848d-d102-473e-988d-cdd7503e8b12/184-should-i-use-a-baseactivity-in-my-android-apps_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>184: Should I use a BaseActivity in my Android apps?</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/1e53848d-d102-473e-988d-cdd7503e8b12/3000x3000/1575262357-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:23:25</itunes:duration>
      <itunes:summary>In this episode, we touch on a note so widely discussed topic: should Android application today use a BaseActivity? Doesn&apos;t that wreak of inheritance over composition? What would uncle Joshua say about this ineffective approach? What are alternative options? do we have any?
</itunes:summary>
      <itunes:subtitle>In this episode, we touch on a note so widely discussed topic: should Android application today use a BaseActivity? Doesn&apos;t that wreak of inheritance over composition? What would uncle Joshua say about this ineffective approach? What are alternative options? do we have any?
</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>184</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">3ba1b71a-6cfe-49ed-bc2b-09b5acbc5cb5</guid>
      <title>183: The Testing Paradox</title>
      <description><![CDATA[<p>How do you know what to test when you don't even know how to write the code that you need to test? This is a paradox that many developers find themselves in daily.</p>
<p>In this episode Donn talks about his strategy for dealing with unknowns in programming, namely around testing and how to figure out how to write tests for new code that might be difficult, unfamiliar or even legacy code.</p>
<h1>Links</h1>
<ul>
<li><a href="https://twitter.com/RonJeffries/status/1197173969520136197">Ron Jefferies Tweet</a></li>
<li><a href="https://twitter.com/erluxman/status/1197548362137948160">Luxman Tweet</a></li>
<li><a href="https://twitter.com/donnfelker/status/1197559979789766656">Donn Tweet</a></li>
<li><a href="https://en.wikipedia.org/wiki/Spike_(software_development)">What is a Spike?</a></li>
</ul>
<h1>Sponsors 🙏</h1>
<h2><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__youtube.com_squaredev&amp;d=DwMFaQ&amp;c=Hso5VlsiAbVjjQbjbkggFA&amp;r=5rswfIrZ3jVQKjXDtb9aJ7x0EBd4bwewuxP5wKrNbTY&amp;m=hPRbjx-2eHbr8PV9JaOdTBJ-Ma1mfUz__WKALHiX4eg&amp;s=yf1KdtXZj8B_Q8t6Tz0vHxYCMYT9l5u5-dOst-u3Pn8&amp;e=">Square</a></h2>
<p>Square has SDKs and APIs to make payments and run a business. Even better, Square has a new YouTube channel for developers! Check out Square's new YouTube Channel for Developers at <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__youtube.com_squaredev&amp;d=DwMFaQ&amp;c=Hso5VlsiAbVjjQbjbkggFA&amp;r=5rswfIrZ3jVQKjXDtb9aJ7x0EBd4bwewuxP5wKrNbTY&amp;m=hPRbjx-2eHbr8PV9JaOdTBJ-Ma1mfUz__WKALHiX4eg&amp;s=yf1KdtXZj8B_Q8t6Tz0vHxYCMYT9l5u5-dOst-u3Pn8&amp;e=">youtube.com/squaredev</a> and let them know you heard about it from us.</p>
<h2><a href="https://flatironschool.com/fragmented">Flatiron School</a></h2>
<p>Learn UX/UI design <a href="https://flatironschool.com/fragmented">flatironschool.com/fragmented</a> in 24 weeks and discover our global community on campus or online and go back to school with Flatiron School! <a href="https://flatironschool.com/fragmented">flatironschool.com/fragmented</a>!</p>
<p>Change careers with confidence with 1:1 support from our dedicated Career Coaches and a money-back guarantee. Complete details at <a href="https://flatironschool.com/terms">flatironschool.com/terms</a>.</p>
<p>See you in class!</p>
<h1>Contact</h1>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 25 Nov 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>How do you know what to test when you don't even know how to write the code that you need to test? This is a paradox that many developers find themselves in daily.</p>
<p>In this episode Donn talks about his strategy for dealing with unknowns in programming, namely around testing and how to figure out how to write tests for new code that might be difficult, unfamiliar or even legacy code.</p>
<h1>Links</h1>
<ul>
<li><a href="https://twitter.com/RonJeffries/status/1197173969520136197">Ron Jefferies Tweet</a></li>
<li><a href="https://twitter.com/erluxman/status/1197548362137948160">Luxman Tweet</a></li>
<li><a href="https://twitter.com/donnfelker/status/1197559979789766656">Donn Tweet</a></li>
<li><a href="https://en.wikipedia.org/wiki/Spike_(software_development)">What is a Spike?</a></li>
</ul>
<h1>Sponsors 🙏</h1>
<h2><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__youtube.com_squaredev&amp;d=DwMFaQ&amp;c=Hso5VlsiAbVjjQbjbkggFA&amp;r=5rswfIrZ3jVQKjXDtb9aJ7x0EBd4bwewuxP5wKrNbTY&amp;m=hPRbjx-2eHbr8PV9JaOdTBJ-Ma1mfUz__WKALHiX4eg&amp;s=yf1KdtXZj8B_Q8t6Tz0vHxYCMYT9l5u5-dOst-u3Pn8&amp;e=">Square</a></h2>
<p>Square has SDKs and APIs to make payments and run a business. Even better, Square has a new YouTube channel for developers! Check out Square's new YouTube Channel for Developers at <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__youtube.com_squaredev&amp;d=DwMFaQ&amp;c=Hso5VlsiAbVjjQbjbkggFA&amp;r=5rswfIrZ3jVQKjXDtb9aJ7x0EBd4bwewuxP5wKrNbTY&amp;m=hPRbjx-2eHbr8PV9JaOdTBJ-Ma1mfUz__WKALHiX4eg&amp;s=yf1KdtXZj8B_Q8t6Tz0vHxYCMYT9l5u5-dOst-u3Pn8&amp;e=">youtube.com/squaredev</a> and let them know you heard about it from us.</p>
<h2><a href="https://flatironschool.com/fragmented">Flatiron School</a></h2>
<p>Learn UX/UI design <a href="https://flatironschool.com/fragmented">flatironschool.com/fragmented</a> in 24 weeks and discover our global community on campus or online and go back to school with Flatiron School! <a href="https://flatironschool.com/fragmented">flatironschool.com/fragmented</a>!</p>
<p>Change careers with confidence with 1:1 support from our dedicated Career Coaches and a money-back guarantee. Complete details at <a href="https://flatironschool.com/terms">flatironschool.com/terms</a>.</p>
<p>See you in class!</p>
<h1>Contact</h1>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="19163786" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/3342b5c8-5e71-4228-ab0d-46da21e62702/183-the-testing-paradox_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>183: The Testing Paradox</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/3342b5c8-5e71-4228-ab0d-46da21e62702/3000x3000/1574630369-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:19:56</itunes:duration>
      <itunes:summary>In this episode Donn talks about his strategy for dealing with unknowns in programming, namely around testing and how to figure out how to write tests for new code that might be difficult, unfamiliar or even legacy code. 
</itunes:summary>
      <itunes:subtitle>In this episode Donn talks about his strategy for dealing with unknowns in programming, namely around testing and how to figure out how to write tests for new code that might be difficult, unfamiliar or even legacy code. 
</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>183</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">92500b49-b87e-4221-9664-e963e83f12c8</guid>
      <title>182: Where do I put DB objects in a modularized Android app?</title>
      <description><![CDATA[<p>App Modularization has plenty of benefits and a lot of Android devs today are starting to modularize their android app.</p>
<p>A common problem though that most folks will start to run into is - how do you manage your database objects in these modules? do you create a single module with all your database dependencies (modularize by layer), do you do the right thing and modularize by feature so each module has it's own database file etc.?</p>
<p>In this episode Kaushik grapples with that question and tries to come up with an answer.</p>
<h2>Shownotes</h2>
<h3>Modularization (KG's favorite resources)</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=PZBg5DIzNww">Google IO 19</a> : Build a modular Android app architecture</li>
<li><a href="https://jeroenmols.com/blog/2019/03/06/modularizationwhy/">Jeroen Mols's posts</a> : Modularization - Why you should care</li>
<li><a href="https://medium.com/google-developer-experts/modularizing-android-applications-9e2d18f244a0">Joe Birch's posts</a> : Modularizing Android Appications</li>
<li><a href="https://fragmentedpodcast.com/episodes/117">Ep 117</a> : Multi Module Builds in Gradle</li>
<li><a href="https://medium.com/mindorks/writing-a-modular-project-on-android-304f3b09cb37">Karan Trehan's post</a> : Writing a modular project on Android</li>
</ul>
<h2>Sponsors 🙏</h2>
<h2><a href="https://www.vettery.com/tech?utm_source=podcast&amp;utm_medium=fragmented&amp;utm_term=tech&amp;utm_content=grouped&amp;utm_campaign=ad-92136">Vettery</a></h2>
<p>Vettery is an online hiring marketplace that is changing the way people hire and get hired. Make a free profile, name your salary, and connect with hiring managers from top employers today.</p>
<p>Listeners of Fragmented get a $300 bonus if you accept a job through Vettery! Sign up at <a href="https://www.vettery.com/tech?utm_source=podcast&amp;utm_medium=fragmented&amp;utm_term=tech&amp;utm_content=grouped&amp;utm_campaign=ad-92136">vettery.com/fragmented</a></p>
<p>--</p>
<h2><a href="https://flatironschool.com/fragmented">Flatiron School</a></h2>
<p>Learn UX/UI design <a href="https://flatironschool.com/fragmented">flatironschool.com/fragmented</a> in 24 weeks and discover our global community on campus or online and go back to school with Flatiron School! <a href="https://flatironschool.com/fragmented">flatironschool.com/fragmented</a>!</p>
<p>Change careers with confidence with 1:1 support from our dedicated Career Coaches and a money-back guarantee. Complete details at <a href="https://flatironschool.com/terms">flatironschool.com/terms</a>.</p>
<p>See you in class!</p>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 18 Nov 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>App Modularization has plenty of benefits and a lot of Android devs today are starting to modularize their android app.</p>
<p>A common problem though that most folks will start to run into is - how do you manage your database objects in these modules? do you create a single module with all your database dependencies (modularize by layer), do you do the right thing and modularize by feature so each module has it's own database file etc.?</p>
<p>In this episode Kaushik grapples with that question and tries to come up with an answer.</p>
<h2>Shownotes</h2>
<h3>Modularization (KG's favorite resources)</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=PZBg5DIzNww">Google IO 19</a> : Build a modular Android app architecture</li>
<li><a href="https://jeroenmols.com/blog/2019/03/06/modularizationwhy/">Jeroen Mols's posts</a> : Modularization - Why you should care</li>
<li><a href="https://medium.com/google-developer-experts/modularizing-android-applications-9e2d18f244a0">Joe Birch's posts</a> : Modularizing Android Appications</li>
<li><a href="https://fragmentedpodcast.com/episodes/117">Ep 117</a> : Multi Module Builds in Gradle</li>
<li><a href="https://medium.com/mindorks/writing-a-modular-project-on-android-304f3b09cb37">Karan Trehan's post</a> : Writing a modular project on Android</li>
</ul>
<h2>Sponsors 🙏</h2>
<h2><a href="https://www.vettery.com/tech?utm_source=podcast&amp;utm_medium=fragmented&amp;utm_term=tech&amp;utm_content=grouped&amp;utm_campaign=ad-92136">Vettery</a></h2>
<p>Vettery is an online hiring marketplace that is changing the way people hire and get hired. Make a free profile, name your salary, and connect with hiring managers from top employers today.</p>
<p>Listeners of Fragmented get a $300 bonus if you accept a job through Vettery! Sign up at <a href="https://www.vettery.com/tech?utm_source=podcast&amp;utm_medium=fragmented&amp;utm_term=tech&amp;utm_content=grouped&amp;utm_campaign=ad-92136">vettery.com/fragmented</a></p>
<p>--</p>
<h2><a href="https://flatironschool.com/fragmented">Flatiron School</a></h2>
<p>Learn UX/UI design <a href="https://flatironschool.com/fragmented">flatironschool.com/fragmented</a> in 24 weeks and discover our global community on campus or online and go back to school with Flatiron School! <a href="https://flatironschool.com/fragmented">flatironschool.com/fragmented</a>!</p>
<p>Change careers with confidence with 1:1 support from our dedicated Career Coaches and a money-back guarantee. Complete details at <a href="https://flatironschool.com/terms">flatironschool.com/terms</a>.</p>
<p>See you in class!</p>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="26522204" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/3fca4317-0433-4060-a721-8d3988da946e/182_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>182: Where do I put DB objects in a modularized Android app?</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/3fca4317-0433-4060-a721-8d3988da946e/3000x3000/1574013407-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:27:34</itunes:duration>
      <itunes:summary>In this episode Kaushik grapples with the question, where do I put DB objects in a modularized Android app? and tries to come up with an answer.</itunes:summary>
      <itunes:subtitle>In this episode Kaushik grapples with the question, where do I put DB objects in a modularized Android app? and tries to come up with an answer.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>182</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">6a5fbc60-c5d8-4093-bfc4-78f0a11e74ac</guid>
      <title>181: In Functional Programming how to do IO and database operations</title>
      <description><![CDATA[<p>In the world of Functional programming where pure functions don't encourage side-effects, how does on actually do any IO?</p>
<p>So in this brave new world where everyone is adopting more FP principles, do we just stop doing database operations? Listen to this episode to find out.</p>
<h3>Functional Programming basics</h3>
<ul>
<li><a href="https://fragmentedpodcast.com/episodes/83/">Ep 83</a> : Learning the basics of functional programing with Anup Cowkur</li>
<li><a href="https://fragmentedpodcast.com/episodes/120/">Ep 120</a> : Functional Programming with Kotlin Arrow team</li>
<li><a href="https://fragmentedpodcast.com/episodes/121/">Ep 121</a> : Functional Programming with Kotlin Arrow team (Part 2)</li>
</ul>
<h3>Unidirectional State Flow</h3>
<ul>
<li><a href="https://fragmentedpodcast.com/episodes/148">Ep 148</a> and <a href="https://fragmentedpodcast.com/episodes/151">Ep 151</a></li>
<li>KG's <a href="https://speakerdeck.com/kaushikgopal/architecting-android-and-ios-apps-in-2020?slide=65">speakerdeck slide</a></li>
<li>KG's Movie search apps <a href="https://github.com/kaushikgopal/movies-usf-android">Android app</a> + <a href="https://github.com/kaushikgopal/movies-usf-ios">iOS app</a></li>
</ul>
<h3>Resources for FP/IO contention</h3>
<ul>
<li><a href="https://stackoverflow.com/questions/8406261/most-common-pattern-for-using-a-database-in-a-functional-language-given-desire">StackOverflow Q&amp;A</a></li>
<li><a href="http://flyingfrogblog.blogspot.com/2015/03/functional-programming-and-databases.html">Flying Frog Blog: Functional programming and databases</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<h2><a href="https://flatironschool.com/fragmented">Flatiron School</a></h2>
<p>Learn UX/UI design <a href="https://flatironschool.com/fragmented">flatironschool.com/fragmented</a> in 24 weeks and discover our global community on campus or online and go back to school with Flatiron School! <a href="https://flatironschool.com/fragmented">flatironschool.com/fragmented</a>!</p>
<p>Change careers with confidence with 1:1 support from our dedicated Career Coaches and a money-back guarantee. Complete details at <a href="https://flatironschool.com/terms">flatironschool.com/terms</a>.</p>
<p>See you in class!</p>
<ul>
<li></li>
</ul>
<h2><a href="https://www.vettery.com/tech?utm_source=podcast&amp;utm_medium=fragmented&amp;utm_term=tech&amp;utm_content=grouped&amp;utm_campaign=ad-92136">Vettery</a></h2>
<p>Vettery is an online hiring marketplace that is changing the way people hire and get hired. Make a free profile, name your salary, and connect with hiring managers from top employers today.</p>
<p>Listeners of Fragmented get a $300 bonus if you accept a job through Vettery! Sign up at <a href="https://www.vettery.com/tech?utm_source=podcast&amp;utm_medium=fragmented&amp;utm_term=tech&amp;utm_content=grouped&amp;utm_campaign=ad-92136">vettery.com/fragmented</a></p>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Wed, 13 Nov 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In the world of Functional programming where pure functions don't encourage side-effects, how does on actually do any IO?</p>
<p>So in this brave new world where everyone is adopting more FP principles, do we just stop doing database operations? Listen to this episode to find out.</p>
<h3>Functional Programming basics</h3>
<ul>
<li><a href="https://fragmentedpodcast.com/episodes/83/">Ep 83</a> : Learning the basics of functional programing with Anup Cowkur</li>
<li><a href="https://fragmentedpodcast.com/episodes/120/">Ep 120</a> : Functional Programming with Kotlin Arrow team</li>
<li><a href="https://fragmentedpodcast.com/episodes/121/">Ep 121</a> : Functional Programming with Kotlin Arrow team (Part 2)</li>
</ul>
<h3>Unidirectional State Flow</h3>
<ul>
<li><a href="https://fragmentedpodcast.com/episodes/148">Ep 148</a> and <a href="https://fragmentedpodcast.com/episodes/151">Ep 151</a></li>
<li>KG's <a href="https://speakerdeck.com/kaushikgopal/architecting-android-and-ios-apps-in-2020?slide=65">speakerdeck slide</a></li>
<li>KG's Movie search apps <a href="https://github.com/kaushikgopal/movies-usf-android">Android app</a> + <a href="https://github.com/kaushikgopal/movies-usf-ios">iOS app</a></li>
</ul>
<h3>Resources for FP/IO contention</h3>
<ul>
<li><a href="https://stackoverflow.com/questions/8406261/most-common-pattern-for-using-a-database-in-a-functional-language-given-desire">StackOverflow Q&amp;A</a></li>
<li><a href="http://flyingfrogblog.blogspot.com/2015/03/functional-programming-and-databases.html">Flying Frog Blog: Functional programming and databases</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<h2><a href="https://flatironschool.com/fragmented">Flatiron School</a></h2>
<p>Learn UX/UI design <a href="https://flatironschool.com/fragmented">flatironschool.com/fragmented</a> in 24 weeks and discover our global community on campus or online and go back to school with Flatiron School! <a href="https://flatironschool.com/fragmented">flatironschool.com/fragmented</a>!</p>
<p>Change careers with confidence with 1:1 support from our dedicated Career Coaches and a money-back guarantee. Complete details at <a href="https://flatironschool.com/terms">flatironschool.com/terms</a>.</p>
<p>See you in class!</p>
<ul>
<li></li>
</ul>
<h2><a href="https://www.vettery.com/tech?utm_source=podcast&amp;utm_medium=fragmented&amp;utm_term=tech&amp;utm_content=grouped&amp;utm_campaign=ad-92136">Vettery</a></h2>
<p>Vettery is an online hiring marketplace that is changing the way people hire and get hired. Make a free profile, name your salary, and connect with hiring managers from top employers today.</p>
<p>Listeners of Fragmented get a $300 bonus if you accept a job through Vettery! Sign up at <a href="https://www.vettery.com/tech?utm_source=podcast&amp;utm_medium=fragmented&amp;utm_term=tech&amp;utm_content=grouped&amp;utm_campaign=ad-92136">vettery.com/fragmented</a></p>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="21174845" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/d7cbd1e4-c893-40b9-8464-078c326808f5/181-how-to-do-io-operations-in-functional-programming_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>181: In Functional Programming how to do IO and database operations</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/d7cbd1e4-c893-40b9-8464-078c326808f5/3000x3000/1573591429-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:22:00</itunes:duration>
      <itunes:summary>In today&apos;s episode, Kaush asks the question:  in this brave new world where everyone is adopting more functional programming, do we just stop doing database operations? Listen to this episode to find out.</itunes:summary>
      <itunes:subtitle>In today&apos;s episode, Kaush asks the question:  in this brave new world where everyone is adopting more functional programming, do we just stop doing database operations? Listen to this episode to find out.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>181</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">9f120c75-cd85-4ea3-941f-d1d99c98292f</guid>
      <title>180: Code Comments</title>
      <description><![CDATA[<p>In this episode of Fragmented, Donn talks about when it's appropriate to comment your code.</p>
<p>Donn then dives into the types of code comments, when you might want to comment vs when you might not want to (depending upon your consumer) and then gets into how he decides to comment his code with a simple two-step process.</p>
<p>Enjoy!</p>
<h2>Things Mentioned</h2>
<ul>
<li><a href="https://www.donnfelker.com/code-comments/">Commenting Code Post</a></li>
</ul>
<h1>Sponsors</h1>
<h2><a href="https://go.bitrise.io/fragmented">Bitrise</a></h2>
<p>Build amazing apps in Java, Kotlin or whatever tech you prefer and use Bitrise to automate your Android integration, build, test and deploy process quickly and easily.</p>
<p>Sign up for an exquisite pair of Bitrise Branded Socks at https://go.bitrise.io/fragmented</p>
<h2><a href="https://flatironschool.com/fragmented">Flatiron School</a></h2>
<p>Learn UX/UI design <a href="https://flatironschool.com/fragmented">flatironschool.com/fragmented</a> in 24 weeks and discover our global community on campus or online and go back to school with Flatiron School! <a href="https://flatironschool.com/fragmented">flatironschool.com/fragmented</a>!</p>
<p>Change careers with confidence with 1:1 support from our dedicated Career Coaches and a money-back guarantee. Complete details at <a href="https://flatironschool.com/terms">flatironschool.com/terms</a>.</p>
<p>See you in class!</p>
<h1>Contact</h1>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 4 Nov 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode of Fragmented, Donn talks about when it's appropriate to comment your code.</p>
<p>Donn then dives into the types of code comments, when you might want to comment vs when you might not want to (depending upon your consumer) and then gets into how he decides to comment his code with a simple two-step process.</p>
<p>Enjoy!</p>
<h2>Things Mentioned</h2>
<ul>
<li><a href="https://www.donnfelker.com/code-comments/">Commenting Code Post</a></li>
</ul>
<h1>Sponsors</h1>
<h2><a href="https://go.bitrise.io/fragmented">Bitrise</a></h2>
<p>Build amazing apps in Java, Kotlin or whatever tech you prefer and use Bitrise to automate your Android integration, build, test and deploy process quickly and easily.</p>
<p>Sign up for an exquisite pair of Bitrise Branded Socks at https://go.bitrise.io/fragmented</p>
<h2><a href="https://flatironschool.com/fragmented">Flatiron School</a></h2>
<p>Learn UX/UI design <a href="https://flatironschool.com/fragmented">flatironschool.com/fragmented</a> in 24 weeks and discover our global community on campus or online and go back to school with Flatiron School! <a href="https://flatironschool.com/fragmented">flatironschool.com/fragmented</a>!</p>
<p>Change careers with confidence with 1:1 support from our dedicated Career Coaches and a money-back guarantee. Complete details at <a href="https://flatironschool.com/terms">flatironschool.com/terms</a>.</p>
<p>See you in class!</p>
<h1>Contact</h1>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="14740600" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/e548da84-85c0-46eb-90ce-e6c306334c9f/180-code-comments_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>180: Code Comments</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/e548da84-85c0-46eb-90ce-e6c306334c9f/3000x3000/1572810348-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:15:20</itunes:duration>
      <itunes:summary>In this episode of Fragmented, Donn talks about when it&apos;s appropriate to comment your code.</itunes:summary>
      <itunes:subtitle>In this episode of Fragmented, Donn talks about when it&apos;s appropriate to comment your code.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>180</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">4ba5f3a5-ba07-4941-8161-3220cda920fe</guid>
      <title>179: Kaushiks Top Tips For Giving A Technical Talk</title>
      <description><![CDATA[<p>In this episode of Fragmented, Kaush breaks down how he begins creating and writing technical talks, using a talk he's about to give at the Mobilization Conference.</p>
<p>Enjoy!</p>
<h2>Things Mentioned</h2>
<ul>
<li>
<p><a href="https://twitter.com/kaushikgopal/status/1187662994253193216">Mobilization conference - KG is about to give a talk at</a></p>
</li>
<li>
<p>Post it notes <a href="https://fragmentedpodcast.com/wp-content/uploads/2019/10/IMG_1900-1024x768.jpg">pic1</a> <a href="http://fragmentedpodcast.com/wp-content/uploads/2019/10/IMG_1901-1024x768.jpg">pic 2</a></p>
</li>
<li></li>
<li>
<p><a href="https://speakerdeck.com/kaushikgopal/">My Speakerdeck</a></p>
</li>
<li>
<p><a href="https://github.com/kaushikgopal/san-jose-theme">San Jose Theme</a></p>
</li>
<li>
<p><a href="https://speakerdeck.com/nickbutcher">Nick Butcher -  speakerdeck</a></p>
</li>
<li>
<p><a href="https://speakerdeck.com/cyrilmottier">Cyril Motier - speakerdeck</a></p>
</li>
</ul>
<h1>Sponsors</h1>
<h2><a href="https://www.vettery.com/tech?utm_source=podcast&amp;utm_medium=fragmented&amp;utm_term=tech&amp;utm_content=grouped&amp;utm_campaign=ad-92136">Vettery</a></h2>
<p>Vettery is an online hiring marketplace that is changing the way people hire and get hired. Make a free profile, name your salary, and connect with hiring managers from top employers today.</p>
<p>Listeners of Fragmented get a $300 bonus if you accept a job through Vettery! Sign up at <a href="https://www.vettery.com/tech?utm_source=podcast&amp;utm_medium=fragmented&amp;utm_term=tech&amp;utm_content=grouped&amp;utm_campaign=ad-92136">vettery.com/fragmented</a></p>
<h2><a href="https://go.bitrise.io/fragmented">Bitrise</a></h2>
<p>Build amazing apps in Java, Kotlin or whatever tech you prefer and use Bitrise to automate your Android integration, build, test and deploy process quickly and easily.</p>
<p>Sign up for an exquisite pair of Bitrise Branded Socks at https://go.bitrise.io/fragmented</p>
<h1>Contact</h1>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 28 Oct 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode of Fragmented, Kaush breaks down how he begins creating and writing technical talks, using a talk he's about to give at the Mobilization Conference.</p>
<p>Enjoy!</p>
<h2>Things Mentioned</h2>
<ul>
<li>
<p><a href="https://twitter.com/kaushikgopal/status/1187662994253193216">Mobilization conference - KG is about to give a talk at</a></p>
</li>
<li>
<p>Post it notes <a href="https://fragmentedpodcast.com/wp-content/uploads/2019/10/IMG_1900-1024x768.jpg">pic1</a> <a href="http://fragmentedpodcast.com/wp-content/uploads/2019/10/IMG_1901-1024x768.jpg">pic 2</a></p>
</li>
<li></li>
<li>
<p><a href="https://speakerdeck.com/kaushikgopal/">My Speakerdeck</a></p>
</li>
<li>
<p><a href="https://github.com/kaushikgopal/san-jose-theme">San Jose Theme</a></p>
</li>
<li>
<p><a href="https://speakerdeck.com/nickbutcher">Nick Butcher -  speakerdeck</a></p>
</li>
<li>
<p><a href="https://speakerdeck.com/cyrilmottier">Cyril Motier - speakerdeck</a></p>
</li>
</ul>
<h1>Sponsors</h1>
<h2><a href="https://www.vettery.com/tech?utm_source=podcast&amp;utm_medium=fragmented&amp;utm_term=tech&amp;utm_content=grouped&amp;utm_campaign=ad-92136">Vettery</a></h2>
<p>Vettery is an online hiring marketplace that is changing the way people hire and get hired. Make a free profile, name your salary, and connect with hiring managers from top employers today.</p>
<p>Listeners of Fragmented get a $300 bonus if you accept a job through Vettery! Sign up at <a href="https://www.vettery.com/tech?utm_source=podcast&amp;utm_medium=fragmented&amp;utm_term=tech&amp;utm_content=grouped&amp;utm_campaign=ad-92136">vettery.com/fragmented</a></p>
<h2><a href="https://go.bitrise.io/fragmented">Bitrise</a></h2>
<p>Build amazing apps in Java, Kotlin or whatever tech you prefer and use Bitrise to automate your Android integration, build, test and deploy process quickly and easily.</p>
<p>Sign up for an exquisite pair of Bitrise Branded Socks at https://go.bitrise.io/fragmented</p>
<h1>Contact</h1>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="40493649" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/7892be37-26cb-47ea-92c2-71173bdbc84c/179-technical-talk-tips_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>179: Kaushiks Top Tips For Giving A Technical Talk</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/7892be37-26cb-47ea-92c2-71173bdbc84c/3000x3000/1572232145-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:42:08</itunes:duration>
      <itunes:summary>So Kaushik is speaking at the Mobilization conference in Poland and instead of practicing the talk alone in his hotel room, he decided to record this episode on how he writes a technical talk. 
</itunes:summary>
      <itunes:subtitle>So Kaushik is speaking at the Mobilization conference in Poland and instead of practicing the talk alone in his hotel room, he decided to record this episode on how he writes a technical talk. 
</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>179</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">68d4cd74-c48b-4267-8db8-18cd8f1a3bbb</guid>
      <title>178: Learning New Languages</title>
      <description><![CDATA[<p>As Android developers we know Java and now Kotlin. But to become even more seasoned developers, learning newer languages can be a level booster.</p>
<p>The list can go on and on, especially if you've been in the industry awhile. So, when does it make sense for you to learn a new language?</p>
<p>When should you learn a new language? When does it make sense? How do you do it?</p>
<p>In this episode KG and Donn discuss the merits of learning new languages, what new languages they’ve picked up and how they feel its important for them and their careers as developers.</p>
<h1>Sponsor</h1>
<p>Build amazing apps in Java, Kotlin or whatever tech you prefer and use Bitrise to automate your Android integration, build, test and deploy process quickly and easily.</p>
<p>Sign up for an exquisite pair of Bitrise Branded Socks at https://go.bitrise.io/fragmented</p>
<h1>Contact</h1>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 14 Oct 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>As Android developers we know Java and now Kotlin. But to become even more seasoned developers, learning newer languages can be a level booster.</p>
<p>The list can go on and on, especially if you've been in the industry awhile. So, when does it make sense for you to learn a new language?</p>
<p>When should you learn a new language? When does it make sense? How do you do it?</p>
<p>In this episode KG and Donn discuss the merits of learning new languages, what new languages they’ve picked up and how they feel its important for them and their careers as developers.</p>
<h1>Sponsor</h1>
<p>Build amazing apps in Java, Kotlin or whatever tech you prefer and use Bitrise to automate your Android integration, build, test and deploy process quickly and easily.</p>
<p>Sign up for an exquisite pair of Bitrise Branded Socks at https://go.bitrise.io/fragmented</p>
<h1>Contact</h1>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="34049259" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/88f088c9-f814-4ffa-9d4a-af7f1c9494d0/178-learning-new-languages_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>178: Learning New Languages</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/88f088c9-f814-4ffa-9d4a-af7f1c9494d0/3000x3000/1570742360-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:35:25</itunes:duration>
      <itunes:summary>As Android developers we know Java and now Kotlin. But to become even more seasoned developers, learning newer languages can be a level booster. 

In this episode KG and Donn discuss the merits of learning new languages, what new languages they’ve picked up and how they feel its important for them and their careers as developers. . </itunes:summary>
      <itunes:subtitle>As Android developers we know Java and now Kotlin. But to become even more seasoned developers, learning newer languages can be a level booster. 

In this episode KG and Donn discuss the merits of learning new languages, what new languages they’ve picked up and how they feel its important for them and their careers as developers. . </itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>178</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">e685b0ba-aadf-4595-b189-5ba8f44c5bde</guid>
      <title>177: Over-Engineered Code</title>
      <description><![CDATA[<p>How do you know if some code is over-engineered?</p>
<p>What does that even look like?</p>
<p>How do you know if you're over-engineering the code that you're writing?</p>
<p>What if you recently started at a new company, how do you know if the code you're working with is over-engineered?</p>
<p>In this episode, Kaushik and Donn go back and forth on this topic ...</p>
<h1>Sponsor</h1>
<p>This episode is sponsored by <a href="https://instabug.com/android/sdk?utm_source=fragmented&amp;utm_medium=podcasts&amp;utm_campaign=fragmented-podcasts-q419-october">Instabug</a> -</p>
<p>Understand How Your App is Doing with Real-Time Contextual Insights From Your Users</p>
<h1>Contact</h1>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 7 Oct 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>How do you know if some code is over-engineered?</p>
<p>What does that even look like?</p>
<p>How do you know if you're over-engineering the code that you're writing?</p>
<p>What if you recently started at a new company, how do you know if the code you're working with is over-engineered?</p>
<p>In this episode, Kaushik and Donn go back and forth on this topic ...</p>
<h1>Sponsor</h1>
<p>This episode is sponsored by <a href="https://instabug.com/android/sdk?utm_source=fragmented&amp;utm_medium=podcasts&amp;utm_campaign=fragmented-podcasts-q419-october">Instabug</a> -</p>
<p>Understand How Your App is Doing with Real-Time Contextual Insights From Your Users</p>
<h1>Contact</h1>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="29863810" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/1e13a98d-be01-4710-8956-56f2907b3598/177-overengineering-code_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>177: Over-Engineered Code</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/1e13a98d-be01-4710-8956-56f2907b3598/3000x3000/1570394975-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:31:03</itunes:duration>
      <itunes:summary> In this episode, Kaushik and Donn go back and forth on the topic of over-engineered code. 

</itunes:summary>
      <itunes:subtitle> In this episode, Kaushik and Donn go back and forth on the topic of over-engineered code. 

</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>177</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">3ba74160-c9eb-4505-9406-524bb4a991f3</guid>
      <title>176: Kotlin&apos;s !! Operator is a Code Smell</title>
      <description><![CDATA[<p>Kotlin isn't a magic bullet that prevents NullPointerExceptions.</p>
<p>Not at all.</p>
<p>What Kotlin does do is force you to think about how you want to handle your nulls. through Kotlin forcing you to think this through, the hope is that you'll avoid NullPointerExceptions. The only problem is, Kotlin has the !! operator, also known as the &quot;Not Null Assertion Operator&quot;. This operator basically says &quot;Hey Kotlin, trust me, I'm a pro, I know what I'm doing ... I KNOW THIS WON'T BE NULL&quot;.</p>
<p>This... is a code smell.</p>
<p>In this episode, Donn walks through why Kotlin's Not Null Assertion Operator (!!) is a code smell and what you can do to alleviate it.</p>
<h1>Thanks To This Week's Sponsor: <a href="https://go.bitrise.io/fragmented">Bitrise</a></h1>
<p>Build amazing apps in Java, Kotlin or whatever tech you prefer and use Bitrise to automate your Android integration, build, test and deploy process quickly and easily. Sign up for an exquisite pair of Bitrise Branded Socks, here! https://go.bitrise.io/fragmented</p>
<h1>Contact</h1>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 30 Sep 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Kotlin isn't a magic bullet that prevents NullPointerExceptions.</p>
<p>Not at all.</p>
<p>What Kotlin does do is force you to think about how you want to handle your nulls. through Kotlin forcing you to think this through, the hope is that you'll avoid NullPointerExceptions. The only problem is, Kotlin has the !! operator, also known as the &quot;Not Null Assertion Operator&quot;. This operator basically says &quot;Hey Kotlin, trust me, I'm a pro, I know what I'm doing ... I KNOW THIS WON'T BE NULL&quot;.</p>
<p>This... is a code smell.</p>
<p>In this episode, Donn walks through why Kotlin's Not Null Assertion Operator (!!) is a code smell and what you can do to alleviate it.</p>
<h1>Thanks To This Week's Sponsor: <a href="https://go.bitrise.io/fragmented">Bitrise</a></h1>
<p>Build amazing apps in Java, Kotlin or whatever tech you prefer and use Bitrise to automate your Android integration, build, test and deploy process quickly and easily. Sign up for an exquisite pair of Bitrise Branded Socks, here! https://go.bitrise.io/fragmented</p>
<h1>Contact</h1>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="15374644" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/74019945-740f-4b3f-862f-957a22955df1/20190930-kotlin-not-null-assertion-code-smell_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>176: Kotlin&apos;s !! Operator is a Code Smell</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/74019945-740f-4b3f-862f-957a22955df1/3000x3000/1569895445-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:15:59</itunes:duration>
      <itunes:summary>In this episode, Donn walks through why Kotlin&apos;s Not Null Assertion Operator (!!) is a code smell and what you can do to alleviate it.</itunes:summary>
      <itunes:subtitle>In this episode, Donn walks through why Kotlin&apos;s Not Null Assertion Operator (!!) is a code smell and what you can do to alleviate it.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>176</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">d22f8e4e-8d13-4076-a1ea-3b190e7d02af</guid>
      <title>175: Kotlin or Java - Which one should you learn?</title>
      <description><![CDATA[<p>One question that Kaushik and I get all the time is this ...</p>
<blockquote>
<p>I'm starting to learn how to build Android apps, which language should<br />
I learn? Kotlin or Java?</p>
</blockquote>
<p>In this episode Donn answers this question and gives valid points on why both languages are valid options and why you might want to consider one over the other.</p>
<p>He provides caveats to why you might want to use one language over another and some of the trade offs of Java and Kotlin and how they operate together.</p>
<p>If you're wrestling with this question, this is the show for you ...</p>
<h2>Thanks to this week's sponsor: <a href="https://go.bitrise.io/fragmented">Bitrise</a></h2>
<p>Build amazing apps in Java, Kotlin or whatever tech you prefer and use Bitrise to automate your Android integration, build, test and deploy process quickly and easily. Sign up for an exquisite pair of Bitrise Branded Socks, here! https://go.bitrise.io/fragmented</p>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 23 Sep 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>One question that Kaushik and I get all the time is this ...</p>
<blockquote>
<p>I'm starting to learn how to build Android apps, which language should<br />
I learn? Kotlin or Java?</p>
</blockquote>
<p>In this episode Donn answers this question and gives valid points on why both languages are valid options and why you might want to consider one over the other.</p>
<p>He provides caveats to why you might want to use one language over another and some of the trade offs of Java and Kotlin and how they operate together.</p>
<p>If you're wrestling with this question, this is the show for you ...</p>
<h2>Thanks to this week's sponsor: <a href="https://go.bitrise.io/fragmented">Bitrise</a></h2>
<p>Build amazing apps in Java, Kotlin or whatever tech you prefer and use Bitrise to automate your Android integration, build, test and deploy process quickly and easily. Sign up for an exquisite pair of Bitrise Branded Socks, here! https://go.bitrise.io/fragmented</p>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="19046623" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/79644160-c7af-498e-aaa7-31ee29a95c65/175-kotlin-or-java-which-one-should-you-learn_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>175: Kotlin or Java - Which one should you learn?</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/79644160-c7af-498e-aaa7-31ee29a95c65/3000x3000/1569104041-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:19:47</itunes:duration>
      <itunes:summary>One question that Kaushik and I get all the time is this ...

&gt; I&apos;m starting to learn how to build Android apps, which language should I learn? Kotlin or Java?

In this episode Donn answers this question and gives valid points on why both languages are valid options and why you might want to consider one over the other.</itunes:summary>
      <itunes:subtitle>One question that Kaushik and I get all the time is this ...

&gt; I&apos;m starting to learn how to build Android apps, which language should I learn? Kotlin or Java?

In this episode Donn answers this question and gives valid points on why both languages are valid options and why you might want to consider one over the other.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>175</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">1be5250d-70a3-44d5-8d16-b7343804cb92</guid>
      <title>174: Testing RxJava, Debugging and More</title>
      <description><![CDATA[<p>Kaushik is back in this weeks podcast. 🎉</p>
<p>Donn and Kaushik talk about testing RxJava streams with a Kotlin extension method and how and when to test various scenarios.<br />
Donn talks about his thoughs on the Testing Pyramid and why he think's its incorrect and how you can help shift your thinking in regards to it. They then talk about IDE themes and how the theme can help you with your day to day development and more.</p>
<p>They wrap up with some talk about devleoping on Mac's vs Windows and Linux.</p>
<p>We hope you enjoy ...</p>
<h1>Contact</h1>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 2 Sep 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Kaushik is back in this weeks podcast. 🎉</p>
<p>Donn and Kaushik talk about testing RxJava streams with a Kotlin extension method and how and when to test various scenarios.<br />
Donn talks about his thoughs on the Testing Pyramid and why he think's its incorrect and how you can help shift your thinking in regards to it. They then talk about IDE themes and how the theme can help you with your day to day development and more.</p>
<p>They wrap up with some talk about devleoping on Mac's vs Windows and Linux.</p>
<p>We hope you enjoy ...</p>
<h1>Contact</h1>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="38757612" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/2cda6b4a-b77f-48d1-aeec-5104cc55a7b5/debugging_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>174: Testing RxJava, Debugging and More</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/2cda6b4a-b77f-48d1-aeec-5104cc55a7b5/3000x3000/1567192941-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:40:19</itunes:duration>
      <itunes:summary>Kaushik is back in this weeks podcast. 🎉
</itunes:summary>
      <itunes:subtitle>Kaushik is back in this weeks podcast. 🎉
</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>174</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">94cecf0c-af66-4235-996e-bd05c29fe2b7</guid>
      <title>173: What Pattern Should I Use - MVP, MVVM, MVI ...?</title>
      <description><![CDATA[<p>This week Donn talks about what pattern you should use when developing your application. Is it MVP? MVVM? Mabye MVI? Perhaps it's something else. Find out in this episode.</p>
<p>We hope you enjoy ...</p>
<h2>Shownotes</h2>
<h3>Patters</h3>
<ul>
<li><a href="https://caster.io/courses/mvp">MVP Pattern</a></li>
<li><a href="https://caster.io/courses/android-mvvm-pattern">MVVM Pattern</a></li>
<li><a href="https%5B%5D://caster.io/courses/android-mvi-pattern">MVI Pattern</a></li>
<li><a href="https://caster.io/courses/android-mvrx-fundamentals">MvRx</a></li>
<li><a href="https://caster.io/courses/android-clean-architecture">Clean Arhictecture</a></li>
</ul>
<h3>Mocking Out the API in Espresso</h3>
<ul>
<li><a href="https://caster.io/courses/mockwebserver">MockWebServer Course</a></li>
<li><a href="http://wiremock.org/docs/android/">WireMock Android</a></li>
</ul>
<h1>Contact</h1>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 26 Aug 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>This week Donn talks about what pattern you should use when developing your application. Is it MVP? MVVM? Mabye MVI? Perhaps it's something else. Find out in this episode.</p>
<p>We hope you enjoy ...</p>
<h2>Shownotes</h2>
<h3>Patters</h3>
<ul>
<li><a href="https://caster.io/courses/mvp">MVP Pattern</a></li>
<li><a href="https://caster.io/courses/android-mvvm-pattern">MVVM Pattern</a></li>
<li><a href="https%5B%5D://caster.io/courses/android-mvi-pattern">MVI Pattern</a></li>
<li><a href="https://caster.io/courses/android-mvrx-fundamentals">MvRx</a></li>
<li><a href="https://caster.io/courses/android-clean-architecture">Clean Arhictecture</a></li>
</ul>
<h3>Mocking Out the API in Espresso</h3>
<ul>
<li><a href="https://caster.io/courses/mockwebserver">MockWebServer Course</a></li>
<li><a href="http://wiremock.org/docs/android/">WireMock Android</a></li>
</ul>
<h1>Contact</h1>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="12528171" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/3b5b4586-5946-473b-8912-262cd81d56bc/what-pattern-should-i-use-mvp-mvvm-mvi_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>173: What Pattern Should I Use - MVP, MVVM, MVI ...?</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/3b5b4586-5946-473b-8912-262cd81d56bc/3000x3000/1566585878-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:13:00</itunes:duration>
      <itunes:summary>This week Donn talks about what pattern you should use when developing your application.</itunes:summary>
      <itunes:subtitle>This week Donn talks about what pattern you should use when developing your application.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>173</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">af248939-55ab-48d2-960e-5ace0b03c712</guid>
      <title>172: Coil Image Loading Library with Colin White</title>
      <description><![CDATA[<p>In this episode Donn and Kaushik sit down with Instacart Engineer Colin White to discuss a new image library he has created called Coil.</p>
<p>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 ... &quot;Why create an image library, isn't this a solved problem already?&quot; and then move onto the details of how the library works, and what it offers developers.</p>
<p>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 &quot;just enough&quot; and &quot;I might need this&quot;.</p>
<p>Enjoy</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://coil-kt.github.io/coil/">Coil library</a></li>
<li><a href="https://www.twitter.com/colinwhi">Colin's Twitter</a></li>
<li><a href="https://colinwhite.me/">Colin's Website</a></li>
<li><a href="https://tech.instacart.com/introducing-coil-kotlin-first-image-loading-on-android-f0fdc7a2a99e">Introducing Coil: Kotlin-first image loading on Android</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 12 Aug 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode Donn and Kaushik sit down with Instacart Engineer Colin White to discuss a new image library he has created called Coil.</p>
<p>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 ... &quot;Why create an image library, isn't this a solved problem already?&quot; and then move onto the details of how the library works, and what it offers developers.</p>
<p>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 &quot;just enough&quot; and &quot;I might need this&quot;.</p>
<p>Enjoy</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://coil-kt.github.io/coil/">Coil library</a></li>
<li><a href="https://www.twitter.com/colinwhi">Colin's Twitter</a></li>
<li><a href="https://colinwhite.me/">Colin's Website</a></li>
<li><a href="https://tech.instacart.com/introducing-coil-kotlin-first-image-loading-on-android-f0fdc7a2a99e">Introducing Coil: Kotlin-first image loading on Android</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="55179646" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/08b8bd57-be65-4e33-b8de-1565200df937/172-coil_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>172: Coil Image Loading Library with Colin White</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/08b8bd57-be65-4e33-b8de-1565200df937/3000x3000/1563849857-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:57:25</itunes:duration>
      <itunes:summary>In this episode Donn and Kaushik sit down with Instacart Engineer Colin White to discuss a new image library he has created called Coil. 
</itunes:summary>
      <itunes:subtitle>In this episode Donn and Kaushik sit down with Instacart Engineer Colin White to discuss a new image library he has created called Coil. 
</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>171</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">f9766d2e-da66-4946-96ce-edc2857f1b7d</guid>
      <title>171: Jetpack Compose with Leland Richardson</title>
      <description><![CDATA[<p>This week Donn and Kaushik talk to Leland Richardson from the Android team at Google about Jetpack Compose.</p>
<p>Jetpack Compose is declarative component-based UI runtime for Android. With compose you can build your UI with functions in Kotlin to easily &quot;compose&quot; what your UI would look like.</p>
<p>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...</p>
<p>We hope you enjoy ...</p>
<h2>Shownotes</h2>
<ul>
<li><a href="http://intelligiblebabble.com/compose-from-first-principles/">Jetpack Compose First Principels</a></li>
<li><a href="https://speakerdeck.com/lelandrichardson/react-meet-compose">React, Meet Compose Slides</a></li>
<li><a href="https://developer.android.com/jetpack/compose">Jetpack Compose Android Dev Docs</a></li>
</ul>
<h2>Leland's Contact info:</h2>
<ul>
<li><a href="https://twitter.com/intelligibabble">Twitter</a></li>
<li><a href="http://intelligiblebabble.com">Website</a></li>
</ul>
<h2>Fragmented Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 29 Jul 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>This week Donn and Kaushik talk to Leland Richardson from the Android team at Google about Jetpack Compose.</p>
<p>Jetpack Compose is declarative component-based UI runtime for Android. With compose you can build your UI with functions in Kotlin to easily &quot;compose&quot; what your UI would look like.</p>
<p>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...</p>
<p>We hope you enjoy ...</p>
<h2>Shownotes</h2>
<ul>
<li><a href="http://intelligiblebabble.com/compose-from-first-principles/">Jetpack Compose First Principels</a></li>
<li><a href="https://speakerdeck.com/lelandrichardson/react-meet-compose">React, Meet Compose Slides</a></li>
<li><a href="https://developer.android.com/jetpack/compose">Jetpack Compose Android Dev Docs</a></li>
</ul>
<h2>Leland's Contact info:</h2>
<ul>
<li><a href="https://twitter.com/intelligibabble">Twitter</a></li>
<li><a href="http://intelligiblebabble.com">Website</a></li>
</ul>
<h2>Fragmented Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="68763725" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/6bc8f871-7403-48a1-848e-872f817b0083/jetpackcompose_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>171: Jetpack Compose with Leland Richardson</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/6bc8f871-7403-48a1-848e-872f817b0083/3000x3000/1563850050-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:11:35</itunes:duration>
      <itunes:summary>This week Donn and Kaushik talk to Leland Richardson from the Android team at Google about Jetpack Compose.
</itunes:summary>
      <itunes:subtitle>This week Donn and Kaushik talk to Leland Richardson from the Android team at Google about Jetpack Compose.
</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>172</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">4c063c51-187a-445e-8876-c87ba3480f61</guid>
      <title>170: Developer Growth - Public Speaking</title>
      <description><![CDATA[<p>In this episode, Donn talks about public speaking and how it can help you grow your career.</p>
<p>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.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://fragmentedpodcast.com/episodes/154">Fragmented #154 - Developer Growth: Start Writing</a></li>
<li><a href="https://www.donnfelker.com/the-single-best-thing-you-can-do-for-your-career/">The Single Best Thing You Can Do For Your Career</a></li>
</ul>
<h1>Sponsor</h1>
<p>This episode is sponsored by <a href="https://instabug.com/fragmented?utm_source=fragmented&amp;utm_medium=podcasts&amp;utm_campaign=fragmented-podcasts-q319-july">Instabug</a>.<br />
Squash bugs 🐞 in less than a minute with Instabug!</p>
<p>Special offer for all listeners, go to <a href="https://instabug.com/fragmented?utm_source=fragmented&amp;utm_medium=podcasts&amp;utm_campaign=fragmented-podcasts-q319-july">instabug.com/fragmented</a><br />
Signup for free, install the SDK, and you will get Instabug's brand new t-shirt!</p>
<h1>Contact</h1>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Tue, 23 Jul 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn talks about public speaking and how it can help you grow your career.</p>
<p>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.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://fragmentedpodcast.com/episodes/154">Fragmented #154 - Developer Growth: Start Writing</a></li>
<li><a href="https://www.donnfelker.com/the-single-best-thing-you-can-do-for-your-career/">The Single Best Thing You Can Do For Your Career</a></li>
</ul>
<h1>Sponsor</h1>
<p>This episode is sponsored by <a href="https://instabug.com/fragmented?utm_source=fragmented&amp;utm_medium=podcasts&amp;utm_campaign=fragmented-podcasts-q319-july">Instabug</a>.<br />
Squash bugs 🐞 in less than a minute with Instabug!</p>
<p>Special offer for all listeners, go to <a href="https://instabug.com/fragmented?utm_source=fragmented&amp;utm_medium=podcasts&amp;utm_campaign=fragmented-podcasts-q319-july">instabug.com/fragmented</a><br />
Signup for free, install the SDK, and you will get Instabug's brand new t-shirt!</p>
<h1>Contact</h1>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="31286573" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/813e17d3-e0fd-4e9b-b038-fb2aaab01eaf/170-developer-growth-public-speaking_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>170: Developer Growth - Public Speaking</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/813e17d3-e0fd-4e9b-b038-fb2aaab01eaf/3000x3000/1563827575-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:32:32</itunes:duration>
      <itunes:summary>In this episode, Donn talks about public speaking and how it can help you grow your career. 
</itunes:summary>
      <itunes:subtitle>In this episode, Donn talks about public speaking and how it can help you grow your career. 
</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>170</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">6ea926bb-982e-4003-a638-3e122714cf49</guid>
      <title>169: Testing and JUnit 5 with Marcel Schnelle</title>
      <description><![CDATA[<p>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.</p>
<p>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.</p>
<p>Enjoy.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://caster.io/courses/junit5-fundamentals">Caster.IO JUnit 5 Course</a></li>
<li><a href="https://github.com/mannodermaus/android-junit5">JUnit 5 Android Plugin</a></li>
<li><a href="https://junit.org/junit5/docs/current/user-guide/">JUnit5 User Guide</a></li>
<li><a href="https://www.youtube.com/watch?v=5fIkkoPtPaw">Danny Preussler: The next gen of testing - Droidcon NYC 2018 (YouTube)</a></li>
<li><a href="https://www.youtube.com/watch?v=r-8EGXMFJaw">Marc Philipp: JUnit 5 Extensions - Joker 2017 (YouTube)</a></li>
<li><a href="https://github.com/spekframework/spek">Spek Framework Testing for Kotlin</a></li>
</ul>
<p>Get ahold of Marcel:</p>
<ul>
<li><a href="https://www.twitter.com/marcelschnelle">Marcel Schnelle Twitter</a></li>
<li><a href="https://mannodermaus.de">Marcel Schnelle Website</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a> -  Your code is broken. Let’s fix it together - https://sentry.io/for/android/</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 15 Jul 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>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.</p>
<p>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.</p>
<p>Enjoy.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://caster.io/courses/junit5-fundamentals">Caster.IO JUnit 5 Course</a></li>
<li><a href="https://github.com/mannodermaus/android-junit5">JUnit 5 Android Plugin</a></li>
<li><a href="https://junit.org/junit5/docs/current/user-guide/">JUnit5 User Guide</a></li>
<li><a href="https://www.youtube.com/watch?v=5fIkkoPtPaw">Danny Preussler: The next gen of testing - Droidcon NYC 2018 (YouTube)</a></li>
<li><a href="https://www.youtube.com/watch?v=r-8EGXMFJaw">Marc Philipp: JUnit 5 Extensions - Joker 2017 (YouTube)</a></li>
<li><a href="https://github.com/spekframework/spek">Spek Framework Testing for Kotlin</a></li>
</ul>
<p>Get ahold of Marcel:</p>
<ul>
<li><a href="https://www.twitter.com/marcelschnelle">Marcel Schnelle Twitter</a></li>
<li><a href="https://mannodermaus.de">Marcel Schnelle Website</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a> -  Your code is broken. Let’s fix it together - https://sentry.io/for/android/</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="63906628" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/8c2a5039-b2b7-4cea-a707-b4b1015d5aaa/169-testing-and-junit-5-with-marcel-schnelle_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>169: Testing and JUnit 5 with Marcel Schnelle</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/8c2a5039-b2b7-4cea-a707-b4b1015d5aaa/3000x3000/1562733918-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:06:31</itunes:duration>
      <itunes:summary>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&apos;re convinced you&apos;ll enjoy this episode and leave wanting to get your app under test - even more than it already is. 

Enjoy.
</itunes:summary>
      <itunes:subtitle>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&apos;re convinced you&apos;ll enjoy this episode and leave wanting to get your app under test - even more than it already is. 

Enjoy.
</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>169</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">8fd08698-8413-41d4-979b-f920fef52479</guid>
      <title>168: Learning Kotlin: Lambda Expressions Part 2</title>
      <description><![CDATA[<p>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.</p>
<p>This is a very dense episode - if you get lost look at the code snippets below or view on them on <a href="https://fragmentedpodcast.com/episodes/168/">fragmentedpodcast.com</a></p>
<pre><code class="language-kotlin">
class LogReader {
    fun processFile(file: File, processLine: (String) -&gt; Unit = {}) {
        file.forEachLine {
            println(&quot;Number of Chars: ${it.length}&quot;)
            processLine(it)
            println(&quot;Line Done Processing&quot;)
        }
    }

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

interface LogHandler {
    fun handleLine(): List&lt;(String) -&gt; Unit&gt;
}


val reader = LogReader()
val textFile = File(&quot;/Users/donnfelker/scratch/lorem.txt&quot;)

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

val logHandler = object : LogHandler {
    override fun handleLine(): List&lt;(String) -&gt; Unit&gt; {
        return listOf&lt;(String) -&gt; Unit&gt;(
            { line -&gt; println(&quot;${line.substring(0, 1)}&quot;) },
            { line -&gt; println(&quot;${line.substring(2, 4)}&quot;) },
            { line -&gt; println(&quot;${line.substring(5, 10)}&quot;) }
        )
    }
}

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


</code></pre>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a> -  Your code is broken. Let’s fix it together - https://sentry.io/for/android/</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 8 Jul 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>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.</p>
<p>This is a very dense episode - if you get lost look at the code snippets below or view on them on <a href="https://fragmentedpodcast.com/episodes/168/">fragmentedpodcast.com</a></p>
<pre><code class="language-kotlin">
class LogReader {
    fun processFile(file: File, processLine: (String) -&gt; Unit = {}) {
        file.forEachLine {
            println(&quot;Number of Chars: ${it.length}&quot;)
            processLine(it)
            println(&quot;Line Done Processing&quot;)
        }
    }

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

interface LogHandler {
    fun handleLine(): List&lt;(String) -&gt; Unit&gt;
}


val reader = LogReader()
val textFile = File(&quot;/Users/donnfelker/scratch/lorem.txt&quot;)

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

val logHandler = object : LogHandler {
    override fun handleLine(): List&lt;(String) -&gt; Unit&gt; {
        return listOf&lt;(String) -&gt; Unit&gt;(
            { line -&gt; println(&quot;${line.substring(0, 1)}&quot;) },
            { line -&gt; println(&quot;${line.substring(2, 4)}&quot;) },
            { line -&gt; println(&quot;${line.substring(5, 10)}&quot;) }
        )
    }
}

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


</code></pre>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a> -  Your code is broken. Let’s fix it together - https://sentry.io/for/android/</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="20776349" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/79af803a-7537-41a5-a8e4-98043f463812/168_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>168: Learning Kotlin: Lambda Expressions Part 2</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/79af803a-7537-41a5-a8e4-98043f463812/3000x3000/1562456847-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:21:37</itunes:duration>
      <itunes:summary>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.</itunes:summary>
      <itunes:subtitle>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.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>168</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">27ba6958-4517-41d4-b9ea-3d0f6aa6dbc5</guid>
      <title>167: Clean Architecture with Joe Birch</title>
      <description><![CDATA[<p>Donn sits down with Buffer Android Lead, Joe Birch. Joe is a GDE for Android, Google Actions, Flutter and Google Pay. In this episode Donn and Joe talk about Clean Architecture, what it is, and why you might want to use it.</p>
<p>They break down the concept of what Clean Architecture is in a manner that is easy for even a beginner to understand.</p>
<p>Enjoy.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://caster.io/courses/android-clean-architecture">Caster.IO Course</a></li>
<li>[Uncle Bob Clean Arch]https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html</li>
<li><a href="https://github.com/bufferapp/android-clean-architecture-boilerplate">Buffer Clean Architecture BoilerPlate</a></li>
<li><a href="https://www.chordassist.com/">Chord Assist Guitar</a></li>
</ul>
<p>Get ahold of Joe:</p>
<ul>
<li><a href="https://www.twitter.com/hitherejoe">Joe Birch Twitter</a></li>
<li><a href="http://instagram.com/hitherejoe">Joe Birch Instagram</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a> -  Your code is broken. Let’s fix it together - https://sentry.io/for/android/</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 1 Jul 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Donn sits down with Buffer Android Lead, Joe Birch. Joe is a GDE for Android, Google Actions, Flutter and Google Pay. In this episode Donn and Joe talk about Clean Architecture, what it is, and why you might want to use it.</p>
<p>They break down the concept of what Clean Architecture is in a manner that is easy for even a beginner to understand.</p>
<p>Enjoy.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://caster.io/courses/android-clean-architecture">Caster.IO Course</a></li>
<li>[Uncle Bob Clean Arch]https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html</li>
<li><a href="https://github.com/bufferapp/android-clean-architecture-boilerplate">Buffer Clean Architecture BoilerPlate</a></li>
<li><a href="https://www.chordassist.com/">Chord Assist Guitar</a></li>
</ul>
<p>Get ahold of Joe:</p>
<ul>
<li><a href="https://www.twitter.com/hitherejoe">Joe Birch Twitter</a></li>
<li><a href="http://instagram.com/hitherejoe">Joe Birch Instagram</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a> -  Your code is broken. Let’s fix it together - https://sentry.io/for/android/</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="47697307" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/3f5adf25-ff4b-4ece-a8ae-514a5c247b8d/clean-architecture-with-joe-birch_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>167: Clean Architecture with Joe Birch</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/3f5adf25-ff4b-4ece-a8ae-514a5c247b8d/3000x3000/1561698951-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:49:38</itunes:duration>
      <itunes:summary>Donn sits down with Buffer Android Lead, Joe Birch. Joe is a GDE for Android, Google Actions, Flutter and Google Pay. In this episode Donn and Joe talk about Clean Architecture, what it is, and why you might want to use it. 

They break down the concept of what Clean Architecture is in a manner that is easy for even a beginner to understand.

Enjoy.</itunes:summary>
      <itunes:subtitle>Donn sits down with Buffer Android Lead, Joe Birch. Joe is a GDE for Android, Google Actions, Flutter and Google Pay. In this episode Donn and Joe talk about Clean Architecture, what it is, and why you might want to use it. 

They break down the concept of what Clean Architecture is in a manner that is easy for even a beginner to understand.

Enjoy.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>167</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">d328c3f1-1ef5-40ff-be58-0ed9b0f28016</guid>
      <title>166: Cross platform development talk with Jesse Wilson</title>
      <description><![CDATA[<p>Kaushik decides to hit record on a skype call he has with friend of the show Jesse Wilson. They start off by discussing building features across different platforms today. Jesse talks about a clever mechanism of using javascript to change logic on the fly across the Square cash app, that's worked out pretty well. They then go on to discussing how one can try and converge across platforms in terms of business logic, architecture, naming etc. They then wind it down by discussing the state of Flutter, Kotlin multiplatform and reaching the promised land.</p>
<p>Enjoy.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://www.objc.io/">objc.io</a></li>
<li><a href="https://twitter.com/kpgalligan">Kevin Galligan</a></li>
<li><a href="https://twitter.com/Strongolopolis">Alec Strong</a></li>
<li><a href="https://twitter.com/EgorAnd">Egor Andreevich</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://instabug.com/fragmented?utm_source=fragmented&amp;utm_medium=podcasts&amp;utm_campaign=fragmented-podcasts-q219-june">Instabug</a></li>
</ul>
<p>Instabug completely takes care of your beta testing and user feedback process so you can debug, fix, and improve your app quality faster. They're giving Fragmented listeners a special bonus when you go to <a href="https://instabug.com/fragmented?utm_source=fragmented&amp;utm_medium=podcasts&amp;utm_campaign=fragmented-podcasts-q219-june">instabug.com/fragmented</a> - Signup for free, install the SDK, and you will get Instabug's brand new t-shirt</p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/jessewilson">@jessewilson</a></li>
<li><a href="https://twitter.com/chrismlacy">@chrismlacy</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 24 Jun 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Kaushik decides to hit record on a skype call he has with friend of the show Jesse Wilson. They start off by discussing building features across different platforms today. Jesse talks about a clever mechanism of using javascript to change logic on the fly across the Square cash app, that's worked out pretty well. They then go on to discussing how one can try and converge across platforms in terms of business logic, architecture, naming etc. They then wind it down by discussing the state of Flutter, Kotlin multiplatform and reaching the promised land.</p>
<p>Enjoy.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://www.objc.io/">objc.io</a></li>
<li><a href="https://twitter.com/kpgalligan">Kevin Galligan</a></li>
<li><a href="https://twitter.com/Strongolopolis">Alec Strong</a></li>
<li><a href="https://twitter.com/EgorAnd">Egor Andreevich</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://instabug.com/fragmented?utm_source=fragmented&amp;utm_medium=podcasts&amp;utm_campaign=fragmented-podcasts-q219-june">Instabug</a></li>
</ul>
<p>Instabug completely takes care of your beta testing and user feedback process so you can debug, fix, and improve your app quality faster. They're giving Fragmented listeners a special bonus when you go to <a href="https://instabug.com/fragmented?utm_source=fragmented&amp;utm_medium=podcasts&amp;utm_campaign=fragmented-podcasts-q219-june">instabug.com/fragmented</a> - Signup for free, install the SDK, and you will get Instabug's brand new t-shirt</p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/jessewilson">@jessewilson</a></li>
<li><a href="https://twitter.com/chrismlacy">@chrismlacy</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="42864909" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/d92d25dd-092c-4843-b528-b7206cef57ab/167_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>166: Cross platform development talk with Jesse Wilson</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/d92d25dd-092c-4843-b528-b7206cef57ab/3000x3000/1560997985-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:44:36</itunes:duration>
      <itunes:summary>Kaushik decides to hit record on a skype call he has with friend of the show Jesse Wilson. They start off by discussing building features across different platforms today.</itunes:summary>
      <itunes:subtitle>Kaushik decides to hit record on a skype call he has with friend of the show Jesse Wilson. They start off by discussing building features across different platforms today.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>166</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">e4dfb0c9-05cc-48fd-b58b-e4fa4c56d0ca</guid>
      <title>165: Learning Kotlin: Lambda Expressions Part 1</title>
      <description><![CDATA[<p>In this episode, Donn talks about Kotlin Lambda Expressions. He explains the syntax and how to build a couple of simple lambda expressions with and without type inference and declaration. We wrap up with a small example of passing a small lambda with multiple values to a function. See the show notes below for more info. This is part 1 of a multi-part series on Lambda Expressions in Kotlin.</p>
<p>The basic syntax of a lambda expression:</p>
<pre><code class="language-kotlin">val myLambda : Type = { argumentList -&gt; codeBody }
</code></pre>
<p>The codeBody is the only section that is not optional.</p>
<p>Double lambda expression (doubles an integer) with type inference</p>
<pre><code class="language-kotlin">val double = { number: Int -&gt; number * 2 }
val result = double(4)
// result = 8 now
</code></pre>
<p>Double string multi-line lambda with type inference.</p>
<pre><code class="language-kotlin">val doubleString = { number: Int -&gt; 
	// codebody
	val doubleResult = number * 2
	doubleResult.toString() 
	// Kotlin knows this will return a string
}
</code></pre>
<p>Type declaration in a lambda</p>
<pre><code class="language-kotlin">val myLambda: (String, Int) -&gt; String  = { str, int -&gt; 
	&quot;$str - ${int.toString()}&quot; // &quot;Donn - 32&quot; 
}
val result = myLambda(&quot;Donn&quot;, 32)
// result = &quot;Donn - 32&quot;
</code></pre>
<p>Preview of next week … passing a lambda to a  function</p>
<pre><code class="language-kotlin">fun doWork(name: String, favoriteNumber: Int, someLambda: (String, Int) -&gt; String) {
    // Do some processing, this is a contrived example
    val repeatedString = &quot;$name$name&quot;
    val result = someLambda(repeatedString, favoriteNumber)
    println(result)
}

// Usage
doWork(&quot;Donn&quot;, 32) { str, int -&gt;
    val someNewValue = &quot;$str is my parameter and so is $int&quot;
    someNewValue.length.toString() // this is returned
}

// '37' is printed via println

// Or use it like this, the lambda code body is what can change, this is where the power is at
doWork(&quot;Donn&quot;, 32) { name, count -&gt;
    var result = &quot;&quot;
    for(i in 1..count)  { result += &quot;$name&quot; }
    result // this is returned
}

// loops over and concatinates &quot;Donn&quot; until the favorite number (aka count) is met. 
// Output looks like: &quot;DonnDonnDonnDonnDonnDonn...&quot; and so on... 

</code></pre>
]]></description>
      <pubDate>Mon, 17 Jun 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn talks about Kotlin Lambda Expressions. He explains the syntax and how to build a couple of simple lambda expressions with and without type inference and declaration. We wrap up with a small example of passing a small lambda with multiple values to a function. See the show notes below for more info. This is part 1 of a multi-part series on Lambda Expressions in Kotlin.</p>
<p>The basic syntax of a lambda expression:</p>
<pre><code class="language-kotlin">val myLambda : Type = { argumentList -&gt; codeBody }
</code></pre>
<p>The codeBody is the only section that is not optional.</p>
<p>Double lambda expression (doubles an integer) with type inference</p>
<pre><code class="language-kotlin">val double = { number: Int -&gt; number * 2 }
val result = double(4)
// result = 8 now
</code></pre>
<p>Double string multi-line lambda with type inference.</p>
<pre><code class="language-kotlin">val doubleString = { number: Int -&gt; 
	// codebody
	val doubleResult = number * 2
	doubleResult.toString() 
	// Kotlin knows this will return a string
}
</code></pre>
<p>Type declaration in a lambda</p>
<pre><code class="language-kotlin">val myLambda: (String, Int) -&gt; String  = { str, int -&gt; 
	&quot;$str - ${int.toString()}&quot; // &quot;Donn - 32&quot; 
}
val result = myLambda(&quot;Donn&quot;, 32)
// result = &quot;Donn - 32&quot;
</code></pre>
<p>Preview of next week … passing a lambda to a  function</p>
<pre><code class="language-kotlin">fun doWork(name: String, favoriteNumber: Int, someLambda: (String, Int) -&gt; String) {
    // Do some processing, this is a contrived example
    val repeatedString = &quot;$name$name&quot;
    val result = someLambda(repeatedString, favoriteNumber)
    println(result)
}

// Usage
doWork(&quot;Donn&quot;, 32) { str, int -&gt;
    val someNewValue = &quot;$str is my parameter and so is $int&quot;
    someNewValue.length.toString() // this is returned
}

// '37' is printed via println

// Or use it like this, the lambda code body is what can change, this is where the power is at
doWork(&quot;Donn&quot;, 32) { name, count -&gt;
    var result = &quot;&quot;
    for(i in 1..count)  { result += &quot;$name&quot; }
    result // this is returned
}

// loops over and concatinates &quot;Donn&quot; until the favorite number (aka count) is met. 
// Output looks like: &quot;DonnDonnDonnDonnDonnDonn...&quot; and so on... 

</code></pre>
]]></content:encoded>
      <enclosure length="15044039" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/9667b3d9-010e-4eae-9de7-8737c4bc1059/fragmented-ef-java-17-final_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>165: Learning Kotlin: Lambda Expressions Part 1</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/9667b3d9-010e-4eae-9de7-8737c4bc1059/3000x3000/1560789563-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:15:39</itunes:duration>
      <itunes:summary>In this episode, Donn talks about Kotlin Lambda Expressions. He explains the syntax and how to build a couple of simple lambda expressions with and without type inference and declaration. We wrap up with a small example of passing a small lambda with multiple values to a function. See the show notes below for more info.
</itunes:summary>
      <itunes:subtitle>In this episode, Donn talks about Kotlin Lambda Expressions. He explains the syntax and how to build a couple of simple lambda expressions with and without type inference and declaration. We wrap up with a small example of passing a small lambda with multiple values to a function. See the show notes below for more info.
</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>165</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">161e1ab6-becd-4c8d-a1a7-8ff2dffe4716</guid>
      <title>164: Learning Kotlin: Sealed Classes</title>
      <description><![CDATA[<p>In this episode, you'll learn all about Kotlin Sealed classes. Donn walks you through what they are, how to create them, how to use data classes, objects and regular classes to create a restricted type hierarchy.</p>
<ul>
<li><a href="https://kotlinlang.org/docs/reference/sealed-classes.html">Kotlin Sealed Classes</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a> -  Your code is broken. Let’s fix it together - https://sentry.io/for/android/</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 10 Jun 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, you'll learn all about Kotlin Sealed classes. Donn walks you through what they are, how to create them, how to use data classes, objects and regular classes to create a restricted type hierarchy.</p>
<ul>
<li><a href="https://kotlinlang.org/docs/reference/sealed-classes.html">Kotlin Sealed Classes</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a> -  Your code is broken. Let’s fix it together - https://sentry.io/for/android/</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="19780504" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/8c860232-bf6d-4546-b0c5-9b8ad39ad487/fragmented-ef-java-17-final_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>164: Learning Kotlin: Sealed Classes</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/8c860232-bf6d-4546-b0c5-9b8ad39ad487/3000x3000/1560101832-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:20:35</itunes:duration>
      <itunes:summary>In this episode, you&apos;ll learn all about Kotlin Sealed classes. Donn walks you through what they are, how to create them, how to use data classes, objects and regular classes to create a restricted type hierarchy. 
</itunes:summary>
      <itunes:subtitle>In this episode, you&apos;ll learn all about Kotlin Sealed classes. Donn walks you through what they are, how to create them, how to use data classes, objects and regular classes to create a restricted type hierarchy. 
</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>164</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">4af3d814-5cc9-4909-be75-b06ab8bc0514</guid>
      <title>163: Parallelize Your Espresso Tests with Flank w/ Matt Runo</title>
      <description><![CDATA[<p>In this episode, Donn talks to Matt Runo about the Flank project. Using Flank you can run your Espresso test suite in parallel on Firebase Test Lab (FTL). This allows you to lower your feedback loop time and increase developer productivity and throughput. You'll learn all about Flank, how it works and how to get started in this episode.</p>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a> -  Your code is broken. Let’s fix it together - https://sentry.io/for/android/</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 3 Jun 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn talks to Matt Runo about the Flank project. Using Flank you can run your Espresso test suite in parallel on Firebase Test Lab (FTL). This allows you to lower your feedback loop time and increase developer productivity and throughput. You'll learn all about Flank, how it works and how to get started in this episode.</p>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a> -  Your code is broken. Let’s fix it together - https://sentry.io/for/android/</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="37511536" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/af395b4c-c791-4685-acc7-396ee8f8e223/matt-runo_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>163: Parallelize Your Espresso Tests with Flank w/ Matt Runo</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/af395b4c-c791-4685-acc7-396ee8f8e223/3000x3000/1554661360-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:39:01</itunes:duration>
      <itunes:summary>In this episode, Donn talks to Matt Runo about the Flank project. Using Flank you can run your Espresso test suite in parallel on Firebase Test Lab (FTL). This allows you to lower your feedback loop time and increase developer productivity and throughput. </itunes:summary>
      <itunes:subtitle>In this episode, Donn talks to Matt Runo about the Flank project. Using Flank you can run your Espresso test suite in parallel on Firebase Test Lab (FTL). This allows you to lower your feedback loop time and increase developer productivity and throughput. </itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>163</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">eb4072a7-7846-4583-8113-f111b1694569</guid>
      <title>162: Catching up on Google IO 2019</title>
      <description><![CDATA[<h2>Shownotes</h2>
<ul>
<li><a href="https://www.digitaltrends.com/mobile/google-pixel-3a-vs-pixel-3-vs-pixel-2/">Digital trends: Comparing Pixel 2, 3 and 3A</a></li>
<li><a href="http://myactivity.google.com/">Google Activity tracking</a></li>
<li><a href="https://myaccount.google.com/activitycontrols">Google Activity tracking Controls</a></li>
<li><a href="https://medium.com/flutter-io/bringing-flutter-to-the-web-904de05f0df0">Flutter for Web</a></li>
<li><a href="https://www.youtube.com/watch?v=Ljtz7T8R_Hk">New navigation paradigm in Android Q</a></li>
<li><a href="https://www.youtube.com/watch?v=8rfvfojtRss">What's new in Android Deveopment Tools - Torr's IO talk</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://instabug.com/fragmented">Instabug</a> -  Instabug is an SDK that completely takes care of your beta testing and user feedback process so you can debug, fix, and improve your app quality faster. Go to <a href="https://instabug.com/fragmented">instabug.com/fragmented</a>, signup, install the SDK, and you will get their brand new t-shirt and a 14-day free trial.</li>
</ul>
]]></description>
      <pubDate>Mon, 27 May 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<h2>Shownotes</h2>
<ul>
<li><a href="https://www.digitaltrends.com/mobile/google-pixel-3a-vs-pixel-3-vs-pixel-2/">Digital trends: Comparing Pixel 2, 3 and 3A</a></li>
<li><a href="http://myactivity.google.com/">Google Activity tracking</a></li>
<li><a href="https://myaccount.google.com/activitycontrols">Google Activity tracking Controls</a></li>
<li><a href="https://medium.com/flutter-io/bringing-flutter-to-the-web-904de05f0df0">Flutter for Web</a></li>
<li><a href="https://www.youtube.com/watch?v=Ljtz7T8R_Hk">New navigation paradigm in Android Q</a></li>
<li><a href="https://www.youtube.com/watch?v=8rfvfojtRss">What's new in Android Deveopment Tools - Torr's IO talk</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://instabug.com/fragmented">Instabug</a> -  Instabug is an SDK that completely takes care of your beta testing and user feedback process so you can debug, fix, and improve your app quality faster. Go to <a href="https://instabug.com/fragmented">instabug.com/fragmented</a>, signup, install the SDK, and you will get their brand new t-shirt and a 14-day free trial.</li>
</ul>
]]></content:encoded>
      <enclosure length="50516839" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/8fcd26fb-1e66-47cb-abad-c7a9dc96de79/io-2019-roundup_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>162: Catching up on Google IO 2019</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/8fcd26fb-1e66-47cb-abad-c7a9dc96de79/3000x3000/1558730089-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:52:34</itunes:duration>
      <itunes:summary>This Google IO, Donn and Kaushik didn&apos;t interview the other developers but they still enjoyed some of the announcements. So in this episode they catch up on the ones they found most exciting.

Enjoy.</itunes:summary>
      <itunes:subtitle>This Google IO, Donn and Kaushik didn&apos;t interview the other developers but they still enjoyed some of the announcements. So in this episode they catch up on the ones they found most exciting.

Enjoy.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>162</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">8e24cc5a-97d8-4b5d-8ee7-844eb4f821f4</guid>
      <title>161: Machine Learning on Android with ML Kit and TensorFlow with Dan Jarvis</title>
      <description><![CDATA[<p>In this show, Donn talks with Dan Jarvis about Machine Learning on Android with ML Kit and Tensor flow.</p>
<p>They dive deep into what ML (Machine Learning) is, what you need to know as a developer and how to apply those things to build ML applications on Android.</p>
<p>They tal about what you can do on Android in regards to ML, model training and running the models on the device. You may be wondering if you should include the model in your app or if it should live on a server, that's discused as well and the reasons for it.</p>
<p>They wrap up the show with some examples of what you could build and some great resources to get you started.</p>
<p>Enjoy</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://medium.com/@daj/what-can-machine-learning-do-f126d010c478_">What Can Machine Learning Do?</a></li>
<li><a href="https://firebase.google.com/docs/ml-kit">ML Kit</a></li>
<li><a href="https://www.youtube.com/watch?v=ejrn_JHksws&amp;feature=youtu.be">ML Kit Demo Video</a></li>
<li><a href="https://github.com/firebase/quickstart-android/tree/master/mlkit?authuser=0">ML Kit Quickstart</a></li>
<li><a href="https://firebase.google.com/docs/ml-kit/label-images">Image Labeling Example</a></li>
<li><a href="https://firebase.google.com/docs/ml-kit/use-custom-models">Custom Models</a></li>
<li><a href="https://medium.com/@daj/how-does-prisma-work-f434273da92a">How Does Prisma Work?</a></li>
<li><a href="https://cloud.google.com/blog/products/gcp/how-a-japanese-cucumber-farmer-is-using-deep-learning-and-tensorflow">Cucumber Example</a></li>
<li><a href="https://medium.com/capital-one-tech/tensorflow-image-classifiers-on-android-android-things-and-ios-82cee88095d3">Tensorflow Demo Apps</a></li>
<li><a href="https://inside.com/ai">Inside AI Newsletter</a></li>
<li><a href="https://www.tensorflow.org/lite/guide">TensorFlow Lite</a></li>
<li><a href="https://www.youtube.com/watch?v=DKosV_-4pdQ">TensorFlow Lite (TF Dev Summit '19) - [VIDEO]</a></li>
<li><a href="https://ai.googleblog.com/2018/05/custom-on-device-ml-models.html">Custom On-Device ML Models with Learn2Compress</a></li>
<li><a href="https://www.tensorflow.org/lite/microcontrollers/overview">Microcontoller Support</a></li>
<li><a href="https://www.theverge.com/2018/12/17/18144356/ai-image-generation-fake-faces-people-nvidia-generative-adversarial-networks-gans">Face Generation</a></li>
<li><a href="https://www.youtube.com/watch?v=B6Xx67liMCk">DroidCon NYC Applied Tensorflow iN Android Apps</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a> -  Your code is broken. Let’s fix it together - https://sentry.io/for/android/</li>
</ul>
<h2>Contact</h2>
<ul>
<li>Contact Dan Jarvis on <a href="https://www.linkedin.com/in/danielalanjarvis/">LinkedIn</a>, <a href="https://medium.com/@daj">Medium</a> or <a href="https://github.com/daj">GitHub</a></li>
<li>Donn Felker - <a href="https://twitter.com/donnfelker">@donnfelker</a> (Twitter) and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (Instagram)</li>
<li>Kaushik Gopal - <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> (Twitter) and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (Instagram)</li>
<li>Fragmented on Twitter: <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a></li>
<li><a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">Our YouTube channel</a></li>
<li>Join thousands of other developers on <a href="17">our free chat server</a>. Ask questions, answer questions, be part of the community at our <a href="https://discord.gg/zBSfhwk">The Fragmented Discord chat</a></li>
</ul>
]]></description>
      <pubDate>Mon, 20 May 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this show, Donn talks with Dan Jarvis about Machine Learning on Android with ML Kit and Tensor flow.</p>
<p>They dive deep into what ML (Machine Learning) is, what you need to know as a developer and how to apply those things to build ML applications on Android.</p>
<p>They tal about what you can do on Android in regards to ML, model training and running the models on the device. You may be wondering if you should include the model in your app or if it should live on a server, that's discused as well and the reasons for it.</p>
<p>They wrap up the show with some examples of what you could build and some great resources to get you started.</p>
<p>Enjoy</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://medium.com/@daj/what-can-machine-learning-do-f126d010c478_">What Can Machine Learning Do?</a></li>
<li><a href="https://firebase.google.com/docs/ml-kit">ML Kit</a></li>
<li><a href="https://www.youtube.com/watch?v=ejrn_JHksws&amp;feature=youtu.be">ML Kit Demo Video</a></li>
<li><a href="https://github.com/firebase/quickstart-android/tree/master/mlkit?authuser=0">ML Kit Quickstart</a></li>
<li><a href="https://firebase.google.com/docs/ml-kit/label-images">Image Labeling Example</a></li>
<li><a href="https://firebase.google.com/docs/ml-kit/use-custom-models">Custom Models</a></li>
<li><a href="https://medium.com/@daj/how-does-prisma-work-f434273da92a">How Does Prisma Work?</a></li>
<li><a href="https://cloud.google.com/blog/products/gcp/how-a-japanese-cucumber-farmer-is-using-deep-learning-and-tensorflow">Cucumber Example</a></li>
<li><a href="https://medium.com/capital-one-tech/tensorflow-image-classifiers-on-android-android-things-and-ios-82cee88095d3">Tensorflow Demo Apps</a></li>
<li><a href="https://inside.com/ai">Inside AI Newsletter</a></li>
<li><a href="https://www.tensorflow.org/lite/guide">TensorFlow Lite</a></li>
<li><a href="https://www.youtube.com/watch?v=DKosV_-4pdQ">TensorFlow Lite (TF Dev Summit '19) - [VIDEO]</a></li>
<li><a href="https://ai.googleblog.com/2018/05/custom-on-device-ml-models.html">Custom On-Device ML Models with Learn2Compress</a></li>
<li><a href="https://www.tensorflow.org/lite/microcontrollers/overview">Microcontoller Support</a></li>
<li><a href="https://www.theverge.com/2018/12/17/18144356/ai-image-generation-fake-faces-people-nvidia-generative-adversarial-networks-gans">Face Generation</a></li>
<li><a href="https://www.youtube.com/watch?v=B6Xx67liMCk">DroidCon NYC Applied Tensorflow iN Android Apps</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a> -  Your code is broken. Let’s fix it together - https://sentry.io/for/android/</li>
</ul>
<h2>Contact</h2>
<ul>
<li>Contact Dan Jarvis on <a href="https://www.linkedin.com/in/danielalanjarvis/">LinkedIn</a>, <a href="https://medium.com/@daj">Medium</a> or <a href="https://github.com/daj">GitHub</a></li>
<li>Donn Felker - <a href="https://twitter.com/donnfelker">@donnfelker</a> (Twitter) and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (Instagram)</li>
<li>Kaushik Gopal - <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> (Twitter) and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (Instagram)</li>
<li>Fragmented on Twitter: <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a></li>
<li><a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">Our YouTube channel</a></li>
<li>Join thousands of other developers on <a href="17">our free chat server</a>. Ask questions, answer questions, be part of the community at our <a href="https://discord.gg/zBSfhwk">The Fragmented Discord chat</a></li>
</ul>
]]></content:encoded>
      <enclosure length="56987600" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/07ece4e4-c2a6-4383-ad0c-c49b342b6252/161-machine-learning-on-andorid-with-ml-kit-tnesorflow_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>161: Machine Learning on Android with ML Kit and TensorFlow with Dan Jarvis</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/07ece4e4-c2a6-4383-ad0c-c49b342b6252/3000x3000/1557549816-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:59:19</itunes:duration>
      <itunes:summary>In this show, Donn talks with Dan Jarvis about Machine Learning on Android with ML Kit and Tensor flow. 
</itunes:summary>
      <itunes:subtitle>In this show, Donn talks with Dan Jarvis about Machine Learning on Android with ML Kit and Tensor flow. 
</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>161</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">576665f1-9906-43d2-9473-b38a25523c3e</guid>
      <title>160: Increase App Engagement with Android Q</title>
      <description><![CDATA[<p>With the release of Android Q we now have the settings panel and all its glory. This panel, while most likely overlooked as a minor feature, is actually a diamond in the rough.</p>
<p>Why?</p>
<p>Simply because it's going to lower the abandonment rate of your app and increase the engagement of your app at the same time. Donn talks about this in depth in this episode.</p>
<p>Enjoy.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://developer.android.com/preview/features">Android Q Features</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a> -  Your code is broken. Let’s fix it together - https://sentry.io/for/android/</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 13 May 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>With the release of Android Q we now have the settings panel and all its glory. This panel, while most likely overlooked as a minor feature, is actually a diamond in the rough.</p>
<p>Why?</p>
<p>Simply because it's going to lower the abandonment rate of your app and increase the engagement of your app at the same time. Donn talks about this in depth in this episode.</p>
<p>Enjoy.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://developer.android.com/preview/features">Android Q Features</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a> -  Your code is broken. Let’s fix it together - https://sentry.io/for/android/</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="11210244" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/d812623c-2b9f-4603-8aca-bd03c67103af/160-increase-app-engagement-with-android-q_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>160: Increase App Engagement with Android Q</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/d812623c-2b9f-4603-8aca-bd03c67103af/3000x3000/1557202109-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:11:37</itunes:duration>
      <itunes:summary>With the release of Android Q we now have the settings panel and all its glory. This panel, while most likely overlooked as a minor feature, is actually a diamond in the rough. 
</itunes:summary>
      <itunes:subtitle>With the release of Android Q we now have the settings panel and all its glory. This panel, while most likely overlooked as a minor feature, is actually a diamond in the rough. 
</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>161</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">bb9cb689-eecf-4c98-bd12-63fbef7b7a79</guid>
      <title>159: Improve Your App with the Android Material Components (feat. Cameron Ketcham &amp; Connie Shi)</title>
      <description><![CDATA[<p>In this show, Donn and Kaushik talk to Cameron Ketcham and Connie Shi from the Android Material Components team at Google.</p>
<p>The Android Material Components are material designed components that you can easily drop into your application with just a few small tweaks. You get a bunch of fully built out material components, from the Android Material team at Google. From Chips, to Cards, to Buttons and much much more ... the goal is to enable you to build your application faster when using these components.</p>
<p>Donn and Kaushik talk to Cameraon and Connie about the components and how to use them in this episode.</p>
<p>Enjoy</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://material.io">Material.io Website</a></li>
<li><a href="https://material.io/develop/android/">Android Material Components</a></li>
<li><a href="https://github.com/material-components/material-components-android">Material Components GitHub</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.google.android.apps.tasks&amp;hl=en_US">Tasks App</a></li>
<li><a href="https://material.io/collections/developer-tutorials/#android-kotlin">Developer Tutorials</a></li>
<li><a href="https://www.youtube.com/watch?v=DPH3F0v1jB0">AndroidDev Summit Talk</a></li>
<li><a href="https://material.io/tools/theme-editor/">Material Theme Editor</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a> -  Your code is broken. Let’s fix it together - https://sentry.io/for/android/</li>
</ul>
<h2>Contact</h2>
<ul>
<li>Contact Cameron and Connit at - <a href="https://github.com/material-components/material-components-android/issues">GitHub Issues</a>, <a href="https://stackoverflow.com/questions/tagged/material-components-android">StackOverflow</a></li>
<li>Donn Felker - <a href="https://twitter.com/donnfelker">@donnfelker</a> (Twitter) and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (Instagram)</li>
<li>Kaushik Gopal - <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> (Twitter) and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (Instagram)</li>
<li>Fragmented on Twitter: <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a></li>
<li><a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">Our YouTube channel</a></li>
<li>Join thousands of other developers on <a href="17">our free chat server</a>. Ask questions, answer questions, be part of the community at our <a href="https://discord.gg/zBSfhwk">The Fragmented Discord chat</a></li>
</ul>
]]></description>
      <pubDate>Mon, 6 May 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this show, Donn and Kaushik talk to Cameron Ketcham and Connie Shi from the Android Material Components team at Google.</p>
<p>The Android Material Components are material designed components that you can easily drop into your application with just a few small tweaks. You get a bunch of fully built out material components, from the Android Material team at Google. From Chips, to Cards, to Buttons and much much more ... the goal is to enable you to build your application faster when using these components.</p>
<p>Donn and Kaushik talk to Cameraon and Connie about the components and how to use them in this episode.</p>
<p>Enjoy</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://material.io">Material.io Website</a></li>
<li><a href="https://material.io/develop/android/">Android Material Components</a></li>
<li><a href="https://github.com/material-components/material-components-android">Material Components GitHub</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.google.android.apps.tasks&amp;hl=en_US">Tasks App</a></li>
<li><a href="https://material.io/collections/developer-tutorials/#android-kotlin">Developer Tutorials</a></li>
<li><a href="https://www.youtube.com/watch?v=DPH3F0v1jB0">AndroidDev Summit Talk</a></li>
<li><a href="https://material.io/tools/theme-editor/">Material Theme Editor</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a> -  Your code is broken. Let’s fix it together - https://sentry.io/for/android/</li>
</ul>
<h2>Contact</h2>
<ul>
<li>Contact Cameron and Connit at - <a href="https://github.com/material-components/material-components-android/issues">GitHub Issues</a>, <a href="https://stackoverflow.com/questions/tagged/material-components-android">StackOverflow</a></li>
<li>Donn Felker - <a href="https://twitter.com/donnfelker">@donnfelker</a> (Twitter) and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (Instagram)</li>
<li>Kaushik Gopal - <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> (Twitter) and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (Instagram)</li>
<li>Fragmented on Twitter: <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a></li>
<li><a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">Our YouTube channel</a></li>
<li>Join thousands of other developers on <a href="17">our free chat server</a>. Ask questions, answer questions, be part of the community at our <a href="https://discord.gg/zBSfhwk">The Fragmented Discord chat</a></li>
</ul>
]]></content:encoded>
      <enclosure length="50404992" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/9e6489c8-9360-4dbe-93d8-a80dd3d350ad/159-material-components_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>159: Improve Your App with the Android Material Components (feat. Cameron Ketcham &amp; Connie Shi)</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/9e6489c8-9360-4dbe-93d8-a80dd3d350ad/3000x3000/1557074637-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:52:27</itunes:duration>
      <itunes:summary>In this show, Donn and Kaushik talk to Cameron Ketcham and Connie Shi from the Android Material Components team at Google. 
</itunes:summary>
      <itunes:subtitle>In this show, Donn and Kaushik talk to Cameron Ketcham and Connie Shi from the Android Material Components team at Google. 
</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>160</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">77cd0308-bb71-4bd3-8caf-df5d80119ec9</guid>
      <title>158: Building High Performance Audio on Android</title>
      <description><![CDATA[<p>In this show, Donn and Kaushik talk to Don Turner about how to build high-performance audio apps on Android.</p>
<p>We dive deep into history of audio on Android, some of the problems that the platform faced. Then look into the tools that we now have to solve those problems so that developers like you can build killer audio apps.</p>
<p>Enjoy.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://developer.android.com/preview/features/midi">Android Midi</a></li>
<li><a href="https://github.com/google/oboe">Oboe</a></li>
<li><a href="https://www.youtube.com/watch?v=csfHAbr5ilI&amp;list=PLWz5rJ2EKKc_duWv9IPNvx9YBudNMmLSa">Intro to Oboe</a> (Video)</li>
<li><a href="https://events.google.com/io/schedule/events/ad90afc2-bf1f-4318-abc0-d7e8df67bf07">Google IO 2019 Talk</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li>Don Turner - <a href="https://twitter.com/donturner">@donturner</a></li>
<li>Donn Felker - <a href="https://twitter.com/donnfelker">@donnfelker</a> (Twitter) and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (Instagram)</li>
<li>Kaushik Gopal - <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> (Twitter) and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (Instagram)</li>
<li>Fragmented on Twitter: <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a></li>
<li><a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">Our YouTube channel</a></li>
<li>Join thousands of other developers on <a href="17">our free chat server</a>. Ask questions, answer questions, be part of the community at our <a href="https://discord.gg/zBSfhwk">The Fragmented Discord chat</a></li>
</ul>
]]></description>
      <pubDate>Mon, 29 Apr 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this show, Donn and Kaushik talk to Don Turner about how to build high-performance audio apps on Android.</p>
<p>We dive deep into history of audio on Android, some of the problems that the platform faced. Then look into the tools that we now have to solve those problems so that developers like you can build killer audio apps.</p>
<p>Enjoy.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://developer.android.com/preview/features/midi">Android Midi</a></li>
<li><a href="https://github.com/google/oboe">Oboe</a></li>
<li><a href="https://www.youtube.com/watch?v=csfHAbr5ilI&amp;list=PLWz5rJ2EKKc_duWv9IPNvx9YBudNMmLSa">Intro to Oboe</a> (Video)</li>
<li><a href="https://events.google.com/io/schedule/events/ad90afc2-bf1f-4318-abc0-d7e8df67bf07">Google IO 2019 Talk</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li>Don Turner - <a href="https://twitter.com/donturner">@donturner</a></li>
<li>Donn Felker - <a href="https://twitter.com/donnfelker">@donnfelker</a> (Twitter) and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (Instagram)</li>
<li>Kaushik Gopal - <a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> (Twitter) and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (Instagram)</li>
<li>Fragmented on Twitter: <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a></li>
<li><a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">Our YouTube channel</a></li>
<li>Join thousands of other developers on <a href="17">our free chat server</a>. Ask questions, answer questions, be part of the community at our <a href="https://discord.gg/zBSfhwk">The Fragmented Discord chat</a></li>
</ul>
]]></content:encoded>
      <enclosure length="60810420" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/fd4500fc-a3e2-4a12-987b-7315071d75b6/158-don-turner_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>158: Building High Performance Audio on Android</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/fd4500fc-a3e2-4a12-987b-7315071d75b6/3000x3000/1556383034-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:03:17</itunes:duration>
      <itunes:summary>In this show, Donn and Kaushik talk to Don Turner about how to build high-performance audio apps on Android.

We dive deep into history of audio on Android, some of the problems that the platform faced. Then look into the tools that we now have to solve those problems so that developers like you can build killer audio apps.

Enjoy.</itunes:summary>
      <itunes:subtitle>In this show, Donn and Kaushik talk to Don Turner about how to build high-performance audio apps on Android.

We dive deep into history of audio on Android, some of the problems that the platform faced. Then look into the tools that we now have to solve those problems so that developers like you can build killer audio apps.

Enjoy.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>159</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">db1ef66b-f5b1-44bf-a35c-47d8e2179111</guid>
      <title>157: Effective Java Item# 20 - Prefer interfaces to abstract classes</title>
      <description><![CDATA[<p>In this episode, Donn talks about Item #20 in the Effective Java book (third series) by Joshua Bloch. He discusses why you should think about using interfaces over abstract classes, how they can add mixin like behavior to retrofit existing classes with new behavior, default methods, skeleton implementations and more.</p>
<p>Enjoy.</p>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a> -  Your code is broken. Let’s fix it together - https://sentry.io/for/android/</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 1 Apr 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn talks about Item #20 in the Effective Java book (third series) by Joshua Bloch. He discusses why you should think about using interfaces over abstract classes, how they can add mixin like behavior to retrofit existing classes with new behavior, default methods, skeleton implementations and more.</p>
<p>Enjoy.</p>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a> -  Your code is broken. Let’s fix it together - https://sentry.io/for/android/</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="24689483" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/bb01aa88-0a76-4d1a-84c4-f59cb1ff6ea8/effective-java-item20_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>157: Effective Java Item# 20 - Prefer interfaces to abstract classes</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/bb01aa88-0a76-4d1a-84c4-f59cb1ff6ea8/3000x3000/1553483252-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:25:40</itunes:duration>
      <itunes:summary>In this episode, Donn talks about Item #20 in the Effective Java book (third series) by Joshua Bloch. He discusses why you should think about using interfaces over abstract classes.</itunes:summary>
      <itunes:subtitle>In this episode, Donn talks about Item #20 in the Effective Java book (third series) by Joshua Bloch. He discusses why you should think about using interfaces over abstract classes.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>157</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">45d6d37b-127c-464d-990a-821ca3092175</guid>
      <title>156: Increase App Engagement with Android Q</title>
      <description><![CDATA[<p>With the release of Android Q we now have the settings panel and all its glory. This panel, while most likely overlooked as a minor feature, is actually a diamond in the rough.</p>
<p>Why?</p>
<p>Simply because it's going to lower the abandonment rate of your app and increase the engagement of your app at the same time. Donn talks about this in depth in this episode.</p>
<p>Enjoy.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://developer.android.com/preview/features">Android Q Features</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a> -  Your code is broken. Let’s fix it together - https://sentry.io/for/android/</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 18 Mar 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>With the release of Android Q we now have the settings panel and all its glory. This panel, while most likely overlooked as a minor feature, is actually a diamond in the rough.</p>
<p>Why?</p>
<p>Simply because it's going to lower the abandonment rate of your app and increase the engagement of your app at the same time. Donn talks about this in depth in this episode.</p>
<p>Enjoy.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://developer.android.com/preview/features">Android Q Features</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a> -  Your code is broken. Let’s fix it together - https://sentry.io/for/android/</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="11215313" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/11ac84b7-dc58-4d00-bfaf-00fef743f5d4/3-increase_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>156: Increase App Engagement with Android Q</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/11ac84b7-dc58-4d00-bfaf-00fef743f5d4/3000x3000/1552845775-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:11:38</itunes:duration>
      <itunes:summary>With the release of Android Q we now have the settings panel and all its glory. This panel, while most likely overlooked as a minor feature, is actually a diamond in the rough. </itunes:summary>
      <itunes:subtitle>With the release of Android Q we now have the settings panel and all its glory. This panel, while most likely overlooked as a minor feature, is actually a diamond in the rough. </itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>156</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">d3ec36c5-676a-4f79-b3fb-e3f403d9d6c8</guid>
      <title>155: Naming conventions for RxJava Observables</title>
      <description><![CDATA[<p>The Android community has come to use Rx pretty heavily but surprisingly there hasn't been any one convention that's won, when it comes to how we name our functions that return Observables. <code>getUser()</code>, <code>user()</code>, <code>userUpdates()</code> ? In this mini-episode dutifully does the yak-shaving for you and discusses what some options are and what the community has been gravitating towards.</p>
<p>Enjoy.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://www.hanselman.com/blog/YakShavingDefinedIllGetThatDoneAsSoonAsIShaveThisYak.aspx">yak-shaving</a></li>
</ul>
<h3>Upday's convention:</h3>
<ul>
<li><a href="https://twitter.com/fmuntenescu/status/771268111563653120">Florina's tweet</a></li>
<li><a href="http://upday.github.io/blog/reactive_frustrations_1/#reasoning-about-the-code">Upday's blog post - Reactive Frustrations 1</a></li>
</ul>
<h3>Options</h3>
<pre><code>// option 1
fun getUser(): Single
// yuck

// option 2
fun user(): Observable
// but what does this mean?

// option 3
fun user(): Single
fun userUpdates(): Observable
// or
fun userStream(): Observable
// this is looking good

// option 4 (upday style)
fun userOnce(): Single
fun userStream(): Observable
fun userOnceAndStream(): Observable
</code></pre>
<p>Stay tuned for a future episode, where we discuss more details and more complicated cases to handle (like emitting a list of user, policies for fetching the first user as quickly as possible etc.).</p>
<p>Also #FinishNotation.</p>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a> -  Your code is broken. Let’s fix it together - https://sentry.io/for/android/</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 11 Mar 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>The Android community has come to use Rx pretty heavily but surprisingly there hasn't been any one convention that's won, when it comes to how we name our functions that return Observables. <code>getUser()</code>, <code>user()</code>, <code>userUpdates()</code> ? In this mini-episode dutifully does the yak-shaving for you and discusses what some options are and what the community has been gravitating towards.</p>
<p>Enjoy.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://www.hanselman.com/blog/YakShavingDefinedIllGetThatDoneAsSoonAsIShaveThisYak.aspx">yak-shaving</a></li>
</ul>
<h3>Upday's convention:</h3>
<ul>
<li><a href="https://twitter.com/fmuntenescu/status/771268111563653120">Florina's tweet</a></li>
<li><a href="http://upday.github.io/blog/reactive_frustrations_1/#reasoning-about-the-code">Upday's blog post - Reactive Frustrations 1</a></li>
</ul>
<h3>Options</h3>
<pre><code>// option 1
fun getUser(): Single
// yuck

// option 2
fun user(): Observable
// but what does this mean?

// option 3
fun user(): Single
fun userUpdates(): Observable
// or
fun userStream(): Observable
// this is looking good

// option 4 (upday style)
fun userOnce(): Single
fun userStream(): Observable
fun userOnceAndStream(): Observable
</code></pre>
<p>Stay tuned for a future episode, where we discuss more details and more complicated cases to handle (like emitting a list of user, policies for fetching the first user as quickly as possible etc.).</p>
<p>Also #FinishNotation.</p>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a> -  Your code is broken. Let’s fix it together - https://sentry.io/for/android/</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="20647436" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/16f76968-17a4-4e59-9b0d-9f2703b9620e/fragment-observable-naming-project_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>155: Naming conventions for RxJava Observables</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/16f76968-17a4-4e59-9b0d-9f2703b9620e/3000x3000/1552195640-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:21:27</itunes:duration>
      <itunes:summary>The Android community has come to use Rx pretty heavily but surprisingly there hasn&apos;t been any one convention that&apos;s won, when it comes to how we name our functions that return Observables. `getUser()`, `user()`, `userUpdates()` ? In this mini-episode dutifully does the yak-shaving for you and discusses what some options are and what the community has been gravitating towards.

Enjoy.
</itunes:summary>
      <itunes:subtitle>The Android community has come to use Rx pretty heavily but surprisingly there hasn&apos;t been any one convention that&apos;s won, when it comes to how we name our functions that return Observables. `getUser()`, `user()`, `userUpdates()` ? In this mini-episode dutifully does the yak-shaving for you and discusses what some options are and what the community has been gravitating towards.

Enjoy.
</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>155</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">febf7d99-5cdc-4ff9-9dc7-9b03f63f939c</guid>
      <title>154: Developer Growth: Start Writing</title>
      <description><![CDATA[<p>Growing as a developer is important for you, your career and your future. One of the best ways to grow your career is to start writing.</p>
<p>Donn recommends starting a blog or contributing to a blog. The process of writing will expose your weak points in your comprehension of a topic. Refining your communication skills through writing and putting thoughts out into the universe via a blog will broaden your skills as a developer.</p>
<p>Ultimately, writing is about communication and communication is the cornerstone of success in much of anything. In this episode, Donn walks you through why you should start writing to help you grow as a developer.</p>
<p>Enjoy.</p>
<h2>Sponsors 🙏</h2>
<ul>
<li>
<p><a href="https://sentry.io/for/android/">sentry.io</a> - Your code is broken. Let’s fix it together - https://sentry.io/for/android/</p>
</li>
<li>
<p><a href="https://instabug.com/fragmented">Instabug</a>  -They're giving a special offer for all listeners, go to <a href="https://instabug.com/fragmented">instabug.com/fragmented</a>, signup, install the SDK, and you will get a free Instabug t-shirt and a 14-day free trial.</p>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or [our Youtube channel][10]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Tue, 5 Mar 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Growing as a developer is important for you, your career and your future. One of the best ways to grow your career is to start writing.</p>
<p>Donn recommends starting a blog or contributing to a blog. The process of writing will expose your weak points in your comprehension of a topic. Refining your communication skills through writing and putting thoughts out into the universe via a blog will broaden your skills as a developer.</p>
<p>Ultimately, writing is about communication and communication is the cornerstone of success in much of anything. In this episode, Donn walks you through why you should start writing to help you grow as a developer.</p>
<p>Enjoy.</p>
<h2>Sponsors 🙏</h2>
<ul>
<li>
<p><a href="https://sentry.io/for/android/">sentry.io</a> - Your code is broken. Let’s fix it together - https://sentry.io/for/android/</p>
</li>
<li>
<p><a href="https://instabug.com/fragmented">Instabug</a>  -They're giving a special offer for all listeners, go to <a href="https://instabug.com/fragmented">instabug.com/fragmented</a>, signup, install the SDK, and you will get a free Instabug t-shirt and a 14-day free trial.</p>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or [our Youtube channel][10]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="18154700" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/661cd642-be70-4565-acb4-e570ecff8f72/154-developer-growth-start-writing_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>154: Developer Growth: Start Writing</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/661cd642-be70-4565-acb4-e570ecff8f72/3000x3000/1551769065-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:18:51</itunes:duration>
      <itunes:summary>Growing as a developer is important for you, your career and your future. One of the best ways to grow your career is to start writing. 
</itunes:summary>
      <itunes:subtitle>Growing as a developer is important for you, your career and your future. One of the best ways to grow your career is to start writing. 
</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>154</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">0ebd4b58-11c2-4145-9421-1185c6ddfe13</guid>
      <title>153: How to be an indie Android developer with Chris Lacy</title>
      <description><![CDATA[<p>Listen to all star Indie developer and friend of the show Chris Lacy. Chris Lacy created the beloved Action Launcher - arguably one of the best Launcher apps on Android. In this epiisode, he talks to us about what it's like being an indie developer, starting on Action Launcher and of course his newest creation - <a href="https://blog.actionlauncher.com/actiondash-android-digital-wellbeing-alternative-2765746aad51">ActionDash</a>.</p>
<p>Enjoy.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="http://www.tweetlanes.com/">TweetLanes</a></li>
<li><a href="https://actionlauncher.com/">Action Launcher</a></li>
<li><a href="http://theblerg.net/post/2015/08/05/ive-sold-link-bubble-tappath-and-all-related-assets">On selling Link Bubble</a></li>
<li><a href="https://brave.com/">Brave browser</a></li>
</ul>
<h2>ActionDash</h2>
<ul>
<li><a href="https://blog.actionlauncher.com/actiondash-android-digital-wellbeing-alternative-2765746aad51">Introducing ActionDash</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.actiondash.playstore">Download on the play store</a></li>
<li><a href="https://github.com/PhilJay/MPAndroidChart">Slick graph library MPAndroidChart</a></li>
<li><a href="https://blog.actionlauncher.com/now-hiring-7d33d5e12540">Action Launcher is hiring!</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a></li>
<li>Nevercode
<ul>
<li><a href="https://nevercode.io">Nevercode - CI/CD for Android, iOS, React Native &amp; Ionic</a></li>
<li><a href="http://codemagic.io/">Try Codemagic</a></li>
<li><a href="https://blog.codemagic.io/">Join Flutter CI/CD Slack Community</a></li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/chrismlacy">@chrismlacy</a> or <a href="https://blog.actionlauncher.com/now-hiring-7d33d5e12540">work with him</a> or <a href="https://play.google.com/store/apps/details?id=com.actiondash.playstore&amp;hl=en_US">leave a 5 star reviews on ActionDash :)</a></li>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Tue, 19 Feb 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Listen to all star Indie developer and friend of the show Chris Lacy. Chris Lacy created the beloved Action Launcher - arguably one of the best Launcher apps on Android. In this epiisode, he talks to us about what it's like being an indie developer, starting on Action Launcher and of course his newest creation - <a href="https://blog.actionlauncher.com/actiondash-android-digital-wellbeing-alternative-2765746aad51">ActionDash</a>.</p>
<p>Enjoy.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="http://www.tweetlanes.com/">TweetLanes</a></li>
<li><a href="https://actionlauncher.com/">Action Launcher</a></li>
<li><a href="http://theblerg.net/post/2015/08/05/ive-sold-link-bubble-tappath-and-all-related-assets">On selling Link Bubble</a></li>
<li><a href="https://brave.com/">Brave browser</a></li>
</ul>
<h2>ActionDash</h2>
<ul>
<li><a href="https://blog.actionlauncher.com/actiondash-android-digital-wellbeing-alternative-2765746aad51">Introducing ActionDash</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.actiondash.playstore">Download on the play store</a></li>
<li><a href="https://github.com/PhilJay/MPAndroidChart">Slick graph library MPAndroidChart</a></li>
<li><a href="https://blog.actionlauncher.com/now-hiring-7d33d5e12540">Action Launcher is hiring!</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a></li>
<li>Nevercode
<ul>
<li><a href="https://nevercode.io">Nevercode - CI/CD for Android, iOS, React Native &amp; Ionic</a></li>
<li><a href="http://codemagic.io/">Try Codemagic</a></li>
<li><a href="https://blog.codemagic.io/">Join Flutter CI/CD Slack Community</a></li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/chrismlacy">@chrismlacy</a> or <a href="https://blog.actionlauncher.com/now-hiring-7d33d5e12540">work with him</a> or <a href="https://play.google.com/store/apps/details?id=com.actiondash.playstore&amp;hl=en_US">leave a 5 star reviews on ActionDash :)</a></li>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="35939206" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/e50411cd-3f95-4528-b331-48c7962f5d30/153_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>153: How to be an indie Android developer with Chris Lacy</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/e50411cd-3f95-4528-b331-48c7962f5d30/3000x3000/1550539203-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:13:47</itunes:duration>
      <itunes:summary>Listen to all star Indie developer and friend of the show Chris Lacy. Chris Lacy created the beloved Action Launcher - arguably one of the best Launcher apps on Android. In this epi    isode, he talks to us about what it&apos;s like being an indie developer, starting on Action Launcher and of course his newest creation - [ActionDash](https://blog.actionlauncher.com/act    iondash-android-digital-wellbeing-alternative-2765746aad51).

Shownotes: https://fragmentedpodcast.com/episodes/153/</itunes:summary>
      <itunes:subtitle>Listen to all star Indie developer and friend of the show Chris Lacy. Chris Lacy created the beloved Action Launcher - arguably one of the best Launcher apps on Android. In this epi    isode, he talks to us about what it&apos;s like being an indie developer, starting on Action Launcher and of course his newest creation - [ActionDash](https://blog.actionlauncher.com/act    iondash-android-digital-wellbeing-alternative-2765746aad51).

Shownotes: https://fragmentedpodcast.com/episodes/153/</itunes:subtitle>
      <itunes:keywords>action launcher, chris lacy, actiondash, indie development</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>153</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">190fc5ba-0cc3-40c5-8f4e-0ca1323104c2</guid>
      <title>152: Should I Rewrite My App? with Jeroen Mols</title>
      <description><![CDATA[<p>After you've been working on an app for sometime, the most common quandry one runs into is the need to rewrite the app. We've all been there, there's technical debt, we've improved our understanding, the tools have become better, we've become better. So should you go back and just rewrite the whole app? Jeroen walks us through his thinking.</p>
<h2>Shownotes</h2>
<ul>
<li>The big Rewrite - Jeroen's talk
<ul>
<li><a href="https://www.youtube.com/watch?v=he27mDanZgA">Droidcon Italy</a></li>
<li><a href="https://drive.google.com/open?id=1VzjEdMG9MZtaLbzS_RQiFPg0oIl3Vgco">Slides for the talk with notes</a></li>
</ul>
</li>
<li><a href="https://www2.meethue.com/en-us">Philips Hue</a></li>
<li><a href="https://developers.meethue.com/">Philips Hue API</a></li>
</ul>
<h3>Resources</h3>
<ul>
<li><a href="http://chadfowler.com/2006/12/27/the-big-rewrite.html">The big rewrite - Chad Fowler</a></li>
<li><a href="https://jvaneyck.wordpress.com/2015/03/12/the-big-rewrite/">The big rewrite - Jo Van Eyck</a></li>
<li><a href="https://blog.intracto.com/paying-technical-debt-how-to-rescue-legacy-code-through-refactoring">Paying technical depth - Jeroen Moons</a></li>
<li><a href="https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/">Things you should never do - Joel Spolsky</a></li>
<li><a href="https://jeroenmols.com/blog/2017/02/16/unittests/">Write awesome unit tests - Jeroen Mols</a></li>
<li><a href="https://jeroenmols.com/blog/2018/04/26/androidstudioshortcuts2/">Pro Android Studio - refactoring - Jeroen Mols</a></li>
<li><a href="https://eng.uber.com/rewrite-uber-carbon-app/">Why We Decided to Rewrite Uber’s Driver App - Nandhini Ramaswamy and Adam Gluck</a></li>
<li><a href="https://eng.uber.com/author/lzeyuuber-com/">How to Ship an App Rewrite Without Risking Your Entire Business - James Barr, and Zeyu Li</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/molsjeroen">@molsjeroen</a> or <a href="https://jeroenmols.com/blog/">his blog</a> or <a href="https://speakerdeck.com/jeroenmols">his speakerdeck</a></li>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 11 Feb 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>After you've been working on an app for sometime, the most common quandry one runs into is the need to rewrite the app. We've all been there, there's technical debt, we've improved our understanding, the tools have become better, we've become better. So should you go back and just rewrite the whole app? Jeroen walks us through his thinking.</p>
<h2>Shownotes</h2>
<ul>
<li>The big Rewrite - Jeroen's talk
<ul>
<li><a href="https://www.youtube.com/watch?v=he27mDanZgA">Droidcon Italy</a></li>
<li><a href="https://drive.google.com/open?id=1VzjEdMG9MZtaLbzS_RQiFPg0oIl3Vgco">Slides for the talk with notes</a></li>
</ul>
</li>
<li><a href="https://www2.meethue.com/en-us">Philips Hue</a></li>
<li><a href="https://developers.meethue.com/">Philips Hue API</a></li>
</ul>
<h3>Resources</h3>
<ul>
<li><a href="http://chadfowler.com/2006/12/27/the-big-rewrite.html">The big rewrite - Chad Fowler</a></li>
<li><a href="https://jvaneyck.wordpress.com/2015/03/12/the-big-rewrite/">The big rewrite - Jo Van Eyck</a></li>
<li><a href="https://blog.intracto.com/paying-technical-debt-how-to-rescue-legacy-code-through-refactoring">Paying technical depth - Jeroen Moons</a></li>
<li><a href="https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/">Things you should never do - Joel Spolsky</a></li>
<li><a href="https://jeroenmols.com/blog/2017/02/16/unittests/">Write awesome unit tests - Jeroen Mols</a></li>
<li><a href="https://jeroenmols.com/blog/2018/04/26/androidstudioshortcuts2/">Pro Android Studio - refactoring - Jeroen Mols</a></li>
<li><a href="https://eng.uber.com/rewrite-uber-carbon-app/">Why We Decided to Rewrite Uber’s Driver App - Nandhini Ramaswamy and Adam Gluck</a></li>
<li><a href="https://eng.uber.com/author/lzeyuuber-com/">How to Ship an App Rewrite Without Risking Your Entire Business - James Barr, and Zeyu Li</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/molsjeroen">@molsjeroen</a> or <a href="https://jeroenmols.com/blog/">his blog</a> or <a href="https://speakerdeck.com/jeroenmols">his speakerdeck</a></li>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="56422223" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/48f73b97-3d0a-44ce-b6fd-17f8eee9ca1e/152-should-i-rewrite-my-app-with-jeroen-mols_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>152: Should I Rewrite My App? with Jeroen Mols</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/48f73b97-3d0a-44ce-b6fd-17f8eee9ca1e/3000x3000/1549514777-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:58:43</itunes:duration>
      <itunes:summary> Jeroen walks us through his thinking on app development</itunes:summary>
      <itunes:subtitle> Jeroen walks us through his thinking on app development</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>152</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">a35d11bb-6399-40f3-9c5b-ed040fb84f3a</guid>
      <title>151: Evolving Android architectures (Part 2)</title>
      <description><![CDATA[<p>In this episode, we continue our discussion from episode 148 on evolving android architectures. We collected some of the questions from the community and try to answer them.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://fragmentedpodcast.com/episodes/148/">Listen to the recap in episode 148</a></li>
<li><a href="https://tech.instacart.com/lce-modeling-data-loading-in-rxjava-b798ac98d80">LCE: Modeling Data Loading in RxJava</a></li>
<li><a href="https://speakerdeck.com/kaushikgopal/learning-rx-by-example-2?slide=7">Rx example pull from db then network</a> (from KG's presentation)</li>
<li><a href="https://caster.io/lessons/rxjavas-obseravble-amb-operator">Donn's caster.io episode on the amb operator</a></li>
<li><a href="https://fragmentedpodcast.com/episodes/115/">Akshay's episode on Arch components (specifically Live Data)</a></li>
<li><a href="https://medium.com/androiddevelopers/the-android-lifecycle-cheat-sheet-part-i-single-activities-e49fd3d202ab">Jose's cheatseet on Activity lifecycle</a></li>
<li><a href="https://github.com/kaushikgopal/movies-usf/pull/12">KG's example of using this architecture</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a></li>
<li><a href="https://nevercode.io">Nevercode</a>
<ul>
<li><a href="https://www.codemagic.io">Try Codemagic</a> - CI/CD for Flutter apps by Nevercode</li>
<li><a href="https://join.slack.com/t/flutterci/shared_invite/enQtNDcwODIzMjM4MzI2LWJhNWRkMjZlMjk1YzgzNGUwZjQ5NmUxYTI3YjQzODdlMGU1Nzg5OWQ3NGM3NDdhNGIyNjY1YTUzZTgyNTJkMTc">Join Flutter CI/CD Slack Community</a></li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 4 Feb 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, we continue our discussion from episode 148 on evolving android architectures. We collected some of the questions from the community and try to answer them.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://fragmentedpodcast.com/episodes/148/">Listen to the recap in episode 148</a></li>
<li><a href="https://tech.instacart.com/lce-modeling-data-loading-in-rxjava-b798ac98d80">LCE: Modeling Data Loading in RxJava</a></li>
<li><a href="https://speakerdeck.com/kaushikgopal/learning-rx-by-example-2?slide=7">Rx example pull from db then network</a> (from KG's presentation)</li>
<li><a href="https://caster.io/lessons/rxjavas-obseravble-amb-operator">Donn's caster.io episode on the amb operator</a></li>
<li><a href="https://fragmentedpodcast.com/episodes/115/">Akshay's episode on Arch components (specifically Live Data)</a></li>
<li><a href="https://medium.com/androiddevelopers/the-android-lifecycle-cheat-sheet-part-i-single-activities-e49fd3d202ab">Jose's cheatseet on Activity lifecycle</a></li>
<li><a href="https://github.com/kaushikgopal/movies-usf/pull/12">KG's example of using this architecture</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://sentry.io/for/android/">sentry.io</a></li>
<li><a href="https://nevercode.io">Nevercode</a>
<ul>
<li><a href="https://www.codemagic.io">Try Codemagic</a> - CI/CD for Flutter apps by Nevercode</li>
<li><a href="https://join.slack.com/t/flutterci/shared_invite/enQtNDcwODIzMjM4MzI2LWJhNWRkMjZlMjk1YzgzNGUwZjQ5NmUxYTI3YjQzODdlMGU1Nzg5OWQ3NGM3NDdhNGIyNjY1YTUzZTgyNTJkMTc">Join Flutter CI/CD Slack Community</a></li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="27981861" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/a311ac7f-af8b-4ea1-bdef-4abca47e18eb/151_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>151: Evolving Android architectures (Part 2)</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/a311ac7f-af8b-4ea1-bdef-4abca47e18eb/3000x3000/1549243927-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:57:13</itunes:duration>
      <itunes:summary>In this episode, we continue our discussion from episode 148 on evolving android architectures. We collected some of the questions from the community and try to answer them.

Show notes: http://fragmentedpodcast.com/episodes/151/</itunes:summary>
      <itunes:subtitle>In this episode, we continue our discussion from episode 148 on evolving android architectures. We collected some of the questions from the community and try to answer them.

Show notes: http://fragmentedpodcast.com/episodes/151/</itunes:subtitle>
      <itunes:keywords>android architecture, architecting android apps, mvi, mvvm</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>151</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">341109db-e020-48d5-92d5-516d45d5918a</guid>
      <title>150: Learning Kotlin - Returns, Jumps &amp; Labels</title>
      <description><![CDATA[<h2>Shownotes</h2>
<ul>
<li><a href="https://kotlinlang.org/docs/reference/returns.html">Kotlin Returns and Jumps Documentation</a></li>
</ul>
<h2>Code</h2>
<pre><code>data class Customer(val isPlatinum: Boolean)

fun main() {

    val customer = Customer(false)

    println(&quot;Number of points customer has: ${calculatePoints(customer)}&quot;)

    // Break out of the loop once we're over 25
    for (i in 1..100) {
        if (i &gt; 25) {
            break
        } else {
            println(i)
        }
    }


    // Skip all even numbers
    for (i in 1..100) {
        if (i % 2 == 0) {
            continue
        } else {
            println(i)
        }
    }


    // Break out of the outer loop (which breaks out of the inner too) using a label
    donn@ for (i in 1..100) {
        for (j in 100..200) {
            if (j &gt; 150) break@donn // This will break out of the inner loop and outer loop
            else println(&quot;i: $i, j: $j&quot;)
        }
    }

    // Continue processing the next outer loop value when a condition is met.
    donn@ for (i in 1..100) {
        for (j in 100..200) {
            if (j &gt; 150) continue@donn // This will break out of the inner loop and outer loop
            else println(&quot;i: $i, j: $j&quot;)
        }
    }

    // returns with label
    example1()
    example2()

    println(&quot;I'm done processing!&quot;)
}

fun calculatePoints(customer: Customer): Int {
    if (customer.isPlatinum) {
        return 100000
    } else {
        return 10
    }
}


fun example1() {
    listOf(1, 2, 3, 4, 5, 6, 7, 8, 9).forEach {
        if (it &gt; 7) {
            return
        } else {
            println(it)
        }
    }
    println(&quot;This wont print :( because return exited the bar() function&quot;)
}

fun example2() {
    listOf(1, 2, 3, 4, 5, 6, 7, 8, 9).forEach bin@ {
        if (it &gt; 7) {
            return@bin
        } else {
            println(it)
        }
    }
    println(&quot;This will print! :) return exited the forEach!&quot;)
}
</code></pre>
<h2>Sponsors 🙏</h2>
<ul>
<li>
<p><a href="https://nevercode.io">Nevercode</a></p>
<ul>
<li>Nevercode is taking Flutter revolution extremely serious and is prepared to offer kick-ass CI/CD for Flutter projects with <a href="https://codemagic.io/">codemagic.io</a>. Check it out and get started at https://codemagic.io/</li>
</ul>
</li>
<li>
<p><a href="https://sentry.io/for/android/">Sentry.io</a></p>
<ul>
<li>Sentry tells you about errors in your code before your customers have a chance to encounter them.<br />
Check them out at: https://sentry.io/for/android/</li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 21 Jan 2019 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<h2>Shownotes</h2>
<ul>
<li><a href="https://kotlinlang.org/docs/reference/returns.html">Kotlin Returns and Jumps Documentation</a></li>
</ul>
<h2>Code</h2>
<pre><code>data class Customer(val isPlatinum: Boolean)

fun main() {

    val customer = Customer(false)

    println(&quot;Number of points customer has: ${calculatePoints(customer)}&quot;)

    // Break out of the loop once we're over 25
    for (i in 1..100) {
        if (i &gt; 25) {
            break
        } else {
            println(i)
        }
    }


    // Skip all even numbers
    for (i in 1..100) {
        if (i % 2 == 0) {
            continue
        } else {
            println(i)
        }
    }


    // Break out of the outer loop (which breaks out of the inner too) using a label
    donn@ for (i in 1..100) {
        for (j in 100..200) {
            if (j &gt; 150) break@donn // This will break out of the inner loop and outer loop
            else println(&quot;i: $i, j: $j&quot;)
        }
    }

    // Continue processing the next outer loop value when a condition is met.
    donn@ for (i in 1..100) {
        for (j in 100..200) {
            if (j &gt; 150) continue@donn // This will break out of the inner loop and outer loop
            else println(&quot;i: $i, j: $j&quot;)
        }
    }

    // returns with label
    example1()
    example2()

    println(&quot;I'm done processing!&quot;)
}

fun calculatePoints(customer: Customer): Int {
    if (customer.isPlatinum) {
        return 100000
    } else {
        return 10
    }
}


fun example1() {
    listOf(1, 2, 3, 4, 5, 6, 7, 8, 9).forEach {
        if (it &gt; 7) {
            return
        } else {
            println(it)
        }
    }
    println(&quot;This wont print :( because return exited the bar() function&quot;)
}

fun example2() {
    listOf(1, 2, 3, 4, 5, 6, 7, 8, 9).forEach bin@ {
        if (it &gt; 7) {
            return@bin
        } else {
            println(it)
        }
    }
    println(&quot;This will print! :) return exited the forEach!&quot;)
}
</code></pre>
<h2>Sponsors 🙏</h2>
<ul>
<li>
<p><a href="https://nevercode.io">Nevercode</a></p>
<ul>
<li>Nevercode is taking Flutter revolution extremely serious and is prepared to offer kick-ass CI/CD for Flutter projects with <a href="https://codemagic.io/">codemagic.io</a>. Check it out and get started at https://codemagic.io/</li>
</ul>
</li>
<li>
<p><a href="https://sentry.io/for/android/">Sentry.io</a></p>
<ul>
<li>Sentry tells you about errors in your code before your customers have a chance to encounter them.<br />
Check them out at: https://sentry.io/for/android/</li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="18414690" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/6ac744ed-2694-4cf5-963f-1b229cca833c/learning-kotlin-returns-jumps-and-labels_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>150: Learning Kotlin - Returns, Jumps &amp; Labels</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/6ac744ed-2694-4cf5-963f-1b229cca833c/3000x3000/1548017547-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:19:08</itunes:duration>
      <itunes:summary>In this quick fragment, Donn talks about Kotlin Returns and Jumps with Labels and how to implement them in your app. 
</itunes:summary>
      <itunes:subtitle>In this quick fragment, Donn talks about Kotlin Returns and Jumps with Labels and how to implement them in your app. 
</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>150</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">59286836-9613-4cbd-9978-1407a31da604</guid>
      <title>149: Learning Kotlin: inline classes and Type driven design</title>
      <description><![CDATA[<p>In this quick fragment, Kaushik talks about the new Kotlin 1.3 experimental feature &quot;inline classes&quot; and how it helps with Type driven design.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://blog.jetbrains.com/kotlin/2018/10/kotlin-1-3/">Kotlin releases 1.3</a></li>
<li><a href="https://fragmentedpodcast.com/episodes/116/">Fragmented episode #116 - inline, noinline &amp; crossinline</a></li>
<li><a href="https://typealias.com/guides/introduction-to-inline-classes/">Think strong types and simple values</a>
<ul>
<li><a href="https://typealias.com/guides/introduction-to-inline-classes/">typealias.com blog</a></li>
</ul>
</li>
</ul>
<h3>Type driven design resources</h3>
<ul>
<li><a href="https://www.infoq.com/presentations/Type-Functional-Design">Type drive approach to Functional design - Michael Feathers</a></li>
<li><a href="https://becoming-functional.com/type-driven-design-in-elm-f8ad90e642aa">Type driven design in Elm</a></li>
<li><a href="http://blog.ploeh.dk/2015/08/10/type-driven-development/">blog.ploeh - Type driven design</a></li>
</ul>
<h3>Kotlin KEEP</h3>
<ul>
<li><a href="https://github.com/Kotlin/KEEP/blob/master/proposals/inline-classes.md">KEEP proposal - inline classes</a></li>
<li><a href="https://github.com/Kotlin/KEEP/issues/104">KEEP discussion</a></li>
</ul>
<h3>vs typealias</h3>
<ul>
<li><a href="https://fragmentedpodcast.com/episodes/122/">Fragmented Ep #122 - typealiases</a></li>
<li><a href="https://kotlinlang.org/docs/reference/inline-classes.html#inline-classes-vs-type-aliases">inline classes vs typealiases</a></li>
<li><a href="https://fragmentedpodcast.com/episodes/132/">How to represent money in programming</a></li>
<li><a href="https://kotlinlang.org/docs/reference/inline-classes.html#experimental-status-of-inline-classes">Kotlin experimental</a></li>
<li><a href="https://jakewharton.com/inline-classes-make-great-database-ids/">Jake Wharton - inline classes make great database ids</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li>
<p><a href="https://nevercode.io">Nevercode</a></p>
<ul>
<li>Nevercode is taking Flutter revolution extremely serious and is prepared to offer kick-ass CI/CD for Flutter projects with <a href="https://codemagic.io/">codemagic.io</a>. Check it out and get started at https://codemagic.io/</li>
</ul>
</li>
<li>
<p><a href="https://sentry.io/for/android/">Sentry.io</a></p>
<ul>
<li>Sentry tells you about errors in your code before your customers have a chance to encounter them.<br />
Check them out at: https://sentry.io/for/android/</li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Tue, 15 Jan 2019 07:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this quick fragment, Kaushik talks about the new Kotlin 1.3 experimental feature &quot;inline classes&quot; and how it helps with Type driven design.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://blog.jetbrains.com/kotlin/2018/10/kotlin-1-3/">Kotlin releases 1.3</a></li>
<li><a href="https://fragmentedpodcast.com/episodes/116/">Fragmented episode #116 - inline, noinline &amp; crossinline</a></li>
<li><a href="https://typealias.com/guides/introduction-to-inline-classes/">Think strong types and simple values</a>
<ul>
<li><a href="https://typealias.com/guides/introduction-to-inline-classes/">typealias.com blog</a></li>
</ul>
</li>
</ul>
<h3>Type driven design resources</h3>
<ul>
<li><a href="https://www.infoq.com/presentations/Type-Functional-Design">Type drive approach to Functional design - Michael Feathers</a></li>
<li><a href="https://becoming-functional.com/type-driven-design-in-elm-f8ad90e642aa">Type driven design in Elm</a></li>
<li><a href="http://blog.ploeh.dk/2015/08/10/type-driven-development/">blog.ploeh - Type driven design</a></li>
</ul>
<h3>Kotlin KEEP</h3>
<ul>
<li><a href="https://github.com/Kotlin/KEEP/blob/master/proposals/inline-classes.md">KEEP proposal - inline classes</a></li>
<li><a href="https://github.com/Kotlin/KEEP/issues/104">KEEP discussion</a></li>
</ul>
<h3>vs typealias</h3>
<ul>
<li><a href="https://fragmentedpodcast.com/episodes/122/">Fragmented Ep #122 - typealiases</a></li>
<li><a href="https://kotlinlang.org/docs/reference/inline-classes.html#inline-classes-vs-type-aliases">inline classes vs typealiases</a></li>
<li><a href="https://fragmentedpodcast.com/episodes/132/">How to represent money in programming</a></li>
<li><a href="https://kotlinlang.org/docs/reference/inline-classes.html#experimental-status-of-inline-classes">Kotlin experimental</a></li>
<li><a href="https://jakewharton.com/inline-classes-make-great-database-ids/">Jake Wharton - inline classes make great database ids</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li>
<p><a href="https://nevercode.io">Nevercode</a></p>
<ul>
<li>Nevercode is taking Flutter revolution extremely serious and is prepared to offer kick-ass CI/CD for Flutter projects with <a href="https://codemagic.io/">codemagic.io</a>. Check it out and get started at https://codemagic.io/</li>
</ul>
</li>
<li>
<p><a href="https://sentry.io/for/android/">Sentry.io</a></p>
<ul>
<li>Sentry tells you about errors in your code before your customers have a chance to encounter them.<br />
Check them out at: https://sentry.io/for/android/</li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="12377887" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/c2b82606-0114-4f21-8413-1b62db145b96/149_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>149: Learning Kotlin: inline classes and Type driven design</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/c2b82606-0114-4f21-8413-1b62db145b96/3000x3000/1547578601-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:24:42</itunes:duration>
      <itunes:summary>In this quick fragment, Kaushik talks about the new Kotlin 1.3 experimental feature &quot;inline classes&quot; and how it helps with Type driven design.

Show notes:  http://fragmentedpodcast.com/episodes/149/ </itunes:summary>
      <itunes:subtitle>In this quick fragment, Kaushik talks about the new Kotlin 1.3 experimental feature &quot;inline classes&quot; and how it helps with Type driven design.

Show notes:  http://fragmentedpodcast.com/episodes/149/ </itunes:subtitle>
      <itunes:keywords>inline classes, type driven design, kotlin, learning kotlin</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>149</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">b90ae3af-4ddc-47be-8861-3462f8c716ea</guid>
      <title>148: Evolving Android architectures (Part 1)</title>
      <description><![CDATA[<p>In this episode, Donn and Kaushik talk about the state of android architectures and how they've stared to evolve. Kaushik recently worked on a project of coming up with an evolved version of an MVVM architecture, very similar to what the Android community now calls MVI.</p>
<p>Special request: if you have follow up questions or clarifications or things you'd like to see specifically with respect to this dicussion, hit us up on the <a href="https://discord.gg/zBSfhwk">Discord #fragmented-podcast channel</a> with your thoughts and we'll make sure to address them in future parts!</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://speakerdeck.com/kaushikgopal/unidirectional-state-flow-patterns-a-refactoring-story">MBLT-Dev talk by KG : Unidirectional state flow patterns - a refactoring story</a></li>
<li><a href="http://github.com/kaushikgopal/movies-usf/">github sample repo with this pattern</a></li>
</ul>
<h3>Salient features of the pattern:</h3>
<p>I. Screens are driven by a single ViewModel<br />
II. Screens listen to a single Observable exposed from the ViewModel<br />
III. Screens listen to a single Observable exposed from the ViewModel<br />
IV. Events are sent into the VM through a single function processInputs<br />
V. Break(ing) the Chain<br />
VI. Testing strategy</p>
<h3>Inspiration</h3>
<ul>
<li><a href="https://jakewharton.com/the-state-of-managing-state-with-rxjava/">The state of managing state with RxJava</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/103/">MVI patterns with Hannes Dorfmann</a></li>
<li><a href="https://medium.com/airbnb-engineering/introducing-mvrx-android-on-autopilot-552bca86bd0a">MVRx</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li>
<p><a href="https://nevercode.io">Nevercode</a></p>
<ul>
<li>Nevercode is taking Flutter revolution extremely serious and is prepared to offer kick-ass CI/CD for Flutter projects with <a href="https://codemagic.io/">codemagic.io</a>. Check it out and get started at https://codemagic.io/</li>
</ul>
</li>
<li>
<p><a href="https://sentry.io/for/android/">Sentry.io</a></p>
<ul>
<li>Sentry tells you about errors in your code before your customers have a chance to encounter them.<br />
Check them out at: https://sentry.io/for/android/</li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 7 Jan 2019 08:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn and Kaushik talk about the state of android architectures and how they've stared to evolve. Kaushik recently worked on a project of coming up with an evolved version of an MVVM architecture, very similar to what the Android community now calls MVI.</p>
<p>Special request: if you have follow up questions or clarifications or things you'd like to see specifically with respect to this dicussion, hit us up on the <a href="https://discord.gg/zBSfhwk">Discord #fragmented-podcast channel</a> with your thoughts and we'll make sure to address them in future parts!</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://speakerdeck.com/kaushikgopal/unidirectional-state-flow-patterns-a-refactoring-story">MBLT-Dev talk by KG : Unidirectional state flow patterns - a refactoring story</a></li>
<li><a href="http://github.com/kaushikgopal/movies-usf/">github sample repo with this pattern</a></li>
</ul>
<h3>Salient features of the pattern:</h3>
<p>I. Screens are driven by a single ViewModel<br />
II. Screens listen to a single Observable exposed from the ViewModel<br />
III. Screens listen to a single Observable exposed from the ViewModel<br />
IV. Events are sent into the VM through a single function processInputs<br />
V. Break(ing) the Chain<br />
VI. Testing strategy</p>
<h3>Inspiration</h3>
<ul>
<li><a href="https://jakewharton.com/the-state-of-managing-state-with-rxjava/">The state of managing state with RxJava</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/103/">MVI patterns with Hannes Dorfmann</a></li>
<li><a href="https://medium.com/airbnb-engineering/introducing-mvrx-android-on-autopilot-552bca86bd0a">MVRx</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li>
<p><a href="https://nevercode.io">Nevercode</a></p>
<ul>
<li>Nevercode is taking Flutter revolution extremely serious and is prepared to offer kick-ass CI/CD for Flutter projects with <a href="https://codemagic.io/">codemagic.io</a>. Check it out and get started at https://codemagic.io/</li>
</ul>
</li>
<li>
<p><a href="https://sentry.io/for/android/">Sentry.io</a></p>
<ul>
<li>Sentry tells you about errors in your code before your customers have a chance to encounter them.<br />
Check them out at: https://sentry.io/for/android/</li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://discord.gg/zBSfhwk">Discord chat</a> or <a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="56490160" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/e679ae38-2f8a-4988-888a-7b66c57f82a1/148-android-features_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>148: Evolving Android architectures (Part 1)</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/e679ae38-2f8a-4988-888a-7b66c57f82a1/3000x3000/1546877993-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:58:47</itunes:duration>
      <itunes:summary>In this episode, Donn and Kaushik talk about the state of android architectures and how they&apos;ve stared to evolve. Kaushik recently worked on a project of coming up with an evolved version of an MVVM architecture, very similar to what the Android community now calls MVI.

In this episode they discuss the specific. A special request: if you have follow up questions or clarifications or things you&apos;d like to see specifically with respect to this dicussion, hit us up on the [Discord #fragmented-podcast channel](https://discord.gg/zBSfhwk) with your thoughts and we&apos;ll make sure to address them in future parts!

Shownotes: http://fragmentedpodcast.com/episodes/148</itunes:summary>
      <itunes:subtitle>In this episode, Donn and Kaushik talk about the state of android architectures and how they&apos;ve stared to evolve. Kaushik recently worked on a project of coming up with an evolved version of an MVVM architecture, very similar to what the Android community now calls MVI.

In this episode they discuss the specific. A special request: if you have follow up questions or clarifications or things you&apos;d like to see specifically with respect to this dicussion, hit us up on the [Discord #fragmented-podcast channel](https://discord.gg/zBSfhwk) with your thoughts and we&apos;ll make sure to address them in future parts!

Shownotes: http://fragmentedpodcast.com/episodes/148</itunes:subtitle>
      <itunes:keywords>architecture, unidirectional state flow, mvi, mvrx</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>148</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">26088f2a-a412-4926-b585-529022b73183</guid>
      <title>147: Disposing RxJava 2 Streams with AutoDispose</title>
      <description><![CDATA[<p>In this short fragment episode, Donn explains how you can clean up your RxJava 2 streams and ensure no memory leaks are occurring by using the AutoDispose library from Uber.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://github.com/uber/AutoDispose">AutoDispose Library</a></li>
<li><a href="https://github.com/akarnokd/RxJava2Interop">Tool to help migrate to RxJava 2</a><br />
<a href="https://github.com/hzsweers/CatchUp">CatchUp Library</a></li>
</ul>
<h2>Code Samples</h2>
<p><strong>Java</strong></p>
<pre><code>myObservable
	.map(...)
	.as(AutoDispose.autoDisposable(AndroidLifecycleScopeProvider.from(this)))
	.subscribe(...)
</code></pre>
<p><strong>Kotlin</strong></p>
<pre><code>myObservable
	.map(...)
	.autoDisposable(AndroidLifcycleScopeProvider.from(this))
	.subscribe(...)
</code></pre>
<p><strong>With Scope Event Provided</strong></p>
<pre><code>myObservable
	.map(...)
	.autoDisposable(AndroidLifcycleScopeProvider.from(this, Lifecycle.Event.ON_DESTROY))
	.subscribe(...)
</code></pre>
<p><strong>Testing</strong></p>
<pre><code>// File: CustomerService.kt
class CustomerService @Inject constructor(...) {
	lateinit var scopeProvider: ScopeProvider
}

// Usage in Fragment/Activity/etc
val service = CustomerService(...).apply {
	scopeProvider = AndroidLifecycleScopeProvider.from(this)
}

// Usage in Test
val service = CustomerService(...).apply {
	scopeProvider = TestScopeProvider.create()
}
</code></pre>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
<li><a href="https://fragmentedpodcast.com/misc/fragmented-discord-chat-server/">Fragmented Chat</a></li>
</ul>
]]></description>
      <pubDate>Mon, 31 Dec 2018 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this short fragment episode, Donn explains how you can clean up your RxJava 2 streams and ensure no memory leaks are occurring by using the AutoDispose library from Uber.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://github.com/uber/AutoDispose">AutoDispose Library</a></li>
<li><a href="https://github.com/akarnokd/RxJava2Interop">Tool to help migrate to RxJava 2</a><br />
<a href="https://github.com/hzsweers/CatchUp">CatchUp Library</a></li>
</ul>
<h2>Code Samples</h2>
<p><strong>Java</strong></p>
<pre><code>myObservable
	.map(...)
	.as(AutoDispose.autoDisposable(AndroidLifecycleScopeProvider.from(this)))
	.subscribe(...)
</code></pre>
<p><strong>Kotlin</strong></p>
<pre><code>myObservable
	.map(...)
	.autoDisposable(AndroidLifcycleScopeProvider.from(this))
	.subscribe(...)
</code></pre>
<p><strong>With Scope Event Provided</strong></p>
<pre><code>myObservable
	.map(...)
	.autoDisposable(AndroidLifcycleScopeProvider.from(this, Lifecycle.Event.ON_DESTROY))
	.subscribe(...)
</code></pre>
<p><strong>Testing</strong></p>
<pre><code>// File: CustomerService.kt
class CustomerService @Inject constructor(...) {
	lateinit var scopeProvider: ScopeProvider
}

// Usage in Fragment/Activity/etc
val service = CustomerService(...).apply {
	scopeProvider = AndroidLifecycleScopeProvider.from(this)
}

// Usage in Test
val service = CustomerService(...).apply {
	scopeProvider = TestScopeProvider.create()
}
</code></pre>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
<li><a href="https://fragmentedpodcast.com/misc/fragmented-discord-chat-server/">Fragmented Chat</a></li>
</ul>
]]></content:encoded>
      <enclosure length="14810576" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/3ec53c68-0dbf-4b8b-bc7f-12721e148b81/147-autodispose_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>147: Disposing RxJava 2 Streams with AutoDispose</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/3ec53c68-0dbf-4b8b-bc7f-12721e148b81/3000x3000/1546211478-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:15:22</itunes:duration>
      <itunes:summary>In this short fragment episode, Donn explains how you can clean up your RxJava 2 streams and ensure no memory leaks are occurring by using the AutoDispose library from Uber. 
</itunes:summary>
      <itunes:subtitle>In this short fragment episode, Donn explains how you can clean up your RxJava 2 streams and ensure no memory leaks are occurring by using the AutoDispose library from Uber. 
</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>147</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">aa593cad-3976-4b51-b9d6-92bad971cdb8</guid>
      <title>146: 3 Things Every Android Developer Needs to Know</title>
      <description><![CDATA[<ul>
<li><strong>Dependency Injection</strong></li>
</ul>
<ol>
<li>Constructor_setter_method injection</li>
<li>Service Locators or other DI frameworks</li>
<li>Common Frameworks<br />
1. <a href="https://google.github.io/dagger/android.html">Dagger</a><br />
2. <a href="https://github.com/InsertKoinIO/koin">Koin</a><br />
3. <a href="https://github.com/Kodein-Framework/Kodein-DI">Kodein</a><br />
4. <a href="https://github.com/stephanenicolas/toothpick">ToothPick</a></li>
</ol>
<ul>
<li>
<p><strong>How to test</strong></p>
<ol>
<li>Functional / System</li>
<li>Integration</li>
<li>Unit</li>
<li>Tools:
<ol>
<li><a href="https://junit.org">jUnit</a></li>
<li><a href="https://developer.android.com/training/testing/espresso/">Espresso</a></li>
<li><a href="https://spekframework.org/">Spek</a></li>
</ol>
</li>
</ol>
</li>
<li>
<p><strong>Keep it simple simple</strong></p>
<ol>
<li>KISS principle <a href="https://en.wikipedia.org/wiki/KISS_principle">KISS principle - Wikipedia</a></li>
<li>Examples
<ol>
<li>Code Duplication
<ol>
<li>“Extract this into a method”</li>
</ol>
</li>
<li>Lets create a framework for this</li>
<li>Kaushik’s - 3x rule
<ul>
<li>if something is duplicated 3 or more times, think about extracting it</li>
</ul>
</li>
<li>3/6 Rule - In 6 months, will I be able to understand this in under 3 minutes?</li>
</ol>
</li>
</ol>
</li>
</ul>
<h2>Contact</h2>
<p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a><br />
<a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://instagram.com/donnfelker">donnfelker</a> (on Instagram)<br />
<a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://instagram.com/kaushikgopal">kaushikgopal</a> (on Instagram)</p>
]]></description>
      <pubDate>Mon, 24 Dec 2018 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<ul>
<li><strong>Dependency Injection</strong></li>
</ul>
<ol>
<li>Constructor_setter_method injection</li>
<li>Service Locators or other DI frameworks</li>
<li>Common Frameworks<br />
1. <a href="https://google.github.io/dagger/android.html">Dagger</a><br />
2. <a href="https://github.com/InsertKoinIO/koin">Koin</a><br />
3. <a href="https://github.com/Kodein-Framework/Kodein-DI">Kodein</a><br />
4. <a href="https://github.com/stephanenicolas/toothpick">ToothPick</a></li>
</ol>
<ul>
<li>
<p><strong>How to test</strong></p>
<ol>
<li>Functional / System</li>
<li>Integration</li>
<li>Unit</li>
<li>Tools:
<ol>
<li><a href="https://junit.org">jUnit</a></li>
<li><a href="https://developer.android.com/training/testing/espresso/">Espresso</a></li>
<li><a href="https://spekframework.org/">Spek</a></li>
</ol>
</li>
</ol>
</li>
<li>
<p><strong>Keep it simple simple</strong></p>
<ol>
<li>KISS principle <a href="https://en.wikipedia.org/wiki/KISS_principle">KISS principle - Wikipedia</a></li>
<li>Examples
<ol>
<li>Code Duplication
<ol>
<li>“Extract this into a method”</li>
</ol>
</li>
<li>Lets create a framework for this</li>
<li>Kaushik’s - 3x rule
<ul>
<li>if something is duplicated 3 or more times, think about extracting it</li>
</ul>
</li>
<li>3/6 Rule - In 6 months, will I be able to understand this in under 3 minutes?</li>
</ol>
</li>
</ol>
</li>
</ul>
<h2>Contact</h2>
<p><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a><br />
<a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://instagram.com/donnfelker">donnfelker</a> (on Instagram)<br />
<a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://instagram.com/kaushikgopal">kaushikgopal</a> (on Instagram)</p>
]]></content:encoded>
      <enclosure length="26609206" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/afd615b3-f3b9-46ce-bc91-ead305b0cfb0/3-things-every-android-developer-needs-to-know_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>146: 3 Things Every Android Developer Needs to Know</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/afd615b3-f3b9-46ce-bc91-ead305b0cfb0/3000x3000/1545534976-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:27:40</itunes:duration>
      <itunes:summary>In this episode of Fragmented, Donn digs into three things that every Android developer needs to know.</itunes:summary>
      <itunes:subtitle>In this episode of Fragmented, Donn digs into three things that every Android developer needs to know.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>146</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">ab60b06c-172b-4443-b04f-c514a3327e54</guid>
      <title>145: Tracking Network Requests With x-Request-ID</title>
      <description><![CDATA[<p>In this short fragment, Kaushik explains how you can trace network requests from your app by adding a special header. Easily trace an HTTP request all the way from a client to your backend web process.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://stackoverflow.com/questions/25433258/what-is-the-x-request-id-http-header">What is the X-Request-ID</a></li>
<li><a href="https://blog.heroku.com/http_request_id_s_improve_visibility_across_the_application_stack">HTTP Request IDs improve visibility across the application stack</a></li>
<li><a href="https://code.tutsplus.com/tutorials/http-headers-for-dummies%E2%80%94net-8039">How HTTP headers work</a></li>
<li><a href="https://en.wikipedia.org/wiki/List_of_HTTP_header_fields">Where does the X- come from?</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://codemagic.io">codemagic.io by NeverCode</a>
<ul>
<li>Join their <a href="https://join.slack.com/t/flutterci/shared_invite/enQtNDcwODIzMjM4MzI2LWJhNWRkMjZlMjk1YzgzNGUwZjQ5NmUxYTI3YjQzODdlMGU1Nzg5OWQ3NGM3NDdhNGIyNjY1YTUzZTgyNTJkMTc">Flutter Community here</a></li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Tue, 18 Dec 2018 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this short fragment, Kaushik explains how you can trace network requests from your app by adding a special header. Easily trace an HTTP request all the way from a client to your backend web process.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://stackoverflow.com/questions/25433258/what-is-the-x-request-id-http-header">What is the X-Request-ID</a></li>
<li><a href="https://blog.heroku.com/http_request_id_s_improve_visibility_across_the_application_stack">HTTP Request IDs improve visibility across the application stack</a></li>
<li><a href="https://code.tutsplus.com/tutorials/http-headers-for-dummies%E2%80%94net-8039">How HTTP headers work</a></li>
<li><a href="https://en.wikipedia.org/wiki/List_of_HTTP_header_fields">Where does the X- come from?</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://codemagic.io">codemagic.io by NeverCode</a>
<ul>
<li>Join their <a href="https://join.slack.com/t/flutterci/shared_invite/enQtNDcwODIzMjM4MzI2LWJhNWRkMjZlMjk1YzgzNGUwZjQ5NmUxYTI3YjQzODdlMGU1Nzg5OWQ3NGM3NDdhNGIyNjY1YTUzZTgyNTJkMTc">Flutter Community here</a></li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="5817219" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/15504d6e-9e45-4da4-939a-26ad82ff4a14/145_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>145: Tracking Network Requests With x-Request-ID</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/15504d6e-9e45-4da4-939a-26ad82ff4a14/3000x3000/1545156127-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:11:02</itunes:duration>
      <itunes:summary>In this short fragment, Kaushik explains how you can trace network requests from your app by adding a special header. Easily trace an HTTP request all the way from a client to your backend web process.</itunes:summary>
      <itunes:subtitle>In this short fragment, Kaushik explains how you can trace network requests from your app by adding a special header. Easily trace an HTTP request all the way from a client to your backend web process.</itunes:subtitle>
      <itunes:keywords>network request, web stack, correlation id, backend, x-request-id</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>145</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">6edbda13-ea40-4499-97d0-87cc3ba3ca63</guid>
      <title>144: Developer Productivity Tools</title>
      <description><![CDATA[<p>In this episode, Donn and Kaushik talk about productivity tools for developers. As developers, what are some additional tools and utilities that really up your game. If you wanted to see how they tweak their development environments and workstations in general, this is a good episode to listen. Also introducing a Fragmented Discord Chat server!</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://fragmentedpodcast.com/misc/fragmented-discord-chat-server/">Fragmented Discord Chat Server</a></li>
</ul>
<h3>Productivity tools</h3>
<h3>Keyboard Maestro</h3>
<ul>
<li><a href="http://www.stairways.com/action/kmdiscount?REF6JZA">Keyboard Maestro - Mac</a> (Referral code with 20% discount)</li>
<li>Sample macros:
<ul>
<li><a href="https://www.youtube.com/watch?v=FmgT3baY4Qw">Demo: Better auto pairing with BBEdit and Keyboard Maestro</a></li>
<li><a href="https://www.youtube.com/watch?v=KqDrfVij7_g">Demo: Autocopy text from one program to another</a></li>
</ul>
</li>
<li><a href="https://www.autohotkey.com">AutoHotkey - Windows</a> (Windows equivalent of sorts)</li>
<li><a href="https://duckduckgo.com/">DuckDuckGo</a>
<ul>
<li><a href="https://duckduckgo.com/bang">Bang Syntax</a></li>
</ul>
</li>
<li><a href="https://muzzleapp.com/">Muzzle App</a></li>
<li>Window management tools:
<ul>
<li><a href="http://mizage.com/divvy/">Divvy</a></li>
<li><a href="https://www.spectacleapp.com">Spectacle</a></li>
<li><a href="http://magnet.crowdcafe.com">Magnet</a></li>
<li><a href="https://manytricks.com/moom/">Moom</a></li>
<li><a href="https://github.com/kasper/phoenix">Phoenix</a></li>
</ul>
</li>
<li>VSCode
<ul>
<li><a href="https://github.com/sdras/night-owl-vscode-theme">Night owl theme</a></li>
</ul>
</li>
<li><a href="https://ohmyz.sh">OhMyZsh</a>
<ul>
<li><a href="https://github.com/denysdovhan/spaceship-prompt">Spaceship prompt</a></li>
<li><a href="https://github.com/zsh-users/zsh-autosuggestions">Auto Suggestions</a></li>
</ul>
</li>
<li><a href="https://fishshell.com/docs/current/tutorial.html">Fish Shell</a></li>
<li><a href="http://getkap.co">Kap</a> - Screen recording tools</li>
<li><a href="https://sipapp.io/index2.html">Sip</a> - Color Management</li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://codemagic.io">codemagic.io by nevercode</a>
<ul>
<li>Join their <a href="https://join.slack.com/t/flutterci/shared_invite/enQtNDcwODIzMjM4MzI2LWJhNWRkMjZlMjk1YzgzNGUwZjQ5NmUxYTI3YjQzODdlMGU1Nzg5OWQ3NGM3NDdhNGIyNjY1YTUzZTgyNTJkMTc">Flutter Community here</a></li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 10 Dec 2018 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn and Kaushik talk about productivity tools for developers. As developers, what are some additional tools and utilities that really up your game. If you wanted to see how they tweak their development environments and workstations in general, this is a good episode to listen. Also introducing a Fragmented Discord Chat server!</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://fragmentedpodcast.com/misc/fragmented-discord-chat-server/">Fragmented Discord Chat Server</a></li>
</ul>
<h3>Productivity tools</h3>
<h3>Keyboard Maestro</h3>
<ul>
<li><a href="http://www.stairways.com/action/kmdiscount?REF6JZA">Keyboard Maestro - Mac</a> (Referral code with 20% discount)</li>
<li>Sample macros:
<ul>
<li><a href="https://www.youtube.com/watch?v=FmgT3baY4Qw">Demo: Better auto pairing with BBEdit and Keyboard Maestro</a></li>
<li><a href="https://www.youtube.com/watch?v=KqDrfVij7_g">Demo: Autocopy text from one program to another</a></li>
</ul>
</li>
<li><a href="https://www.autohotkey.com">AutoHotkey - Windows</a> (Windows equivalent of sorts)</li>
<li><a href="https://duckduckgo.com/">DuckDuckGo</a>
<ul>
<li><a href="https://duckduckgo.com/bang">Bang Syntax</a></li>
</ul>
</li>
<li><a href="https://muzzleapp.com/">Muzzle App</a></li>
<li>Window management tools:
<ul>
<li><a href="http://mizage.com/divvy/">Divvy</a></li>
<li><a href="https://www.spectacleapp.com">Spectacle</a></li>
<li><a href="http://magnet.crowdcafe.com">Magnet</a></li>
<li><a href="https://manytricks.com/moom/">Moom</a></li>
<li><a href="https://github.com/kasper/phoenix">Phoenix</a></li>
</ul>
</li>
<li>VSCode
<ul>
<li><a href="https://github.com/sdras/night-owl-vscode-theme">Night owl theme</a></li>
</ul>
</li>
<li><a href="https://ohmyz.sh">OhMyZsh</a>
<ul>
<li><a href="https://github.com/denysdovhan/spaceship-prompt">Spaceship prompt</a></li>
<li><a href="https://github.com/zsh-users/zsh-autosuggestions">Auto Suggestions</a></li>
</ul>
</li>
<li><a href="https://fishshell.com/docs/current/tutorial.html">Fish Shell</a></li>
<li><a href="http://getkap.co">Kap</a> - Screen recording tools</li>
<li><a href="https://sipapp.io/index2.html">Sip</a> - Color Management</li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://codemagic.io">codemagic.io by nevercode</a>
<ul>
<li>Join their <a href="https://join.slack.com/t/flutterci/shared_invite/enQtNDcwODIzMjM4MzI2LWJhNWRkMjZlMjk1YzgzNGUwZjQ5NmUxYTI3YjQzODdlMGU1Nzg5OWQ3NGM3NDdhNGIyNjY1YTUzZTgyNTJkMTc">Flutter Community here</a></li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="38934207" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/3be18546-22fe-4d05-aef2-130efe8f81b7/144_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>144: Developer Productivity Tools</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/3be18546-22fe-4d05-aef2-130efe8f81b7/3000x3000/1544417313-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:20:01</itunes:duration>
      <itunes:summary>In this episode, Donn and Kaushik talk about productivity tools for developers. As developers, what are some additional tools and utilities that really up your game. If you wanted to see how they tweak their development environments and workstations in general, this is a good episode to listen. Also introducing a Fragmented Discord Chat server!

Shownotes:  http://fragmentedpodcast.com/episodes/144/</itunes:summary>
      <itunes:subtitle>In this episode, Donn and Kaushik talk about productivity tools for developers. As developers, what are some additional tools and utilities that really up your game. If you wanted to see how they tweak their development environments and workstations in general, this is a good episode to listen. Also introducing a Fragmented Discord Chat server!

Shownotes:  http://fragmentedpodcast.com/episodes/144/</itunes:subtitle>
      <itunes:keywords>productivity tools, keyboard maestro</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>144</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">b3913c3c-a5bf-4e25-91e4-5dcdddbf54c8</guid>
      <title>143: Real world testing thoughts</title>
      <description><![CDATA[<p>In this mini fragment, Donn and Kaushik share some thoughts on real world testing with Android development - a favorite topic of theirs.</p>
<p>Kaushik recently ran into a case where an espresso test fails because the UI stops performing. It's an interesting discussion on figuring out what matters when you write your tests. They dive into strategies and techniques around testing. What makes a good test, what should you be testing?</p>
<p>They then talk about why Hermetic testing is pretty hard on mobile and ideas around a simple solution that could be provided out of the box. They then round it up talking about TDD and it's role in today's world.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://developer.android.com/training/testing/espresso/lists">Espresso Testing lists (onData)</a></li>
<li><a href="https://developer.android.com/reference/android/support/test/espresso/action/ViewActions.html#swipeUp()">Espress test swipe action</a></li>
<li><a href="http://www.webvanta.com/post/2014-07-06/responsive-design-above-the-fold" title="What is the fold">What is the fold</a></li>
<li><a href="https://testing.googleblog.com/2012/10/hermetic-servers.html">Hermetic Servers testing</a></li>
<li><a href="https://github.com/square/okhttp/tree/master/mockwebserver">MockWebServer</a></li>
<li><a href="http://wiremock.org/docs/android/">WireMock</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://americanexpress.io/android-jobs">American Express Jobs</a> - American Express is hiring Android developers!</li>
<li><a href="https://nevercode.io">NeverCode</a>
<ul>
<li><a href="https://nevercode.io/blog/what-we-learned-about-ci-cd-tool-analysing-75k-builds/">Blog post on developing apps 20% faster</a></li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/jebstuart">@jebstuart</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 3 Dec 2018 15:08:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this mini fragment, Donn and Kaushik share some thoughts on real world testing with Android development - a favorite topic of theirs.</p>
<p>Kaushik recently ran into a case where an espresso test fails because the UI stops performing. It's an interesting discussion on figuring out what matters when you write your tests. They dive into strategies and techniques around testing. What makes a good test, what should you be testing?</p>
<p>They then talk about why Hermetic testing is pretty hard on mobile and ideas around a simple solution that could be provided out of the box. They then round it up talking about TDD and it's role in today's world.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://developer.android.com/training/testing/espresso/lists">Espresso Testing lists (onData)</a></li>
<li><a href="https://developer.android.com/reference/android/support/test/espresso/action/ViewActions.html#swipeUp()">Espress test swipe action</a></li>
<li><a href="http://www.webvanta.com/post/2014-07-06/responsive-design-above-the-fold" title="What is the fold">What is the fold</a></li>
<li><a href="https://testing.googleblog.com/2012/10/hermetic-servers.html">Hermetic Servers testing</a></li>
<li><a href="https://github.com/square/okhttp/tree/master/mockwebserver">MockWebServer</a></li>
<li><a href="http://wiremock.org/docs/android/">WireMock</a></li>
</ul>
<h2>Sponsors 🙏</h2>
<ul>
<li><a href="https://americanexpress.io/android-jobs">American Express Jobs</a> - American Express is hiring Android developers!</li>
<li><a href="https://nevercode.io">NeverCode</a>
<ul>
<li><a href="https://nevercode.io/blog/what-we-learned-about-ci-cd-tool-analysing-75k-builds/">Blog post on developing apps 20% faster</a></li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/jebstuart">@jebstuart</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="13828565" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/afd8db8e-1a75-4511-9b58-5c811ebdd846/143_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>143: Real world testing thoughts</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/afd8db8e-1a75-4511-9b58-5c811ebdd846/3000x3000/1543852220-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:27:43</itunes:duration>
      <itunes:summary>In this mini fragment, Donn and Kaushik share some thoughts on real world testing with Android development - a favorite topic of theirs.

Kaushik recently ran into a case where an espresso test fails because the UI stops performing. It&apos;s an interesting discussion on figuring out what matters when you write your tests. They dive into strategies and techniques around testing. What makes a good test, what should you be testing?

They then talk about why Hermetic testing is pretty hard on mobile and ideas around a simple solution that could be provided out of the box. They then round it up talking about TDD and it&apos;s role in today&apos;s world.

Shownotes: https://fragmentedpodcast.com/episodes/143/</itunes:summary>
      <itunes:subtitle>In this mini fragment, Donn and Kaushik share some thoughts on real world testing with Android development - a favorite topic of theirs.

Kaushik recently ran into a case where an espresso test fails because the UI stops performing. It&apos;s an interesting discussion on figuring out what matters when you write your tests. They dive into strategies and techniques around testing. What makes a good test, what should you be testing?

They then talk about why Hermetic testing is pretty hard on mobile and ideas around a simple solution that could be provided out of the box. They then round it up talking about TDD and it&apos;s role in today&apos;s world.

Shownotes: https://fragmentedpodcast.com/episodes/143/</itunes:subtitle>
      <itunes:keywords>hermetic testing, ondata, espresso, fold, testing, ui testing, tdd</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>143</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">f458f52a-059d-4a79-9817-8cb0cc1985b0</guid>
      <title>142: Indie development on Android and iOS with Matt Logan</title>
      <description><![CDATA[<p>In this episode, we talk to our friend Matt Logan. Matt took some time off and worked on an indie app called Sessions. He built this for both <a href="https://play.google.com/store/apps/details?id=co.apexpark.sessions">Android</a> and <a href="https://itunes.apple.com/us/app/sessions-music-practice-log/id1396222207">iOS</a>. In this episode we talk to him about his experience building apps on both platforms, techniques, advice and other good stuff.</p>
<h2>Shownotes</h2>
<ul>
<li>Sessions <a href="https://play.google.com/store/apps/details?id=co.apexpark.sessions">Android</a> <a href="https://itunes.apple.com/us/app/sessions-music-practice-log/id1396222207">iOS</a></li>
<li><a href="https://www.strava.com">Strava</a></li>
<li><a href="https://blog.actionlauncher.com/@chrismlacy?gi=c2da8c0138a9">Chris Lacy - Action Launcher</a></li>
<li><a href="https://www.indiehackers.com/podcast">Indie Hacker's podcast</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/064/">Fragmented Ep #64 - Garbage Collection (Android) vs Reference Counting (iOS)</a></li>
<li><a href="https://www.mattlogan.me/sharing-code-between-ios-and-android/">Matt's blog post on code sharing</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://instabug.com/fragmented">Instabug</a></li>
<li><a href="https://nevercode.io">NeverCode</a>
<ul>
<li><a href="https://nevercode.io/blog/what-we-learned-about-ci-cd-tool-analysing-75k-builds/">Blog post on developing apps 20% faster</a></li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a></li>
<li><a href="https://twitter.com/_mattlogan"><code>@_mattlogan</code></a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 19 Nov 2018 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, we talk to our friend Matt Logan. Matt took some time off and worked on an indie app called Sessions. He built this for both <a href="https://play.google.com/store/apps/details?id=co.apexpark.sessions">Android</a> and <a href="https://itunes.apple.com/us/app/sessions-music-practice-log/id1396222207">iOS</a>. In this episode we talk to him about his experience building apps on both platforms, techniques, advice and other good stuff.</p>
<h2>Shownotes</h2>
<ul>
<li>Sessions <a href="https://play.google.com/store/apps/details?id=co.apexpark.sessions">Android</a> <a href="https://itunes.apple.com/us/app/sessions-music-practice-log/id1396222207">iOS</a></li>
<li><a href="https://www.strava.com">Strava</a></li>
<li><a href="https://blog.actionlauncher.com/@chrismlacy?gi=c2da8c0138a9">Chris Lacy - Action Launcher</a></li>
<li><a href="https://www.indiehackers.com/podcast">Indie Hacker's podcast</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/064/">Fragmented Ep #64 - Garbage Collection (Android) vs Reference Counting (iOS)</a></li>
<li><a href="https://www.mattlogan.me/sharing-code-between-ios-and-android/">Matt's blog post on code sharing</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://instabug.com/fragmented">Instabug</a></li>
<li><a href="https://nevercode.io">NeverCode</a>
<ul>
<li><a href="https://nevercode.io/blog/what-we-learned-about-ci-cd-tool-analysing-75k-builds/">Blog post on developing apps 20% faster</a></li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a></li>
<li><a href="https://twitter.com/_mattlogan"><code>@_mattlogan</code></a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="56467877" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/22b191c0-34ce-43e2-aa92-fd4dd855f85d/143-matt-logan_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>142: Indie development on Android and iOS with Matt Logan</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/22b191c0-34ce-43e2-aa92-fd4dd855f85d/3000x3000/1542421837-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:58:46</itunes:duration>
      <itunes:summary>In this episode, we talk to our friend Matt Logan. Matt took some time off and worked on an indie app called Sessions. He built this for both [Android](https://play.google.com/store/apps/details?id=co.apexpark.sessions) and [iOS](https://itunes.apple.com/us/app/sessions-music-practice-log/id1396222207). In this episode we talk to him about his experience building apps on both platforms, techniques, advice and other good stuff. 

Shownotes </itunes:summary>
      <itunes:subtitle>In this episode, we talk to our friend Matt Logan. Matt took some time off and worked on an indie app called Sessions. He built this for both [Android](https://play.google.com/store/apps/details?id=co.apexpark.sessions) and [iOS](https://itunes.apple.com/us/app/sessions-music-practice-log/id1396222207). In this episode we talk to him about his experience building apps on both platforms, techniques, advice and other good stuff. 

Shownotes </itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>142</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">db6071fd-98f5-4706-8b01-15ad40a029bd</guid>
      <title>141: Impostor Syndrome</title>
      <description><![CDATA[<p>In this mini fragment, Donn and KG talk about Impostor syndrome. Most of us developers are plagued by this. Does this feeling ever go away? How do we deal with this? Listen to this short episode to find out more.</p>
<h2>Shownotes</h2>
<ul>
<li>Karl the Fog (<a href="https://en.wikipedia.org/wiki/San_Francisco_fog">wikipedia page</a>) <a href="https://twitter.com/KarlTheFog">@KarlTheFog</a></li>
<li><a href="https://twitter.com/_mattlogan/status/1014700235543597056">Matt's twitter post on background process limit 0</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/135/">#135 - You can't learn everything</a></li>
<li><a href="https://blog.kaush.co/2012/06/17/learning-and-looking-foolish/">I’m willing to look foolish, if it means I’ll learn something.</a></li>
<li><a href="https://groups.google.com/forum/#!msg/comp.lang.java/aSPAJO05LIU/ushhUIQQ-ogJ">Larry page 1996- Java thread</a></li>
<li><a href="https://fragmentedpodcast.com/episodes/76/">#76: Taming the activity lifecycle with Kristin Marsicano</a></li>
<li><a href="https://twitter.com/ppvi/status/1048510840423501824">Jose Alcérreca's lifecycle cheatsheet bookmark</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li>
<p><a href="https://instabug.com/fragmented">Instabug</a> -<br />
Thousands of companies including Lyft, eBay and T-Mobile rely on Instabug to receive<br />
comprehensive bug reports from users and testers, helping them iterate faster<br />
and enhance their app quality. Signup now, integrate the SDK for free, and get a<br />
special Instabug t-shirt.</p>
</li>
<li>
<p><a href="https://nevercode.io">Nevercode</a><br />
-Develop apps 20% faster with the leading CI/CD partner for iOS, Android, Cordova, Ionic, React Native &amp; Flutter projects.<br />
<a href="https://nevercode.io/blog/what-we-learned-about-ci-cd-tool-analysing-75k-builds/">Blog post on developing apps 20% faster</a></p>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a></li>
<li><a href="https://twitter.com/preusslerberlin">@preusslerberlin</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 12 Nov 2018 02:29:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this mini fragment, Donn and KG talk about Impostor syndrome. Most of us developers are plagued by this. Does this feeling ever go away? How do we deal with this? Listen to this short episode to find out more.</p>
<h2>Shownotes</h2>
<ul>
<li>Karl the Fog (<a href="https://en.wikipedia.org/wiki/San_Francisco_fog">wikipedia page</a>) <a href="https://twitter.com/KarlTheFog">@KarlTheFog</a></li>
<li><a href="https://twitter.com/_mattlogan/status/1014700235543597056">Matt's twitter post on background process limit 0</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/135/">#135 - You can't learn everything</a></li>
<li><a href="https://blog.kaush.co/2012/06/17/learning-and-looking-foolish/">I’m willing to look foolish, if it means I’ll learn something.</a></li>
<li><a href="https://groups.google.com/forum/#!msg/comp.lang.java/aSPAJO05LIU/ushhUIQQ-ogJ">Larry page 1996- Java thread</a></li>
<li><a href="https://fragmentedpodcast.com/episodes/76/">#76: Taming the activity lifecycle with Kristin Marsicano</a></li>
<li><a href="https://twitter.com/ppvi/status/1048510840423501824">Jose Alcérreca's lifecycle cheatsheet bookmark</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li>
<p><a href="https://instabug.com/fragmented">Instabug</a> -<br />
Thousands of companies including Lyft, eBay and T-Mobile rely on Instabug to receive<br />
comprehensive bug reports from users and testers, helping them iterate faster<br />
and enhance their app quality. Signup now, integrate the SDK for free, and get a<br />
special Instabug t-shirt.</p>
</li>
<li>
<p><a href="https://nevercode.io">Nevercode</a><br />
-Develop apps 20% faster with the leading CI/CD partner for iOS, Android, Cordova, Ionic, React Native &amp; Flutter projects.<br />
<a href="https://nevercode.io/blog/what-we-learned-about-ci-cd-tool-analysing-75k-builds/">Blog post on developing apps 20% faster</a></p>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a></li>
<li><a href="https://twitter.com/preusslerberlin">@preusslerberlin</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="32750185" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/8fc40e24-da4c-4d0d-9c18-79aed8b32c63/141-impostor-syndrome_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>141: Impostor Syndrome</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/8fc40e24-da4c-4d0d-9c18-79aed8b32c63/3000x3000/1541989885-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:34:04</itunes:duration>
      <itunes:summary>In this mini fragment, Donn and KG talk about Impostor syndrome. Most of us developers are plagued by this. Does this feeling ever go away? How do we deal with this? Listen to this short episode to find out more. 

Shownotes:  http://fragmentedpodcast.com/episodes/141/</itunes:summary>
      <itunes:subtitle>In this mini fragment, Donn and KG talk about Impostor syndrome. Most of us developers are plagued by this. Does this feeling ever go away? How do we deal with this? Listen to this short episode to find out more. 

Shownotes:  http://fragmentedpodcast.com/episodes/141/</itunes:subtitle>
      <itunes:keywords>activity lifecycle, impostor syndrome</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>141</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">a4e80caf-d153-4281-9ef2-748b5d680b00</guid>
      <title>140: ProGuard with Jeb Ware</title>
      <description><![CDATA[<p>We all know of ProGuard, we want to use it and like it. But let's face it proGuard ain't pretty. In this episode we have Jeb walk us through the magic of ProGuard.</p>
<p>We talk to Jeb Ware of American Express. Jeb works as an Android developer and has given some great talks on ProGuard. He walks us through what ProGuard is, how it works, advancements with R8 and more.</p>
<p>By the end of this episode, you should have a new found appreciation for proGuard and bravely approach adding proGuard to your projects.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=F9ymcWoDEtc">How ProGuard works - Jeb at Droidcon Boston</a></li>
<li><a href="https://www.guardsquare.com/en/products/proguard/manual/usage">ProGuard Manual</a></li>
<li><a href="https://android-developers.googleblog.com/2017/08/next-generation-dex-compiler-now-in.html">D8/R8 announcement</a></li>
<li><a href="https://issuetracker.google.com/issues?q=componentid:326788">R8 issue tracker</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://americanexpress.io/android-jobs">American Express Jobs</a> - American Express is hiring Android developers!</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/jebstuart">@jebstuart</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 5 Nov 2018 07:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>We all know of ProGuard, we want to use it and like it. But let's face it proGuard ain't pretty. In this episode we have Jeb walk us through the magic of ProGuard.</p>
<p>We talk to Jeb Ware of American Express. Jeb works as an Android developer and has given some great talks on ProGuard. He walks us through what ProGuard is, how it works, advancements with R8 and more.</p>
<p>By the end of this episode, you should have a new found appreciation for proGuard and bravely approach adding proGuard to your projects.</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=F9ymcWoDEtc">How ProGuard works - Jeb at Droidcon Boston</a></li>
<li><a href="https://www.guardsquare.com/en/products/proguard/manual/usage">ProGuard Manual</a></li>
<li><a href="https://android-developers.googleblog.com/2017/08/next-generation-dex-compiler-now-in.html">D8/R8 announcement</a></li>
<li><a href="https://issuetracker.google.com/issues?q=componentid:326788">R8 issue tracker</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://americanexpress.io/android-jobs">American Express Jobs</a> - American Express is hiring Android developers!</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/jebstuart">@jebstuart</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="55736851" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/1ab9bfb9-5dc7-45bf-884e-f0a1f09e7062/140-jeb-proguard_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>140: ProGuard with Jeb Ware</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/1ab9bfb9-5dc7-45bf-884e-f0a1f09e7062/3000x3000/1541312443-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:58:00</itunes:duration>
      <itunes:summary>We all know of ProGuard, we want to use it and like it. But let&apos;s face it proGuard ain&apos;t pretty. In this episode we have Jeb walk us through the magic of ProGuard.

We talk to Jeb Ware of American Express. Jeb works as an Android developer and has given some great talks on ProGuard. He walks us through what ProGuard is, how it works, advancements with R8 and more. 

By the end of this episode, you should have a new found appreciation for proGuard and bravely approach adding proGuard to your projects.

Shownotes: http://fragmentedpodcast.com/episodes/140/ </itunes:summary>
      <itunes:subtitle>We all know of ProGuard, we want to use it and like it. But let&apos;s face it proGuard ain&apos;t pretty. In this episode we have Jeb walk us through the magic of ProGuard.

We talk to Jeb Ware of American Express. Jeb works as an Android developer and has given some great talks on ProGuard. He walks us through what ProGuard is, how it works, advancements with R8 and more. 

By the end of this episode, you should have a new found appreciation for proGuard and bravely approach adding proGuard to your projects.

Shownotes: http://fragmentedpodcast.com/episodes/140/ </itunes:subtitle>
      <itunes:keywords>obfuscation, jeb ware, jeb, d8, optimization, shrinking, r8, proguard</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>140</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">8dd7f73b-31eb-4035-8930-99df5f62e459</guid>
      <title>139: Static code analysis with Manu Sridharan</title>
      <description><![CDATA[<p>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.</p>
<h3>Note from Manu:</h3>
<p>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.</p>
<p>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.</p>
<h3>Misc</h3>
<ul>
<li><a href="http://errorprone.info">ErrorProne</a></li>
<li><a href="https://developer.android.com/studio/write/lint">Improve your code with Android lint checks</a></li>
<li><a href="http://checkstyle.sourceforge.net">checkstyle</a></li>
<li><a href="https://github.com/uber-research/RxThreadEffectChecker">RxThreadEffectChecker</a></li>
<li><a href="https://checkerframework.org">The Checker framework</a></li>
<li><a href="https://github.com/uber/NullAway">NullAway - Uber</a></li>
<li><a href="https://fbinfer.com">Infer - Facebook</a></li>
<li><a href="https://fbinfer.com/docs/racerd.html">Infer: RacerD - Facebook</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> (on Twitter) or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/rakingleaves">@rakingleaves</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Wed, 24 Oct 2018 18:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>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.</p>
<h3>Note from Manu:</h3>
<p>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.</p>
<p>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.</p>
<h3>Misc</h3>
<ul>
<li><a href="http://errorprone.info">ErrorProne</a></li>
<li><a href="https://developer.android.com/studio/write/lint">Improve your code with Android lint checks</a></li>
<li><a href="http://checkstyle.sourceforge.net">checkstyle</a></li>
<li><a href="https://github.com/uber-research/RxThreadEffectChecker">RxThreadEffectChecker</a></li>
<li><a href="https://checkerframework.org">The Checker framework</a></li>
<li><a href="https://github.com/uber/NullAway">NullAway - Uber</a></li>
<li><a href="https://fbinfer.com">Infer - Facebook</a></li>
<li><a href="https://fbinfer.com/docs/racerd.html">Infer: RacerD - Facebook</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> (on Twitter) or <a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">our Youtube channel</a></li>
<li><a href="https://twitter.com/rakingleaves">@rakingleaves</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="19274307" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/30726b89-005e-4bf9-89f8-15fab3b168b0/139_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>139: Static code analysis with Manu Sridharan</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/30726b89-005e-4bf9-89f8-15fab3b168b0/3000x3000/1540404390-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:39:04</itunes:duration>
      <itunes:summary>In this episode, Donn and Kaushik talk to Uber&apos;s Manu Sridharan on static code analysis. Manu&apos;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.

Shownotes:  http://fragmentedpodcast.com/episodes/139/ </itunes:summary>
      <itunes:subtitle>In this episode, Donn and Kaushik talk to Uber&apos;s Manu Sridharan on static code analysis. Manu&apos;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.

Shownotes:  http://fragmentedpodcast.com/episodes/139/ </itunes:subtitle>
      <itunes:keywords>racerd, infer, errorprone, manu, uber, lint, nullaway, static analysis</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>139</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">24541d2c-64e2-4780-a548-09d3b4fbdb01</guid>
      <title>138: Decompress - kotlin scripting</title>
      <description><![CDATA[<p>In this mini fragment, Donn asks KG about a recent hackathon side project that he worked on with Kotlin scripting.</p>
<p>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.</p>
<h2>Shownotes</h2>
<h3>Existing solutions for poll/vote tabulation</h3>
<ul>
<li><a href="https://www.polleverywhere.com">polleverywhere.com</a></li>
<li><a href="https://www.surveymonkey.com">surveymonkey.com</a></li>
<li><a href="https://polldaddy.com">polldaddy.com</a></li>
</ul>
<h2>Misc</h2>
<ul>
<li><a href="https://github.com/holgerbrandl/kscript">kscript by holgerbrandl</a></li>
<li><a href="https://tech.instacart.com/free-hackathon-vote-tabulation-using-google-forms-kotlin-3c7b7080ea">blog post on the hackathon vote tabulation script</a></li>
<li><a href="https://github.com/kaushikgopal/kotlin-scripts/blob/master/star-wars-demo-results.csv">what the csv output from google forms looks like</a></li>
<li><a href="https://github.com/kaushikgopal/kotlin-scripts#tabulate-hackathon-votes">github repo for script - with installation instructions</a></li>
<li><a href="http://talkingkotlin.com/kscript-with-holger-brandl/">Highly recommended - Talking kotlin episode on kscript</a></li>
</ul>
<pre><code>
    // slick kotlin usage
    
    override fun onCreate(savedInstanceState: Bundle?) = super.onCreate(savedInstanceState).also {
        setContentView(R.layout.activity_something)
        // ...
    }  

</code></pre>
<h2>Sponsors</h2>
<ul>
<li><a href="https://americanexpress.io/android-jobs">American Express Jobs</a> - American Express is hiring Android developers!</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">Youtube channel</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 15 Oct 2018 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this mini fragment, Donn asks KG about a recent hackathon side project that he worked on with Kotlin scripting.</p>
<p>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.</p>
<h2>Shownotes</h2>
<h3>Existing solutions for poll/vote tabulation</h3>
<ul>
<li><a href="https://www.polleverywhere.com">polleverywhere.com</a></li>
<li><a href="https://www.surveymonkey.com">surveymonkey.com</a></li>
<li><a href="https://polldaddy.com">polldaddy.com</a></li>
</ul>
<h2>Misc</h2>
<ul>
<li><a href="https://github.com/holgerbrandl/kscript">kscript by holgerbrandl</a></li>
<li><a href="https://tech.instacart.com/free-hackathon-vote-tabulation-using-google-forms-kotlin-3c7b7080ea">blog post on the hackathon vote tabulation script</a></li>
<li><a href="https://github.com/kaushikgopal/kotlin-scripts/blob/master/star-wars-demo-results.csv">what the csv output from google forms looks like</a></li>
<li><a href="https://github.com/kaushikgopal/kotlin-scripts#tabulate-hackathon-votes">github repo for script - with installation instructions</a></li>
<li><a href="http://talkingkotlin.com/kscript-with-holger-brandl/">Highly recommended - Talking kotlin episode on kscript</a></li>
</ul>
<pre><code>
    // slick kotlin usage
    
    override fun onCreate(savedInstanceState: Bundle?) = super.onCreate(savedInstanceState).also {
        setContentView(R.layout.activity_something)
        // ...
    }  

</code></pre>
<h2>Sponsors</h2>
<ul>
<li><a href="https://americanexpress.io/android-jobs">American Express Jobs</a> - American Express is hiring Android developers!</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">Youtube channel</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="22798509" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/877e5bb4-069f-4ba0-9fd5-d4b59960b428/decompress-20180822-hackathon_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>138: Decompress - kotlin scripting</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/877e5bb4-069f-4ba0-9fd5-d4b59960b428/3000x3000/1539370288-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:23:42</itunes:duration>
      <itunes:summary>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&apos;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&apos;s a fit for you.</itunes:summary>
      <itunes:subtitle>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&apos;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&apos;s a fit for you.</itunes:subtitle>
      <itunes:keywords>hackathon, kotlin, kscript, scripting</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>138</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">77df8b78-6e22-484c-951b-30ff3e62e2a3</guid>
      <title>137: Decompress KISS DRY testing</title>
      <description><![CDATA[<p>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 !</p>
<ul>
<li><a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">Fragmented's Youtube channel</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://americanexpress.io/android-jobs">American Express Jobs</a> - American Express is hiring Android developers!</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Thu, 4 Oct 2018 15:51:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>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 !</p>
<ul>
<li><a href="https://www.youtube.com/channel/UC7fT84G-G25w7Bdd-e1rnyw/videos">Fragmented's Youtube channel</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://americanexpress.io/android-jobs">American Express Jobs</a> - American Express is hiring Android developers!</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="22158877" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/01834508-774a-427d-904f-b95473e75273/137_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>137: Decompress KISS DRY testing</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/01834508-774a-427d-904f-b95473e75273/3000x3000/1538668344-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:45:05</itunes:duration>
      <itunes:summary>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 !</itunes:summary>
      <itunes:subtitle>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 !</itunes:subtitle>
      <itunes:keywords>dagger, functional testing, decompress, espresso, youtube, kiss, testing, dry, unit testing</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>137</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">b67438d5-a4e9-45fe-b5dc-97a85f566450</guid>
      <title>136: Kotlin Extension Functions</title>
      <description><![CDATA[<p>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.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://kotlinlang.org/docs/reference/extensions.html">Kotlin Extension Functions Docs</a></li>
<li><a href="https://stackoverflow.com/a/28364983">Calling Extension Functions from Java</a></li>
<li><a href="https://android.github.io/android-ktx/core-ktx/androidx.view/android.view.-view/index.html">Kotlin KTX View Functions</a></li>
</ul>
<pre><code>
import android.view.View

fun View.gone() {

    this.visibility = View.GONE
}

fun View.visible() {

    this.visibility = View.VISIBLE
}

</code></pre>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 24 Sep 2018 08:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>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.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://kotlinlang.org/docs/reference/extensions.html">Kotlin Extension Functions Docs</a></li>
<li><a href="https://stackoverflow.com/a/28364983">Calling Extension Functions from Java</a></li>
<li><a href="https://android.github.io/android-ktx/core-ktx/androidx.view/android.view.-view/index.html">Kotlin KTX View Functions</a></li>
</ul>
<pre><code>
import android.view.View

fun View.gone() {

    this.visibility = View.GONE
}

fun View.visible() {

    this.visibility = View.VISIBLE
}

</code></pre>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="20846363" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/7e70e6ce-d01f-4223-8c0c-e3c9b297eb31/project-extension-functions_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>136: Kotlin Extension Functions</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/7e70e6ce-d01f-4223-8c0c-e3c9b297eb31/3000x3000/1537799539-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:21:40</itunes:duration>
      <itunes:summary>In this fragment episode, Donn talks about Kotlin extension functions. He discusses what they are, how to build them, why they&apos;re useful, how to organize them, visibility and how to call them Java and much more.
</itunes:summary>
      <itunes:subtitle>In this fragment episode, Donn talks about Kotlin extension functions. He discusses what they are, how to build them, why they&apos;re useful, how to organize them, visibility and how to call them Java and much more.
</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>136</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">9b429bed-c505-429c-a45e-9daae3227c3d</guid>
      <title>135: You Can&apos;t Learn Everything</title>
      <description><![CDATA[<p>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.</p>
<p>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.</p>
<p>Donn gives his 2 cents on this subject.</p>
<p><a href="https://audio.simplecast.com/879797a8.mp3">Download</a></p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 17 Sep 2018 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>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.</p>
<p>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.</p>
<p>Donn gives his 2 cents on this subject.</p>
<p><a href="https://audio.simplecast.com/879797a8.mp3">Download</a></p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="7858291" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/21eeef88-c0b8-453d-ba7d-271877161788/135-you-cant-learn-everything_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>135: You Can&apos;t Learn Everything</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/21eeef88-c0b8-453d-ba7d-271877161788/3000x3000/1536815230-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:08:08</itunes:duration>
      <itunes:summary>Donn&apos;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.</itunes:summary>
      <itunes:subtitle>Donn&apos;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.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>135</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">d2e90afb-eb1f-43ea-b0d9-810a3efc4b45</guid>
      <title>134: Get Effective Help with an SSCCE</title>
      <description><![CDATA[<p>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.</p>
<p>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.</p>
<p>Donn breaks down each component of the SSCCE so you can wrap your head around what you need to get help quickly.</p>
<h1>Links</h1>
<ul>
<li><a href="http://sscce.org/">SSCCE.org</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://www.instabug.com/fragmented">Instabug</a> - Instabug is the simplest yet most comprehensive bug reporting and In-app feedback SDK.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 6 Aug 2018 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>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.</p>
<p>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.</p>
<p>Donn breaks down each component of the SSCCE so you can wrap your head around what you need to get help quickly.</p>
<h1>Links</h1>
<ul>
<li><a href="http://sscce.org/">SSCCE.org</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://www.instabug.com/fragmented">Instabug</a> - Instabug is the simplest yet most comprehensive bug reporting and In-app feedback SDK.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="20656216" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/57ff4539-f8fe-4ec2-b0c3-1ef9cd000201/134-get-effective-help-with-an-sscce_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>134: Get Effective Help with an SSCCE</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/57ff4539-f8fe-4ec2-b0c3-1ef9cd000201/3000x3000/1533407187-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:21:28</itunes:duration>
      <itunes:summary>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. </itunes:summary>
      <itunes:subtitle>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. </itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>134</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">7c03db75-bd55-440d-b11c-cb6482840006</guid>
      <title>133: Dependency Injection and Service Locators in a Kotlin world with Danny Preussler</title>
      <description><![CDATA[<p>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.</p>
<p>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.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://speakerdeck.com/dpreussler/to-inject-or-not-inject-dependency-injection-in-a-kotlin-world-appbuilders-dot-ch-2018">Danny's slides (DI in a Kotlin world) talk</a></li>
<li><a href="https://insert-koin.io">Koin</a></li>
<li><a href="https://github.com/stephanenicolas/toothpick">Toothpick</a></li>
<li><a href="https://www.youtube.com/watch?v=xQGm4O84PLE">how to pronounce reified</a></li>
</ul>
<h3>Service Locators vs Dependency Injection</h3>
<blockquote>
<p>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.</p>
</blockquote>
<ul>
<li><a href="https://stackoverflow.com/questions/1557781/whats-the-difference-between-the-dependency-injection-and-service-locator-patte">SO post on the difference between DI &amp; SL pattern</a></li>
<li><a href="https://martinfowler.com/articles/injection.html">Martin Fowler's post on DI, IOC, SL</a></li>
<li><a href="https://caster.io/lessons/dagger-2-part-5">Caster.IO (paid) course by DF on setting up testing with Dagger 2 and Espresso</a></li>
<li><a href="http://blog.ploeh.dk/2010/02/03/ServiceLocatorisanAnti-Pattern/">Mark Seeman on Service Locators being an anti-pattern</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://www.bitrise.io/?utm_source=fragmented_spec&amp;utm_medium=podcast&amp;utm_campaign=w30">Bitrise</a> - Bitrise is your mobile continuous integration and delivery for your whole team, with dozens of integrations for your favorite services.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a></li>
<li><a href="https://twitter.com/preusslerberlin">@preusslerberlin</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></description>
      <pubDate>Mon, 23 Jul 2018 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>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.</p>
<p>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.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://speakerdeck.com/dpreussler/to-inject-or-not-inject-dependency-injection-in-a-kotlin-world-appbuilders-dot-ch-2018">Danny's slides (DI in a Kotlin world) talk</a></li>
<li><a href="https://insert-koin.io">Koin</a></li>
<li><a href="https://github.com/stephanenicolas/toothpick">Toothpick</a></li>
<li><a href="https://www.youtube.com/watch?v=xQGm4O84PLE">how to pronounce reified</a></li>
</ul>
<h3>Service Locators vs Dependency Injection</h3>
<blockquote>
<p>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.</p>
</blockquote>
<ul>
<li><a href="https://stackoverflow.com/questions/1557781/whats-the-difference-between-the-dependency-injection-and-service-locator-patte">SO post on the difference between DI &amp; SL pattern</a></li>
<li><a href="https://martinfowler.com/articles/injection.html">Martin Fowler's post on DI, IOC, SL</a></li>
<li><a href="https://caster.io/lessons/dagger-2-part-5">Caster.IO (paid) course by DF on setting up testing with Dagger 2 and Espresso</a></li>
<li><a href="http://blog.ploeh.dk/2010/02/03/ServiceLocatorisanAnti-Pattern/">Mark Seeman on Service Locators being an anti-pattern</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://www.bitrise.io/?utm_source=fragmented_spec&amp;utm_medium=podcast&amp;utm_campaign=w30">Bitrise</a> - Bitrise is your mobile continuous integration and delivery for your whole team, with dozens of integrations for your favorite services.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a></li>
<li><a href="https://twitter.com/preusslerberlin">@preusslerberlin</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">donnfelker</a> (on Instagram)</li>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">kaushikgopal</a> (on Instagram)</li>
</ul>
]]></content:encoded>
      <enclosure length="67277461" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/67954cba-8ff3-498e-be92-a84549ef503a/danny-di_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>133: Dependency Injection and Service Locators in a Kotlin world with Danny Preussler</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/67954cba-8ff3-498e-be92-a84549ef503a/3000x3000/1532294436-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:10:01</itunes:duration>
      <itunes:summary>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&apos;s a pro who&apos;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.

http://fragmentedpodcast.com/episodes/133/</itunes:summary>
      <itunes:subtitle>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&apos;s a pro who&apos;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.

http://fragmentedpodcast.com/episodes/133/</itunes:subtitle>
      <itunes:keywords>service locator, koin, danny, kodein, dagger, kotlin, di, dependency injection, preussler, servide loader</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>133</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">0c8899c0-f14b-4101-93ad-67ac4e185d06</guid>
      <title>132: Dealing with Money in programming</title>
      <description><![CDATA[<p>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.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/29/">The infamous Short - Ep029: All about the infamous 65,536 dex method count</a></li>
<li><a href="https://en.wikipedia.org/wiki/IEEE_754">IEEE_754 float storage format</a></li>
<li><a href="https://floating-point-gui.de/formats/binary/">How binary fractions work</a></li>
</ul>
<p>Problematic snippet 1:</p>
<pre><code>println(1.03-0.42) # prints 0.6100000000000001
</code></pre>
<p>Problematic snippet 2:</p>
<pre><code>var x = 0F
(1..100).forEach { i -&gt;
    x += 0.01F
}
println(x) # 0.99999934 vs 1
</code></pre>
<h2>Sponsors</h2>
<ul>
<li><a href="https://www.bitrise.io/?utm_source=fragmented_spec&amp;utm_medium=podcast&amp;utm_campaign=w29">Bitrise</a> - Bitrise is your mobile continuous integration and delivery for your whole team, with dozens of integrations for your favorite services.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Wed, 18 Jul 2018 02:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>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.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/29/">The infamous Short - Ep029: All about the infamous 65,536 dex method count</a></li>
<li><a href="https://en.wikipedia.org/wiki/IEEE_754">IEEE_754 float storage format</a></li>
<li><a href="https://floating-point-gui.de/formats/binary/">How binary fractions work</a></li>
</ul>
<p>Problematic snippet 1:</p>
<pre><code>println(1.03-0.42) # prints 0.6100000000000001
</code></pre>
<p>Problematic snippet 2:</p>
<pre><code>var x = 0F
(1..100).forEach { i -&gt;
    x += 0.01F
}
println(x) # 0.99999934 vs 1
</code></pre>
<h2>Sponsors</h2>
<ul>
<li><a href="https://www.bitrise.io/?utm_source=fragmented_spec&amp;utm_medium=podcast&amp;utm_campaign=w29">Bitrise</a> - Bitrise is your mobile continuous integration and delivery for your whole team, with dozens of integrations for your favorite services.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="13492238" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/44c38505-46f9-4140-b849-2493b0075996/frament-money_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>132: Dealing with Money in programming</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/44c38505-46f9-4140-b849-2493b0075996/3000x3000/1531904711-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:18:01</itunes:duration>
      <itunes:summary>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.

Shownotes http://fragmentedpodcast.com/episodes/132/</itunes:summary>
      <itunes:subtitle>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.

Shownotes http://fragmentedpodcast.com/episodes/132/</itunes:subtitle>
      <itunes:keywords>floating point, float, rounding, money, double</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>132</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">38e6a305-cc49-4c3d-9ec1-bb00b0b4b138</guid>
      <title>131: ARCore with Yulia Kaleda</title>
      <description><![CDATA[<p>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 !</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/79/">ep 79 - How do i get started with VR Apps</a></li>
<li><a href="https://www.theverge.com/2017/12/15/16782556/project-tango-google-shutting-down-arcore-augmented-reality">Tango shutting down</a></li>
<li><a href="https://developers.google.com/ar/discover/">ARCore</a></li>
<li><a href="https://developer.apple.com/arkit/">ARKit</a></li>
<li><a href="https://developers.google.com/ar/develop/java/cloud-anchors/cloud-anchors-overview-android">Cloud Anchors: Share AR experiences</a></li>
<li><a href="https://developers.google.com/ar/discover">ARCore - Geometry detection</a></li>
<li><a href="https://developers.google.com/ar/develop/java/sceneform/">Sceneform - 3d view rendering</a></li>
</ul>
<h3>Resources</h3>
<ul>
<li><a href="https://github.com/google-ar">Google ARCore github</a></li>
<li><a href="https://medium.com/@YuliyaKaleda/the-power-of-arcore-5e77c63a7bcf">Yuliya's blog post </a></li>
<li><a href="https://www.youtube.com/watch?v=g0dn-jH2aRw&amp;index=30&amp;list=PLb1A91j1236pm38EMCT2Ue-fo3j-WfYbX&amp;t=1167s">Yuliya's talk</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://www.bitrise.io/?utm_source=fragmented_spec&amp;utm_medium=podcast&amp;utm_campaign=w28">Bitrise</a> - Bitrise is your mobile continuous integration and delivery for your whole team, with dozens of integrations for your favorite services.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/yuliyakaleda">@yuliyakaleda</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 9 Jul 2018 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>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 !</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/79/">ep 79 - How do i get started with VR Apps</a></li>
<li><a href="https://www.theverge.com/2017/12/15/16782556/project-tango-google-shutting-down-arcore-augmented-reality">Tango shutting down</a></li>
<li><a href="https://developers.google.com/ar/discover/">ARCore</a></li>
<li><a href="https://developer.apple.com/arkit/">ARKit</a></li>
<li><a href="https://developers.google.com/ar/develop/java/cloud-anchors/cloud-anchors-overview-android">Cloud Anchors: Share AR experiences</a></li>
<li><a href="https://developers.google.com/ar/discover">ARCore - Geometry detection</a></li>
<li><a href="https://developers.google.com/ar/develop/java/sceneform/">Sceneform - 3d view rendering</a></li>
</ul>
<h3>Resources</h3>
<ul>
<li><a href="https://github.com/google-ar">Google ARCore github</a></li>
<li><a href="https://medium.com/@YuliyaKaleda/the-power-of-arcore-5e77c63a7bcf">Yuliya's blog post </a></li>
<li><a href="https://www.youtube.com/watch?v=g0dn-jH2aRw&amp;index=30&amp;list=PLb1A91j1236pm38EMCT2Ue-fo3j-WfYbX&amp;t=1167s">Yuliya's talk</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://www.bitrise.io/?utm_source=fragmented_spec&amp;utm_medium=podcast&amp;utm_campaign=w28">Bitrise</a> - Bitrise is your mobile continuous integration and delivery for your whole team, with dozens of integrations for your favorite services.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/yuliyakaleda">@yuliyakaleda</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="50247879" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/a767940e-2f4b-49f7-b04e-116025de041f/131_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>131: ARCore with Yulia Kaleda</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/a767940e-2f4b-49f7-b04e-116025de041f/3000x3000/1531094112-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:52:17</itunes:duration>
      <itunes:summary>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 !

Shownotes: http://fragmentedpodcast.com/episodes/131/</itunes:summary>
      <itunes:subtitle>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 !

Shownotes: http://fragmentedpodcast.com/episodes/131/</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>131</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">ead15d63-b689-4383-a5d3-de32e86e8e01</guid>
      <title>130: Sunsetting ReactNative at AirBnb with Gabriel Peal - Part 2</title>
      <description><![CDATA[<p>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.</p>
<p>After two years, 220 screens, and 120,000 lines of javascript, Gabriel tells us why  they're moving away from React Native.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://medium.com/airbnb-engineering/react-native-at-airbnb-f95aa460be1c">The post that kicked it all off</a></li>
<li><a href="https://flow.org/en/">Flow - static type checker for Javascript</a></li>
<li><a href="https://babeljs.io">Babel -Javascript compiler</a></li>
<li><a href="https://en.wikipedia.org/wiki/Heisenbug">Heisenbugs</a></li>
<li><a href="https://www.bugsnag.com">Bugsnag</a></li>
<li><a href="https://developer.android.com/guide/topics/ui/layout/recyclerview">RecyclerView</a> : <a href="https://developer.apple.com/reference/uikit/uicollectionview">UICollectionView</a></li>
<li><a href="https://facebook.github.io/react-native/blog/2018/06/14/state-of-react-native-2018">Facebook blot post: State of React Native 2018</a></li>
<li><a href="https://kotlinlang.org/docs/reference/extensions.html">Kotlin Extensions</a></li>
<li><a href="https://kotlinlang.org/docs/reference/delegated-properties.html">Kotlin Delegated properties</a></li>
<li><a href="https://github.com/airbnb/epoxy">Epoxy</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/gpeal8">@gpeal8</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Wed, 4 Jul 2018 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>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.</p>
<p>After two years, 220 screens, and 120,000 lines of javascript, Gabriel tells us why  they're moving away from React Native.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://medium.com/airbnb-engineering/react-native-at-airbnb-f95aa460be1c">The post that kicked it all off</a></li>
<li><a href="https://flow.org/en/">Flow - static type checker for Javascript</a></li>
<li><a href="https://babeljs.io">Babel -Javascript compiler</a></li>
<li><a href="https://en.wikipedia.org/wiki/Heisenbug">Heisenbugs</a></li>
<li><a href="https://www.bugsnag.com">Bugsnag</a></li>
<li><a href="https://developer.android.com/guide/topics/ui/layout/recyclerview">RecyclerView</a> : <a href="https://developer.apple.com/reference/uikit/uicollectionview">UICollectionView</a></li>
<li><a href="https://facebook.github.io/react-native/blog/2018/06/14/state-of-react-native-2018">Facebook blot post: State of React Native 2018</a></li>
<li><a href="https://kotlinlang.org/docs/reference/extensions.html">Kotlin Extensions</a></li>
<li><a href="https://kotlinlang.org/docs/reference/delegated-properties.html">Kotlin Delegated properties</a></li>
<li><a href="https://github.com/airbnb/epoxy">Epoxy</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/gpeal8">@gpeal8</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="53217309" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/b01eb4f0-22d1-4175-865b-e9b0849c5f80/gabriel-reactnative-2_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>130: Sunsetting ReactNative at AirBnb with Gabriel Peal - Part 2</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/b01eb4f0-22d1-4175-865b-e9b0849c5f80/3000x3000/1530671601-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:55:23</itunes:duration>
      <itunes:summary>In this episode, we resume our conversation with Airbnb&apos;s Gabriel Peal. If you haven&apos;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&apos;re moving away from React Native.

Shownotes: http://fragmentedpodcast.com/episodes/130/</itunes:summary>
      <itunes:subtitle>In this episode, we resume our conversation with Airbnb&apos;s Gabriel Peal. If you haven&apos;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&apos;re moving away from React Native.

Shownotes: http://fragmentedpodcast.com/episodes/130/</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>130</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">e0f452ec-b3b2-420b-aff0-638834c11b6c</guid>
      <title>129: Sunsetting ReactNative at Airbnb with Gabriel Peal - Part 1</title>
      <description><![CDATA[<p>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.</p>
<p>It's always a pleasure listening to his insights and this episode is no exception!</p>
<p>Listen on:</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://facebook.github.io/react-native/">React Native</a></li>
<li><a href="https://medium.com/airbnb-engineering/react-native-at-airbnb-f95aa460be1c">The post that kicked off this show</a></li>
<li><a href="https://twitter.com/spikebrehm">Spike Brehm</a></li>
<li><a href="https://twitter.com/intelligibabble">Leland Richardson</a></li>
<li><a href="https://airbnb.design/building-a-visual-language/">Building a visual language - DLS</a></li>
<li><a href="https://github.com/facebook/yoga">Yoga library - cross layout engine</a></li>
<li><a href="https://github.com/facebook/yoga/tree/master/android">YogaLayout - Android</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://www.bitrise.io/?utm_source=fragmented_spec&amp;utm_medium=podcast&amp;utm_campaign=w27">Bitrise</a> - Bitrise is your mobile continuous integration and delivery for your whole team, with dozens of integrations for your favorite services.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/gpeal8">@gpeal8</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 2 Jul 2018 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>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.</p>
<p>It's always a pleasure listening to his insights and this episode is no exception!</p>
<p>Listen on:</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://facebook.github.io/react-native/">React Native</a></li>
<li><a href="https://medium.com/airbnb-engineering/react-native-at-airbnb-f95aa460be1c">The post that kicked off this show</a></li>
<li><a href="https://twitter.com/spikebrehm">Spike Brehm</a></li>
<li><a href="https://twitter.com/intelligibabble">Leland Richardson</a></li>
<li><a href="https://airbnb.design/building-a-visual-language/">Building a visual language - DLS</a></li>
<li><a href="https://github.com/facebook/yoga">Yoga library - cross layout engine</a></li>
<li><a href="https://github.com/facebook/yoga/tree/master/android">YogaLayout - Android</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://www.bitrise.io/?utm_source=fragmented_spec&amp;utm_medium=podcast&amp;utm_campaign=w27">Bitrise</a> - Bitrise is your mobile continuous integration and delivery for your whole team, with dozens of integrations for your favorite services.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/gpeal8">@gpeal8</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="35184959" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/89404f0a-9967-4dfa-967a-bf4050f412c6/gabriel-reactnative-1_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>129: Sunsetting ReactNative at Airbnb with Gabriel Peal - Part 1</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/89404f0a-9967-4dfa-967a-bf4050f412c6/3000x3000/1530485291-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:36:36</itunes:duration>
      <itunes:summary>If you haven&apos;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&apos;s always a pleasure listening to his insights and this episode is no exception!

Listen on:</itunes:summary>
      <itunes:subtitle>If you haven&apos;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&apos;s always a pleasure listening to his insights and this episode is no exception!

Listen on:</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>129</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">2f0308a8-ea36-4c44-9d2c-2f702607d7c1</guid>
      <title>128: gRPC on Android with Sam Bobra</title>
      <description><![CDATA[<p>In today's episode, we are joined by Sam Bobra - engineering manager @VSCO, android fangirl and gRPC magician (some would go so far as to say evangelist !)  to talk about gRPC on Android. Super informative episode!</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://vsco.co">VSCO</a></li>
<li><a href="https://www.youtube.com/watch?v=D-vuRmuSwUA">Sam's DroidconSF 2017 - Thinking Beyond the REST API: gRPC for Android</a></li>
<li><a href="https://en.wikipedia.org/wiki/Microservices">Microservices</a></li>
<li><a href="https://golang.org">Go (programming language)</a></li>
</ul>
<h3>Implementation</h3>
<ul>
<li><a href="https://developers.google.com/protocol-buffers/docs/javatutorial">Protocol Buffers</a></li>
<li><a href="https://github.com/google/protobuf-gradle-plugin">protobuf-gradle-plugin</a></li>
<li><a href="https://github.com/salesforce/reactive-grpc">Reactive gRPC</a></li>
<li><a href="https://news.ycombinator.com/item?id=12349282">Differences between gRPC &amp; graphQL</a></li>
</ul>
<h3>Misc</h3>
<ul>
<li>codegen <a href="https://github.com/grpc/grpc-java">grpc-Java</a></li>
<li>codegen <a href="https://github.com/google/protobuf/blob/master/java/lite.md">grpc-Lite</a></li>
<li>codegen <a href="https://github.com/square/wire">Wire</a></li>
<li><a href="https://github.com/fullstorydev/grpcurl">Curling: grpcurl</a></li>
<li><a href="https://www.envoyproxy.io">envoy</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://www.bitrise.io/?utm_source=fragmented_spec&amp;utm_medium=podcast&amp;utm_campaign=w25">Bitrise.io</a></li>
<li><a href="https://blog.bitrise.io/introducing-solid-and-snappy-virtual-device-testing-for-android">Virtual Device Testing: full integration with Firebase Test Lab, run emulators quickly and reliably</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/samwritescode">@samwritescode</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/ryanjsalva">@ryanjsalva</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 25 Jun 2018 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In today's episode, we are joined by Sam Bobra - engineering manager @VSCO, android fangirl and gRPC magician (some would go so far as to say evangelist !)  to talk about gRPC on Android. Super informative episode!</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://vsco.co">VSCO</a></li>
<li><a href="https://www.youtube.com/watch?v=D-vuRmuSwUA">Sam's DroidconSF 2017 - Thinking Beyond the REST API: gRPC for Android</a></li>
<li><a href="https://en.wikipedia.org/wiki/Microservices">Microservices</a></li>
<li><a href="https://golang.org">Go (programming language)</a></li>
</ul>
<h3>Implementation</h3>
<ul>
<li><a href="https://developers.google.com/protocol-buffers/docs/javatutorial">Protocol Buffers</a></li>
<li><a href="https://github.com/google/protobuf-gradle-plugin">protobuf-gradle-plugin</a></li>
<li><a href="https://github.com/salesforce/reactive-grpc">Reactive gRPC</a></li>
<li><a href="https://news.ycombinator.com/item?id=12349282">Differences between gRPC &amp; graphQL</a></li>
</ul>
<h3>Misc</h3>
<ul>
<li>codegen <a href="https://github.com/grpc/grpc-java">grpc-Java</a></li>
<li>codegen <a href="https://github.com/google/protobuf/blob/master/java/lite.md">grpc-Lite</a></li>
<li>codegen <a href="https://github.com/square/wire">Wire</a></li>
<li><a href="https://github.com/fullstorydev/grpcurl">Curling: grpcurl</a></li>
<li><a href="https://www.envoyproxy.io">envoy</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://www.bitrise.io/?utm_source=fragmented_spec&amp;utm_medium=podcast&amp;utm_campaign=w25">Bitrise.io</a></li>
<li><a href="https://blog.bitrise.io/introducing-solid-and-snappy-virtual-device-testing-for-android">Virtual Device Testing: full integration with Firebase Test Lab, run emulators quickly and reliably</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/samwritescode">@samwritescode</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/ryanjsalva">@ryanjsalva</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="51176581" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/a0ddb17f-c015-4247-9102-9c1afa951ba5/grpc-evangelism_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>128: gRPC on Android with Sam Bobra</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/a0ddb17f-c015-4247-9102-9c1afa951ba5/3000x3000/1529876488-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:53:15</itunes:duration>
      <itunes:summary>In today&apos;s episode, we are joined by Sam Bobra - engineering manager @VSCO, android fangirl and gRPC magician (some would go so far as to say evangelist  !)  to talk about gRPC on Android. Super informative episode!

Show notes at http://fragmentedpodcast.com/episodes/128/</itunes:summary>
      <itunes:subtitle>In today&apos;s episode, we are joined by Sam Bobra - engineering manager @VSCO, android fangirl and gRPC magician (some would go so far as to say evangelist  !)  to talk about gRPC on Android. Super informative episode!

Show notes at http://fragmentedpodcast.com/episodes/128/</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>128</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">5b052648-da42-4772-9269-049c324e8e49</guid>
      <title>127: Audio playback on Android with Caren Chang</title>
      <description><![CDATA[<p>In today's episode, we sit down with Caren Chang from June to talk about audio engineering for Android. More specifically, how stoves can use audio to send notifications.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://medium.com/@calren24/kotlin-in-action-chapter-1-what-and-why-9d2899560755">Caren's &quot;Learning Kotlin in Action&quot; summary blog post series</a></li>
<li><a href="https://juneoven.com">June Oven</a></li>
<li><a href="https://www.youtube.com/watch?v=lCuLxqGd0go">June Oven Video</a></li>
</ul>
<h3>Apis</h3>
<ul>
<li><a href="https://developer.android.com/ndk/guides/audio/audio-latency">Audio Latency</a></li>
<li><a href="https://developer.android.com/reference/android/media/MediaPlayer">MediaPlayer</a></li>
<li><a href="https://developer.android.com/reference/android/media/SoundPool">SoundPool</a></li>
<li><a href="https://developer.android.com/guide/topics/media/exoplayer">ExoPlayer</a></li>
</ul>
<h3>Resources</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=JOl0QNJWQ6g">Droidcon Boston</a></li>
<li><a href="https://caster.io/courses/exoplayer-introduction-to-audio-playback">Caster.IO - ExoPlayer course</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://appcenter.ms/">Microsoft AppCenter</a> – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/calren24">@calren24</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/ryanjsalva">@ryanjsalva</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 11 Jun 2018 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In today's episode, we sit down with Caren Chang from June to talk about audio engineering for Android. More specifically, how stoves can use audio to send notifications.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://medium.com/@calren24/kotlin-in-action-chapter-1-what-and-why-9d2899560755">Caren's &quot;Learning Kotlin in Action&quot; summary blog post series</a></li>
<li><a href="https://juneoven.com">June Oven</a></li>
<li><a href="https://www.youtube.com/watch?v=lCuLxqGd0go">June Oven Video</a></li>
</ul>
<h3>Apis</h3>
<ul>
<li><a href="https://developer.android.com/ndk/guides/audio/audio-latency">Audio Latency</a></li>
<li><a href="https://developer.android.com/reference/android/media/MediaPlayer">MediaPlayer</a></li>
<li><a href="https://developer.android.com/reference/android/media/SoundPool">SoundPool</a></li>
<li><a href="https://developer.android.com/guide/topics/media/exoplayer">ExoPlayer</a></li>
</ul>
<h3>Resources</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=JOl0QNJWQ6g">Droidcon Boston</a></li>
<li><a href="https://caster.io/courses/exoplayer-introduction-to-audio-playback">Caster.IO - ExoPlayer course</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://appcenter.ms/">Microsoft AppCenter</a> – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/calren24">@calren24</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/ryanjsalva">@ryanjsalva</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="45116429" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/d88c0636-518a-4475-a57a-aab811f3bcae/calren_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>127: Audio playback on Android with Caren Chang</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/d88c0636-518a-4475-a57a-aab811f3bcae/3000x3000/1528654055-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:46:58</itunes:duration>
      <itunes:summary>In today&apos;s episode, we sit down with Caren Chang from June to talk about audio engineering for Android. More specifically, how stoves can use audio to send notifications.</itunes:summary>
      <itunes:subtitle>In today&apos;s episode, we sit down with Caren Chang from June to talk about audio engineering for Android. More specifically, how stoves can use audio to send notifications.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>127</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">3ff5b397-8b05-4de8-8cba-8661bcbe81e2</guid>
      <title>126: GraphQL and Apollo with GDE Mike Nakhimovich (Part 2)</title>
      <description><![CDATA[<p>In this episode, we continue with Part 2 of this GraphQL series. If you haven't listed to episode 125 already, it might make sense to first listen to that one cause we go into the basics of GraphQL.</p>
<p>In this episode, we dive into the specifics of Apollo and how Mike went about creating a GraphQL client for Android. Let's get on with Part 2.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://GraphQL.org/">GraphQL</a></li>
<li><a href="http://facebook.github.io/graphql/draft/">GraphQL specification</a></li>
</ul>
<h3>Apollo</h3>
<ul>
<li><a href="https://github.com/apollographql/apollo-android">Apollo Android - GraphQL Client for Android</a></li>
</ul>
<h3>Resources</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=ugUFKB1LsNE">droidcon NYC 2017 - GraphQL on Android is here!</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://appcenter.ms/">Microsoft AppCenter</a> – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/friendlymikhail">@friendlymikhail</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 4 Jun 2018 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, we continue with Part 2 of this GraphQL series. If you haven't listed to episode 125 already, it might make sense to first listen to that one cause we go into the basics of GraphQL.</p>
<p>In this episode, we dive into the specifics of Apollo and how Mike went about creating a GraphQL client for Android. Let's get on with Part 2.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://GraphQL.org/">GraphQL</a></li>
<li><a href="http://facebook.github.io/graphql/draft/">GraphQL specification</a></li>
</ul>
<h3>Apollo</h3>
<ul>
<li><a href="https://github.com/apollographql/apollo-android">Apollo Android - GraphQL Client for Android</a></li>
</ul>
<h3>Resources</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=ugUFKB1LsNE">droidcon NYC 2017 - GraphQL on Android is here!</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://appcenter.ms/">Microsoft AppCenter</a> – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/friendlymikhail">@friendlymikhail</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="31001089" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/0bd31339-55ca-4140-92f1-7ad5dfbc8624/apollo-part2_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>126: GraphQL and Apollo with GDE Mike Nakhimovich (Part 2)</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/0bd31339-55ca-4140-92f1-7ad5dfbc8624/3000x3000/1527374149-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:32:14</itunes:duration>
      <itunes:summary>In this episode, we continue with Part 2 of this GraphQL series. If you haven&apos;t listed to episode 125 already, it might make sense to first listen to that one cause we go into the basics of GraphQL.

In this episode, we dive into the specifics of Apollo and how Mike went about creating a GraphQL client for Android. Let&apos;s get on with Part 2.

http://fragmentedpodcast.com/episodes/126/</itunes:summary>
      <itunes:subtitle>In this episode, we continue with Part 2 of this GraphQL series. If you haven&apos;t listed to episode 125 already, it might make sense to first listen to that one cause we go into the basics of GraphQL.

In this episode, we dive into the specifics of Apollo and how Mike went about creating a GraphQL client for Android. Let&apos;s get on with Part 2.

http://fragmentedpodcast.com/episodes/126/</itunes:subtitle>
      <itunes:keywords>technology, programming, development, web</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>126</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">4d9e6036-e250-4db8-8ae5-b28f47b7e0f3</guid>
      <title>125: GraphQL and Apollo with GDE Mike Nakhimovich (Part 1)</title>
      <description><![CDATA[<p>In this episode, we talk about GraphQL. Friend and GDE Mike Nakhimovich helped create the library Apollo for Android, which is the defacto official GraphQL client for Android.</p>
<p>In this first part of two, we take a step back and first try to understand what GraphQL is, why one would use it, how Mike set out to create and contribute Apollo for Android and his journey and satisfaction with open sourcing it when he worked at the New York Times.</p>
<p>If you've ever been interested in GraphQL, this is a good show to get you up to speed.</p>
<p><a href="http://audio.simplecast.com/700776fa.mp3">Download directly</a></p>
<h2>Show notes</h2>
<ul>
<li><a href="http://GraphQL.org/">GraphQL</a></li>
</ul>
<h3>Sample GraphQL servers</h3>
<ul>
<li><a href="https://developer.github.com/v4/explorer/">Github explorer</a></li>
<li>Star Wars <a href="https://swapi.co/">api</a> <a href="https://graphiql.graphcms.com/simple/v1/swapi">GraphQLCMS visualization</a></li>
<li><a href="https://help.shopify.com/api/custom-storefronts/storefront-api/GraphQL-explorer">Shopify GraphQL Explorer</a></li>
</ul>
<h3>Resources</h3>
<ul>
<li><a href="https://open.nytimes.com/react-relay-and-GraphQL-under-the-hood-of-the-times-website-redesign-22fb62ea9764">React, Relay and GraphQL: Under the hood of the Times website redesign</a></li>
<li><a href="https://open.nytimes.com/the-new-york-times-now-on-apollo-b9a78a5038c">The New York Times - Now on Apollo</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://appcenter.ms/">Microsoft AppCenter</a> – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/friendlymikhail">@friendlymikhail</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="ttps://www.instagram.com/donnfelker/">📷 donnfelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">📷 kaushikgopal</a></li>
</ul>
]]></description>
      <pubDate>Mon, 28 May 2018 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, we talk about GraphQL. Friend and GDE Mike Nakhimovich helped create the library Apollo for Android, which is the defacto official GraphQL client for Android.</p>
<p>In this first part of two, we take a step back and first try to understand what GraphQL is, why one would use it, how Mike set out to create and contribute Apollo for Android and his journey and satisfaction with open sourcing it when he worked at the New York Times.</p>
<p>If you've ever been interested in GraphQL, this is a good show to get you up to speed.</p>
<p><a href="http://audio.simplecast.com/700776fa.mp3">Download directly</a></p>
<h2>Show notes</h2>
<ul>
<li><a href="http://GraphQL.org/">GraphQL</a></li>
</ul>
<h3>Sample GraphQL servers</h3>
<ul>
<li><a href="https://developer.github.com/v4/explorer/">Github explorer</a></li>
<li>Star Wars <a href="https://swapi.co/">api</a> <a href="https://graphiql.graphcms.com/simple/v1/swapi">GraphQLCMS visualization</a></li>
<li><a href="https://help.shopify.com/api/custom-storefronts/storefront-api/GraphQL-explorer">Shopify GraphQL Explorer</a></li>
</ul>
<h3>Resources</h3>
<ul>
<li><a href="https://open.nytimes.com/react-relay-and-GraphQL-under-the-hood-of-the-times-website-redesign-22fb62ea9764">React, Relay and GraphQL: Under the hood of the Times website redesign</a></li>
<li><a href="https://open.nytimes.com/the-new-york-times-now-on-apollo-b9a78a5038c">The New York Times - Now on Apollo</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://appcenter.ms/">Microsoft AppCenter</a> – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/friendlymikhail">@friendlymikhail</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="ttps://www.instagram.com/donnfelker/">📷 donnfelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">📷 kaushikgopal</a></li>
</ul>
]]></content:encoded>
      <enclosure length="31638797" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/a1067dda-8112-40ed-ab3c-67d1a85d3a63/apollo-part1_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>125: GraphQL and Apollo with GDE Mike Nakhimovich (Part 1)</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/a1067dda-8112-40ed-ab3c-67d1a85d3a63/3000x3000/1526783419-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:32:54</itunes:duration>
      <itunes:summary>In this episode, we talk about GraphQL. Friend and GDE Mike Nakhimovich helped create the library Apollo for Android, which is the defacto official GraphQL client for Android.

In this first part of two, we take a step back and first try to understand what GraphQL is, why one would use it, how Mike set out to create and contribute Apollo for Android and his journey and satisfaction with open sourcing it when he worked at the New York Times.

If you&apos;ve ever been interested in GraphQL, this is a good show to get you up to speed.

Shownotes:  http://fragmentedpodcast.com/episodes/125/</itunes:summary>
      <itunes:subtitle>In this episode, we talk about GraphQL. Friend and GDE Mike Nakhimovich helped create the library Apollo for Android, which is the defacto official GraphQL client for Android.

In this first part of two, we take a step back and first try to understand what GraphQL is, why one would use it, how Mike set out to create and contribute Apollo for Android and his journey and satisfaction with open sourcing it when he worked at the New York Times.

If you&apos;ve ever been interested in GraphQL, this is a good show to get you up to speed.

Shownotes:  http://fragmentedpodcast.com/episodes/125/</itunes:subtitle>
      <itunes:keywords>technology, android, programming, development, web</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>125</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">2190108c-9b88-4a3a-b930-152e4afdff35</guid>
      <title>124: IO 2018 first impressions with Android Dialogs &amp; Pocket Casts teams</title>
      <description><![CDATA[<p>In this episode of Fragmented, Kaushik talks to Chiuki &amp; Huyen from Android Dialogs and Russell &amp; Philip from Pocket Casts. Fresh after IO we huddled in a room to talk about our first impressions and what we thought were some of the highlights for us Android developers. Hope you enjoy the show! (if you want to see a behind the scenes crossover special, make sure to subscribe to Android Dialogs!)</p>
<h2>Show Notes</h2>
<h3>Android Dialogs</h3>
<ul>
<li>Chiuki <a href="https://twitter.com/chiuki">@chiuki</a></li>
<li>Huyen Tue Dao <a href="https://twitter.com/queencodemonkey">@queencodemonkey</a></li>
<li><a href="https://www.youtube.com/channel/UCMEmNnHT69aZuaOrE-dF6ug">Android Dialogs on YouTube</a></li>
</ul>
<h3>Pocket Casts</h3>
<ul>
<li>Russell Ivanovic <a href="https://twitter.com/rustyshelf">@rustyshelf</a></li>
<li>Phil of PocketCasts <a href="https://twitter.com/geekygecko/">@geekygecko</a></li>
<li><a href="https://www.shiftyjelly.com/pocketcasts/">Pocket Casts</a></li>
<li><a href="https://www.wsj.com/articles/public-radio-organizations-buy-pocket-casts-1525366680">Wall Street Journal - Public Radio organizations buy Pocket Casts</a></li>
</ul>
<h3>io2018 stuff</h3>
<ul>
<li><a href="https://android-developers.googleblog.com/2018/05/google-io-2018-whats-new-in-android.html">Google I/O 2018: What's new in Android</a></li>
<li><a href="https://www.youtube.com/watch?v=bd1mEm2Fy08">Google Duplex announcement at Google IO</a></li>
<li><a href="https://developer.android.com/jetpack/">Android Jetpack</a> (<a href="https://www.youtube.com/watch?v=LmkKFCfmnhQ">intro video</a>)</li>
<li><a href="https://www.youtube.com/watch?v=8GCXtCjtg40">Android Jetpack: manage UI navigation with Navigation Controller (Google I/O '18)</a></li>
<li><a href="https://material.io/design/material-theming/#material-theming">Material theming</a></li>
<li><a href="https://material.io/tools/theme-editor/">Material Theme Editor (Sketch plugin)</a></li>
<li>Video 1: <a href="https://www.youtube.com/watch?v=1Dh8ZBQp9jo">Guide to the new material.io website</a></li>
<li>Video 2: <a href="https://www.youtube.com/watch?v=Ty6VjgVHiko">Build great Material Design products across platforms</a></li>
<li><a href="https://developer.android.com/platform/technology/app-bundle/">Android App Bundles</a> (<a href="https://www.imore.com/app-thinning-ios-9-explained">iOS App thinning</a>)</li>
<li><a href="https://www.youtube.com/watch?v=st1XVfkDWqk">Android Jetpack: sweetening Kotlin development with Android KTX (Google I/O '18)</a></li>
<li><a href="https://www.youtube.com/watch?v=a7IVH5aNwwc">Android Slices: build interactive results for Google Search (Google I/O '18)</a></li>
<li><a href="https://www.youtube.com/watch?v=lu3L6DxUBRA">Getting started with App Actions (Google I/O '18)</a></li>
<li><a href="https://www.androidpolice.com/2017/03/28/google-is-working-on-bringing-android-studio-to-chrome-os/">Google is working on bringing Android Studio to Chrome OS</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://appcenter.ms/">Microsoft AppCenter</a> – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="ttps://www.instagram.com/donnfelker/">📷 donnfelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">📷 kaushikgopal</a></li>
</ul>
]]></description>
      <pubDate>Mon, 14 May 2018 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode of Fragmented, Kaushik talks to Chiuki &amp; Huyen from Android Dialogs and Russell &amp; Philip from Pocket Casts. Fresh after IO we huddled in a room to talk about our first impressions and what we thought were some of the highlights for us Android developers. Hope you enjoy the show! (if you want to see a behind the scenes crossover special, make sure to subscribe to Android Dialogs!)</p>
<h2>Show Notes</h2>
<h3>Android Dialogs</h3>
<ul>
<li>Chiuki <a href="https://twitter.com/chiuki">@chiuki</a></li>
<li>Huyen Tue Dao <a href="https://twitter.com/queencodemonkey">@queencodemonkey</a></li>
<li><a href="https://www.youtube.com/channel/UCMEmNnHT69aZuaOrE-dF6ug">Android Dialogs on YouTube</a></li>
</ul>
<h3>Pocket Casts</h3>
<ul>
<li>Russell Ivanovic <a href="https://twitter.com/rustyshelf">@rustyshelf</a></li>
<li>Phil of PocketCasts <a href="https://twitter.com/geekygecko/">@geekygecko</a></li>
<li><a href="https://www.shiftyjelly.com/pocketcasts/">Pocket Casts</a></li>
<li><a href="https://www.wsj.com/articles/public-radio-organizations-buy-pocket-casts-1525366680">Wall Street Journal - Public Radio organizations buy Pocket Casts</a></li>
</ul>
<h3>io2018 stuff</h3>
<ul>
<li><a href="https://android-developers.googleblog.com/2018/05/google-io-2018-whats-new-in-android.html">Google I/O 2018: What's new in Android</a></li>
<li><a href="https://www.youtube.com/watch?v=bd1mEm2Fy08">Google Duplex announcement at Google IO</a></li>
<li><a href="https://developer.android.com/jetpack/">Android Jetpack</a> (<a href="https://www.youtube.com/watch?v=LmkKFCfmnhQ">intro video</a>)</li>
<li><a href="https://www.youtube.com/watch?v=8GCXtCjtg40">Android Jetpack: manage UI navigation with Navigation Controller (Google I/O '18)</a></li>
<li><a href="https://material.io/design/material-theming/#material-theming">Material theming</a></li>
<li><a href="https://material.io/tools/theme-editor/">Material Theme Editor (Sketch plugin)</a></li>
<li>Video 1: <a href="https://www.youtube.com/watch?v=1Dh8ZBQp9jo">Guide to the new material.io website</a></li>
<li>Video 2: <a href="https://www.youtube.com/watch?v=Ty6VjgVHiko">Build great Material Design products across platforms</a></li>
<li><a href="https://developer.android.com/platform/technology/app-bundle/">Android App Bundles</a> (<a href="https://www.imore.com/app-thinning-ios-9-explained">iOS App thinning</a>)</li>
<li><a href="https://www.youtube.com/watch?v=st1XVfkDWqk">Android Jetpack: sweetening Kotlin development with Android KTX (Google I/O '18)</a></li>
<li><a href="https://www.youtube.com/watch?v=a7IVH5aNwwc">Android Slices: build interactive results for Google Search (Google I/O '18)</a></li>
<li><a href="https://www.youtube.com/watch?v=lu3L6DxUBRA">Getting started with App Actions (Google I/O '18)</a></li>
<li><a href="https://www.androidpolice.com/2017/03/28/google-is-working-on-bringing-android-studio-to-chrome-os/">Google is working on bringing Android Studio to Chrome OS</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://appcenter.ms/">Microsoft AppCenter</a> – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="ttps://www.instagram.com/donnfelker/">📷 donnfelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">📷 kaushikgopal</a></li>
</ul>
]]></content:encoded>
      <enclosure length="36114354" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/20c8a65e-88eb-4b47-8da1-5bc599365ccd/124-googleio-2018_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>124: IO 2018 first impressions with Android Dialogs &amp; Pocket Casts teams</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/20c8a65e-88eb-4b47-8da1-5bc599365ccd/3000x3000/1526257383-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:49:48</itunes:duration>
      <itunes:summary>In this episode of Fragmented, Kaushik talks to Chiuki &amp; Huyen from Android Dialogs and Russell &amp; Philip from Pocket Casts. Fresh after IO we huddled in a room to talk about our first impressions and what we thought were some of the highlights for us Android developers. Hope you enjoy the show! (if you want to see a behind the scenes crossover special, make sure to subscribe to Android Dialogs!)

Show notes: http://fragmentedpodcast.com/episodes/124/</itunes:summary>
      <itunes:subtitle>In this episode of Fragmented, Kaushik talks to Chiuki &amp; Huyen from Android Dialogs and Russell &amp; Philip from Pocket Casts. Fresh after IO we huddled in a room to talk about our first impressions and what we thought were some of the highlights for us Android developers. Hope you enjoy the show! (if you want to see a behind the scenes crossover special, make sure to subscribe to Android Dialogs!)

Show notes: http://fragmentedpodcast.com/episodes/124/</itunes:subtitle>
      <itunes:keywords>pocket casts, android dialogs, google io 2018</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>124</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">eae44dfb-aad3-4933-981a-3f1daadf846b</guid>
      <title>123: Android Micro Frustrations</title>
      <description><![CDATA[<p>With good -most of the time- also comes the bad. In this episode, Kaushik and Donn chat about the small annoying things about being an Android developer, or more aptly - &quot;Micro Frustrations&quot;.</p>
<p>We usually cover the new, latest, greatest and awesome developments. But it helps to step back and also point out the things that are broken and the 1000 cuts so to speak.</p>
<p>Sit back and enjoy this hearty rant!</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://medium.com/@drinfo/fuck-you-android-framework-ddbb02c4ae48"><code>F**k</code> you Android</a></li>
</ul>
<h3>layout complaints</h3>
<ul>
<li><a href="https://github.com/Kotlin/anko/wiki/Anko-Layouts">Kotlin Android Extensions</a></li>
<li><a href="https://github.com/Kotlin/anko/wiki/Anko-Layouts">Anko layouts</a> (slightly different from Kotlin Android extensions)</li>
<li><a href="https://stackoverflow.com/questions/49517661/android-studio-3-1-stable-build-successful-but-can-not-resolve-error/49519615#49519615">Android Studio 3.1 Stable - Build successful but can't resolve error</a></li>
</ul>
<h3>Navigation &amp; System bar frustrations:</h3>
<ul>
<li><a href="https://stackoverflow.com/questions/20264268/how-do-i-get-the-height-and-width-of-the-android-navigation-bar-programmatically">How do I ge the height and width of the android navigation bar</a></li>
</ul>
<p>If you're looking for a solution to just hide system bar (and not the navigation bar) <a href="http://fragmentedpodcast.com/episodes/123/">go to our main shownotes page to see the code</a>.</p>
<h2>Sponsors</h2>
<ul>
<li><a href="https://appcenter.ms/">Microsoft AppCenter</a> – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="ttps://www.instagram.com/donnfelker/">📷 donnfelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">📷 kaushikgopal</a></li>
</ul>
]]></description>
      <pubDate>Mon, 7 May 2018 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>With good -most of the time- also comes the bad. In this episode, Kaushik and Donn chat about the small annoying things about being an Android developer, or more aptly - &quot;Micro Frustrations&quot;.</p>
<p>We usually cover the new, latest, greatest and awesome developments. But it helps to step back and also point out the things that are broken and the 1000 cuts so to speak.</p>
<p>Sit back and enjoy this hearty rant!</p>
<h2>Shownotes</h2>
<ul>
<li><a href="https://medium.com/@drinfo/fuck-you-android-framework-ddbb02c4ae48"><code>F**k</code> you Android</a></li>
</ul>
<h3>layout complaints</h3>
<ul>
<li><a href="https://github.com/Kotlin/anko/wiki/Anko-Layouts">Kotlin Android Extensions</a></li>
<li><a href="https://github.com/Kotlin/anko/wiki/Anko-Layouts">Anko layouts</a> (slightly different from Kotlin Android extensions)</li>
<li><a href="https://stackoverflow.com/questions/49517661/android-studio-3-1-stable-build-successful-but-can-not-resolve-error/49519615#49519615">Android Studio 3.1 Stable - Build successful but can't resolve error</a></li>
</ul>
<h3>Navigation &amp; System bar frustrations:</h3>
<ul>
<li><a href="https://stackoverflow.com/questions/20264268/how-do-i-get-the-height-and-width-of-the-android-navigation-bar-programmatically">How do I ge the height and width of the android navigation bar</a></li>
</ul>
<p>If you're looking for a solution to just hide system bar (and not the navigation bar) <a href="http://fragmentedpodcast.com/episodes/123/">go to our main shownotes page to see the code</a>.</p>
<h2>Sponsors</h2>
<ul>
<li><a href="https://appcenter.ms/">Microsoft AppCenter</a> – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="ttps://www.instagram.com/donnfelker/">📷 donnfelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">📷 kaushikgopal</a></li>
</ul>
]]></content:encoded>
      <enclosure length="68829619" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/6c89e94e-8b51-4dc7-bca7-876927a68468/rant_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>123: Android Micro Frustrations</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/6c89e94e-8b51-4dc7-bca7-876927a68468/3000x3000/1525397210-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:11:38</itunes:duration>
      <itunes:summary>With good –most of the time– also comes the bad. In this episode, Kaushik and Donn chat about the small annoying things about being an Android developer, or more aptly - &quot;Micro Frustrations&quot;.

We usually cover the new, latest, greatest and awesome developments. But it helps to step back and also point out the things that are broken and the 1000 cuts so to speak.

Sit back and enjoy this hearty rant!

Show notes: http://fragmentedpodcast.com/episodes/123/</itunes:summary>
      <itunes:subtitle>With good –most of the time– also comes the bad. In this episode, Kaushik and Donn chat about the small annoying things about being an Android developer, or more aptly - &quot;Micro Frustrations&quot;.

We usually cover the new, latest, greatest and awesome developments. But it helps to step back and also point out the things that are broken and the 1000 cuts so to speak.

Sit back and enjoy this hearty rant!

Show notes: http://fragmentedpodcast.com/episodes/123/</itunes:subtitle>
      <itunes:keywords>technology, android, programming, development, web</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>123</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">6fe75d8e-80bd-48d3-a1f0-30b56a4eb7fb</guid>
      <title>122: Learning Kotlin - typealias</title>
      <description><![CDATA[<p>In this episode of learning kotlin, we look at the <code>typealias</code> keyword. The <code>typealias</code> keyword allows you to provide alternate names for existing types and and function types. Learn how, why and when you can use it in this episode</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://kotlinlang.org/docs/reference/type-aliases.html">Kotlin Inline functions</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://appcenter.ms/">Microsoft AppCenter</a> – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="ttps://www.instagram.com/donnfelker/">📷 donnfelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">📷 kaushikgopal</a></li>
</ul>
]]></description>
      <pubDate>Mon, 23 Apr 2018 06:30:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode of learning kotlin, we look at the <code>typealias</code> keyword. The <code>typealias</code> keyword allows you to provide alternate names for existing types and and function types. Learn how, why and when you can use it in this episode</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://kotlinlang.org/docs/reference/type-aliases.html">Kotlin Inline functions</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://appcenter.ms/">Microsoft AppCenter</a> – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="ttps://www.instagram.com/donnfelker/">📷 donnfelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">📷 kaushikgopal</a></li>
</ul>
]]></content:encoded>
      <enclosure length="12179195" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/b3310eb0-7f64-4c57-a17f-f5cc3f945744/122-learning-kotlin-typealias_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>122: Learning Kotlin - typealias</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/b3310eb0-7f64-4c57-a17f-f5cc3f945744/3000x3000/1524466949-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:12:38</itunes:duration>
      <itunes:summary>In this episode of learning kotlin, we look at the `typealias` keyword. The `typealias` keyword allows you to provide alternate names for existing types and and function types. Learn how, why and when you can use it in this episode</itunes:summary>
      <itunes:subtitle>In this episode of learning kotlin, we look at the `typealias` keyword. The `typealias` keyword allows you to provide alternate names for existing types and and function types. Learn how, why and when you can use it in this episode</itunes:subtitle>
      <itunes:keywords>technology, android, programming, development, web</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>122</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">df1868c8-bac6-43a4-a5fb-9b3943a2949a</guid>
      <title>121: Functional Programming with Kotlin Arrow team - 2</title>
      <description><![CDATA[<p>In this episode of Fragmented, we wrap up another 2 part series. We dive into the details of the Arrow library with this one. Arrow is a library in Kotlin that helps bring many of the functional paradigms of programming to your daily development. We talk to the team about how it all started, the history of the library, why we even need arrow, how Arrow is structured, some of the pitfalls, and in the end some resources on getting us started with Arrow.</p>
<h2>Show Notes</h2>
<h3>Arrow library</h3>
<ul>
<li><a href="https://www.47deg.com/blog/announcing-arrow-for-kotlin/">Raul: Announcing Arrow for Kotlin</a></li>
<li><a href="https://caster.io/courses/functional-programming-in-kotlin-with-arrow">Jorge: Caster.io course - FP in Kotlin with Arrrow</a></li>
<li><a href="https://www.youtube.com/watch?v=qI1ctQ0293o">Jorge: Kotlin Conf - Architectures Using Functional Programming Concepts</a></li>
<li><a href="http://www.pacoworks.com/2018/01/15/arrow-functional-companion-to-kotlin-standard-library/">Paco: Arrow as a companion to Kotlin</a></li>
<li><a href="http://www.pacoworks.com/2018/02/25/simple-dependency-injection-in-kotlin-part-1/">Paco: Simple dependency injection in Kotlin (part 1)</a></li>
<li><a href="https://www.packtpub.com/application-development/functional-kotlin">Mario: Book on FP</a></li>
<li>Arrow Library eco system: <a href="https://github.com/arrow-kt/ank">Ank</a>, <a href="https://github.com/47deg/kollect">Kollect</a>, <a href="https://github.com/47deg/helios">Helios</a></li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://www.47deg.com/blog/arrow-v0-7-0-now-available/">Arrow V 0.7.0 - now available</a></li>
<li><a href="https://stackoverflow.com/questions/6246719/what-is-a-higher-kinded-type-in-scala">Higher Kinded types</a></li>
<li><a href="https://github.com/Kotlin/KEEP/pull/87">KEEP - Type classes and Higher Kinded Types proposal</a></li>
<li><a href="http://arrow-kt.io/docs/">Kotlin Arrow docs</a></li>
</ul>
<h3>Get help on Arrrow</h3>
<ul>
<li><a href="http://slack.kotlinlang.org/">KotlinLang slack channel #arrow</a></li>
<li><a href="https://gitter.im/arrow-kt/Lobby">Gitter: Arrow</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://appcenter.ms/">Microsoft AppCenter</a> – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/pacoworks">Paco</a> (<a href="http://www.pacoworks.com/">website</a>)</li>
<li><a href="https://twitter.com/raulraja">Raúλ Raja</a></li>
<li><a href="https://twitter.com/jorgecastillopr">Jorge Castillo</a></li>
<li><a href="https://twitter.com/dh44t">Mario Arias (in spirit)</a></li>
<li><a href="https://twitter.com/arrow_kt">Arrow KT</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 16 Apr 2018 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode of Fragmented, we wrap up another 2 part series. We dive into the details of the Arrow library with this one. Arrow is a library in Kotlin that helps bring many of the functional paradigms of programming to your daily development. We talk to the team about how it all started, the history of the library, why we even need arrow, how Arrow is structured, some of the pitfalls, and in the end some resources on getting us started with Arrow.</p>
<h2>Show Notes</h2>
<h3>Arrow library</h3>
<ul>
<li><a href="https://www.47deg.com/blog/announcing-arrow-for-kotlin/">Raul: Announcing Arrow for Kotlin</a></li>
<li><a href="https://caster.io/courses/functional-programming-in-kotlin-with-arrow">Jorge: Caster.io course - FP in Kotlin with Arrrow</a></li>
<li><a href="https://www.youtube.com/watch?v=qI1ctQ0293o">Jorge: Kotlin Conf - Architectures Using Functional Programming Concepts</a></li>
<li><a href="http://www.pacoworks.com/2018/01/15/arrow-functional-companion-to-kotlin-standard-library/">Paco: Arrow as a companion to Kotlin</a></li>
<li><a href="http://www.pacoworks.com/2018/02/25/simple-dependency-injection-in-kotlin-part-1/">Paco: Simple dependency injection in Kotlin (part 1)</a></li>
<li><a href="https://www.packtpub.com/application-development/functional-kotlin">Mario: Book on FP</a></li>
<li>Arrow Library eco system: <a href="https://github.com/arrow-kt/ank">Ank</a>, <a href="https://github.com/47deg/kollect">Kollect</a>, <a href="https://github.com/47deg/helios">Helios</a></li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://www.47deg.com/blog/arrow-v0-7-0-now-available/">Arrow V 0.7.0 - now available</a></li>
<li><a href="https://stackoverflow.com/questions/6246719/what-is-a-higher-kinded-type-in-scala">Higher Kinded types</a></li>
<li><a href="https://github.com/Kotlin/KEEP/pull/87">KEEP - Type classes and Higher Kinded Types proposal</a></li>
<li><a href="http://arrow-kt.io/docs/">Kotlin Arrow docs</a></li>
</ul>
<h3>Get help on Arrrow</h3>
<ul>
<li><a href="http://slack.kotlinlang.org/">KotlinLang slack channel #arrow</a></li>
<li><a href="https://gitter.im/arrow-kt/Lobby">Gitter: Arrow</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://appcenter.ms/">Microsoft AppCenter</a> – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/pacoworks">Paco</a> (<a href="http://www.pacoworks.com/">website</a>)</li>
<li><a href="https://twitter.com/raulraja">Raúλ Raja</a></li>
<li><a href="https://twitter.com/jorgecastillopr">Jorge Castillo</a></li>
<li><a href="https://twitter.com/dh44t">Mario Arias (in spirit)</a></li>
<li><a href="https://twitter.com/arrow_kt">Arrow KT</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="51188253" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/2acf4fd8-6036-4495-aeb6-85b1d615611f/arrow-p2_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>121: Functional Programming with Kotlin Arrow team - 2</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/2acf4fd8-6036-4495-aeb6-85b1d615611f/3000x3000/1523761768-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:53:16</itunes:duration>
      <itunes:summary>In this episode of Fragmented, we wrap up another 2 part series. We dive into the details of the Arrow library with this one. Arrow is a library in Kotlin that helps bring many of the functional paradigms of programming to your daily development. We talk to the team about how it all started, the history of the library, why we even need arrow, how Arrow is structured, some of the pitfalls, and in the end some resources on getting us started with Arrow.

Shownotes:  http://fragmentedpodcast.com/episodes/121/</itunes:summary>
      <itunes:subtitle>In this episode of Fragmented, we wrap up another 2 part series. We dive into the details of the Arrow library with this one. Arrow is a library in Kotlin that helps bring many of the functional paradigms of programming to your daily development. We talk to the team about how it all started, the history of the library, why we even need arrow, how Arrow is structured, some of the pitfalls, and in the end some resources on getting us started with Arrow.

Shownotes:  http://fragmentedpodcast.com/episodes/121/</itunes:subtitle>
      <itunes:keywords>technology, functional programming, funktionale, programming, kotlin, development, web, referential transparency, immutability, arrow, kategory</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>121</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">3f0b3fe0-7b9b-4c29-b087-66c392e19209</guid>
      <title>120: Functional Programming with Kotlin Arrow team - 1</title>
      <description><![CDATA[<p>In this episode of Fragmented, we kick off another 2 part series. This time it's with the Kotlin Arrow team! In the first part, we talk to Jorge, Raul and Paco about Functional programming in general, some core FP concepts, do we already use functional programming today, what are pure functions, do I need to know complicated math to do FP, Immutability, Referential transparency and so much more. These are all pretty daunting words, but the Arrow team break it down and make it really simple for us to understand.</p>
<h2>Show Notes</h2>
<h3>Kotlin Arrow team</h3>
<ul>
<li><a href="https://twitter.com/pacoworks">Paco</a> (<a href="http://www.pacoworks.com/">website</a>)</li>
<li><a href="https://twitter.com/raulraja">Raúλ Raja</a></li>
<li><a href="https://twitter.com/jorgecastillopr">Jorge Castillo</a></li>
<li><a href="https://twitter.com/dh44t">Mario Arias (in spirit)</a></li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://twitter.com/arrow_kt">Arrow KT</a></li>
<li><a href="https://www.47deg.com/">47 degrees</a></li>
<li><a href="https://caster.io/courses/functional-programming-in-kotlin-with-arrow">Jorge's caster.io course</a></li>
<li><a href="http://arrow-kt.io/docs/quickstart/blogs/">Blogs &amp; Presentations on FP - Arrow docs</a></li>
<li><a href="https://www.47deg.com/blog/functional-programming-patterns-v3/">Raul's presentation on Functional programming patterns</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://appcenter.ms/">Microsoft AppCenter</a> – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/pacoworks">Paco</a></li>
<li><a href="https://twitter.com/raulraja">Raúλ Raja</a></li>
<li><a href="https://twitter.com/jorgecastillopr">Jorge Castillo</a></li>
<li><a href="https://twitter.com/dh44t">Mario Arias (in spirit)</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 9 Apr 2018 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode of Fragmented, we kick off another 2 part series. This time it's with the Kotlin Arrow team! In the first part, we talk to Jorge, Raul and Paco about Functional programming in general, some core FP concepts, do we already use functional programming today, what are pure functions, do I need to know complicated math to do FP, Immutability, Referential transparency and so much more. These are all pretty daunting words, but the Arrow team break it down and make it really simple for us to understand.</p>
<h2>Show Notes</h2>
<h3>Kotlin Arrow team</h3>
<ul>
<li><a href="https://twitter.com/pacoworks">Paco</a> (<a href="http://www.pacoworks.com/">website</a>)</li>
<li><a href="https://twitter.com/raulraja">Raúλ Raja</a></li>
<li><a href="https://twitter.com/jorgecastillopr">Jorge Castillo</a></li>
<li><a href="https://twitter.com/dh44t">Mario Arias (in spirit)</a></li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://twitter.com/arrow_kt">Arrow KT</a></li>
<li><a href="https://www.47deg.com/">47 degrees</a></li>
<li><a href="https://caster.io/courses/functional-programming-in-kotlin-with-arrow">Jorge's caster.io course</a></li>
<li><a href="http://arrow-kt.io/docs/quickstart/blogs/">Blogs &amp; Presentations on FP - Arrow docs</a></li>
<li><a href="https://www.47deg.com/blog/functional-programming-patterns-v3/">Raul's presentation on Functional programming patterns</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://appcenter.ms/">Microsoft AppCenter</a> – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/pacoworks">Paco</a></li>
<li><a href="https://twitter.com/raulraja">Raúλ Raja</a></li>
<li><a href="https://twitter.com/jorgecastillopr">Jorge Castillo</a></li>
<li><a href="https://twitter.com/dh44t">Mario Arias (in spirit)</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="27296813" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/31c592f8-a78a-47c8-9183-53b0dc251b2a/arrow-p1_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>120: Functional Programming with Kotlin Arrow team - 1</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/31c592f8-a78a-47c8-9183-53b0dc251b2a/3000x3000/1523223985-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:28:23</itunes:duration>
      <itunes:summary>
In this episode of Fragmented, we kick off another 2 part series. This time it&apos;s with the Kotlin Arrow team! In the first part, we talk to Jorge, Raul and Paco about Functional programming in general, some core FP concepts, do we already use functional programming today, what are pure functions, do I need to know complicated math to do FP, Immutability, Referential transparency and so much more. These are all pretty daunting words, but the Arrow team break it down and make it really simple for us to understand.

Shownotes:  http://fragmentedpodcast.com/episodes/120/</itunes:summary>
      <itunes:subtitle>
In this episode of Fragmented, we kick off another 2 part series. This time it&apos;s with the Kotlin Arrow team! In the first part, we talk to Jorge, Raul and Paco about Functional programming in general, some core FP concepts, do we already use functional programming today, what are pure functions, do I need to know complicated math to do FP, Immutability, Referential transparency and so much more. These are all pretty daunting words, but the Arrow team break it down and make it really simple for us to understand.

Shownotes:  http://fragmentedpodcast.com/episodes/120/</itunes:subtitle>
      <itunes:keywords>kotlin, kategory, immutability, functional programming, referential transparency, funktionale, arrow</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>120</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">161f20b1-ba7c-4cc1-8efa-0e34beaeaa7e</guid>
      <title>119: Flutter with GDE Eugenio Marletti - Part 2</title>
      <description><![CDATA[<p>In part 2 of this series,</p>
<p>To help us understand Flutter in-depth we talk to Flutter's <a href="https://twitter.com/@workingkills">GDE Eugenio Marletti</a>. In Part 1 of this 2 part series, Eugenio helps us undersatnd what flutter is, why it was created, how it works, some really cool features with Flutter and why an AndroiDev today should really give Flutter a good look.</p>
<p>We got so carried away in conversation, that we were forced to break this episode into two parts. If you missed part 1 but want go back and listen you'll find it here: <a href="https://spec.fm/podcasts/fragmented/125975">118: Flutter and cross platform development with GDE Eugenio Marletti - Part 1</a>)</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://github.com/ReactiveX/rxdart">RxDart</a></li>
<li><a href="https://pub.dartlang.org/">Dart 2</a></li>
<li><a href="https://flutterweekly.net/">Flutter Weekly</a></li>
<li><a href="https://gitter.im/flutter/flutter">Flutter on Gitter</a></li>
<li><a href="https://flutter.io/get-started/codelab/">Flutter on Codelab</a></li>
<li><a href="https://github.com/flutter/flutter/tree/master/examples/flutter_gallery">Flutter on Github</a></li>
</ul>
<p>https://play.google.com/store/apps/details?id=io.flutter.gallery&amp;hl=en</p>
<h2>Sponsors</h2>
<ul>
<li><a href="https://appcenter.ms/">Microsoft AppCenter</a> – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/@workingkills">@workingkills</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">📷 donnfelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">📷 kaushikgopal</a></li>
</ul>
]]></description>
      <pubDate>Mon, 2 Apr 2018 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In part 2 of this series,</p>
<p>To help us understand Flutter in-depth we talk to Flutter's <a href="https://twitter.com/@workingkills">GDE Eugenio Marletti</a>. In Part 1 of this 2 part series, Eugenio helps us undersatnd what flutter is, why it was created, how it works, some really cool features with Flutter and why an AndroiDev today should really give Flutter a good look.</p>
<p>We got so carried away in conversation, that we were forced to break this episode into two parts. If you missed part 1 but want go back and listen you'll find it here: <a href="https://spec.fm/podcasts/fragmented/125975">118: Flutter and cross platform development with GDE Eugenio Marletti - Part 1</a>)</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://github.com/ReactiveX/rxdart">RxDart</a></li>
<li><a href="https://pub.dartlang.org/">Dart 2</a></li>
<li><a href="https://flutterweekly.net/">Flutter Weekly</a></li>
<li><a href="https://gitter.im/flutter/flutter">Flutter on Gitter</a></li>
<li><a href="https://flutter.io/get-started/codelab/">Flutter on Codelab</a></li>
<li><a href="https://github.com/flutter/flutter/tree/master/examples/flutter_gallery">Flutter on Github</a></li>
</ul>
<p>https://play.google.com/store/apps/details?id=io.flutter.gallery&amp;hl=en</p>
<h2>Sponsors</h2>
<ul>
<li><a href="https://appcenter.ms/">Microsoft AppCenter</a> – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/@workingkills">@workingkills</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">📷 donnfelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">📷 kaushikgopal</a></li>
</ul>
]]></content:encoded>
      <enclosure length="50831028" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/0a5cffce-0baa-4f2f-810a-ffb37a96d42c/119-flutter-part-2_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>119: Flutter with GDE Eugenio Marletti - Part 2</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/0a5cffce-0baa-4f2f-810a-ffb37a96d42c/3000x3000/1522610599-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:52:54</itunes:duration>
      <itunes:summary>In part 2 of this series, 

To help us understand Flutter in-depth we talk to Flutter&apos;s GDE Eugenio Marletti. In Part 2 of this 2 part series, Eugenio helps us understand what flutter is, why it was created, how it works, some really cool features with Flutter and why an AndroidDev today should really give Flutter a good look.

We got so carried away in conversation, that we were forced to break this episode into two parts. If you missed part 1 but want to go back and listen you&apos;ll find it here: [118: Flutter and cross-platform development with GDE Eugenio Marletti - Part 1](https://spec.fm/podcasts/fragmented/125975) 

Shownotes: http://fragmentedpodcast.com/episodes/119/</itunes:summary>
      <itunes:subtitle>In part 2 of this series, 

To help us understand Flutter in-depth we talk to Flutter&apos;s GDE Eugenio Marletti. In Part 2 of this 2 part series, Eugenio helps us understand what flutter is, why it was created, how it works, some really cool features with Flutter and why an AndroidDev today should really give Flutter a good look.

We got so carried away in conversation, that we were forced to break this episode into two parts. If you missed part 1 but want to go back and listen you&apos;ll find it here: [118: Flutter and cross-platform development with GDE Eugenio Marletti - Part 1](https://spec.fm/podcasts/fragmented/125975) 

Shownotes: http://fragmentedpodcast.com/episodes/119/</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>119</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">3ab32590-5dac-4b0e-a8ec-75968ee1e024</guid>
      <title>118: Flutter and cross platform development with GDE Eugenio Marletti - Part 1</title>
      <description><![CDATA[<p>In this episode, we dive into one of our most requested topics and highly anticipated ones - Flutter.</p>
<p>To help us understand Flutter in-depth, we talk to Flutter's GDE Eugenio Marletti. In Part 1 of this 2 part series, Eugenio helps us understand what flutter is, why it was created, how it works, some really cool features with Flutter and why an AndroiDev today should really give Flutter a good look.</p>
<p>We got so carried away in conversation, that we were forced to break this episode into two parts. Stay tuned for Part 2.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://helloclue.com/">Clue app</a></li>
<li><a href="https://medium.com/flutter-io/announcing-flutter-beta-1-build-beautiful-native-apps-dc142aea74c0">Announcing Flutter beta 1</a></li>
<li><a href="https://github.com/flutter/flutter/issues/14821">Embedding Flutter into an existing app</a> (examples <a href="https://github.com/flutter/flutter/tree/master/examples/flutter_view">flutter_view</a> &amp; <a href="https://github.com/flutter/flutter/tree/master/examples/platform_view">platform_view</a>)</li>
<li><a href="https://material.io/guidelines/components/steppers.html">Stepper widget</a></li>
<li><a href="https://flutter.io/get-started/install/">Getting started on Flutter (docs)</a></li>
<li><a href="https://stackoverflow.com/questions/3265357/compiled-vs-interpreted-languages">Compiled vs Interpreted languages</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://appcenter.ms/">Microsoft AppCenter</a> – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/@workingkills">@workingkills</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">📷 donnfelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">📷 kaushikgopal</a></li>
</ul>
]]></description>
      <pubDate>Mon, 19 Mar 2018 07:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, we dive into one of our most requested topics and highly anticipated ones - Flutter.</p>
<p>To help us understand Flutter in-depth, we talk to Flutter's GDE Eugenio Marletti. In Part 1 of this 2 part series, Eugenio helps us understand what flutter is, why it was created, how it works, some really cool features with Flutter and why an AndroiDev today should really give Flutter a good look.</p>
<p>We got so carried away in conversation, that we were forced to break this episode into two parts. Stay tuned for Part 2.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://helloclue.com/">Clue app</a></li>
<li><a href="https://medium.com/flutter-io/announcing-flutter-beta-1-build-beautiful-native-apps-dc142aea74c0">Announcing Flutter beta 1</a></li>
<li><a href="https://github.com/flutter/flutter/issues/14821">Embedding Flutter into an existing app</a> (examples <a href="https://github.com/flutter/flutter/tree/master/examples/flutter_view">flutter_view</a> &amp; <a href="https://github.com/flutter/flutter/tree/master/examples/platform_view">platform_view</a>)</li>
<li><a href="https://material.io/guidelines/components/steppers.html">Stepper widget</a></li>
<li><a href="https://flutter.io/get-started/install/">Getting started on Flutter (docs)</a></li>
<li><a href="https://stackoverflow.com/questions/3265357/compiled-vs-interpreted-languages">Compiled vs Interpreted languages</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://appcenter.ms/">Microsoft AppCenter</a> – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/@workingkills">@workingkills</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">📷 donnfelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">📷 kaushikgopal</a></li>
</ul>
]]></content:encoded>
      <enclosure length="30754928" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/601f7fbb-8ea6-472d-ae0f-01e63e2798e3/fragmented-flutter_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>118: Flutter and cross platform development with GDE Eugenio Marletti - Part 1</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/601f7fbb-8ea6-472d-ae0f-01e63e2798e3/3000x3000/1521414618-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:31:59</itunes:duration>
      <itunes:summary>In this episode, we dive into one of our most requested topics and highly anticipated ones - Flutter.

To help us understand Flutter in-depth, we talk to Flutter&apos;s GDE Eugenio Marletti. In Part 1 of this 2 part series, Eugenio helps us understand what flutter is, why it was created, how it works, some really cool features with Flutter and why an AndroidDev today should really give Flutter a good look.

We got so carried away in conversation, that we were forced to break this episode into two parts. Stay tuned for Part 2.

Show notes: http://fragmentedpodcast.com/episodes/118/ </itunes:summary>
      <itunes:subtitle>In this episode, we dive into one of our most requested topics and highly anticipated ones - Flutter.

To help us understand Flutter in-depth, we talk to Flutter&apos;s GDE Eugenio Marletti. In Part 1 of this 2 part series, Eugenio helps us understand what flutter is, why it was created, how it works, some really cool features with Flutter and why an AndroidDev today should really give Flutter a good look.

We got so carried away in conversation, that we were forced to break this episode into two parts. Stay tuned for Part 2.

Show notes: http://fragmentedpodcast.com/episodes/118/ </itunes:subtitle>
      <itunes:keywords>flutter, dart</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>118</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">2b151b85-49b2-4d66-a702-e465aaaa90e1</guid>
      <title>117: Multi-Module Builds in Gradle</title>
      <description><![CDATA[<p>In this episode, Donn and Kaushik sit down to talk about multi-module builds with Gradle. They talk about how you can separate your build into multiple different modules and how you might go about implementing it. They discuss build performance with incremental compilation, isolation of features, code ownership and how to handle cross-cutting concerns like persistence and networking.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/90/">Instant Apps Episode</a></li>
<li><a href="https://stackoverflow.com/questions/44140208/android-library-module-vs-feature-module">Android Library Module vs Feature Module</a></li>
<li><a href="https://medium.com/mindorks/implementation-vs-api-in-gradle-3-0-494c817a6fa">Implementation vs Compile - A Visual Guide</a></li>
<li><a href="https://medium.com/mindorks/writing-a-modular-project-on-android-304f3b09cb37">Writing a Modular app in Android</a></li>
<li><a href="https://github.com/JakeWharton/butterknife/issues/974#issuecomment-307585969">ButterKnife Woes</a></li>
<li><a href="https://android.jlelse.eu/how-to-use-android-studio-to-write-pure-java-23cbe49186e8">Android Studio and Pure Java Modules</a></li>
<li><a href="https://handstandsam.com/2018/02/11/kotlin-buildsrc-for-better-gradle-dependency-management/">Sam Edwards buildSrc and build.gradle Autocomplete Post</a></li>
<li><a href="https://caster.io/lessons/gradle-dependency-management-using-gradle-extra-properties-ext">Sam Edwards Gradle Ext Video</a></li>
<li><a href="https://caster.io/lessons/gradle-dependency-management-using-kotlin-and-buildsrc-for-buildgradle-autocomplete-in-android-studio">Sam Edwards Gradle AutoComplete</a></li>
<li><a href="http://www.developerphil.com/renaming-your-gradle-build-files/">Phil Breault Renaming Gradle Build Files</a></li>
<li><a href="https://github.com/googlesamples/android-architecture-components/blob/master/versions.gradle">Google Arch Samples - versions.gradle</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://appcenter.ms">Microsoft AppCenter</a> – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://www.twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://www.twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker">📷 donnfelker</a></li>
<li><a href="https://www.twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal">📷 kaushikgopal</a></li>
</ul>
]]></description>
      <pubDate>Mon, 12 Mar 2018 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn and Kaushik sit down to talk about multi-module builds with Gradle. They talk about how you can separate your build into multiple different modules and how you might go about implementing it. They discuss build performance with incremental compilation, isolation of features, code ownership and how to handle cross-cutting concerns like persistence and networking.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/90/">Instant Apps Episode</a></li>
<li><a href="https://stackoverflow.com/questions/44140208/android-library-module-vs-feature-module">Android Library Module vs Feature Module</a></li>
<li><a href="https://medium.com/mindorks/implementation-vs-api-in-gradle-3-0-494c817a6fa">Implementation vs Compile - A Visual Guide</a></li>
<li><a href="https://medium.com/mindorks/writing-a-modular-project-on-android-304f3b09cb37">Writing a Modular app in Android</a></li>
<li><a href="https://github.com/JakeWharton/butterknife/issues/974#issuecomment-307585969">ButterKnife Woes</a></li>
<li><a href="https://android.jlelse.eu/how-to-use-android-studio-to-write-pure-java-23cbe49186e8">Android Studio and Pure Java Modules</a></li>
<li><a href="https://handstandsam.com/2018/02/11/kotlin-buildsrc-for-better-gradle-dependency-management/">Sam Edwards buildSrc and build.gradle Autocomplete Post</a></li>
<li><a href="https://caster.io/lessons/gradle-dependency-management-using-gradle-extra-properties-ext">Sam Edwards Gradle Ext Video</a></li>
<li><a href="https://caster.io/lessons/gradle-dependency-management-using-kotlin-and-buildsrc-for-buildgradle-autocomplete-in-android-studio">Sam Edwards Gradle AutoComplete</a></li>
<li><a href="http://www.developerphil.com/renaming-your-gradle-build-files/">Phil Breault Renaming Gradle Build Files</a></li>
<li><a href="https://github.com/googlesamples/android-architecture-components/blob/master/versions.gradle">Google Arch Samples - versions.gradle</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://appcenter.ms">Microsoft AppCenter</a> – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://www.twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://www.twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker">📷 donnfelker</a></li>
<li><a href="https://www.twitter.com/kaushikgopal">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal">📷 kaushikgopal</a></li>
</ul>
]]></content:encoded>
      <enclosure length="53029598" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/27c28bc8-5e93-4c15-8d41-db08f35fd956/fragmented-multi-module-builds_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>117: Multi-Module Builds in Gradle</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/27c28bc8-5e93-4c15-8d41-db08f35fd956/3000x3000/1520735322-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:55:11</itunes:duration>
      <itunes:summary>In this episode, Donn and Kaushik sit down to talk about multi-module builds with Gradle. They talk about how you can separate your build into multiple different modules and how you might go about implementing it. </itunes:summary>
      <itunes:subtitle>In this episode, Donn and Kaushik sit down to talk about multi-module builds with Gradle. They talk about how you can separate your build into multiple different modules and how you might go about implementing it. </itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>117</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">f710911c-26f6-41ed-9364-5c14bf083385</guid>
      <title>116: Learning Kotlin - inline, noinline, crossinline</title>
      <description><![CDATA[<p>In this episode of learning kotlin, we look at 3 important keywords - inline, noinline and crossinline. The inline keyword is super common and you've probably run across this one at some point. What does it mean and when is it useful? We also look at the related but seldom used variants noinline and crossinline.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://kotlinlang.org/docs/reference/inline-functions.html">Kotlin Inline functions</a></li>
</ul>
<h3>Code Snippets:</h3>
<p>Look at the <a href="http://fragmentedpodcast.com/episodes/116/">official shownotes page</a> for some code snippets</p>
<h3>Misc:</h3>
<ul>
<li><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-published-api/index.html">PublishedApi annotation</a></li>
<li><a href="http://www.mattlogan.me/kotlins-inline-keyword/">Matt Logan's post on inline keyword</a></li>
<li><a href="https://android.jlelse.eu/inline-noinline-crossinline-what-do-they-mean-b13f48e113c2">Ben Daniel Medium post - inline, noinline, crossinline — What do they mean?</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://appcenter.ms/">Microsoft AppCenter</a> – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">📷 donnfelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">📷 kaushikgopal</a></li>
</ul>
]]></description>
      <pubDate>Mon, 5 Mar 2018 07:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode of learning kotlin, we look at 3 important keywords - inline, noinline and crossinline. The inline keyword is super common and you've probably run across this one at some point. What does it mean and when is it useful? We also look at the related but seldom used variants noinline and crossinline.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://kotlinlang.org/docs/reference/inline-functions.html">Kotlin Inline functions</a></li>
</ul>
<h3>Code Snippets:</h3>
<p>Look at the <a href="http://fragmentedpodcast.com/episodes/116/">official shownotes page</a> for some code snippets</p>
<h3>Misc:</h3>
<ul>
<li><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-published-api/index.html">PublishedApi annotation</a></li>
<li><a href="http://www.mattlogan.me/kotlins-inline-keyword/">Matt Logan's post on inline keyword</a></li>
<li><a href="https://android.jlelse.eu/inline-noinline-crossinline-what-do-they-mean-b13f48e113c2">Ben Daniel Medium post - inline, noinline, crossinline — What do they mean?</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://appcenter.ms/">Microsoft AppCenter</a> – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">📷 donnfelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">📷 kaushikgopal</a></li>
</ul>
]]></content:encoded>
      <enclosure length="12878054" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/156fd53b-0079-4d17-b724-8cdf2a24b74a/116_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>116: Learning Kotlin - inline, noinline, crossinline</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/156fd53b-0079-4d17-b724-8cdf2a24b74a/3000x3000/1520061924-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:26:17</itunes:duration>
      <itunes:summary>In this episode of learning kotlin, we look at 3 important keywords - inline, noinline and crossinline. The inline keyword is super common and you&apos;ve probably run across this one at some point. What does it mean and when is it useful? We also look at the related but seldom used variants noinline and crossinline.

Shownotes: http://fragmentedpodcast.com/episodes/116/</itunes:summary>
      <itunes:subtitle>In this episode of learning kotlin, we look at 3 important keywords - inline, noinline and crossinline. The inline keyword is super common and you&apos;ve probably run across this one at some point. What does it mean and when is it useful? We also look at the related but seldom used variants noinline and crossinline.

Shownotes: http://fragmentedpodcast.com/episodes/116/</itunes:subtitle>
      <itunes:keywords>kotlin, learning kotlin, noinline, crossinline, inline</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>116</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">71140a16-dbfa-44db-b75c-c99a7e5ff9d5</guid>
      <title>115: Architecture Components with Akshay Chordiya</title>
      <description><![CDATA[<p>In this episode, we talk about the different parts of Android architecture components. We've had episodes on Room and the paging library, so in this one, we thought we'll touch a little on Lifecycle Owners &amp; Observers, ViewModels, and LiveData. Akshay Chordiya helps break it down. Listen on!</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://developer.android.com/topic/libraries/architecture/index.html">Android Architecture Components</a></li>
</ul>
<h3>Lifecycle</h3>
<ul>
<li><a href="https://developer.android.com/topic/libraries/architecture/lifecycle.html">Handling lifecycles with Lifecycle-Aware Components</a></li>
<li><a href="https://developer.android.com/reference/android/arch/lifecycle/LifecycleOwner.html">Lifecycle Owner</a></li>
<li><a href="https://developer.android.com/reference/android/arch/lifecycle/LifecycleObserver.html">Lifecycle Observer</a></li>
<li><a href="https://developer.android.com/topic/libraries/architecture/lifecycle.html#lc-bp">Best practices for lifecycle-aware components</a></li>
<li><a href="https://developer.android.com/topic/libraries/architecture/lifecycle.html#onStop-and-savedState">Caveat: handling onStop events</a></li>
</ul>
<h3>ViewModels</h3>
<ul>
<li><a href="https://developer.android.com/topic/libraries/architecture/viewmodel.html">Architecture Guide: ViewModels</a></li>
<li><a href="https://developer.android.com/reference/android/arch/lifecycle/ViewModel.html">View Model</a></li>
</ul>
<p>Code snippet for a ViewModelFactory:</p>
<pre><code>    class UserVMFactory(
            val user: MyUser
    ) : ViewModelProvider.Factory {
        override fun  create(modelClass: Class): T {
            return when {
                modelClass.isAssignableFrom(UserVM::class.java) -&gt;
                    UserVM(user) as T
                else -&gt; throw IllegalArgumentException(&quot;Unknown ViewModel class&quot;)
            }
        }
    }
</code></pre>
<h3>LiveData</h3>
<ul>
<li><a href="https://developer.android.com/reference/android/arch/lifecycle/LiveData.html">Live Data</a></li>
<li><a href="https://developer.android.com/reference/android/arch/lifecycle/MediatorLiveData.html">MediatorLiveData</a></li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://caster.io/courses/android-architecture-components-deep-dive">Android Architecture Components Deep Dive Course on Caster.IO</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/95/">Fragmented - Room episode with Florina</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/97/">Fragmented - AAC Paging library with Florina</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://appcenter.ms/">Microsoft AppCenter</a> - Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/Akshay_Chordiya">@Akshay_Chordiya</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">📷 donnfelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">📷 kaushikgopal</a></li>
</ul>
]]></description>
      <pubDate>Mon, 26 Feb 2018 07:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, we talk about the different parts of Android architecture components. We've had episodes on Room and the paging library, so in this one, we thought we'll touch a little on Lifecycle Owners &amp; Observers, ViewModels, and LiveData. Akshay Chordiya helps break it down. Listen on!</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://developer.android.com/topic/libraries/architecture/index.html">Android Architecture Components</a></li>
</ul>
<h3>Lifecycle</h3>
<ul>
<li><a href="https://developer.android.com/topic/libraries/architecture/lifecycle.html">Handling lifecycles with Lifecycle-Aware Components</a></li>
<li><a href="https://developer.android.com/reference/android/arch/lifecycle/LifecycleOwner.html">Lifecycle Owner</a></li>
<li><a href="https://developer.android.com/reference/android/arch/lifecycle/LifecycleObserver.html">Lifecycle Observer</a></li>
<li><a href="https://developer.android.com/topic/libraries/architecture/lifecycle.html#lc-bp">Best practices for lifecycle-aware components</a></li>
<li><a href="https://developer.android.com/topic/libraries/architecture/lifecycle.html#onStop-and-savedState">Caveat: handling onStop events</a></li>
</ul>
<h3>ViewModels</h3>
<ul>
<li><a href="https://developer.android.com/topic/libraries/architecture/viewmodel.html">Architecture Guide: ViewModels</a></li>
<li><a href="https://developer.android.com/reference/android/arch/lifecycle/ViewModel.html">View Model</a></li>
</ul>
<p>Code snippet for a ViewModelFactory:</p>
<pre><code>    class UserVMFactory(
            val user: MyUser
    ) : ViewModelProvider.Factory {
        override fun  create(modelClass: Class): T {
            return when {
                modelClass.isAssignableFrom(UserVM::class.java) -&gt;
                    UserVM(user) as T
                else -&gt; throw IllegalArgumentException(&quot;Unknown ViewModel class&quot;)
            }
        }
    }
</code></pre>
<h3>LiveData</h3>
<ul>
<li><a href="https://developer.android.com/reference/android/arch/lifecycle/LiveData.html">Live Data</a></li>
<li><a href="https://developer.android.com/reference/android/arch/lifecycle/MediatorLiveData.html">MediatorLiveData</a></li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://caster.io/courses/android-architecture-components-deep-dive">Android Architecture Components Deep Dive Course on Caster.IO</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/95/">Fragmented - Room episode with Florina</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/97/">Fragmented - AAC Paging library with Florina</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://appcenter.ms/">Microsoft AppCenter</a> - Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/Akshay_Chordiya">@Akshay_Chordiya</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">📷 donnfelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">📷 kaushikgopal</a></li>
</ul>
]]></content:encoded>
      <enclosure length="46693268" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/01f853a6-5fe9-484c-a64f-7fa4698f4de1/115-architecture-components-w-akshay-chordiya_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>115: Architecture Components with Akshay Chordiya</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/01f853a6-5fe9-484c-a64f-7fa4698f4de1/3000x3000/1519585676-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:04:47</itunes:duration>
      <itunes:summary>In this episode, we talk about the different parts of Android architecture components. We&apos;ve had episodes on Room and the paging library, so in this one, we thought we&apos;ll touch a little on Lifecycle Owners &amp; Observers, ViewModels, and LiveData. Akshay Chordiya helps break it down. Listen on!

Shownotes: fragmentedpodcast.com/episodes/115/</itunes:summary>
      <itunes:subtitle>In this episode, we talk about the different parts of Android architecture components. We&apos;ve had episodes on Room and the paging library, so in this one, we thought we&apos;ll touch a little on Lifecycle Owners &amp; Observers, ViewModels, and LiveData. Akshay Chordiya helps break it down. Listen on!

Shownotes: fragmentedpodcast.com/episodes/115/</itunes:subtitle>
      <itunes:keywords>viewmodel, lifecycleowner, architecture components, lifecycleobserver, livedata</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>115</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">7a85086e-4ecb-40f4-87fd-b050ce59b595</guid>
      <title>114: All About CI &amp; CD on App Center w/ Patrick Nikoletich</title>
      <description><![CDATA[<p>In this episode, we talk to Patrick Nikoletich from Microsofts App Center team. We explore the intricacies of the Continuous Integration server system on the App Center platform. From what App Center is, all the way down into the weeds to how to get your app building on App Center in a few short steps. We also get into the nitty gritty details around how you can customize your build with build hooks, install utilities and binaries,  work with a command line interface, shell scripts, the App Center API much much more. This episode shows a new side of Microsoft that we have not seen in a long time and its a breath of fresh air.</p>
<p>Also, view the show notes at http://fragmentedpodcast.com/episodes/114/</p>
<h2>Show Notes</h2>
<ul>
<li>VSTS: https://www.visualstudio.com/team-services/</li>
<li>Microsoft on GitHub: https://github.com/Microsoft</li>
<li>The App Center CLI: https://github.com/Microsoft/appcenter-cli</li>
<li>Azure function that automatically creates branch configurations for PR's and communicates status back to Github.:  https://github.com/pniko/function-appcenter-build-</li>
<li>App Center API: https://docs.microsoft.com/en-us/appcenter/api-docs/ &amp; https://openapi.appcenter.ms/</li>
<li>Detox fo React Native Native: https://github.com/wix/detox</li>
<li>Azure Server Functions: https://azure.microsoft.com/en-us/services/functions/</li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://mapbox.com/android">Mapbox</a> - Android developers don't have to settle for a default same-map-no-matter-what option in their Android app. Mapbox offers complete map design control, allowing you to create beautiful custom maps to meet the needs of your Android users.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/@lbcpat">@lbcpat</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">📷 donnfelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">📷 kaushikgopal</a></li>
</ul>
]]></description>
      <pubDate>Mon, 19 Feb 2018 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, we talk to Patrick Nikoletich from Microsofts App Center team. We explore the intricacies of the Continuous Integration server system on the App Center platform. From what App Center is, all the way down into the weeds to how to get your app building on App Center in a few short steps. We also get into the nitty gritty details around how you can customize your build with build hooks, install utilities and binaries,  work with a command line interface, shell scripts, the App Center API much much more. This episode shows a new side of Microsoft that we have not seen in a long time and its a breath of fresh air.</p>
<p>Also, view the show notes at http://fragmentedpodcast.com/episodes/114/</p>
<h2>Show Notes</h2>
<ul>
<li>VSTS: https://www.visualstudio.com/team-services/</li>
<li>Microsoft on GitHub: https://github.com/Microsoft</li>
<li>The App Center CLI: https://github.com/Microsoft/appcenter-cli</li>
<li>Azure function that automatically creates branch configurations for PR's and communicates status back to Github.:  https://github.com/pniko/function-appcenter-build-</li>
<li>App Center API: https://docs.microsoft.com/en-us/appcenter/api-docs/ &amp; https://openapi.appcenter.ms/</li>
<li>Detox fo React Native Native: https://github.com/wix/detox</li>
<li>Azure Server Functions: https://azure.microsoft.com/en-us/services/functions/</li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://mapbox.com/android">Mapbox</a> - Android developers don't have to settle for a default same-map-no-matter-what option in their Android app. Mapbox offers complete map design control, allowing you to create beautiful custom maps to meet the needs of your Android users.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/@lbcpat">@lbcpat</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">📷 donnfelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">📷 kaushikgopal</a></li>
</ul>
]]></content:encoded>
      <enclosure length="62766933" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/eb5772a9-4b18-43ce-988a-692304b4d85c/patrick-nikoletich_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>114: All About CI &amp; CD on App Center w/ Patrick Nikoletich</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/eb5772a9-4b18-43ce-988a-692304b4d85c/3000x3000/1518918011-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:05:20</itunes:duration>
      <itunes:summary>In this episode, we talk to Patrick Nikoletich from Microsofts App Center team. We explore the intricacies of the Continuous Integration server system on the App Center platform.</itunes:summary>
      <itunes:subtitle>In this episode, we talk to Patrick Nikoletich from Microsofts App Center team. We explore the intricacies of the Continuous Integration server system on the App Center platform.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>114</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">b45c8608-ee16-4e42-9b22-bb20fd3ec3d8</guid>
      <title>113: Chatting with Pinterest&apos;s Christina Lee</title>
      <description><![CDATA[<p>In this episode we catch up with a highly energetic but sick Christina Lee about the delightful details in the Pinterest app, delving with the dark side (Swift), giving live coding presentation talks and touching on some Kotlin details like covariance and contravariance. Listen on for a power-packed 40 minutes.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/84/">Google IO episode (#84)</a> for Christina's running story</li>
<li><a href="https://play.google.com/store/apps/developer?id=Pinterest&amp;hl=en">Pinterest app</a></li>
<li><a href="https://github.com/chrisjenx/Calligraphy">Calligraphy by Chris Jenkins</a></li>
<li><a href="https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html">Android 8.0 Custom fonts</a></li>
<li><a href="https://material.io/guidelines/">Material design guidelines</a></li>
<li><a href="https://slideslive.com/38898711/pushing-androids-boundaries-for-pinterests-new-look">Brio design system by Pinterest's Lin Wang and Thorben Primke</a></li>
<li>Pinterest stars you should follow on Twitter -&gt; <a href="https://twitter.com/mallikaandroid">Mallika</a> &amp; <a href="https://twitter.com/Names_Alice">Alice</a></li>
<li><a href="https://github.com/christinalee/dcnyc17">Christina's code from Kotlintown talk</a></li>
<li><a href="https://www.youtube.com/watch?v=OmwjrVawHqA">Christina &amp; Huyen presentation from KotlinConf</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://mapbox.com/android">Mapbox</a> - Android developers don't have to settle for a default same-map-no-matter-what option in their Android app. Mapbox offers complete map design control, allowing you to create beautiful custom maps to meet the needs of your Android users.</li>
</ul>
<h2>Show Notes</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/84/">Google IO episode (#84)</a> for Christina's running story</li>
<li><a href="https://play.google.com/store/apps/developer?id=Pinterest&amp;hl=en">Pinterest app</a></li>
<li><a href="https://github.com/chrisjenx/Calligraphy">Calligraphy by Chris Jenkins</a></li>
<li><a href="https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html">Android 8.0 Custom fonts</a></li>
<li><a href="https://material.io/guidelines/">Material design guidelines</a></li>
<li><a href="https://slideslive.com/38898711/pushing-androids-boundaries-for-pinterests-new-look">Brio design system by Pinterest's Lin Wang and Thorben Primke</a></li>
<li>Pinterest stars you should follow on Twitter -&gt; <a href="https://twitter.com/mallikaandroid">Mallika</a> &amp; <a href="https://twitter.com/Names_Alice">Alice</a></li>
<li><a href="https://github.com/christinalee/dcnyc17">Christina's code from Kotlintown talk</a></li>
<li><a href="https://www.youtube.com/watch?v=OmwjrVawHqA">Christina &amp; Huyen presentation from KotlinConf</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://mapbox.com/android">Mapbox</a> - Android developers don't have to settle for a default same-map-no-matter-what option in their Android app. Mapbox offers complete map design control, allowing you to create beautiful custom maps to meet the needs of your Android users.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/runChristinaRun">@runChristinaRun</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">📷 donnfelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">📷 kaushikgopal</a></li>
</ul>
]]></description>
      <pubDate>Mon, 12 Feb 2018 15:45:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode we catch up with a highly energetic but sick Christina Lee about the delightful details in the Pinterest app, delving with the dark side (Swift), giving live coding presentation talks and touching on some Kotlin details like covariance and contravariance. Listen on for a power-packed 40 minutes.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/84/">Google IO episode (#84)</a> for Christina's running story</li>
<li><a href="https://play.google.com/store/apps/developer?id=Pinterest&amp;hl=en">Pinterest app</a></li>
<li><a href="https://github.com/chrisjenx/Calligraphy">Calligraphy by Chris Jenkins</a></li>
<li><a href="https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html">Android 8.0 Custom fonts</a></li>
<li><a href="https://material.io/guidelines/">Material design guidelines</a></li>
<li><a href="https://slideslive.com/38898711/pushing-androids-boundaries-for-pinterests-new-look">Brio design system by Pinterest's Lin Wang and Thorben Primke</a></li>
<li>Pinterest stars you should follow on Twitter -&gt; <a href="https://twitter.com/mallikaandroid">Mallika</a> &amp; <a href="https://twitter.com/Names_Alice">Alice</a></li>
<li><a href="https://github.com/christinalee/dcnyc17">Christina's code from Kotlintown talk</a></li>
<li><a href="https://www.youtube.com/watch?v=OmwjrVawHqA">Christina &amp; Huyen presentation from KotlinConf</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://mapbox.com/android">Mapbox</a> - Android developers don't have to settle for a default same-map-no-matter-what option in their Android app. Mapbox offers complete map design control, allowing you to create beautiful custom maps to meet the needs of your Android users.</li>
</ul>
<h2>Show Notes</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/84/">Google IO episode (#84)</a> for Christina's running story</li>
<li><a href="https://play.google.com/store/apps/developer?id=Pinterest&amp;hl=en">Pinterest app</a></li>
<li><a href="https://github.com/chrisjenx/Calligraphy">Calligraphy by Chris Jenkins</a></li>
<li><a href="https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html">Android 8.0 Custom fonts</a></li>
<li><a href="https://material.io/guidelines/">Material design guidelines</a></li>
<li><a href="https://slideslive.com/38898711/pushing-androids-boundaries-for-pinterests-new-look">Brio design system by Pinterest's Lin Wang and Thorben Primke</a></li>
<li>Pinterest stars you should follow on Twitter -&gt; <a href="https://twitter.com/mallikaandroid">Mallika</a> &amp; <a href="https://twitter.com/Names_Alice">Alice</a></li>
<li><a href="https://github.com/christinalee/dcnyc17">Christina's code from Kotlintown talk</a></li>
<li><a href="https://www.youtube.com/watch?v=OmwjrVawHqA">Christina &amp; Huyen presentation from KotlinConf</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://mapbox.com/android">Mapbox</a> - Android developers don't have to settle for a default same-map-no-matter-what option in their Android app. Mapbox offers complete map design control, allowing you to create beautiful custom maps to meet the needs of your Android users.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/runChristinaRun">@runChristinaRun</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">📷 donnfelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">📷 kaushikgopal</a></li>
</ul>
]]></content:encoded>
      <enclosure length="21593881" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/789a4aca-045b-4f34-8466-a9771ccaca9c/113_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>113: Chatting with Pinterest&apos;s Christina Lee</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/789a4aca-045b-4f34-8466-a9771ccaca9c/3000x3000/1518426872-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:44:26</itunes:duration>
      <itunes:summary>In this episode we catch up with a highly energetic but sick Christina Lee about the delightful details in the Pinterest app, delving with the dark side (Swift), giving live coding presentation talks and touching on some Kotlin details like covariance and contravariance. Listen on for a power-packed 40 minutes.</itunes:summary>
      <itunes:subtitle>In this episode we catch up with a highly energetic but sick Christina Lee about the delightful details in the Pinterest app, delving with the dark side (Swift), giving live coding presentation talks and touching on some Kotlin details like covariance and contravariance. Listen on for a power-packed 40 minutes.</itunes:subtitle>
      <itunes:keywords>christina lee, kotlinconf, pinterest, kotlintown</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>113</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">cdc1998d-8d85-4de4-820c-d303395c254c</guid>
      <title>112: Effective Java v3 - Item #9 - Prefer try with resources to try finally</title>
      <description><![CDATA[<p>In this mini-fragment episode, Donn talks about Item #9 of the Effective Java (Third Edition) book - <strong>Prefer try with resources to try finally</strong>.</p>
<p><em>Please note, this episode references the third edition of the Effective Java book that recently came out. Previously we were doing the entire series on version 2, but we are now upgrading to version 3 of the book. We will not be re-doing any of the existing lessons, but if one was inserted in the mix, then we will do that lesson.</em></p>
<h2>Links</h2>
<ul>
<li><a href="http://amzn.to/2DGJY6M">Effective Java (3rd Edition) Book</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://mapbox.com/android">Mapbox</a> - Android developers don't have to settle for a default same-map-no-matter-what option in their Android app. Mapbox offers complete map design control, allowing you to create beautiful custom maps to meet the needs of your Android users.</li>
</ul>
<p>Check them out today at <a href="http://mapbox.com/android">mapbox.com/android</a></p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">📷 donnfelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">📷 kaushikgopal</a></li>
</ul>
]]></description>
      <pubDate>Thu, 8 Feb 2018 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this mini-fragment episode, Donn talks about Item #9 of the Effective Java (Third Edition) book - <strong>Prefer try with resources to try finally</strong>.</p>
<p><em>Please note, this episode references the third edition of the Effective Java book that recently came out. Previously we were doing the entire series on version 2, but we are now upgrading to version 3 of the book. We will not be re-doing any of the existing lessons, but if one was inserted in the mix, then we will do that lesson.</em></p>
<h2>Links</h2>
<ul>
<li><a href="http://amzn.to/2DGJY6M">Effective Java (3rd Edition) Book</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://mapbox.com/android">Mapbox</a> - Android developers don't have to settle for a default same-map-no-matter-what option in their Android app. Mapbox offers complete map design control, allowing you to create beautiful custom maps to meet the needs of your Android users.</li>
</ul>
<p>Check them out today at <a href="http://mapbox.com/android">mapbox.com/android</a></p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">📷 donnfelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">📷 kaushikgopal</a></li>
</ul>
]]></content:encoded>
      <enclosure length="15731820" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/d1fa5afb-54fd-4a90-bd6f-910ef2caa928/112-effective-java-9-v3_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>112: Effective Java v3 - Item #9 - Prefer try with resources to try finally</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/d1fa5afb-54fd-4a90-bd6f-910ef2caa928/3000x3000/1518035545-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:16:20</itunes:duration>
      <itunes:summary>In this mini-fragment episode, Donn talks about Item #9 of the Effective Java (Third Edition) book - **Prefer try with resources to try finally**.

*Please note, this episode references the third edition of the Effective Java book that recently came out. Previously we were doing the entire series on version 2, but we are now upgrading to version 3 of the book. We will not be re-doing any of the existing lessons, but if one was inserted in the mix, then we will do that lesson.*

Shownotes:  http://fragmentedpodcast.com/episodes/112/
</itunes:summary>
      <itunes:subtitle>In this mini-fragment episode, Donn talks about Item #9 of the Effective Java (Third Edition) book - **Prefer try with resources to try finally**.

*Please note, this episode references the third edition of the Effective Java book that recently came out. Previously we were doing the entire series on version 2, but we are now upgrading to version 3 of the book. We will not be re-doing any of the existing lessons, but if one was inserted in the mix, then we will do that lesson.*

Shownotes:  http://fragmentedpodcast.com/episodes/112/
</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>112</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">311bc4f0-e5bc-4c76-a038-7a20b30aba71</guid>
      <title>111: Effective Java v3 - Item #5 - Prefer Dependency Injection to Hardwiring Resources</title>
      <description><![CDATA[<p>In this mini-fragment episode, Donn talks about Item #5 of the Effective Java (Third Edition) book - Prefer Dependency Injection to Hardwiring Resources.</p>
<p>Please note, this episode references the third edition of the Effective Java book that recently came out. Previously we were doing the entire series on version 2, but we are now upgrading to version 3 of the book. We will not be re-doing any of the existing lessons, but if one was inserted in the mix, then we will do that lesson. This is the case with Item #5. We did Item #5 previously for v2 of the book, but v3 introduced a new Item 5 (and bumped the previous Item 5 up to 6).</p>
<p><em>TLDR; Item #5 is new in the third edition of the Effective Java book. So listen closely. :)</em></p>
<h2>Links</h2>
<ul>
<li><a href="http://amzn.to/2DGJY6M">Effective Java (3rd Edition) Book</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://mapbox.com/android">Mapbox</a> - Android developers don't have to settle for a default same-map-no-matter-what option in their Android app. Mapbox offers complete map design control, allowing you to create beautiful custom maps to meet the needs of your Android users.</li>
</ul>
<p>Check them out today at <a href="http://mapbox.com/android">mapbox.com/android</a></p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">📷 donnfelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">📷 kaushikgopal</a></li>
</ul>
]]></description>
      <pubDate>Mon, 29 Jan 2018 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this mini-fragment episode, Donn talks about Item #5 of the Effective Java (Third Edition) book - Prefer Dependency Injection to Hardwiring Resources.</p>
<p>Please note, this episode references the third edition of the Effective Java book that recently came out. Previously we were doing the entire series on version 2, but we are now upgrading to version 3 of the book. We will not be re-doing any of the existing lessons, but if one was inserted in the mix, then we will do that lesson. This is the case with Item #5. We did Item #5 previously for v2 of the book, but v3 introduced a new Item 5 (and bumped the previous Item 5 up to 6).</p>
<p><em>TLDR; Item #5 is new in the third edition of the Effective Java book. So listen closely. :)</em></p>
<h2>Links</h2>
<ul>
<li><a href="http://amzn.to/2DGJY6M">Effective Java (3rd Edition) Book</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://mapbox.com/android">Mapbox</a> - Android developers don't have to settle for a default same-map-no-matter-what option in their Android app. Mapbox offers complete map design control, allowing you to create beautiful custom maps to meet the needs of your Android users.</li>
</ul>
<p>Check them out today at <a href="http://mapbox.com/android">mapbox.com/android</a></p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">📷 donnfelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">📷 kaushikgopal</a></li>
</ul>
]]></content:encoded>
      <enclosure length="13096486" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/eb403e6f-626f-471f-89cd-0f67b415a857/fragmented-ef-java-5-final-auphonic_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>111: Effective Java v3 - Item #5 - Prefer Dependency Injection to Hardwiring Resources</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/eb403e6f-626f-471f-89cd-0f67b415a857/3000x3000/1517196359-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:13:37</itunes:duration>
      <itunes:summary>In this mini-fragment episode, Donn talks about Item #5 of the Effective Java (Third Edition) book - Prefer Dependency Injection to Hardwiring Resources. </itunes:summary>
      <itunes:subtitle>In this mini-fragment episode, Donn talks about Item #5 of the Effective Java (Third Edition) book - Prefer Dependency Injection to Hardwiring Resources. </itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>111</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">28b7cede-b912-4780-9cae-58a583a7bfa4</guid>
      <title>110: BuddyBuild and CI/CD services</title>
      <description><![CDATA[<p>In this episode of Fragmented, we talk about CI, CD and CD services. That's Continuous Integration, Continuous Delivery, and Continuous Deployment. BuddyBuild a beloved 3rd party service of ours (and previous sponsor) is sunsetting their Android service, so Donn and KG discuss alternatives and the options they've been keeping an eye on.</p>
<p>Listen on:</p>
<p><a href="http://audio.simplecast.com/e1980f75.mp3">Download directly</a></p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://www.buddybuild.com/blog/buddybuild-is-now-part-of-apple">BuddyBuild is now part of Apple</a></li>
<li><a href="https://www.theverge.com/2012/7/20/3172222/google-buys-sparrow-mail">Google buys Sparrow</a></li>
</ul>
<h3>Differences between CI/CDs services</h3>
<ul>
<li><a href="https://www.thoughtworks.com/continuous-integration">Good article on CI</a></li>
<li><a href="https://www.gocd.org/2017/10/17/difference-between-continuous-delivery-continuous-deployment-infographic.html">Nice infomatic explaining CD vs CD</a></li>
</ul>
<p><img src="http://fragmentedpodcast.com/wp-content/uploads/2018/01/110_md.png" alt="differences between CI/CD/CD" /></p>
<h3>Options for CI Services</h3>
<ul>
<li><a href="https://jenkins.io/">Jenkins</a></li>
<li><a href="https://www.cloudbees.com/">CloudBees - enterprise Jenkins</a></li>
<li><a href="http://bitrise.io">Bitrise</a>
<ul>
<li><a href="https://github.com/bitrise-docker/android/issues/35">Bitrise and Firebase test lab</a></li>
</ul>
</li>
<li><a href="nevercode.io">NeverCode</a>
<ul>
<li><a href="https://nevercode.io/looking-buddybuild-alternative-welcome-nevercode/">Welcoming Android developers blog post by NeverCode</a></li>
</ul>
</li>
<li><a href="https://appcenter.ms/">Microsoft AppCenter</a>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/104/">Ep 104 - Donn talks to the Samina from AppCenter</a></li>
</ul>
</li>
<li><a href="https://circleci.com/">Circle CI</a>
<ul>
<li><a href="https://circleci.com/docs/2.0/">2.0 docs</a></li>
<li><a href="https://circleci.com/docs/1.0/firebase-test-lab/">Testing with Firebase test lab</a></li>
</ul>
</li>
<li><a href="https://www.jetbrains.com/teamcity/">Team City - Jetbrains</a></li>
<li><a href="https://codeship.com/">Code Ship</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://mapbox.com/android">Mapbox</a> - - Android developers don't have to settle for a default same-map-no-matter-what option in their Android app. Mapbox offers complete map design control, allowing you to create beautiful custom maps to meet the needs of your Android users.</li>
</ul>
<p>Check them out today at <a href="http://mapbox.com/android">mapbox.com/android</a></p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/ryanjsalva">@ryanjsalva</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">📷 donnfelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">📷 kaushikgopal</a></li>
</ul>
]]></description>
      <pubDate>Mon, 22 Jan 2018 07:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode of Fragmented, we talk about CI, CD and CD services. That's Continuous Integration, Continuous Delivery, and Continuous Deployment. BuddyBuild a beloved 3rd party service of ours (and previous sponsor) is sunsetting their Android service, so Donn and KG discuss alternatives and the options they've been keeping an eye on.</p>
<p>Listen on:</p>
<p><a href="http://audio.simplecast.com/e1980f75.mp3">Download directly</a></p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://www.buddybuild.com/blog/buddybuild-is-now-part-of-apple">BuddyBuild is now part of Apple</a></li>
<li><a href="https://www.theverge.com/2012/7/20/3172222/google-buys-sparrow-mail">Google buys Sparrow</a></li>
</ul>
<h3>Differences between CI/CDs services</h3>
<ul>
<li><a href="https://www.thoughtworks.com/continuous-integration">Good article on CI</a></li>
<li><a href="https://www.gocd.org/2017/10/17/difference-between-continuous-delivery-continuous-deployment-infographic.html">Nice infomatic explaining CD vs CD</a></li>
</ul>
<p><img src="http://fragmentedpodcast.com/wp-content/uploads/2018/01/110_md.png" alt="differences between CI/CD/CD" /></p>
<h3>Options for CI Services</h3>
<ul>
<li><a href="https://jenkins.io/">Jenkins</a></li>
<li><a href="https://www.cloudbees.com/">CloudBees - enterprise Jenkins</a></li>
<li><a href="http://bitrise.io">Bitrise</a>
<ul>
<li><a href="https://github.com/bitrise-docker/android/issues/35">Bitrise and Firebase test lab</a></li>
</ul>
</li>
<li><a href="nevercode.io">NeverCode</a>
<ul>
<li><a href="https://nevercode.io/looking-buddybuild-alternative-welcome-nevercode/">Welcoming Android developers blog post by NeverCode</a></li>
</ul>
</li>
<li><a href="https://appcenter.ms/">Microsoft AppCenter</a>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/104/">Ep 104 - Donn talks to the Samina from AppCenter</a></li>
</ul>
</li>
<li><a href="https://circleci.com/">Circle CI</a>
<ul>
<li><a href="https://circleci.com/docs/2.0/">2.0 docs</a></li>
<li><a href="https://circleci.com/docs/1.0/firebase-test-lab/">Testing with Firebase test lab</a></li>
</ul>
</li>
<li><a href="https://www.jetbrains.com/teamcity/">Team City - Jetbrains</a></li>
<li><a href="https://codeship.com/">Code Ship</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://mapbox.com/android">Mapbox</a> - - Android developers don't have to settle for a default same-map-no-matter-what option in their Android app. Mapbox offers complete map design control, allowing you to create beautiful custom maps to meet the needs of your Android users.</li>
</ul>
<p>Check them out today at <a href="http://mapbox.com/android">mapbox.com/android</a></p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/ryanjsalva">@ryanjsalva</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://www.instagram.com/donnfelker/">📷 donnfelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://www.instagram.com/kaushikgopal/">📷 kaushikgopal</a></li>
</ul>
]]></content:encoded>
      <enclosure length="20185264" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/63f9aed9-ec01-423d-86f4-71656327731e/110_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>110: BuddyBuild and CI/CD services</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/63f9aed9-ec01-423d-86f4-71656327731e/3000x3000/1516636455-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:41:31</itunes:duration>
      <itunes:summary>In this episode of Fragmented, we talk about CI, CD and CD services. That&apos;s Continuous Integration, Continuous Delivery, and Continuous Deployment. BuddyBuild a beloved 3rd party service of ours (and previous sponsor) is sunsetting their Android service, so Donn and KG discuss alternatives and the options they&apos;ve been keeping an eye on.

show notes:  http://fragmentedpodcast.com/episodes/110/ </itunes:summary>
      <itunes:subtitle>In this episode of Fragmented, we talk about CI, CD and CD services. That&apos;s Continuous Integration, Continuous Delivery, and Continuous Deployment. BuddyBuild a beloved 3rd party service of ours (and previous sponsor) is sunsetting their Android service, so Donn and KG discuss alternatives and the options they&apos;ve been keeping an eye on.

show notes:  http://fragmentedpodcast.com/episodes/110/ </itunes:subtitle>
      <itunes:keywords>buddybuild, cd, ci</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>110</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">d501b18d-d094-4a70-94d5-b2f443e8706a</guid>
      <title>109: Learning Kotlin - Sequences the new Iterables</title>
      <description><![CDATA[<p>In this episode of Fragmented, we go back to learning some Kotlin and look at the Iterable like data structure introduced called &quot;Sequences&quot;. What is a sequence? How is it different from Iterable? When should I use it?</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.sequences/-sequence/index.html">Kotlin Sequence</a></li>
<li><a href="https://stackoverflow.com/a/6863258">Java Iterable vs Iterator - stackoverflow.com</a></li>
</ul>
<h3>Eager/Lazy</h3>
<p>Eager evaluation:</p>
<pre><code>val lst = listOf(1, 2)
val lstMapped: List = lst.map { print(&quot;$it &quot;); it * it }
print(&quot;before sum &quot;)
val sum = lstMapped.sum()

// prints &quot;1 2 before sum&quot;
</code></pre>
<p>Lazy evaluation:</p>
<pre><code>val seq = sequenceOf(1, 2)
val seqMapped: Sequence = seq.map { print(&quot;$it &quot;); it * it }
print(&quot;before sum &quot;)
val sum = seqMapped.sum()

// prints &quot;before sum 1 2&quot;
</code></pre>
<p><a href="https://stackoverflow.com/a/35630670">Source stackoverflow.com answer</a></p>
<h3>Intermediate and terminal operations</h3>
<p>Notice that at each chain operation, a new temporary list is created:</p>
<pre><code>data class Person(val name: String, val age: Int)

fun main(args: Array) {
    val people = 
        listOf(Person(&quot;Chris Martin&quot;, 31), 
               Person(&quot;Will Champion&quot;, 32),
               Person(&quot;Jonny Buckland&quot;, 33),
               Person(&quot;Guy Berryman&quot;, 34),
               Person(&quot;Mhris Cartin&quot;, 30))
    
    println(people
            .filter { it.age &gt; 30 } // new temp. list
            .map {                  
                it.name.split(&quot; &quot;).map {it[0]}.joinToString(&quot;&quot;)
            }  // new temp. list
            .map { it.toUpperCase() }) // new temp. list
}
</code></pre>
<p>Using a sequence:</p>
<pre><code>println(people
        .asSequence()  // convert to sequence
        .filter { it.age &gt; 30 } // lazy eval (intermediate op)
        .map {                  
            it.name.split(&quot; &quot;).map {it[0]}.joinToString(&quot;&quot;)
        }  // lazy eval (intermediate op)
        .map { it.toUpperCase() }  // lazy eval (intermediate op)
        .toList() // terminal operation
       )
</code></pre>
<p>Without a terminal operation, Sequences won't print anything:</p>
<pre><code>val seq = sequenceOf(1, 2, 3)
println(seq) // prints address
println(seq.toList()) // [1, 2, 3]
</code></pre>
<p>You can't pick an index from a sequence:</p>
<pre><code>println(seq[0]) // throws ERROR &quot;No get method providing array access&quot;
println(seq.toList()[0]) // 1
</code></pre>
<h2>Sponsors</h2>
<ul>
<li><a href="http://mapbox.com/android">Mapbox</a> - Android developers don't have to settle for a default same-map-no-matter-what option in their Android app. Mapbox offers complete map design control, allowing you to create beautiful custom maps to meet the needs of your Android users.<br />
Check them out today at <a href="http://mapbox.com/android">mapbox.com/android</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Tue, 16 Jan 2018 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode of Fragmented, we go back to learning some Kotlin and look at the Iterable like data structure introduced called &quot;Sequences&quot;. What is a sequence? How is it different from Iterable? When should I use it?</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.sequences/-sequence/index.html">Kotlin Sequence</a></li>
<li><a href="https://stackoverflow.com/a/6863258">Java Iterable vs Iterator - stackoverflow.com</a></li>
</ul>
<h3>Eager/Lazy</h3>
<p>Eager evaluation:</p>
<pre><code>val lst = listOf(1, 2)
val lstMapped: List = lst.map { print(&quot;$it &quot;); it * it }
print(&quot;before sum &quot;)
val sum = lstMapped.sum()

// prints &quot;1 2 before sum&quot;
</code></pre>
<p>Lazy evaluation:</p>
<pre><code>val seq = sequenceOf(1, 2)
val seqMapped: Sequence = seq.map { print(&quot;$it &quot;); it * it }
print(&quot;before sum &quot;)
val sum = seqMapped.sum()

// prints &quot;before sum 1 2&quot;
</code></pre>
<p><a href="https://stackoverflow.com/a/35630670">Source stackoverflow.com answer</a></p>
<h3>Intermediate and terminal operations</h3>
<p>Notice that at each chain operation, a new temporary list is created:</p>
<pre><code>data class Person(val name: String, val age: Int)

fun main(args: Array) {
    val people = 
        listOf(Person(&quot;Chris Martin&quot;, 31), 
               Person(&quot;Will Champion&quot;, 32),
               Person(&quot;Jonny Buckland&quot;, 33),
               Person(&quot;Guy Berryman&quot;, 34),
               Person(&quot;Mhris Cartin&quot;, 30))
    
    println(people
            .filter { it.age &gt; 30 } // new temp. list
            .map {                  
                it.name.split(&quot; &quot;).map {it[0]}.joinToString(&quot;&quot;)
            }  // new temp. list
            .map { it.toUpperCase() }) // new temp. list
}
</code></pre>
<p>Using a sequence:</p>
<pre><code>println(people
        .asSequence()  // convert to sequence
        .filter { it.age &gt; 30 } // lazy eval (intermediate op)
        .map {                  
            it.name.split(&quot; &quot;).map {it[0]}.joinToString(&quot;&quot;)
        }  // lazy eval (intermediate op)
        .map { it.toUpperCase() }  // lazy eval (intermediate op)
        .toList() // terminal operation
       )
</code></pre>
<p>Without a terminal operation, Sequences won't print anything:</p>
<pre><code>val seq = sequenceOf(1, 2, 3)
println(seq) // prints address
println(seq.toList()) // [1, 2, 3]
</code></pre>
<p>You can't pick an index from a sequence:</p>
<pre><code>println(seq[0]) // throws ERROR &quot;No get method providing array access&quot;
println(seq.toList()[0]) // 1
</code></pre>
<h2>Sponsors</h2>
<ul>
<li><a href="http://mapbox.com/android">Mapbox</a> - Android developers don't have to settle for a default same-map-no-matter-what option in their Android app. Mapbox offers complete map design control, allowing you to create beautiful custom maps to meet the needs of your Android users.<br />
Check them out today at <a href="http://mapbox.com/android">mapbox.com/android</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="21755434" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/8a6b0def-44d2-4aaf-aca1-4726d8f72bd9/109-kotlin-sequences_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>109: Learning Kotlin - Sequences the new Iterables</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/8a6b0def-44d2-4aaf-aca1-4726d8f72bd9/3000x3000/1515957401-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:22:36</itunes:duration>
      <itunes:summary>In this episode of Fragmented, we go back to learning some Kotlin and look at the Iterable like data structure introduced called &quot;Sequences&quot;. What is a sequence? How is it different from Iterable? When should I use it?

Listen on and find out!

Show notes at http://fragmentedpodcast.com/episodes/109/</itunes:summary>
      <itunes:subtitle>In this episode of Fragmented, we go back to learning some Kotlin and look at the Iterable like data structure introduced called &quot;Sequences&quot;. What is a sequence? How is it different from Iterable? When should I use it?

Listen on and find out!

Show notes at http://fragmentedpodcast.com/episodes/109/</itunes:subtitle>
      <itunes:keywords>iterator, kotlin, iterable, sequence</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>109</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">1c462ac3-7b7c-4484-a66d-264568049d49</guid>
      <title>108: State of React Native for Android with Ryan Salva</title>
      <description><![CDATA[<p>In this episode Donn talks to React Native magician Ryan Salva. React native and cross-platform development is typically one of our most requested topics so we kick the new year off with React Native. Ryan and Donn dive into the state of React Native today for mobile development, how it's matured since inception, what kinds of apps are suited to be built with React Native, what kinds aren't, what are the benefits to using React Native, some tips like pushing updates without having to upload to the play store every time and so much more.</p>
<p>Listen on!</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://cordova.apache.org/">(Apache) Cordova</a></li>
<li><a href="https://facebook.github.io/react-native/">React Native</a></li>
<li><a href="https://github.com/Microsoft/code-push">CodePush</a></li>
<li><a href="http://microsoft.github.io/code-push/">CodePush moving to App Center</a></li>
<li><a href="https://appcenter.ms/">App Center</a></li>
<li><a href="https://developers.google.com/web/fundamentals/primers/service-workers/">Service workers: an Introduction</a></li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://expo.io/">Expo JS</a></li>
<li><a href="https://github.com/creationix/nvm">nvm</a></li>
<li><a href="https://www.npmjs.com/">npm</a></li>
</ul>
<h3>Noteworthy quotes from this episode:</h3>
<ul>
<li>As developers, we are empowered to break things; it's our god given right!</li>
<li>Javascript is a beautiful disaster</li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://mapbox.com/android">Mapbox</a> Android developers don't have to settle for a default same-map-no-matter-what option in their Android app. Mapbox offers complete map design control, allowing you to create beautiful custom maps to meet the needs of your Android users.</li>
</ul>
<p>Check them out today at <a href="http://mapbox.com/android">mapbox.com/android</a></p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/ryanjsalva">@ryanjsalva</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 8 Jan 2018 15:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode Donn talks to React Native magician Ryan Salva. React native and cross-platform development is typically one of our most requested topics so we kick the new year off with React Native. Ryan and Donn dive into the state of React Native today for mobile development, how it's matured since inception, what kinds of apps are suited to be built with React Native, what kinds aren't, what are the benefits to using React Native, some tips like pushing updates without having to upload to the play store every time and so much more.</p>
<p>Listen on!</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://cordova.apache.org/">(Apache) Cordova</a></li>
<li><a href="https://facebook.github.io/react-native/">React Native</a></li>
<li><a href="https://github.com/Microsoft/code-push">CodePush</a></li>
<li><a href="http://microsoft.github.io/code-push/">CodePush moving to App Center</a></li>
<li><a href="https://appcenter.ms/">App Center</a></li>
<li><a href="https://developers.google.com/web/fundamentals/primers/service-workers/">Service workers: an Introduction</a></li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://expo.io/">Expo JS</a></li>
<li><a href="https://github.com/creationix/nvm">nvm</a></li>
<li><a href="https://www.npmjs.com/">npm</a></li>
</ul>
<h3>Noteworthy quotes from this episode:</h3>
<ul>
<li>As developers, we are empowered to break things; it's our god given right!</li>
<li>Javascript is a beautiful disaster</li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://mapbox.com/android">Mapbox</a> Android developers don't have to settle for a default same-map-no-matter-what option in their Android app. Mapbox offers complete map design control, allowing you to create beautiful custom maps to meet the needs of your Android users.</li>
</ul>
<p>Check them out today at <a href="http://mapbox.com/android">mapbox.com/android</a></p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/ryanjsalva">@ryanjsalva</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="26622269" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/42dae3d7-bc29-4a1a-a24a-eeee643b2239/108_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>108: State of React Native for Android with Ryan Salva</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/42dae3d7-bc29-4a1a-a24a-eeee643b2239/3000x3000/1515423581-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:54:55</itunes:duration>
      <itunes:summary>In this episode Donn talks to React Native magician Ryan Salva. 

React native and cross-platform development is typically one of our most requested topics so we kick the new year off with React Native. Ryan and Donn dive into the state of React Native today for mobile development, how it&apos;s matured since inception, what kinds of apps are suited to be built with React Native, what kinds aren&apos;t, what are the benefits to using React Native, some tips like pushing updates without having to upload to the play store every time and so much more.

Show notes at http://fragmentedpodcast.com/episodes/108/</itunes:summary>
      <itunes:subtitle>In this episode Donn talks to React Native magician Ryan Salva. 

React native and cross-platform development is typically one of our most requested topics so we kick the new year off with React Native. Ryan and Donn dive into the state of React Native today for mobile development, how it&apos;s matured since inception, what kinds of apps are suited to be built with React Native, what kinds aren&apos;t, what are the benefits to using React Native, some tips like pushing updates without having to upload to the play store every time and so much more.

Show notes at http://fragmentedpodcast.com/episodes/108/</itunes:subtitle>
      <itunes:keywords>code push, ryan salva, react native, app link, microsoft connect</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>108</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">d7f53a40-7b6b-470c-b229-2787939a0df7</guid>
      <title>107: Shape shifting SVGs with Alex Lockwood</title>
      <description><![CDATA[<p>In this episode, we talk to Alex Lockwood who created shapeshifter.design, while at Google. Shape Shifter is an amazing tool that can help developers create Animated Vector Drawables without losing all their hair. Think of shapeshifter as a developer-friendly, open source, After Effects alternative for Android developers.</p>
<p>Alex talks to us about how and why he created Shape Shifter, the different tools that have evolved out of its creation and just getting a good grasp of its working.</p>
<h2>Show Notes</h2>
<h3>Abt Alex Lockwood</h3>
<ul>
<li><a href="http://www.androiddesignpatterns.com/">Alex's blog - androiddesignpatterns.com</a></li>
<li><a href="http://www.androiddesignpatterns.com/2013/01/inner-class-handler-memory-leak.html">How to Leak a Context: Handlers &amp; Inner Classes</a></li>
<li><a href="https://www.androiddesignpatterns.com/2013/04/retaining-objects-across-config-changes.html">Handling configuration changes with Fragments</a></li>
</ul>
<h3>Shape Shifter</h3>
<ul>
<li><a href="https://shapeshifter.design/">shapeshifter.design</a></li>
<li><a href="http://www.androiddesignpatterns.com/2016/11/introduction-to-icon-animation-techniques.html">Blog post on icon animations</a></li>
<li><a href="https://www.androiddesignpatterns.com/2016/11/introduction-to-icon-animation-techniques.html">An Introduction to Icon Animation Techniques</a></li>
</ul>
<h3>SVGO</h3>
<ul>
<li><a href="https://github.com/svg/svgo">SVGo - optimizer</a></li>
<li><a href="https://jakearchibald.github.io/svgomg/">SVG-OMG - webapp that runs svgo on web by Jake Archibald</a></li>
</ul>
<h3>Shape Shifting &amp; Icon animations</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=JhryKMOM6GI">Alex Lockwood Droidcon SF 2017 Talk - In-depth parth morphing w/Shape Shifter</a></li>
<li><a href="https://www.youtube.com/watch?v=2aq3ljlnQdI">Building play to pause animation with ShapeShifter</a> <a href="j.mp/path-morph">[slides]</a></li>
<li><a href="https://www.youtube.com/watch?v=v7I6eo4Fo6U">Animal morph animation</a></li>
<li><a href="https://www.youtube.com/watch?v=dzB-1VlHJW8">Nick Butcher talk - Learn some new moves</a></li>
<li><a href="https://en.wikipedia.org/wiki/Needleman%E2%80%93Wunsch_algorithm">Needleman-Wunsch algorithm</a></li>
<li><a href="https://github.com/alexjlockwood/avdo">AVDO</a></li>
<li><a href="https://github.com/alexjlockwood/avdo/issues/19">github issue: AVDO -&gt; 🥑</a></li>
<li><a href="https://airbnb.design/introducing-lottie/">Lottie</a></li>
</ul>
<h2>Sponsors</h2>
<p>Thanks to <a href="https://www.buddybuild.com/?ref=fragmented">Buddybuild</a> for sponsoring this episode of Fragmented! Ship apps faster with BuddyBuild 🚀 Give them a try for free at <a href="https://www.buddybuild.com/?ref=fragmented">fragmentedpodcast.com/buddybuild</a>.</p>
<h2>Contact</h2>
<ul>
<li><a href="twitter.com/alexjlockwood">@alexjlockwood</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 18 Dec 2017 14:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, we talk to Alex Lockwood who created shapeshifter.design, while at Google. Shape Shifter is an amazing tool that can help developers create Animated Vector Drawables without losing all their hair. Think of shapeshifter as a developer-friendly, open source, After Effects alternative for Android developers.</p>
<p>Alex talks to us about how and why he created Shape Shifter, the different tools that have evolved out of its creation and just getting a good grasp of its working.</p>
<h2>Show Notes</h2>
<h3>Abt Alex Lockwood</h3>
<ul>
<li><a href="http://www.androiddesignpatterns.com/">Alex's blog - androiddesignpatterns.com</a></li>
<li><a href="http://www.androiddesignpatterns.com/2013/01/inner-class-handler-memory-leak.html">How to Leak a Context: Handlers &amp; Inner Classes</a></li>
<li><a href="https://www.androiddesignpatterns.com/2013/04/retaining-objects-across-config-changes.html">Handling configuration changes with Fragments</a></li>
</ul>
<h3>Shape Shifter</h3>
<ul>
<li><a href="https://shapeshifter.design/">shapeshifter.design</a></li>
<li><a href="http://www.androiddesignpatterns.com/2016/11/introduction-to-icon-animation-techniques.html">Blog post on icon animations</a></li>
<li><a href="https://www.androiddesignpatterns.com/2016/11/introduction-to-icon-animation-techniques.html">An Introduction to Icon Animation Techniques</a></li>
</ul>
<h3>SVGO</h3>
<ul>
<li><a href="https://github.com/svg/svgo">SVGo - optimizer</a></li>
<li><a href="https://jakearchibald.github.io/svgomg/">SVG-OMG - webapp that runs svgo on web by Jake Archibald</a></li>
</ul>
<h3>Shape Shifting &amp; Icon animations</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=JhryKMOM6GI">Alex Lockwood Droidcon SF 2017 Talk - In-depth parth morphing w/Shape Shifter</a></li>
<li><a href="https://www.youtube.com/watch?v=2aq3ljlnQdI">Building play to pause animation with ShapeShifter</a> <a href="j.mp/path-morph">[slides]</a></li>
<li><a href="https://www.youtube.com/watch?v=v7I6eo4Fo6U">Animal morph animation</a></li>
<li><a href="https://www.youtube.com/watch?v=dzB-1VlHJW8">Nick Butcher talk - Learn some new moves</a></li>
<li><a href="https://en.wikipedia.org/wiki/Needleman%E2%80%93Wunsch_algorithm">Needleman-Wunsch algorithm</a></li>
<li><a href="https://github.com/alexjlockwood/avdo">AVDO</a></li>
<li><a href="https://github.com/alexjlockwood/avdo/issues/19">github issue: AVDO -&gt; 🥑</a></li>
<li><a href="https://airbnb.design/introducing-lottie/">Lottie</a></li>
</ul>
<h2>Sponsors</h2>
<p>Thanks to <a href="https://www.buddybuild.com/?ref=fragmented">Buddybuild</a> for sponsoring this episode of Fragmented! Ship apps faster with BuddyBuild 🚀 Give them a try for free at <a href="https://www.buddybuild.com/?ref=fragmented">fragmentedpodcast.com/buddybuild</a>.</p>
<h2>Contact</h2>
<ul>
<li><a href="twitter.com/alexjlockwood">@alexjlockwood</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="22557827" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/cbce48b7-a64d-4967-8531-86fb970e32dd/107_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>107: Shape shifting SVGs with Alex Lockwood</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/cbce48b7-a64d-4967-8531-86fb970e32dd/3000x3000/1513576249-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:46:27</itunes:duration>
      <itunes:summary>In this episode, we talk to Alex Lockwood who created shapeshifter.design, while at Google. Shape Shifter is an amazing tool that can help developers create Animated Vector Drawables without losing all their hair. Think of shapeshifter as a developer-friendly, open source, After Effects alternative for Android developers.

Alex talks to us about how and why he created Shape Shifter, the different tools that have evolved out of its creation and just getting a good grasp of its working.


Show notes: http://fragmentedpodcast.com/episodes/107</itunes:summary>
      <itunes:subtitle>In this episode, we talk to Alex Lockwood who created shapeshifter.design, while at Google. Shape Shifter is an amazing tool that can help developers create Animated Vector Drawables without losing all their hair. Think of shapeshifter as a developer-friendly, open source, After Effects alternative for Android developers.

Alex talks to us about how and why he created Shape Shifter, the different tools that have evolved out of its creation and just getting a good grasp of its working.


Show notes: http://fragmentedpodcast.com/episodes/107</itunes:subtitle>
      <itunes:keywords>alex lockwood, svg, asvg, shape shifter, avd</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>107</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">7b7879b5-2dda-4706-b664-996893347374</guid>
      <title>106: The Reactive Workflow Pattern with Ray Ryan</title>
      <description><![CDATA[<p>In this episode we sit down and talk to Ray Ryan from Square about the Reactive Workflow pattern that he recently gave a talk on. This pattern goes deep into RootViews, containers, ViewFactories and much much more.</p>
<h2>Show Notes</h2>
<ul>
<li>Ray’s “The Rx Workflow Pattern” talk at Droidcon NYC: <a href="https://www.youtube.com/watch?v=KjoMnsc2lPo">droidcon NYC 2017 - The Rx Workflow Pattern - YouTube</a></li>
<li>Flow Navigation -<a href="https://github.com/square/flow">GitHub - square/flow: Name UI states, navigate between them, remember where you’ve been.</a></li>
<li>Square Coordinator Library - <a href="https://github.com/square/coordinators">GitHub - square/coordinators: Simple MVWhatever for Android</a></li>
<li>Composable State Machine Pattern - <a href="https://gist.github.com/andymatuschak/d5f0a8730ad601bcccae97e8398e25b2">A composable pattern for pure state machines with effects (draft v3) · GitHub</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/rjrjr">@rjrjr</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Wed, 13 Dec 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode we sit down and talk to Ray Ryan from Square about the Reactive Workflow pattern that he recently gave a talk on. This pattern goes deep into RootViews, containers, ViewFactories and much much more.</p>
<h2>Show Notes</h2>
<ul>
<li>Ray’s “The Rx Workflow Pattern” talk at Droidcon NYC: <a href="https://www.youtube.com/watch?v=KjoMnsc2lPo">droidcon NYC 2017 - The Rx Workflow Pattern - YouTube</a></li>
<li>Flow Navigation -<a href="https://github.com/square/flow">GitHub - square/flow: Name UI states, navigate between them, remember where you’ve been.</a></li>
<li>Square Coordinator Library - <a href="https://github.com/square/coordinators">GitHub - square/coordinators: Simple MVWhatever for Android</a></li>
<li>Composable State Machine Pattern - <a href="https://gist.github.com/andymatuschak/d5f0a8730ad601bcccae97e8398e25b2">A composable pattern for pure state machines with effects (draft v3) · GitHub</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/rjrjr">@rjrjr</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="56118348" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/a6f434b0-0858-45a0-a3ce-0353311eb620/106-rayryan_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>106: The Reactive Workflow Pattern with Ray Ryan</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/a6f434b0-0858-45a0-a3ce-0353311eb620/3000x3000/1513111062-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:58:24</itunes:duration>
      <itunes:summary>In this episode we sit down and talk to Ray Ryan from Square about the Reactive Workflow pattern that he recently gave a talk on. This pattern goes deep into RootViews, containers, ViewFactories and much much more.  </itunes:summary>
      <itunes:subtitle>In this episode we sit down and talk to Ray Ryan from Square about the Reactive Workflow pattern that he recently gave a talk on. This pattern goes deep into RootViews, containers, ViewFactories and much much more.  </itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>106</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">ed6924d5-3169-465e-9adf-69b2469a1eac</guid>
      <title>105: Jake Wharton on the Android Kotlin Guides</title>
      <description><![CDATA[<p>In this episode, we talk to Jake Wharton of <em>Google</em> on a recent Kotlin coding style guide that they released: the Android Kotlin Guides. In this episode, we pick his brains and ask him how he structured the guide, how he partitioned it to fit some of the idiosyncrasies of Kotlin, what some of the challenges were, when coming up with the guide and much more.</p>
<p>Jake's one of the best out there and it's always such a pleasure to have him on the show. Listen on:</p>
<h2>Show Notes</h2>
<h3>The style guides</h3>
<ul>
<li><a href="https://android.github.io/kotlin-guides/index.html">Android Kotlin Guides</a></li>
<li><a href="https://github.com/android/kotlin-guides">official github repo for Android Kotlin guides</a></li>
<li><a href="https://google.github.io/styleguide/javaguide.html">Google Java Style Guide</a></li>
<li><a href="http://kotlinlang.org/docs/reference/coding-conventions.html">Jetbrains Coding conventions</a></li>
<li>Jetbrains <a href="http://kotlinlang.org/docs/reference/idioms.html">collection of Kotlin idioms</a> (also very useful)</li>
</ul>
<h3>Building the style guide</h3>
<ul>
<li><a href="https://jekyllrb.com/">Jekyll</a></li>
<li><a href="https://google.github.io/android-testing-support-library/">Android Testing support library website (inspiration for how to set it up)</a> (<a href="https://github.com/google/android-testing-support-library">github</a>)</li>
</ul>
<h3>Android Kotlin Guides</h3>
<ul>
<li><a href="https://kotlinlang.org/docs/reference/annotations.html#annotation-use-site-targets">Annotation use-site targets with Kotlin</a></li>
<li><a href="https://android.github.io/kotlin-guides/interop.html#file-name">guide on interop and file-names for use-site targets</a></li>
<li><a href="https://github.com/android/kotlin-guides/issues/11">logical ordering explanation for ordering companion object</a></li>
<li><a href="http://beust.com/weblog/2017/07/17/i-am-the-reason-for-hungarian-notation-in-android/">I am the reason for Hungarian notation - Cedric Beust blog post</a></li>
</ul>
<h3>Mockito <code>when</code> problems:</h3>
<ul>
<li><a href="https://kotlinlang.org/docs/reference/keyword-reference.html">Kotlin reserved keywords</a></li>
<li><a href="https://github.com/nhaarman/mockito-kotlin">Mockito Kotlin library</a> (aliases when -&gt; whenever)</li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://android.github.io/kotlin-guides/style.html#where-to-break">Where to break lines</a></li>
<li><a href="https://github.com/Kotlin/kotlinx.collections.immutable">Immutable collection prototypes for Kotlin</a></li>
<li><a href="https://twitter.com/kotlin/status/755339965194731521">@Kotlin tweet on immutable collections</a></li>
<li><a href="https://android.github.io/kotlin-guides/interop.html#function-overloads-for-defaults">@JvmOverloads</a> (we love this!)</li>
</ul>
<h3>Contributing</h3>
<ul>
<li><a href="https://github.com/android/kotlin-guides/issues">Contribute to github issues on Android Kotlin Guides</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/jakewharton">@JakeWharton</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 4 Dec 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, we talk to Jake Wharton of <em>Google</em> on a recent Kotlin coding style guide that they released: the Android Kotlin Guides. In this episode, we pick his brains and ask him how he structured the guide, how he partitioned it to fit some of the idiosyncrasies of Kotlin, what some of the challenges were, when coming up with the guide and much more.</p>
<p>Jake's one of the best out there and it's always such a pleasure to have him on the show. Listen on:</p>
<h2>Show Notes</h2>
<h3>The style guides</h3>
<ul>
<li><a href="https://android.github.io/kotlin-guides/index.html">Android Kotlin Guides</a></li>
<li><a href="https://github.com/android/kotlin-guides">official github repo for Android Kotlin guides</a></li>
<li><a href="https://google.github.io/styleguide/javaguide.html">Google Java Style Guide</a></li>
<li><a href="http://kotlinlang.org/docs/reference/coding-conventions.html">Jetbrains Coding conventions</a></li>
<li>Jetbrains <a href="http://kotlinlang.org/docs/reference/idioms.html">collection of Kotlin idioms</a> (also very useful)</li>
</ul>
<h3>Building the style guide</h3>
<ul>
<li><a href="https://jekyllrb.com/">Jekyll</a></li>
<li><a href="https://google.github.io/android-testing-support-library/">Android Testing support library website (inspiration for how to set it up)</a> (<a href="https://github.com/google/android-testing-support-library">github</a>)</li>
</ul>
<h3>Android Kotlin Guides</h3>
<ul>
<li><a href="https://kotlinlang.org/docs/reference/annotations.html#annotation-use-site-targets">Annotation use-site targets with Kotlin</a></li>
<li><a href="https://android.github.io/kotlin-guides/interop.html#file-name">guide on interop and file-names for use-site targets</a></li>
<li><a href="https://github.com/android/kotlin-guides/issues/11">logical ordering explanation for ordering companion object</a></li>
<li><a href="http://beust.com/weblog/2017/07/17/i-am-the-reason-for-hungarian-notation-in-android/">I am the reason for Hungarian notation - Cedric Beust blog post</a></li>
</ul>
<h3>Mockito <code>when</code> problems:</h3>
<ul>
<li><a href="https://kotlinlang.org/docs/reference/keyword-reference.html">Kotlin reserved keywords</a></li>
<li><a href="https://github.com/nhaarman/mockito-kotlin">Mockito Kotlin library</a> (aliases when -&gt; whenever)</li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://android.github.io/kotlin-guides/style.html#where-to-break">Where to break lines</a></li>
<li><a href="https://github.com/Kotlin/kotlinx.collections.immutable">Immutable collection prototypes for Kotlin</a></li>
<li><a href="https://twitter.com/kotlin/status/755339965194731521">@Kotlin tweet on immutable collections</a></li>
<li><a href="https://android.github.io/kotlin-guides/interop.html#function-overloads-for-defaults">@JvmOverloads</a> (we love this!)</li>
</ul>
<h3>Contributing</h3>
<ul>
<li><a href="https://github.com/android/kotlin-guides/issues">Contribute to github issues on Android Kotlin Guides</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/jakewharton">@JakeWharton</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="68294305" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/db9f7456-db36-4540-b968-983e493aa44c/105-interview-w-jake-wharton_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>105: Jake Wharton on the Android Kotlin Guides</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/db9f7456-db36-4540-b968-983e493aa44c/3000x3000/1512318984-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:11:05</itunes:duration>
      <itunes:summary>In this episode, we talk to Jake Wharton of _Google_ on a recent Kotlin coding style guide that they released: the Android Kotlin Guides. In this episode, we pick his brains and ask him how he structured the guide, how he partitioned it to fit some of the idiosyncrasies of Kotlin, what some of the challenges were, when coming up with the guide and much more.

Jake&apos;s one of the best out there and it&apos;s always such a pleasure to have him on the show. Listen on:

Show notes: http://fragmentedpodcast.com/episodes/105</itunes:summary>
      <itunes:subtitle>In this episode, we talk to Jake Wharton of _Google_ on a recent Kotlin coding style guide that they released: the Android Kotlin Guides. In this episode, we pick his brains and ask him how he structured the guide, how he partitioned it to fit some of the idiosyncrasies of Kotlin, what some of the challenges were, when coming up with the guide and much more.

Jake&apos;s one of the best out there and it&apos;s always such a pleasure to have him on the show. Listen on:

Show notes: http://fragmentedpodcast.com/episodes/105</itunes:subtitle>
      <itunes:keywords>kotlin, jake wharton, android kotlin guides</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>105</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">5746d551-591e-4c73-9333-f749334c8973</guid>
      <title>104: Conversations with GNOME Mono Xamarin creator Miguel and VS App Center PM Simina</title>
      <description><![CDATA[<p>In this episode of Fragmented, Donn makes the pilgrimage to Microsoft Connect 2017.  Connect is Microsoft's annual developer conference where they announce a bunch of new products and services.</p>
<p>Donn got to interview a bunch of folks, and in this episode, we talk to two of them: Miguel De Icaza (leading open source proponent who also helped create Gnome, Mono, Xamarin etc.) and Simina Pasat (Program manager for Microsoft's very new CI like service AppLink). Both of them were terrific guests and had quite a few gems to share, for us Android devs!</p>
<h1>Show notes</h1>
<ul>
<li><a href="https://www.microsoft.com/en-us/connectevent/default.aspx">Microsoft Connect</a></li>
</ul>
<h2>Miguel</h2>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Miguel_de_Icaza">MiguelDeIcaza (Wikipedia)</a></li>
<li><a href="https://en.wikipedia.org/wiki/Wine_(software)">Wine</a></li>
<li><a href="https://en.wikipedia.org/wiki/Midnight_Commander">Midnight Commander</a></li>
<li><a href="https://en.wikipedia.org/wiki/Gnumeric">Gnumeric speedsheet</a></li>
<li><a href="https://www.linux.com/learn/use-evolution-connect-microsoft-exchange-linux">Evolution - Outlook clone for linux</a></li>
</ul>
<h3>Cross platform development</h3>
<ul>
<li><a href="http://www.mono-project.com/">Mono project</a></li>
<li><a href="https://www.xamarin.com/">Xamarin</a></li>
<li><a href="https://www.xamarin.com/live">Xamarin Live Player</a></li>
<li><a href="https://developer.xamarin.com/workbooks/">Xamarin Workbooks</a></li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://channel9.msdn.com/Events/Connect/2017/T256">Scott Hanselman on using Visual Studio</a></li>
<li><a href="https://www.visualstudio.com/">Download Visual Studio</a></li>
<li><a href="http://foundation.fsharp.org/">F# (programming language)</a></li>
<li><a href="https://www.youtube.com/watch?v=8pTEmbeENF4">Bret Victor - The Future of Programming (youtube)</a></li>
</ul>
<h2>Simina Pasat</h2>
<ul>
<li><a href="https://hockeyapp.net/">HockeyApp platform</a></li>
<li><a href="https://appcenter.ms/">Visual Studio App Center</a></li>
<li><a href="https://blogs.msdn.microsoft.com/vsappcenter/introducing-visual-studio-app-center/">Introducing App Center: Build, Test, Distribute and Monitor Apps in the Cloud</a></li>
<li><a href="https://www.youtube.com/watch?v=2TXuZ5LkzA4">How to upload an Espresso Test to Visual Studio App Center</a></li>
<li><a href="https://twitter.com/VSAppCenter">@vsappcenter</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/MiguelDeIcaza">@MiguelDeIcaza</a></li>
<li><a href="https://twitter.com/SiminaPasat">@SiminaPasat</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 27 Nov 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode of Fragmented, Donn makes the pilgrimage to Microsoft Connect 2017.  Connect is Microsoft's annual developer conference where they announce a bunch of new products and services.</p>
<p>Donn got to interview a bunch of folks, and in this episode, we talk to two of them: Miguel De Icaza (leading open source proponent who also helped create Gnome, Mono, Xamarin etc.) and Simina Pasat (Program manager for Microsoft's very new CI like service AppLink). Both of them were terrific guests and had quite a few gems to share, for us Android devs!</p>
<h1>Show notes</h1>
<ul>
<li><a href="https://www.microsoft.com/en-us/connectevent/default.aspx">Microsoft Connect</a></li>
</ul>
<h2>Miguel</h2>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Miguel_de_Icaza">MiguelDeIcaza (Wikipedia)</a></li>
<li><a href="https://en.wikipedia.org/wiki/Wine_(software)">Wine</a></li>
<li><a href="https://en.wikipedia.org/wiki/Midnight_Commander">Midnight Commander</a></li>
<li><a href="https://en.wikipedia.org/wiki/Gnumeric">Gnumeric speedsheet</a></li>
<li><a href="https://www.linux.com/learn/use-evolution-connect-microsoft-exchange-linux">Evolution - Outlook clone for linux</a></li>
</ul>
<h3>Cross platform development</h3>
<ul>
<li><a href="http://www.mono-project.com/">Mono project</a></li>
<li><a href="https://www.xamarin.com/">Xamarin</a></li>
<li><a href="https://www.xamarin.com/live">Xamarin Live Player</a></li>
<li><a href="https://developer.xamarin.com/workbooks/">Xamarin Workbooks</a></li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://channel9.msdn.com/Events/Connect/2017/T256">Scott Hanselman on using Visual Studio</a></li>
<li><a href="https://www.visualstudio.com/">Download Visual Studio</a></li>
<li><a href="http://foundation.fsharp.org/">F# (programming language)</a></li>
<li><a href="https://www.youtube.com/watch?v=8pTEmbeENF4">Bret Victor - The Future of Programming (youtube)</a></li>
</ul>
<h2>Simina Pasat</h2>
<ul>
<li><a href="https://hockeyapp.net/">HockeyApp platform</a></li>
<li><a href="https://appcenter.ms/">Visual Studio App Center</a></li>
<li><a href="https://blogs.msdn.microsoft.com/vsappcenter/introducing-visual-studio-app-center/">Introducing App Center: Build, Test, Distribute and Monitor Apps in the Cloud</a></li>
<li><a href="https://www.youtube.com/watch?v=2TXuZ5LkzA4">How to upload an Espresso Test to Visual Studio App Center</a></li>
<li><a href="https://twitter.com/VSAppCenter">@vsappcenter</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/MiguelDeIcaza">@MiguelDeIcaza</a></li>
<li><a href="https://twitter.com/SiminaPasat">@SiminaPasat</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="51568029" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/9b7e17f1-fba3-4062-a866-3435462bc85d/104-microsoft-interviews_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>104: Conversations with GNOME Mono Xamarin creator Miguel and VS App Center PM Simina</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/9b7e17f1-fba3-4062-a866-3435462bc85d/3000x3000/1511742848-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:53:40</itunes:duration>
      <itunes:summary>In this episode of Fragmented, Donn makes the pilgrimage to Microsoft Connect 2017.  Connect is Microsoft&apos;s annual developer conference where they announce a bunch of new products and services. 

Donn got to interview a bunch of folks, and in this episode, we talk to two of them: Miguel De Icaza (leading open source proponent who also helped create Gnome, Mono, Xamarin etc.) and Simina Pasat (Program manager for Microsoft&apos;s very new CI like service AppLink). Both of them were terrific guests and had quite a few gems to share, for us Android devs! Listen on.</itunes:summary>
      <itunes:subtitle>In this episode of Fragmented, Donn makes the pilgrimage to Microsoft Connect 2017.  Connect is Microsoft&apos;s annual developer conference where they announce a bunch of new products and services. 

Donn got to interview a bunch of folks, and in this episode, we talk to two of them: Miguel De Icaza (leading open source proponent who also helped create Gnome, Mono, Xamarin etc.) and Simina Pasat (Program manager for Microsoft&apos;s very new CI like service AppLink). Both of them were terrific guests and had quite a few gems to share, for us Android devs! Listen on.</itunes:subtitle>
      <itunes:keywords>dotnet, miguel de icaza, microsoft, f#, connect, applink, visual studio, c#, xamarin</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>104</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">f43069dd-9abe-4169-9501-42fca5f5a534</guid>
      <title>103: MVI pattern with Hannes Mosby Dorfmann</title>
      <description><![CDATA[<p>In this episode of Fragmented, we talk to Hannes Dorfmann about using the Model View Intent (MVI) pattern for Android. The MVI pattern was sparked through cycle.js (for javascript). Hannes took this pattern and tried to adapt it to Android. This pattern has gained a lot of traction and interest in the Android community.</p>
<p>In this episode, he breaks down the pattern for us. He tells us how to implement it, how it helps with testing, the benefits of the pattern and some of the pitfalls. Recording this episode was riveting for us and we dive into some juicy technical details. Listen on!</p>
<h1>Show Notes</h1>
<h2>About Hannes</h2>
<ul>
<li><a href="http://hannesdorfmann.com/">hannesdorfmann.com blog</a></li>
<li><a href="http://hannesdorfmann.com/mosby/">Mosby</a></li>
<li><a href="https://www.tickaroo.com/">Tickaroo</a></li>
<li><a href="https://www.freeletics.com/en">Freeletics</a></li>
<li><a href="https://github.com/artem-zinnatullin/TheContext-Podcast">The Context podcast</a></li>
</ul>
<h2>MV* patterns</h2>
<ul>
<li><a href="https://cycle.js.org/getting-started.html">cyclejs</a></li>
<li><a href="https://twitter.com/andrestaltz">André &quot;Staltz&quot; Medeiros</a></li>
<li><a href="https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel">MVVM pattern</a></li>
<li><a href="https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93presenter">MVP pattern</a></li>
<li><a href="https://vimeo.com/191068122">KG - What i learnt using Presenter patterns</a></li>
<li>MVC by <a href="https://en.wikipedia.org/wiki/Trygve_Reenskaug">Trygve Reenskaug</a></li>
</ul>
<h2>MVI like patterns</h2>
<p>Hannes series on MVI for Android (must read!) :</p>
<ul>
<li><a href="http://hannesdorfmann.com/android/mosby3-mvi-1">Reactive apps with MVI Part 1 - Model</a></li>
<li><a href="http://hannesdorfmann.com/android/mosby3-mvi-2">Reactive apps with MVI Part 2 - View and Intent</a></li>
<li><a href="http://hannesdorfmann.com/android/mosby3-mvi-3">Reactive apps with MVI Part 3 - State Reducer</a></li>
<li><a href="http://hannesdorfmann.com/android/mosby3-mvi-4">Reactive apps with MVI Part 4 - Independent UI components</a></li>
<li><a href="http://hannesdorfmann.com/android/mosby3-mvi-5">Reactive apps with MVI Part 5 - Debugging with Ease</a></li>
<li><a href="http://hannesdorfmann.com/android/mosby3-mvi-6">Reactive apps with MVI Part 6 - Restoring state</a></li>
<li><a href="http://hannesdorfmann.com/android/mosby3-mvi-7">Reactive apps with MVI Part 7 - Timing (Single live event problem)</a></li>
</ul>
<h2>Misc</h2>
<ul>
<li><a href="http://kategory.io/">Kategory</a> - (<a href="https://twitter.com/JorgeCastilloPr">Jorge</a>)</li>
<li><a href="https://redux.js.org/">Redux</a></li>
<li><a href="https://redux-saga.js.org/">Redux Saga - alternative side effect model for Redux apps</a></li>
<li><a href="https://www.npmjs.com/package/redux-observable">Redux Observable - AirBnB</a></li>
<li><a href="https://github.com/groupon/grox">Groupon Grux</a></li>
<li><a href="https://tech.instacart.com/lce-modeling-data-loading-in-rxjava-b798ac98d80">Instacart LCE</a></li>
<li><a href="https://www.youtube.com/watch?v=UsuzhTlccRk">The Journey of Android Engineers: Redux-ing UI Bugs by Christina Lee</a></li>
<li><a href="https://www.youtube.com/watch?v=0IKHxjkgop4">Managing State with RxJava by Jake Wharton</a></li>
</ul>
<h1>Sponsors</h1>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
<li><a href="https://github.com/rollbar/rollbar-java/blob/v1.0.0-alpha-1/README.md">Rollbar open source library (alpha)</a></li>
</ul>
<h1>Contact</h1>
<ul>
<li><a href="https://twitter.com/sockeqwe">@sockeqwe</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 13 Nov 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode of Fragmented, we talk to Hannes Dorfmann about using the Model View Intent (MVI) pattern for Android. The MVI pattern was sparked through cycle.js (for javascript). Hannes took this pattern and tried to adapt it to Android. This pattern has gained a lot of traction and interest in the Android community.</p>
<p>In this episode, he breaks down the pattern for us. He tells us how to implement it, how it helps with testing, the benefits of the pattern and some of the pitfalls. Recording this episode was riveting for us and we dive into some juicy technical details. Listen on!</p>
<h1>Show Notes</h1>
<h2>About Hannes</h2>
<ul>
<li><a href="http://hannesdorfmann.com/">hannesdorfmann.com blog</a></li>
<li><a href="http://hannesdorfmann.com/mosby/">Mosby</a></li>
<li><a href="https://www.tickaroo.com/">Tickaroo</a></li>
<li><a href="https://www.freeletics.com/en">Freeletics</a></li>
<li><a href="https://github.com/artem-zinnatullin/TheContext-Podcast">The Context podcast</a></li>
</ul>
<h2>MV* patterns</h2>
<ul>
<li><a href="https://cycle.js.org/getting-started.html">cyclejs</a></li>
<li><a href="https://twitter.com/andrestaltz">André &quot;Staltz&quot; Medeiros</a></li>
<li><a href="https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel">MVVM pattern</a></li>
<li><a href="https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93presenter">MVP pattern</a></li>
<li><a href="https://vimeo.com/191068122">KG - What i learnt using Presenter patterns</a></li>
<li>MVC by <a href="https://en.wikipedia.org/wiki/Trygve_Reenskaug">Trygve Reenskaug</a></li>
</ul>
<h2>MVI like patterns</h2>
<p>Hannes series on MVI for Android (must read!) :</p>
<ul>
<li><a href="http://hannesdorfmann.com/android/mosby3-mvi-1">Reactive apps with MVI Part 1 - Model</a></li>
<li><a href="http://hannesdorfmann.com/android/mosby3-mvi-2">Reactive apps with MVI Part 2 - View and Intent</a></li>
<li><a href="http://hannesdorfmann.com/android/mosby3-mvi-3">Reactive apps with MVI Part 3 - State Reducer</a></li>
<li><a href="http://hannesdorfmann.com/android/mosby3-mvi-4">Reactive apps with MVI Part 4 - Independent UI components</a></li>
<li><a href="http://hannesdorfmann.com/android/mosby3-mvi-5">Reactive apps with MVI Part 5 - Debugging with Ease</a></li>
<li><a href="http://hannesdorfmann.com/android/mosby3-mvi-6">Reactive apps with MVI Part 6 - Restoring state</a></li>
<li><a href="http://hannesdorfmann.com/android/mosby3-mvi-7">Reactive apps with MVI Part 7 - Timing (Single live event problem)</a></li>
</ul>
<h2>Misc</h2>
<ul>
<li><a href="http://kategory.io/">Kategory</a> - (<a href="https://twitter.com/JorgeCastilloPr">Jorge</a>)</li>
<li><a href="https://redux.js.org/">Redux</a></li>
<li><a href="https://redux-saga.js.org/">Redux Saga - alternative side effect model for Redux apps</a></li>
<li><a href="https://www.npmjs.com/package/redux-observable">Redux Observable - AirBnB</a></li>
<li><a href="https://github.com/groupon/grox">Groupon Grux</a></li>
<li><a href="https://tech.instacart.com/lce-modeling-data-loading-in-rxjava-b798ac98d80">Instacart LCE</a></li>
<li><a href="https://www.youtube.com/watch?v=UsuzhTlccRk">The Journey of Android Engineers: Redux-ing UI Bugs by Christina Lee</a></li>
<li><a href="https://www.youtube.com/watch?v=0IKHxjkgop4">Managing State with RxJava by Jake Wharton</a></li>
</ul>
<h1>Sponsors</h1>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
<li><a href="https://github.com/rollbar/rollbar-java/blob/v1.0.0-alpha-1/README.md">Rollbar open source library (alpha)</a></li>
</ul>
<h1>Contact</h1>
<ul>
<li><a href="https://twitter.com/sockeqwe">@sockeqwe</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="63556374" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/d2c9aff1-0378-4dbf-aa60-b98f42a5ad5b/103-hannes_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>103: MVI pattern with Hannes Mosby Dorfmann</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/d2c9aff1-0378-4dbf-aa60-b98f42a5ad5b/3000x3000/1510533240-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:06:09</itunes:duration>
      <itunes:summary>In this episode of Fragmented, we talk to Hannes Dorfmann about using the Model View Intent (MVI) pattern for Android. The MVI pattern was sparked through cycle.js (for javascript). Hannes took this pattern and tried to adapt it to Android. This pattern has gained a lot of traction and interest in the Android community.

In this episode, he breaks down the pattern for us. He tells us how to implement it, how it helps with testing, the benefits of the pattern and some of the pitfalls. Recording this episode was riveting for us and we dive into some juicy technical details. Listen on!


Show notes: http://fragmentedpodcast.com/episodes/103/ </itunes:summary>
      <itunes:subtitle>In this episode of Fragmented, we talk to Hannes Dorfmann about using the Model View Intent (MVI) pattern for Android. The MVI pattern was sparked through cycle.js (for javascript). Hannes took this pattern and tried to adapt it to Android. This pattern has gained a lot of traction and interest in the Android community.

In this episode, he breaks down the pattern for us. He tells us how to implement it, how it helps with testing, the benefits of the pattern and some of the pitfalls. Recording this episode was riveting for us and we dive into some juicy technical details. Listen on!


Show notes: http://fragmentedpodcast.com/episodes/103/ </itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>103</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">d9436b9a-e233-4f7e-a923-5dce66c14c04</guid>
      <title>102: All Things Kotlin and notes from KotinConf</title>
      <description><![CDATA[<p>In this episode of Fragmented, Donn and I decompress. I had the pleasure of attending KotlinConf 2017 - Jetbrain’s very first conference dealing completely just on Kotlin. I have a quick chat after Day 1 with Donn, giving him the juicy updates.</p>
<p>We talk about how the conference was organized, some of the technical talks I attended (our thoughts on these…) and some of the folks I had the opportunity to meet.</p>
<p>Overall it was an amazing time at KotlinConf and if you want to vicariously enjoy it, listen on to the show.</p>
<h1>Show Notes</h1>
<h2>Pixel 2</h2>
<ul>
<li><a href="https://store.google.com/product/pixel_2">Google Store - Pixel 2</a></li>
<li><a href="https://dbrand.com/">dbrand skins</a></li>
<li><a href="https://twitter.com/mandybess/status/910556038461407232">Amanda's tweet on Samsung being annoying</a></li>
</ul>
<h2>KotlinConf</h2>
<ul>
<li><a href="https://www.kotlinconf.com">KotlinConf 2017 page</a></li>
<li><a href="http://www.westedgedesignfair.com/wp-content/uploads/2015/05/Pier-27.jpg">Pier 27 photo</a></li>
</ul>
<h2>Meeting folks</h2>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Erik_Meijer_(computer_scientist)">Erik Meijer</a></li>
<li><a href="http://talkingkotlin.com/">Talking Kotlin podcast</a> - <a href="https://twitter.com/hhariri">Hadi Harriri</a></li>
</ul>
<h2>Talks at KotlinConf</h2>
<ul>
<li><a href="https://speakerdeck.com/mandybess/kotlinconf-2017-view-state-machine-for-network-calls-on-android">Amanda Hill - View state machine for network calls on Android (slides)</a></li>
<li><a href="https://www.slideshare.net/elizarov/introduction-to-kotlin-coroutines">Roman Elizarov - Introduction to Coroutines (slides from another conference)</a></li>
<li><a href="https://speakerdeck.com/jorgecastilloprz/kotlinconf-architectures-using-functional-programming-concepts">Jorge Costillo: Architectures Using Functional Programming Concepts (slides)</a>
<ul>
<li><a href="https://medium.com/@JorgeCastilloPr">Jorge's medium blog</a></li>
</ul>
</li>
</ul>
<h2>Coroutine introduction</h2>
<ul>
<li><a href="https://android.jlelse.eu/a-first-walk-into-kotlin-coroutines-on-android-fe4a6e25f46a">Antonio Levia's post - A first walk into Kotlin coroutines on Android</a></li>
<li><a href="https://antonioleiva.com/kotlin-android-developers-book/">Book - Kotlin for Android developers</a></li>
</ul>
<h2>Other interesting stuff</h2>
<ul>
<li><a href="https://android.github.io/kotlin-guides/">Kotlin Style Guide</a> - courtesy Jake Wharton</li>
<li><a href="https://google.github.io/styleguide/javaguide.html">Google Java Style Guide</a></li>
<li><a href="https://github.com/google/google-java-format">google-java-format</a></li>
<li><a href="https://twitter.com/kaushikgopal/status/926200425002409984">now for google-kotlin-format</a></li>
<li><a href="https://github.com/android/kotlin-guides/issues/3">github isse (+1 this :D)</a></li>
<li><a href="https://kotlinlang.org/docs/reference/java-to-kotlin-interop.html#overloads-generation">@JvmOverloads overloads generation</a></li>
</ul>
<h1>Sponsors</h1>
<p>Thanks to <a href="https://www.buddybuild.com/?ref=fragmented">Buddybuild</a> for sponsoring this episode of Fragmented!  Ship apps faster with BuddyBuild 🚀 Give them a try for free at <a href="https://www.buddybuild.com/?ref=fragmented">fragmentedpodcast.com/buddybuild</a>.</p>
<h1>Contact</h1>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 6 Nov 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode of Fragmented, Donn and I decompress. I had the pleasure of attending KotlinConf 2017 - Jetbrain’s very first conference dealing completely just on Kotlin. I have a quick chat after Day 1 with Donn, giving him the juicy updates.</p>
<p>We talk about how the conference was organized, some of the technical talks I attended (our thoughts on these…) and some of the folks I had the opportunity to meet.</p>
<p>Overall it was an amazing time at KotlinConf and if you want to vicariously enjoy it, listen on to the show.</p>
<h1>Show Notes</h1>
<h2>Pixel 2</h2>
<ul>
<li><a href="https://store.google.com/product/pixel_2">Google Store - Pixel 2</a></li>
<li><a href="https://dbrand.com/">dbrand skins</a></li>
<li><a href="https://twitter.com/mandybess/status/910556038461407232">Amanda's tweet on Samsung being annoying</a></li>
</ul>
<h2>KotlinConf</h2>
<ul>
<li><a href="https://www.kotlinconf.com">KotlinConf 2017 page</a></li>
<li><a href="http://www.westedgedesignfair.com/wp-content/uploads/2015/05/Pier-27.jpg">Pier 27 photo</a></li>
</ul>
<h2>Meeting folks</h2>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Erik_Meijer_(computer_scientist)">Erik Meijer</a></li>
<li><a href="http://talkingkotlin.com/">Talking Kotlin podcast</a> - <a href="https://twitter.com/hhariri">Hadi Harriri</a></li>
</ul>
<h2>Talks at KotlinConf</h2>
<ul>
<li><a href="https://speakerdeck.com/mandybess/kotlinconf-2017-view-state-machine-for-network-calls-on-android">Amanda Hill - View state machine for network calls on Android (slides)</a></li>
<li><a href="https://www.slideshare.net/elizarov/introduction-to-kotlin-coroutines">Roman Elizarov - Introduction to Coroutines (slides from another conference)</a></li>
<li><a href="https://speakerdeck.com/jorgecastilloprz/kotlinconf-architectures-using-functional-programming-concepts">Jorge Costillo: Architectures Using Functional Programming Concepts (slides)</a>
<ul>
<li><a href="https://medium.com/@JorgeCastilloPr">Jorge's medium blog</a></li>
</ul>
</li>
</ul>
<h2>Coroutine introduction</h2>
<ul>
<li><a href="https://android.jlelse.eu/a-first-walk-into-kotlin-coroutines-on-android-fe4a6e25f46a">Antonio Levia's post - A first walk into Kotlin coroutines on Android</a></li>
<li><a href="https://antonioleiva.com/kotlin-android-developers-book/">Book - Kotlin for Android developers</a></li>
</ul>
<h2>Other interesting stuff</h2>
<ul>
<li><a href="https://android.github.io/kotlin-guides/">Kotlin Style Guide</a> - courtesy Jake Wharton</li>
<li><a href="https://google.github.io/styleguide/javaguide.html">Google Java Style Guide</a></li>
<li><a href="https://github.com/google/google-java-format">google-java-format</a></li>
<li><a href="https://twitter.com/kaushikgopal/status/926200425002409984">now for google-kotlin-format</a></li>
<li><a href="https://github.com/android/kotlin-guides/issues/3">github isse (+1 this :D)</a></li>
<li><a href="https://kotlinlang.org/docs/reference/java-to-kotlin-interop.html#overloads-generation">@JvmOverloads overloads generation</a></li>
</ul>
<h1>Sponsors</h1>
<p>Thanks to <a href="https://www.buddybuild.com/?ref=fragmented">Buddybuild</a> for sponsoring this episode of Fragmented!  Ship apps faster with BuddyBuild 🚀 Give them a try for free at <a href="https://www.buddybuild.com/?ref=fragmented">fragmentedpodcast.com/buddybuild</a>.</p>
<h1>Contact</h1>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="20302945" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/f6933423-4b6c-479e-a765-d26f89007c9e/102_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>102: All Things Kotlin and notes from KotinConf</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/f6933423-4b6c-479e-a765-d26f89007c9e/3000x3000/1509936829-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:41:45</itunes:duration>
      <itunes:summary>In this episode of Fragmented, Donn and I decompress. I had the pleasure of attending KotlinConf 2017 - Jetbrain’s very first conference dealing completely just on Kotlin. I have a quick chat after Day 1 with Donn, giving him the juicy updates.

We talk about how the conference was organized, some of the technical talks I attended (our thoughts on these…) and some of the folks I had the opportunity to meet.

Overall it was an amazing time at KotlinConf and if you want to vicariously enjoy it, listen on to the show.

Show notes: http://fragmentedpodcast.com/episodes/102/ ‎</itunes:summary>
      <itunes:subtitle>In this episode of Fragmented, Donn and I decompress. I had the pleasure of attending KotlinConf 2017 - Jetbrain’s very first conference dealing completely just on Kotlin. I have a quick chat after Day 1 with Donn, giving him the juicy updates.

We talk about how the conference was organized, some of the technical talks I attended (our thoughts on these…) and some of the folks I had the opportunity to meet.

Overall it was an amazing time at KotlinConf and if you want to vicariously enjoy it, listen on to the show.

Show notes: http://fragmentedpodcast.com/episodes/102/ ‎</itunes:subtitle>
      <itunes:keywords>kotlin, kotlinconf</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>102</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">cb9b546b-3957-4798-8a81-a475669b5bbb</guid>
      <title>101: Learning Kotlin - visibility modifiers, internal modifier, modules</title>
      <description><![CDATA[<p>Another day, another opportunity to learn more Kotlin. In this episode, Kaushik walks through the concept of visibility modifiers. How do the modifiers in Kotlin differ from the ones in Java? What is this new internal modifier? When should I use each of the operators?</p>
<p>Listen on to find out!</p>
<h1>Shownotes:</h1>
<ul>
<li><a href="https://kotlinlang.org/docs/reference/visibility-modifiers.html">Visibility modifiers</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/63/">Effective Java Item #13 - Ep 63</a></li>
<li><a href="https://discuss.kotlinlang.org/t/kotlins-default-visibility-should-be-internal/1400">discussion: Why the default should be internal</a></li>
<li><a href="https://phobos.ramapo.edu/%7Eamruth/grants/problets/courseware/scope/home.html">Scopes in programming language (white paper)</a></li>
<li><a href="https://en.wikipedia.org/wiki/Scope_(computer_science)">Scopes in programming language (wikipedia)</a></li>
<li><a href="http://fragmentedpodcast.com/wp-content/uploads/2017/10/Evernote-Snapshot-20171026-075041.png">Image visualizing differences between the protected modifier in Java and Kotli</a></li>
<li><a href="http://www.baeldung.com/kotlin-visibility-modifiers">Excellent resource explaining visibility modifiers in Kotlin</a></li>
</ul>
<p><a href="http://fragmentedpodcast.com/episodes/101/">Detailed shownotes at fragmentedpodcast.com</a></p>
<p>#Sponsors</p>
<p>Thanks to <a href="https://www.buddybuild.com/?ref=fragmented">Buddybuild</a> for sponsoring this episode of Fragmented!  Ship apps faster with BuddyBuild 🚀 Give them a try for free at <a href="https://www.buddybuild.com/?ref=fragmented"> fragmentedpodcast.com/buddybuild</a></p>
]]></description>
      <pubDate>Mon, 30 Oct 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Another day, another opportunity to learn more Kotlin. In this episode, Kaushik walks through the concept of visibility modifiers. How do the modifiers in Kotlin differ from the ones in Java? What is this new internal modifier? When should I use each of the operators?</p>
<p>Listen on to find out!</p>
<h1>Shownotes:</h1>
<ul>
<li><a href="https://kotlinlang.org/docs/reference/visibility-modifiers.html">Visibility modifiers</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/63/">Effective Java Item #13 - Ep 63</a></li>
<li><a href="https://discuss.kotlinlang.org/t/kotlins-default-visibility-should-be-internal/1400">discussion: Why the default should be internal</a></li>
<li><a href="https://phobos.ramapo.edu/%7Eamruth/grants/problets/courseware/scope/home.html">Scopes in programming language (white paper)</a></li>
<li><a href="https://en.wikipedia.org/wiki/Scope_(computer_science)">Scopes in programming language (wikipedia)</a></li>
<li><a href="http://fragmentedpodcast.com/wp-content/uploads/2017/10/Evernote-Snapshot-20171026-075041.png">Image visualizing differences between the protected modifier in Java and Kotli</a></li>
<li><a href="http://www.baeldung.com/kotlin-visibility-modifiers">Excellent resource explaining visibility modifiers in Kotlin</a></li>
</ul>
<p><a href="http://fragmentedpodcast.com/episodes/101/">Detailed shownotes at fragmentedpodcast.com</a></p>
<p>#Sponsors</p>
<p>Thanks to <a href="https://www.buddybuild.com/?ref=fragmented">Buddybuild</a> for sponsoring this episode of Fragmented!  Ship apps faster with BuddyBuild 🚀 Give them a try for free at <a href="https://www.buddybuild.com/?ref=fragmented"> fragmentedpodcast.com/buddybuild</a></p>
]]></content:encoded>
      <enclosure length="22382318" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/c8124dde-820a-4966-af33-836aab8d3361/101-minifragment-kotlinw-kaush_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>101: Learning Kotlin - visibility modifiers, internal modifier, modules</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/c8124dde-820a-4966-af33-836aab8d3361/3000x3000/1509178874-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:23:16</itunes:duration>
      <itunes:summary>Another day, another opportunity to learn more Kotlin. In this episode, Kaushik walks through the concept of visibility modifiers. How do the modifiers in Kotlin differ from the ones in Java? What is this new internal modifier? When should I use each of the operators?

Listen on to find out!

Shownotes: http://fragmentedpodcast.com/episodes/101/</itunes:summary>
      <itunes:subtitle>Another day, another opportunity to learn more Kotlin. In this episode, Kaushik walks through the concept of visibility modifiers. How do the modifiers in Kotlin differ from the ones in Java? What is this new internal modifier? When should I use each of the operators?

Listen on to find out!

Shownotes: http://fragmentedpodcast.com/episodes/101/</itunes:subtitle>
      <itunes:keywords>kotlin, private, visibility modifier, internal, module, protected, public</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>101</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">9dfc988b-ffd1-41b5-8c67-e63142a01473</guid>
      <title>100: Episode 100 - Listener questions</title>
      <description><![CDATA[<p>This is the 100th episode of Fragmented. We do things a little differently for our 100th episode and field a bunch of listener questions that came in. We're going a little meta and talking about our experience starting Fragmented, our process, how we pick guests and topics, our setups, our favorite Android libraries and classes (?!).</p>
<p>Thank you so much for being a listener. We cannot express how grateful we are to have you.</p>
<h1>Shownotes</h1>
<ul>
<li><a href="http://www.donnfelker.com/android-from-the-trenches/">Android from the trenches (first talk KG saw of Donn's)</a></li>
<li><a href="https://sivers.org/hellyeah">No “yes.” Either “HELL YEAH!” or “no.”</a></li>
<li><a href="https://store.google.com/gb/product/pixel_2">Google Pixel 2 store</a></li>
</ul>
<h2>Setup</h2>
<h3>KG</h3>
<ul>
<li><a href="https://www.amazon.com/dp/B0002BACBO/ref=wl_it_dp_o_pC_nS_ttl">Shure Beta 87A</a></li>
<li><a href="https://www.bhphotovideo.com/c/product/734341-REG/Sound_Devices_USBPRE_2_USBPre_2_Microphone.html">USB Pre 2</a></li>
<li><a href="https://www.amazon.com/dp/B00Y09G6JG/ref=wl_it_dp_o_pC_nS_ttl">LG 34UC87C 34 ultra wide display</a></li>
<li>Headphones (KG has too many - ping em if you're curious)</li>
</ul>
<h3>Donn</h3>
<ul>
<li><a href="https://www.amazon.com/dp/B0002BACBO/ref=wl_it_dp_o_pC_nS_ttl">Shure Beta 87A</a></li>
<li><a href="https://www.amazon.com/PR-40-Dynamic-Studio-Recording-Microphone/dp/B000SOYOTQ/ref=sr_1_2">Heil PR 40</a></li>
<li><a href="https://www.amazon.com/Focusrite-Scarlett-Audio-Interface-Tools/dp/B01E6T56EA/ref=dp_ob_title_ce">Focusrite Scarlett 2i2</a></li>
<li><a href="https://www.amazon.com/Mackie-Onyx-Blackjack-Recording-Interface/dp/B06X9TNYVN/ref=sr_1_1?s=musical-instruments&amp;ie=UTF8&amp;qid=1508722021&amp;sr=1-1&amp;keywords=Black+Jack+Onyx">Mackie Onyx Blackjack</a></li>
<li><a href="https://www.amazon.com/Dell-E2715H-27-Inch-LED-Lit-Monitor/dp/B00M9B3XN4">Dell E2715H monitor</a></li>
</ul>
<h2>Android Resources</h2>
<ul>
<li><a href="http://androidweekly.net/">Android Weekly</a></li>
<li><a href="https://www.androiddevdigest.com/">Android dev digest</a></li>
<li><a href="https://android.jlelse.eu/a-tool-to-help-keeping-up-with-android-development-61a3112850c7">Android resources (curated) one where we point people to</a></li>
<li><a href="https://github.com/JStumpp/awesome-android">Awesome android github</a></li>
</ul>
<p>.. and many many more</p>
<ul>
<li><a href="https://developer.android.com/reference/android/view/View.html">Android View class</a></li>
<li><a href="https://developer.android.com/reference/android/graphics/Canvas.html">Android Canvas class</a></li>
<li><a href="https://github.com/ReactiveX/RxJava">RxJava</a></li>
<li><a href="https://github.com/google/dagger">Dagger</a></li>
<li><a href="https://github.com/roboguice/roboguice">Roboguice</a></li>
<li><a href="http://www.donnfelker.com/make-the-most-of-your-time/">Donn Felker - make the most of your time</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.robinhood.android&amp;hl=en">Robinhood</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.squareup.cash">Square Cash app</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.google.android.music&amp;hl=en">Google Play music app</a></li>
<li><a href="http://androidniceties.tumblr.com/">Android niceties</a></li>
<li><a href="https://caster.io/courses/mvp/">Caster io - MVP series</a></li>
<li><a href="https://github.com/kaushikgopal/RxJava-Android-Samples">RxJava Android samples</a></li>
<li><a href="https://github.com/instacart/truetime-android">TrueTime Android</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
<li><a href="https://github.com/rollbar/rollbar-java/blob/v1.0.0-alpha-1/README.md">Rollbar open source library (alpha)</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 23 Oct 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>This is the 100th episode of Fragmented. We do things a little differently for our 100th episode and field a bunch of listener questions that came in. We're going a little meta and talking about our experience starting Fragmented, our process, how we pick guests and topics, our setups, our favorite Android libraries and classes (?!).</p>
<p>Thank you so much for being a listener. We cannot express how grateful we are to have you.</p>
<h1>Shownotes</h1>
<ul>
<li><a href="http://www.donnfelker.com/android-from-the-trenches/">Android from the trenches (first talk KG saw of Donn's)</a></li>
<li><a href="https://sivers.org/hellyeah">No “yes.” Either “HELL YEAH!” or “no.”</a></li>
<li><a href="https://store.google.com/gb/product/pixel_2">Google Pixel 2 store</a></li>
</ul>
<h2>Setup</h2>
<h3>KG</h3>
<ul>
<li><a href="https://www.amazon.com/dp/B0002BACBO/ref=wl_it_dp_o_pC_nS_ttl">Shure Beta 87A</a></li>
<li><a href="https://www.bhphotovideo.com/c/product/734341-REG/Sound_Devices_USBPRE_2_USBPre_2_Microphone.html">USB Pre 2</a></li>
<li><a href="https://www.amazon.com/dp/B00Y09G6JG/ref=wl_it_dp_o_pC_nS_ttl">LG 34UC87C 34 ultra wide display</a></li>
<li>Headphones (KG has too many - ping em if you're curious)</li>
</ul>
<h3>Donn</h3>
<ul>
<li><a href="https://www.amazon.com/dp/B0002BACBO/ref=wl_it_dp_o_pC_nS_ttl">Shure Beta 87A</a></li>
<li><a href="https://www.amazon.com/PR-40-Dynamic-Studio-Recording-Microphone/dp/B000SOYOTQ/ref=sr_1_2">Heil PR 40</a></li>
<li><a href="https://www.amazon.com/Focusrite-Scarlett-Audio-Interface-Tools/dp/B01E6T56EA/ref=dp_ob_title_ce">Focusrite Scarlett 2i2</a></li>
<li><a href="https://www.amazon.com/Mackie-Onyx-Blackjack-Recording-Interface/dp/B06X9TNYVN/ref=sr_1_1?s=musical-instruments&amp;ie=UTF8&amp;qid=1508722021&amp;sr=1-1&amp;keywords=Black+Jack+Onyx">Mackie Onyx Blackjack</a></li>
<li><a href="https://www.amazon.com/Dell-E2715H-27-Inch-LED-Lit-Monitor/dp/B00M9B3XN4">Dell E2715H monitor</a></li>
</ul>
<h2>Android Resources</h2>
<ul>
<li><a href="http://androidweekly.net/">Android Weekly</a></li>
<li><a href="https://www.androiddevdigest.com/">Android dev digest</a></li>
<li><a href="https://android.jlelse.eu/a-tool-to-help-keeping-up-with-android-development-61a3112850c7">Android resources (curated) one where we point people to</a></li>
<li><a href="https://github.com/JStumpp/awesome-android">Awesome android github</a></li>
</ul>
<p>.. and many many more</p>
<ul>
<li><a href="https://developer.android.com/reference/android/view/View.html">Android View class</a></li>
<li><a href="https://developer.android.com/reference/android/graphics/Canvas.html">Android Canvas class</a></li>
<li><a href="https://github.com/ReactiveX/RxJava">RxJava</a></li>
<li><a href="https://github.com/google/dagger">Dagger</a></li>
<li><a href="https://github.com/roboguice/roboguice">Roboguice</a></li>
<li><a href="http://www.donnfelker.com/make-the-most-of-your-time/">Donn Felker - make the most of your time</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.robinhood.android&amp;hl=en">Robinhood</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.squareup.cash">Square Cash app</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.google.android.music&amp;hl=en">Google Play music app</a></li>
<li><a href="http://androidniceties.tumblr.com/">Android niceties</a></li>
<li><a href="https://caster.io/courses/mvp/">Caster io - MVP series</a></li>
<li><a href="https://github.com/kaushikgopal/RxJava-Android-Samples">RxJava Android samples</a></li>
<li><a href="https://github.com/instacart/truetime-android">TrueTime Android</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
<li><a href="https://github.com/rollbar/rollbar-java/blob/v1.0.0-alpha-1/README.md">Rollbar open source library (alpha)</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="38144521" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/a5910acf-cb62-4e4a-a037-5b060b098c6e/ep-100_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>100: Episode 100 - Listener questions</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/a5910acf-cb62-4e4a-a037-5b060b098c6e/3000x3000/1508723608-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:18:56</itunes:duration>
      <itunes:summary>This is the 100th episode of Fragmented. We do things a little differently for our 100th episode and field a bunch of listener questions that came in. We&apos;re going a little meta and talking about our experience starting Fragmented, our process, how we pick guests and topics, our setups, our favorite Android libraries and classes (?!).

Thank you so much for being a listener. We cannot express how grateful we are to have you.

Shownotes:  http://fragmentedpodcast.com/episodes/100/</itunes:summary>
      <itunes:subtitle>This is the 100th episode of Fragmented. We do things a little differently for our 100th episode and field a bunch of listener questions that came in. We&apos;re going a little meta and talking about our experience starting Fragmented, our process, how we pick guests and topics, our setups, our favorite Android libraries and classes (?!).

Thank you so much for being a listener. We cannot express how grateful we are to have you.

Shownotes:  http://fragmentedpodcast.com/episodes/100/</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>100</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">565fc94b-36b9-4b54-affa-e8f532291e81</guid>
      <title>099: Effective Java - Item #17: Design and Document for Inheritance or Else Prohibit It</title>
      <description><![CDATA[<p>In this episode, Donn talks about Item #17 from the Effective Java book: Design and Document for inheritance or else prohibit it. Learn how you should be documenting your code that is built for inheritance when you should not call overridable methods and much more.</p>
<h2>Show Links</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/effective-java/">Fragmented - Effective Java Fragments</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 9 Oct 2017 05:09:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn talks about Item #17 from the Effective Java book: Design and Document for inheritance or else prohibit it. Learn how you should be documenting your code that is built for inheritance when you should not call overridable methods and much more.</p>
<h2>Show Links</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/effective-java/">Fragmented - Effective Java Fragments</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="9240998" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/7c8eff05-cd51-467d-ac4e-8ff895b01468/fragmented-ef-java-17_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>099: Effective Java - Item #17: Design and Document for Inheritance or Else Prohibit It</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/7c8eff05-cd51-467d-ac4e-8ff895b01468/3000x3000/1507493563-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:10:58</itunes:duration>
      <itunes:summary>In this episode, Donn talks about Item #17 from the Effective Java book: Design and Document for inheritance or else prohibit it. Learn how you should be documenting your code that is built for inheritance when you should not call overridable methods and much more.</itunes:summary>
      <itunes:subtitle>In this episode, Donn talks about Item #17 from the Effective Java book: Design and Document for inheritance or else prohibit it. Learn how you should be documenting your code that is built for inheritance when you should not call overridable methods and much more.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>99</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">33879a06-ddff-4648-8f16-339988c85f95</guid>
      <title>098: Droidcon NYC - Kotlin, React Native, Android Security, Design Patterns and Doppl</title>
      <description><![CDATA[<p>In this episode, Donn is at Droidcon NYC 2017.  He sits down to chat with Dan Kim about Kotlin, Gabriel Peal about React Native, Scott Alexander-Bown about Android Security, Jose Alcérreca about the Android Architecture Blueprints and Kevin Galligan about the history of Droidcon NYC and his new library - Doppl.</p>
<ul>
<li>2:07 - Dan Kim (Kotlin)</li>
<li>10:07 - Gabriel Peal (React Native)</li>
<li>23:43 - Scott Alexander-Bown (Android Security)</li>
<li>33:32 - Jose  Alcérreca (Android Architecture Blueprints)</li>
<li>43:09 - Kevin Galligan (Droidcon &amp; Doppl)</li>
</ul>
<h2>Show Links</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/82/">082: Airbnb’s Gabriel tells us how to animate with Lottie – Fragmented</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/85/">085: Casual Kotlin conversation with Dan Kim – Fragmented</a></li>
<li><a href="https://github.com/googlesamples/android-architecture">GitHub - googlesamples/android-architecture: A collection of samples to discuss and showcase different architectural tools and patterns for Android apps.</a></li>
<li><a href="https://www.touchlab.co/doppl/">doppl by touchlab —  touchlab</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li>BuddyBuild - fragmentedpodcast.com/buddybuild</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/dankim">Dan Kim (@dankim) | Twitter</a></li>
<li><a href="https://twitter.com/gpeal8">Gabriel Peal (@gpeal8) | Twitter</a></li>
<li><a href="https://twitter.com/scottyab">Scott Alexander-Bown (@scottyab) | Twitter</a></li>
<li><a href="https://twitter.com/ppvi">Jose Alcérreca (@ppvi) | Twitter</a></li>
<li><a href="https://twitter.com/kpgalligan">Kevin Galligan (@kpgalligan) | Twitter</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 2 Oct 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn is at Droidcon NYC 2017.  He sits down to chat with Dan Kim about Kotlin, Gabriel Peal about React Native, Scott Alexander-Bown about Android Security, Jose Alcérreca about the Android Architecture Blueprints and Kevin Galligan about the history of Droidcon NYC and his new library - Doppl.</p>
<ul>
<li>2:07 - Dan Kim (Kotlin)</li>
<li>10:07 - Gabriel Peal (React Native)</li>
<li>23:43 - Scott Alexander-Bown (Android Security)</li>
<li>33:32 - Jose  Alcérreca (Android Architecture Blueprints)</li>
<li>43:09 - Kevin Galligan (Droidcon &amp; Doppl)</li>
</ul>
<h2>Show Links</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/82/">082: Airbnb’s Gabriel tells us how to animate with Lottie – Fragmented</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/85/">085: Casual Kotlin conversation with Dan Kim – Fragmented</a></li>
<li><a href="https://github.com/googlesamples/android-architecture">GitHub - googlesamples/android-architecture: A collection of samples to discuss and showcase different architectural tools and patterns for Android apps.</a></li>
<li><a href="https://www.touchlab.co/doppl/">doppl by touchlab —  touchlab</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li>BuddyBuild - fragmentedpodcast.com/buddybuild</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/dankim">Dan Kim (@dankim) | Twitter</a></li>
<li><a href="https://twitter.com/gpeal8">Gabriel Peal (@gpeal8) | Twitter</a></li>
<li><a href="https://twitter.com/scottyab">Scott Alexander-Bown (@scottyab) | Twitter</a></li>
<li><a href="https://twitter.com/ppvi">Jose Alcérreca (@ppvi) | Twitter</a></li>
<li><a href="https://twitter.com/kpgalligan">Kevin Galligan (@kpgalligan) | Twitter</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="47806313" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/d1048610-a5bc-4eb6-8687-21d66ae1170a/fragmented-droidconnyc-2017_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>098: Droidcon NYC - Kotlin, React Native, Android Security, Design Patterns and Doppl</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/d1048610-a5bc-4eb6-8687-21d66ae1170a/3000x3000/1506635789-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:56:53</itunes:duration>
      <itunes:summary>In this episode, Donn is at Droidcon NYC 2017.  He sits down to chat with Dan Kim about Kotlin, Gabriel Peal about React Native, Scott Alexander-Bown about Android Security, Jose Alcérreca about the Android Architecture Blueprints and Kevin Galligan about the history of Droidcon NYC and his new library - Doppl.  
</itunes:summary>
      <itunes:subtitle>In this episode, Donn is at Droidcon NYC 2017.  He sits down to chat with Dan Kim about Kotlin, Gabriel Peal about React Native, Scott Alexander-Bown about Android Security, Jose Alcérreca about the Android Architecture Blueprints and Kevin Galligan about the history of Droidcon NYC and his new library - Doppl.  
</itunes:subtitle>
      <itunes:keywords>react native, android development, mobile, react, android, kotlin</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>98</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">c0183d39-b752-457d-8c43-9cace062599e</guid>
      <title>097 : Android Architecture Paging Library with Florina Muntenescu</title>
      <description><![CDATA[<p>In this episode Florina returns to talk to us about Google's recently announced paging library!</p>
<p>The paging library is a powerful take on implementing paging functionality in general, not necessarily linked to a paritcular technology or library. Florina breaks down the different components and explains what specific function each of them play.</p>
<p>We start off with DataSources, talk about when one would want to use &quot;Tiled&quot; or &quot;Keyed&quot; data sources, and then talk about making them work with RecyclerViews (which is really what 99% of us eventually want). Florina also explains the role of PagedLists, PagedListAdapters and so much more.</p>
<p>If you ever wanted to get an overarching veiw of Google's first take on implementing the paging library, this is a great starting point. Listen on so you can understand, try it out and then give feedback to Google, to participate in the making of this new library.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=Ts-uxYiBEQ8&amp;feature=youtu.be&amp;t=856">Google Developer Days - Florina's segment on paging</a></li>
<li><a href="https://developer.android.com/topic/libraries/architecture/paging.html">Paging library - developer docs</a>
<ul>
<li><a href="https://developer.android.com/reference/android/arch/paging/DataSource.html">DataSources</a></li>
<li><a href="https://developer.android.com/reference/android/arch/paging/PagedList.html">PagedList</a></li>
<li><a href="https://developer.android.com/reference/android/arch/paging/PagedListAdapter.html">PagedListAdapter</a></li>
<li><a href="https://developer.android.com/reference/android/arch/paging/LivePagedListProvider.html">LivePagedListProvider</a></li>
</ul>
</li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://kobiton.com/fragmented">Kobiton - 15-day Free trial with no credit card required 🙌</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fmuntenescu">@fmuntenescu</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 18 Sep 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode Florina returns to talk to us about Google's recently announced paging library!</p>
<p>The paging library is a powerful take on implementing paging functionality in general, not necessarily linked to a paritcular technology or library. Florina breaks down the different components and explains what specific function each of them play.</p>
<p>We start off with DataSources, talk about when one would want to use &quot;Tiled&quot; or &quot;Keyed&quot; data sources, and then talk about making them work with RecyclerViews (which is really what 99% of us eventually want). Florina also explains the role of PagedLists, PagedListAdapters and so much more.</p>
<p>If you ever wanted to get an overarching veiw of Google's first take on implementing the paging library, this is a great starting point. Listen on so you can understand, try it out and then give feedback to Google, to participate in the making of this new library.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=Ts-uxYiBEQ8&amp;feature=youtu.be&amp;t=856">Google Developer Days - Florina's segment on paging</a></li>
<li><a href="https://developer.android.com/topic/libraries/architecture/paging.html">Paging library - developer docs</a>
<ul>
<li><a href="https://developer.android.com/reference/android/arch/paging/DataSource.html">DataSources</a></li>
<li><a href="https://developer.android.com/reference/android/arch/paging/PagedList.html">PagedList</a></li>
<li><a href="https://developer.android.com/reference/android/arch/paging/PagedListAdapter.html">PagedListAdapter</a></li>
<li><a href="https://developer.android.com/reference/android/arch/paging/LivePagedListProvider.html">LivePagedListProvider</a></li>
</ul>
</li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://kobiton.com/fragmented">Kobiton - 15-day Free trial with no credit card required 🙌</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fmuntenescu">@fmuntenescu</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="34229010" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/69792bd3-9f0a-4b8e-a99c-55ad97c37fb3/096-florina-paging_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>097 : Android Architecture Paging Library with Florina Muntenescu</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/69792bd3-9f0a-4b8e-a99c-55ad97c37fb3/3000x3000/1505702097-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:35:36</itunes:duration>
      <itunes:summary>In this episode Florina returns to talk to us about Google&apos;s recently announced paging library! 

The paging library is a powerful take on implementing paging functionality in general, not necessarily linked to a paritcular technology or library. Florina breaks down the different components and explains what specific function each of them play.

We start off with DataSources, talk about when one would want to use &quot;Tiled&quot; or &quot;Keyed&quot; data sources, and then talk about making them work with RecyclerViews (which is really what 99% of us eventually want). Florina also explains the role of PagedLists, PagedListAdapters and so much more.

If you ever wanted to get an overarching veiw of Google&apos;s first take on implementing the paging library, this is a great starting point. Listen on so you can understand, try it out and then give feedback to Google, to participate in the making of this new library.

Shownotes:  http://fragmentedpodcast.com/episodes/97/</itunes:summary>
      <itunes:subtitle>In this episode Florina returns to talk to us about Google&apos;s recently announced paging library! 

The paging library is a powerful take on implementing paging functionality in general, not necessarily linked to a paritcular technology or library. Florina breaks down the different components and explains what specific function each of them play.

We start off with DataSources, talk about when one would want to use &quot;Tiled&quot; or &quot;Keyed&quot; data sources, and then talk about making them work with RecyclerViews (which is really what 99% of us eventually want). Florina also explains the role of PagedLists, PagedListAdapters and so much more.

If you ever wanted to get an overarching veiw of Google&apos;s first take on implementing the paging library, this is a great starting point. Listen on so you can understand, try it out and then give feedback to Google, to participate in the making of this new library.

Shownotes:  http://fragmentedpodcast.com/episodes/97/</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>97</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">538347d9-4d61-49d2-84a8-b6f4bbf972fc</guid>
      <title>096 : Romain Guy on Displays, CPU&apos;s, GPU&apos;s and Color</title>
      <description><![CDATA[<p>In this episode, Romain Guy from Google gives us the lowdown on a bunch of Hardware related stuff.</p>
<p>He starts off by explaining how the refresh rates on screens matter, what it would mean to have something like a 120Hz display for Android screens, how things like V-Sync and double buffering work, using different screen technologies, how much work is done by the CPU and GPU and so much more.</p>
<p>This was one of those episodes where we tried so hard to hold back for fear of recording for another 2 more hours. Romain is clearly one of the most knowledgable and interesting engineers to talk to today in the hardware land of Android. What a blast!</p>
<h2>Show Notes</h2>
<h3>Photography</h3>
<ul>
<li><a href="https://www.instagram.com/romainguy/">Romain on Instagram</a></li>
<li><a href="https://www.flickr.com/photos/romainguy/">Romain on Flicker</a></li>
<li><a href="https://us.leica-camera.com/Photography/Leica-M/Leica-M10">Leica M10</a></li>
<li><a href="https://www.usa.canon.com/internet/portal/us/home/products/details/cameras/dslr/eos-5ds-r">Canon EOS 5DS R</a></li>
</ul>
<h3>Screens, refreshing/rednering Color</h3>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/91/">Fragmented 91 - Reddit AMA</a></li>
<li><a href="https://www.reddit.com/r/androiddev/comments/6nuq0a/were_on_the_engineering_team_for_android_o_ask_us/dkfwnmw/">Romain on Reddit being spoiled by 120Hz</a></li>
<li><a href="https://www.pcworld.com/article/229024/computers/geek101-vsync.html">What is V-Sync</a> (pcworld.com) and <a href="https://en.wikipedia.org/wiki/Screen_tearing">Screen tearing</a> (Wikipedia)</li>
<li><a href="https://en.wikipedia.org/wiki/Three-two_pull_down">Three-two pull down technique (filmaking)</a> (wikipedia)</li>
<li><a href="https://www.quora.com/What-is-the-difference-between-OLED-and-AMOLED-What-are-its-advantages">OLED vs AMOLED</a> (quora.com)</li>
<li><a href="http://www.trustedreviews.com/opinion/oled-vs-led-lcd-2924602">OLED vs LCD</a> (quora.com)</li>
<li><a href="https://www.youtube.com/watch?v=r8NeG0wmFXM">Romain Guy's 2017 IO Talk on Colors fundamentals</a> YOU OWE IT TO YOURSELF TO WATCH THIS!!</li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://kobiton.com/fragmented">Kobiton - 15-day Free trial with no credit card required 🙌</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/romainguy">@romainguy</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 11 Sep 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Romain Guy from Google gives us the lowdown on a bunch of Hardware related stuff.</p>
<p>He starts off by explaining how the refresh rates on screens matter, what it would mean to have something like a 120Hz display for Android screens, how things like V-Sync and double buffering work, using different screen technologies, how much work is done by the CPU and GPU and so much more.</p>
<p>This was one of those episodes where we tried so hard to hold back for fear of recording for another 2 more hours. Romain is clearly one of the most knowledgable and interesting engineers to talk to today in the hardware land of Android. What a blast!</p>
<h2>Show Notes</h2>
<h3>Photography</h3>
<ul>
<li><a href="https://www.instagram.com/romainguy/">Romain on Instagram</a></li>
<li><a href="https://www.flickr.com/photos/romainguy/">Romain on Flicker</a></li>
<li><a href="https://us.leica-camera.com/Photography/Leica-M/Leica-M10">Leica M10</a></li>
<li><a href="https://www.usa.canon.com/internet/portal/us/home/products/details/cameras/dslr/eos-5ds-r">Canon EOS 5DS R</a></li>
</ul>
<h3>Screens, refreshing/rednering Color</h3>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/91/">Fragmented 91 - Reddit AMA</a></li>
<li><a href="https://www.reddit.com/r/androiddev/comments/6nuq0a/were_on_the_engineering_team_for_android_o_ask_us/dkfwnmw/">Romain on Reddit being spoiled by 120Hz</a></li>
<li><a href="https://www.pcworld.com/article/229024/computers/geek101-vsync.html">What is V-Sync</a> (pcworld.com) and <a href="https://en.wikipedia.org/wiki/Screen_tearing">Screen tearing</a> (Wikipedia)</li>
<li><a href="https://en.wikipedia.org/wiki/Three-two_pull_down">Three-two pull down technique (filmaking)</a> (wikipedia)</li>
<li><a href="https://www.quora.com/What-is-the-difference-between-OLED-and-AMOLED-What-are-its-advantages">OLED vs AMOLED</a> (quora.com)</li>
<li><a href="http://www.trustedreviews.com/opinion/oled-vs-led-lcd-2924602">OLED vs LCD</a> (quora.com)</li>
<li><a href="https://www.youtube.com/watch?v=r8NeG0wmFXM">Romain Guy's 2017 IO Talk on Colors fundamentals</a> YOU OWE IT TO YOURSELF TO WATCH THIS!!</li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://kobiton.com/fragmented">Kobiton - 15-day Free trial with no credit card required 🙌</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/romainguy">@romainguy</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="54859393" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/6de6828c-69b2-48fa-b902-5c5eb1ae5048/096-romainguy_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>096 : Romain Guy on Displays, CPU&apos;s, GPU&apos;s and Color</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/6de6828c-69b2-48fa-b902-5c5eb1ae5048/3000x3000/1505078890-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:57:05</itunes:duration>
      <itunes:summary>In this episode, Romain Guy from Google gives us the lowdown on a bunch of Hardware related stuff.

He starts off by explaining how the refresh rates on screens matter, what it would mean to have something like a 120Hz display for Android screens, how things like V-Sync and double buffering work, using different screen technologies, how much work is done by the CPU and GPU and so much more.

This was one of those episodes where we tried so hard to hold back for fear of recording for another 2 more hours. Romain is clearly one of the most knowledgable and interesting engineers to talk to today in the hardware land of Android. What a blast!

Shownotes: http://fragmentedpodcast.com/episodes/96/ </itunes:summary>
      <itunes:subtitle>In this episode, Romain Guy from Google gives us the lowdown on a bunch of Hardware related stuff.

He starts off by explaining how the refresh rates on screens matter, what it would mean to have something like a 120Hz display for Android screens, how things like V-Sync and double buffering work, using different screen technologies, how much work is done by the CPU and GPU and so much more.

This was one of those episodes where we tried so hard to hold back for fear of recording for another 2 more hours. Romain is clearly one of the most knowledgable and interesting engineers to talk to today in the hardware land of Android. What a blast!

Shownotes: http://fragmentedpodcast.com/episodes/96/ </itunes:subtitle>
      <itunes:keywords>hardware, gpu, 120hz, oled, amoled, cpu, screen, google, romain guy</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>96</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">86cd273e-b5b1-4cc2-98ac-23b1986739fb</guid>
      <title>095 : Room Databases with Florina Muntenescu</title>
      <description><![CDATA[<p>In this episode, we talk to Florina from Google about the recently released Database library Room. Room was introduced as part of the Android Architecture components and has been picking up a lot of steam in the community.</p>
<p>Room focuses on being a beautiful api layer to Sqlite. Florina explains to us how we can use Room to create a database, creating entities and how them map to tables, using DAOs to access data and even observe them</p>
<p>Listen on for the details!</p>
<h2>Show Notes</h2>
<h3>Official docs</h3>
<ul>
<li><a href="https://d.android.com/arch">Android Architecture Components</a></li>
<li><a href="https://developer.android.com/topic/libraries/architecture/room.html#db-migration-testing">Room migration docs</a></li>
<li><a href="https://developer.android.com/reference/android/arch/persistence/room/RoomDatabase.html#runInTransaction">runInTransaction api (which Florina recommended if you're executing more than one SQL statement and don't want multiple event fired)</a></li>
<li><a href="https://github.com/googlesamples/android-architecture-components">Google Samples - Android Architecutre Components</a></li>
</ul>
<h3>Florina's posts</h3>
<ul>
<li><a href="https://medium.com/@florina.muntenescu">Florina's Medium blog posts</a>
<ul>
<li><a href="https://medium.com/google-developers/room-rxjava-acb0cd4f3757">Room &amp; RxJava</a></li>
<li><a href="https://medium.com/google-developers/7-steps-to-room-27a5fe5f99b2">7 steps to Room</a></li>
<li><a href="https://medium.com/google-developers/understanding-migrations-with-room-f01e04b07929">Understanding migrations with Room</a></li>
<li><a href="https://medium.com/google-developers/testing-room-migrations-be93cdb0d975">Testing Room migrations</a></li>
</ul>
</li>
</ul>
<h3>360|AnDev talks</h3>
<ul>
<li><a href="https://academy.realm.io/posts/360-andev-2017-yigit-boyar-android-architecture-components/">Room - Behind the scenes (Yigit Boyar)</a></li>
<li><a href="https://academy.realm.io/posts/360-andev-2017-florina-muntenescu-data-persistence-android-room/">Data Persistence in Android: Room for Improvement</a></li>
</ul>
<h3>Micellaneous questions about Room (that we chopped off for lack of time)</h3>
<h4>Q: Does Room use reflection?</h4>
<p>A: There's only 1 reflection call (at the time of finding the database implementation, when you call Room.builder). Most of the other stuff is generated code (with compile time verification!).</p>
<h4>Q: Does Room provide compile-time SQL checks</h4>
<p>A: Yes, Room was designed to provide compile-time checks.</p>
<h4>Q: Does Room handle SQL injection attacks (security)</h4>
<p>Yes ... for all practical purposes. <a href="https://medium.com/@appmattus/android-security-sql-injection-with-the-room-persistence-library-69f4e286960f">See this post for times when it doesn't</a>.</p>
<h4>Q: Do we have tools to access the sqlite database file directly?</h4>
<p>Nope, at the moment, adb is your friend. Use that to download the file manually from your device.</p>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fmuntenescu">@fmuntenescu</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Tue, 5 Sep 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, we talk to Florina from Google about the recently released Database library Room. Room was introduced as part of the Android Architecture components and has been picking up a lot of steam in the community.</p>
<p>Room focuses on being a beautiful api layer to Sqlite. Florina explains to us how we can use Room to create a database, creating entities and how them map to tables, using DAOs to access data and even observe them</p>
<p>Listen on for the details!</p>
<h2>Show Notes</h2>
<h3>Official docs</h3>
<ul>
<li><a href="https://d.android.com/arch">Android Architecture Components</a></li>
<li><a href="https://developer.android.com/topic/libraries/architecture/room.html#db-migration-testing">Room migration docs</a></li>
<li><a href="https://developer.android.com/reference/android/arch/persistence/room/RoomDatabase.html#runInTransaction">runInTransaction api (which Florina recommended if you're executing more than one SQL statement and don't want multiple event fired)</a></li>
<li><a href="https://github.com/googlesamples/android-architecture-components">Google Samples - Android Architecutre Components</a></li>
</ul>
<h3>Florina's posts</h3>
<ul>
<li><a href="https://medium.com/@florina.muntenescu">Florina's Medium blog posts</a>
<ul>
<li><a href="https://medium.com/google-developers/room-rxjava-acb0cd4f3757">Room &amp; RxJava</a></li>
<li><a href="https://medium.com/google-developers/7-steps-to-room-27a5fe5f99b2">7 steps to Room</a></li>
<li><a href="https://medium.com/google-developers/understanding-migrations-with-room-f01e04b07929">Understanding migrations with Room</a></li>
<li><a href="https://medium.com/google-developers/testing-room-migrations-be93cdb0d975">Testing Room migrations</a></li>
</ul>
</li>
</ul>
<h3>360|AnDev talks</h3>
<ul>
<li><a href="https://academy.realm.io/posts/360-andev-2017-yigit-boyar-android-architecture-components/">Room - Behind the scenes (Yigit Boyar)</a></li>
<li><a href="https://academy.realm.io/posts/360-andev-2017-florina-muntenescu-data-persistence-android-room/">Data Persistence in Android: Room for Improvement</a></li>
</ul>
<h3>Micellaneous questions about Room (that we chopped off for lack of time)</h3>
<h4>Q: Does Room use reflection?</h4>
<p>A: There's only 1 reflection call (at the time of finding the database implementation, when you call Room.builder). Most of the other stuff is generated code (with compile time verification!).</p>
<h4>Q: Does Room provide compile-time SQL checks</h4>
<p>A: Yes, Room was designed to provide compile-time checks.</p>
<h4>Q: Does Room handle SQL injection attacks (security)</h4>
<p>Yes ... for all practical purposes. <a href="https://medium.com/@appmattus/android-security-sql-injection-with-the-room-persistence-library-69f4e286960f">See this post for times when it doesn't</a>.</p>
<h4>Q: Do we have tools to access the sqlite database file directly?</h4>
<p>Nope, at the moment, adb is your friend. Use that to download the file manually from your device.</p>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fmuntenescu">@fmuntenescu</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="53864271" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/dccb53c5-98cd-4bd3-ab17-63841e7eff9d/095-florina-muntenescu_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>095 : Room Databases with Florina Muntenescu</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/dccb53c5-98cd-4bd3-ab17-63841e7eff9d/3000x3000/1504479874-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:56:03</itunes:duration>
      <itunes:summary>In this episode, we talk to Florina from Google about the recently released Database library Room. Room was introduced as part of the Android Architecture components and has been picking up a lot of steam in the community.

Room focuses on being a beautiful api layer to Sqlite. Florina explains to us how we can use Room to create a database, creating entities and how them map to tables, using DAOs to access data and even observe them

Listen on for the details!

Shownotes: http://fragmentedpodcast.com/episodes/95/</itunes:summary>
      <itunes:subtitle>In this episode, we talk to Florina from Google about the recently released Database library Room. Room was introduced as part of the Android Architecture components and has been picking up a lot of steam in the community.

Room focuses on being a beautiful api layer to Sqlite. Florina explains to us how we can use Room to create a database, creating entities and how them map to tables, using DAOs to access data and even observe them

Listen on for the details!

Shownotes: http://fragmentedpodcast.com/episodes/95/</itunes:subtitle>
      <itunes:keywords>sqlite, room, sql, database, florina muntenescu</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>95</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">9d74bb2d-8ec6-4b5d-9043-0bcd83d09d1d</guid>
      <title>094: Design Patternitis - 5 Tips to Help You</title>
      <description><![CDATA[<p>In this episode of Fragmented, Donn talks about a common problem almost all software engineers face in their career - Design Patternitis.</p>
<p>So, you've read the books on design patterns and now you're applying them everywhere. Just because some code can be put into a pattern doesn't mean you should. Or should you? How can you apply them when needed? Donn shares 5 tips with you that you can use to help combat Design Patternitis.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://www.amazon.com/Head-First-Design-Patterns-Brain-Friendly/dp/0596007124">Head First Design Patterns</a></li>
<li><a href="https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612/ref=pd_sim_14_3?_encoding=UTF8&amp;pd_rd_i=0201633612&amp;pd_rd_r=0HJJHQS8TPTHBCQE3A7C&amp;pd_rd_w=L0Vq6&amp;pd_rd_wg=6p3Bn&amp;psc=1&amp;refRID=0HJJHQS8TPTHBCQE3A7C">Design Patterns - GoF Book</a></li>
<li><a href="https://www.amazon.com/Patterns-Enterprise-Application-Architecture-Martin/dp/0321127420/ref=pd_sim_14_4?_encoding=UTF8&amp;pd_rd_i=0321127420&amp;pd_rd_r=4CXVH0SEBJTV6QFJW1FZ&amp;pd_rd_w=Gm437&amp;pd_rd_wg=mTZAB&amp;psc=1&amp;refRID=4CXVH0SEBJTV6QFJW1FZ">Patterns of Enterprise Application Archicture - Fowloer</a></li>
<li><a href="https://codereview.stackexchange.com/">Code Review StackExchange</a></li>
<li><a href="https://www.codementor.io/code-review-experts">Code Mentor</a></li>
</ul>
<h2>Sponsors</h2>
<p>This episode is made possible by <a href="https://kobiton.com/freetrial/?utm_source=Fragmented%20Podcast&amp;utm_medium=Fragmented&amp;utm_campaign=Fragmented%20Podcast&amp;utm_content=no%20commitment%20free%20trial">Kobiton - Fragmented</a>.</p>
<p>They're giving listeners a <strong>15-day FREE trial</strong> with no credit card required! 🙌<br />
Give them a try at <a href="https://kobiton.com/freetrial/?utm_source=Fragmented%20Podcast&amp;utm_medium=Fragmented&amp;utm_campaign=Fragmented%20Podcast&amp;utm_content=no%20commitment%20free%20trial">Kobiton.com/fragmented</a> and let them know we sent you.</p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 28 Aug 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode of Fragmented, Donn talks about a common problem almost all software engineers face in their career - Design Patternitis.</p>
<p>So, you've read the books on design patterns and now you're applying them everywhere. Just because some code can be put into a pattern doesn't mean you should. Or should you? How can you apply them when needed? Donn shares 5 tips with you that you can use to help combat Design Patternitis.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://www.amazon.com/Head-First-Design-Patterns-Brain-Friendly/dp/0596007124">Head First Design Patterns</a></li>
<li><a href="https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612/ref=pd_sim_14_3?_encoding=UTF8&amp;pd_rd_i=0201633612&amp;pd_rd_r=0HJJHQS8TPTHBCQE3A7C&amp;pd_rd_w=L0Vq6&amp;pd_rd_wg=6p3Bn&amp;psc=1&amp;refRID=0HJJHQS8TPTHBCQE3A7C">Design Patterns - GoF Book</a></li>
<li><a href="https://www.amazon.com/Patterns-Enterprise-Application-Architecture-Martin/dp/0321127420/ref=pd_sim_14_4?_encoding=UTF8&amp;pd_rd_i=0321127420&amp;pd_rd_r=4CXVH0SEBJTV6QFJW1FZ&amp;pd_rd_w=Gm437&amp;pd_rd_wg=mTZAB&amp;psc=1&amp;refRID=4CXVH0SEBJTV6QFJW1FZ">Patterns of Enterprise Application Archicture - Fowloer</a></li>
<li><a href="https://codereview.stackexchange.com/">Code Review StackExchange</a></li>
<li><a href="https://www.codementor.io/code-review-experts">Code Mentor</a></li>
</ul>
<h2>Sponsors</h2>
<p>This episode is made possible by <a href="https://kobiton.com/freetrial/?utm_source=Fragmented%20Podcast&amp;utm_medium=Fragmented&amp;utm_campaign=Fragmented%20Podcast&amp;utm_content=no%20commitment%20free%20trial">Kobiton - Fragmented</a>.</p>
<p>They're giving listeners a <strong>15-day FREE trial</strong> with no credit card required! 🙌<br />
Give them a try at <a href="https://kobiton.com/freetrial/?utm_source=Fragmented%20Podcast&amp;utm_medium=Fragmented&amp;utm_campaign=Fragmented%20Podcast&amp;utm_content=no%20commitment%20free%20trial">Kobiton.com/fragmented</a> and let them know we sent you.</p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="15560636" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/e6217e34-7bc5-481b-89d7-98c4671d0729/designpatternitis_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>094: Design Patternitis - 5 Tips to Help You</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/e6217e34-7bc5-481b-89d7-98c4671d0729/3000x3000/1503950655-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:16:11</itunes:duration>
      <itunes:summary>In this episode of Fragmented, Donn talks about a common problem almost all software engineers face in their career - Design Patternitis.</itunes:summary>
      <itunes:subtitle>In this episode of Fragmented, Donn talks about a common problem almost all software engineers face in their career - Design Patternitis.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>94</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">a33406ed-6a28-4a18-be3a-787a84322705</guid>
      <title>093: RxJava intervention with Dan Lew</title>
      <description><![CDATA[<p>In this episode of Fragmented, our friend and RxJava paragon of the Android - Dan Lew, returns for a record 3 and 1/2 time.</p>
<p>We've been using RxJava over the years now and have even talked to Dan about it in previous episodes.</p>
<p>How has our understanding of Rx use in Android changed over the years? We know some of the super standard usecases for RxJava in AndroidDev. But the important question to be asking is: when are the times we &quot;shouldn't&quot; be using RxJava? Are we over-complicating our code by shoe-horning it in different places. Concepts like functional programming and reactive state management have picked up steam again, how has this influenced our RxJava use?</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/3/">Fragmented Ep.3 Dan Lew - The RxJava show (Part 1)</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/4/">Fragmented Ep.4 Dan Lew - The RxJava show (Part 2)</a></li>
<li><a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Future.html">Futures in Java (7)</a></li>
<li><a href="https://github.com/square/sqlbrite">SqlBrite - lighteweight Rx wrapper for SQLiteOpenHelper</a></li>
<li><a href="http://blog.danlew.net/2015/12/08/error-handling-in-rxjava/">Error handling with RxJava - Dan Lew</a></li>
<li><a href="https://github.com/j256/ormlite-android">OrmLite - Android</a></li>
<li><a href="http://blog.danlew.net/2017/08/02/why-not-rxlifecycle/">Why not RxLifecycle</a></li>
<li><a href="https://twitter.com/kaushikgopal/status/892917432104361986">Tweet quote - boilerplate is ok</a></li>
<li><a href="http://blog.danlew.net/2017/07/27/an-introduction-to-functional-reactive-programming/">Introduction to Functional Reactive Programming</a></li>
</ul>
<h2>Sponsors</h2>
<p>This episode is made possible by <a href="https://kobiton.com/freetrial/?utm_source=Fragmented%20Podcast&amp;utm_medium=Fragmented&amp;utm_campaign=Fragmented%20Podcast&amp;utm_content=no%20commitment%20free%20trial">Kobiton - Fragmented</a>.</p>
<p>They're giving listeners a <strong>15 day FREE trial</strong> with no credit card required! 🙌<br />
Give them a try at <a href="https://kobiton.com/freetrial/?utm_source=Fragmented%20Podcast&amp;utm_medium=Fragmented&amp;utm_campaign=Fragmented%20Podcast&amp;utm_content=no%20commitment%20free%20trial">Kobiton.com/fragmented</a> and let them know we sent you.</p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 14 Aug 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode of Fragmented, our friend and RxJava paragon of the Android - Dan Lew, returns for a record 3 and 1/2 time.</p>
<p>We've been using RxJava over the years now and have even talked to Dan about it in previous episodes.</p>
<p>How has our understanding of Rx use in Android changed over the years? We know some of the super standard usecases for RxJava in AndroidDev. But the important question to be asking is: when are the times we &quot;shouldn't&quot; be using RxJava? Are we over-complicating our code by shoe-horning it in different places. Concepts like functional programming and reactive state management have picked up steam again, how has this influenced our RxJava use?</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/3/">Fragmented Ep.3 Dan Lew - The RxJava show (Part 1)</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/4/">Fragmented Ep.4 Dan Lew - The RxJava show (Part 2)</a></li>
<li><a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Future.html">Futures in Java (7)</a></li>
<li><a href="https://github.com/square/sqlbrite">SqlBrite - lighteweight Rx wrapper for SQLiteOpenHelper</a></li>
<li><a href="http://blog.danlew.net/2015/12/08/error-handling-in-rxjava/">Error handling with RxJava - Dan Lew</a></li>
<li><a href="https://github.com/j256/ormlite-android">OrmLite - Android</a></li>
<li><a href="http://blog.danlew.net/2017/08/02/why-not-rxlifecycle/">Why not RxLifecycle</a></li>
<li><a href="https://twitter.com/kaushikgopal/status/892917432104361986">Tweet quote - boilerplate is ok</a></li>
<li><a href="http://blog.danlew.net/2017/07/27/an-introduction-to-functional-reactive-programming/">Introduction to Functional Reactive Programming</a></li>
</ul>
<h2>Sponsors</h2>
<p>This episode is made possible by <a href="https://kobiton.com/freetrial/?utm_source=Fragmented%20Podcast&amp;utm_medium=Fragmented&amp;utm_campaign=Fragmented%20Podcast&amp;utm_content=no%20commitment%20free%20trial">Kobiton - Fragmented</a>.</p>
<p>They're giving listeners a <strong>15 day FREE trial</strong> with no credit card required! 🙌<br />
Give them a try at <a href="https://kobiton.com/freetrial/?utm_source=Fragmented%20Podcast&amp;utm_medium=Fragmented&amp;utm_campaign=Fragmented%20Podcast&amp;utm_content=no%20commitment%20free%20trial">Kobiton.com/fragmented</a> and let them know we sent you.</p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="50114738" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/64eea16c-db61-4b69-86ec-c5996ce93c25/093-dan-lew-interview_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>093: RxJava intervention with Dan Lew</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/64eea16c-db61-4b69-86ec-c5996ce93c25/3000x3000/1502488066-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:52:09</itunes:duration>
      <itunes:summary>In this episode of Fragmented, our friend and RxJava paragon of the Android - Dan Lew, returns for a record 3 and 1/2 time.

We&apos;ve been using RxJava over the years now and have even talked to Dan about it in previous episodes. 

How has our understanding of Rx use in Android changed over the years? We know some of the super standard usecases for RxJava in AndroidDev. But the important question to be asking is: when are the times we &quot;shouldn&apos;t&quot; be using RxJava? Are we over-complicating our code by shoe-horning it in different places. Concepts like functional programming and reactive state management have picked up steam again, how has this influenced our RxJava use?

Listen on to find out more!</itunes:summary>
      <itunes:subtitle>In this episode of Fragmented, our friend and RxJava paragon of the Android - Dan Lew, returns for a record 3 and 1/2 time.

We&apos;ve been using RxJava over the years now and have even talked to Dan about it in previous episodes. 

How has our understanding of Rx use in Android changed over the years? We know some of the super standard usecases for RxJava in AndroidDev. But the important question to be asking is: when are the times we &quot;shouldn&apos;t&quot; be using RxJava? Are we over-complicating our code by shoe-horning it in different places. Concepts like functional programming and reactive state management have picked up steam again, how has this influenced our RxJava use?

Listen on to find out more!</itunes:subtitle>
      <itunes:keywords>dan lew, reactive state, rxjava</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>93</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">f096a81f-3628-4ce9-adb3-bc417cf3a674</guid>
      <title>092: Learning Kotlin - dealing with static-ness and (companion) objects costs</title>
      <description><![CDATA[<p>In this second episode of our learning Kotlin series, we talk about Kotlin’s support for static members or … lack thereof. Kotlin as a language was designed so that there’s no such thing as a “static member” in a class but there are times when having static members can be useful.</p>
<p>So what do we do in those cases? do we just avoid static members? are there better alternatives? what are the costs with some of these approaches?</p>
<p>Listen on to find out more!</p>
<h2>Show Notes</h2>
<h3>Static alternatives</h3>
<ul>
<li><a href="https://kotlinlang.org/docs/reference/java-to-kotlin-interop.html#package-level-functions">Package level functions (Kotlin docs)</a></li>
<li><a href="https://blog.jetbrains.com/kotlin/2013/06/static-constants-in-kotlin/">Static constants in Kotlin</a></li>
<li><a href="https://kotlinlang.org/docs/reference/object-declarations.html#object-declarations">Object declarations</a></li>
<li><a href="https://stackoverflow.com/questions/43814616/kotlin-difference-between-object-and-companion-object-in-a-class#comment74679942_43817845">Objects vs companion objects</a></li>
</ul>
<h3>Cost of approaches</h3>
<ul>
<li><a href="https://blog.egorand.me/where-do-i-put-my-constants-in-kotlin/">Where do i put my constants in Kotlin</a></li>
<li><a href="https://medium.com/@BladeCoder/exploring-kotlins-hidden-costs-part-1-fbb9935d9b62">Exploring Kotlin's hidden costs - Part 1</a></li>
<li><a href="https://discuss.kotlinlang.org/t/best-practices-for-top-level-declarations/2198/2">Kotlin discussion - best practices for top level declarations</a></li>
</ul>
<p><em>Look at the <a href="http://fragmentedpodcast.com/episodes/92">fragmentedpodcast.com</a> for some code snippets</em></p>
<h3>Misc:</h3>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/89/">Ep.89 - Learning Kotlin: Properties a first class language feature</a></li>
<li><a href="https://www.manning.com/books/kotlin-in-action">Kotlin in Action – Manning Publications</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 7 Aug 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this second episode of our learning Kotlin series, we talk about Kotlin’s support for static members or … lack thereof. Kotlin as a language was designed so that there’s no such thing as a “static member” in a class but there are times when having static members can be useful.</p>
<p>So what do we do in those cases? do we just avoid static members? are there better alternatives? what are the costs with some of these approaches?</p>
<p>Listen on to find out more!</p>
<h2>Show Notes</h2>
<h3>Static alternatives</h3>
<ul>
<li><a href="https://kotlinlang.org/docs/reference/java-to-kotlin-interop.html#package-level-functions">Package level functions (Kotlin docs)</a></li>
<li><a href="https://blog.jetbrains.com/kotlin/2013/06/static-constants-in-kotlin/">Static constants in Kotlin</a></li>
<li><a href="https://kotlinlang.org/docs/reference/object-declarations.html#object-declarations">Object declarations</a></li>
<li><a href="https://stackoverflow.com/questions/43814616/kotlin-difference-between-object-and-companion-object-in-a-class#comment74679942_43817845">Objects vs companion objects</a></li>
</ul>
<h3>Cost of approaches</h3>
<ul>
<li><a href="https://blog.egorand.me/where-do-i-put-my-constants-in-kotlin/">Where do i put my constants in Kotlin</a></li>
<li><a href="https://medium.com/@BladeCoder/exploring-kotlins-hidden-costs-part-1-fbb9935d9b62">Exploring Kotlin's hidden costs - Part 1</a></li>
<li><a href="https://discuss.kotlinlang.org/t/best-practices-for-top-level-declarations/2198/2">Kotlin discussion - best practices for top level declarations</a></li>
</ul>
<p><em>Look at the <a href="http://fragmentedpodcast.com/episodes/92">fragmentedpodcast.com</a> for some code snippets</em></p>
<h3>Misc:</h3>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/89/">Ep.89 - Learning Kotlin: Properties a first class language feature</a></li>
<li><a href="https://www.manning.com/books/kotlin-in-action">Kotlin in Action – Manning Publications</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="33832728" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/95cd7ca2-307f-4b38-935d-00b15e987222/092-kotlin-kaush-part2_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>092: Learning Kotlin - dealing with static-ness and (companion) objects costs</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/95cd7ca2-307f-4b38-935d-00b15e987222/3000x3000/1502049712-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:35:11</itunes:duration>
      <itunes:summary>In this second episode of our learning Kotlin series, we talk about Kotlin’s support for static members or … lack thereof. Kotlin as a language was designed so that there’s no such thing as a “static member” in a class but there are times when having static members can be useful.

So what do we do in those cases? do we just avoid static members? are there better alternatives? what are the costs with some of these approaches?

Listen on to find out more!

Shownotes:  http://fragmentedpodcast.com/episodes/92</itunes:summary>
      <itunes:subtitle>In this second episode of our learning Kotlin series, we talk about Kotlin’s support for static members or … lack thereof. Kotlin as a language was designed so that there’s no such thing as a “static member” in a class but there are times when having static members can be useful.

So what do we do in those cases? do we just avoid static members? are there better alternatives? what are the costs with some of these approaches?

Listen on to find out more!

Shownotes:  http://fragmentedpodcast.com/episodes/92</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>92</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">61cd71ab-0db5-4478-a1a4-62d2d7a5d08d</guid>
      <title>091 : Decompress - Reddit AMA highlights, package by feature not layer and testing!</title>
      <description><![CDATA[<p>In this decompress episode, DF and KG kick it off with a brief discussion of the highlights from the recent reddit AMA that the Android Engineering folk conducted. What were the interesting things they learnt or were surprised by etc.? They then go on to briefly discuss two topics they've always chatted about (off-air) packaging by feature (not layer) and most recent thoughts on testing. Listen on to find out more:</p>
<h2>Show Notes</h2>
<h3>360 | AnDev</h3>
<ul>
<li><a href="https://360andev.com/about/">360|AnDev</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/45/">045: Bluetooth (LE) with Dave (devunwired) Smith</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/059/">059: Chiu-Ki Chan explains Mocking and Stubbing with Mockito</a></li>
</ul>
<h3>AMA Reddit</h3>
<ul>
<li><a href="https://www.reddit.com/r/androiddev/comments/6nuq0a/were_on_the_engineering_team_for_android_o_ask_us/">AMA - complete reddit thread</a></li>
<li><a href="https://www.reddit.com/r/androiddev/comments/6nuq0a/were_on_the_engineering_team_for_android_o_ask_us/dkfzxa2/">Alarm Manager or JobScheduler thread - reddit thread</a>
<ul>
<li><a href="https://github.com/yigit/android-priority-jobqueue">Android Priority Job Queue - Yigit</a></li>
<li><a href="https://github.com/evernote/android-job">Android Job (Evernote)</a></li>
<li><a href="https://developer.android.com/reference/android/app/job/JobScheduler.html">JobScheduler - Android</a></li>
</ul>
</li>
<li><a href="https://www.reddit.com/r/androiddev/comments/6nuq0a/were_on_the_engineering_team_for_android_o_ask_us/dkcewfs/">Fragment backstack manager thread - reddit thread</a>
<ul>
<li><a href="https://twitter.com/donnfelker/status/887704982375542784">DF Tweet thread on using Fragments</a></li>
</ul>
</li>
<li><a href="https://www.reddit.com/r/androiddev/comments/6nuq0a/were_on_the_engineering_team_for_android_o_ask_us/dkctlad/">Soft keyboard API shortcomings - reddit thread</a>
<ul>
<li><a href="https://stackoverflow.com/questions/4312319/how-to-capture-the-virtual-keyboard-show-hide-event-in-android">SO question 1</a></li>
<li><a href="https://stackoverflow.com/questions/3793093/android-edittext-soft-keyboard-show-hide-event">SO question 2</a></li>
<li><a href="https://stackoverflow.com/questions/2150078/how-to-check-visibility-of-software-keyboard-in-android">SO question 3</a></li>
<li><a href="https://stackoverflow.com/questions/24388492/listen-for-keyboard-show-or-hide-event-in-android">SO question 4</a></li>
</ul>
</li>
<li><a href="https://www.reddit.com/r/androiddev/comments/6nuq0a/were_on_the_engineering_team_for_android_o_ask_us/dkenbnx/">Night light on Nexus 6P - reddit thread</a>
<ul>
<li><a href="https://justgetflux.com/">Flux software</a></li>
</ul>
</li>
<li><a href="https://www.reddit.com/r/androiddev/comments/6nuq0a/were_on_the_engineering_team_for_android_o_ask_us/dkfwnmw/">Sharp device: 120hz refresh rate- reddit thread</a>
<ul>
<li><a href="https://www.youtube.com/watch?v=TvrIa-UaFl4">iPad demo 1</a></li>
<li><a href="https://www.youtube.com/watch?v=TvrIa-UaFl4">iPad demo 2</a></li>
<li><a href="https://www.theverge.com/circuitbreaker/2016/7/2/12087608/sharp-aquos-mini-sh-m03-android-smartphone-japan">Sharp Aquos 120Hz Android phone</a></li>
</ul>
</li>
</ul>
<h3>Package by feature not layer</h3>
<ul>
<li><a href="https://stackoverflow.com/questions/1086041/locate-current-file-in-intellij">Alt F1 keyboard shortcut - Select in... Project View</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/68/">068: Talking Buck with Uber engineer Gautam Korlam</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/90/">090: Make your apps instant with Zarah Dominguez</a></li>
<li><a href="https://news.realm.io/news/kau-jake-wharton-testing-robots/">Instrumentation Testing Robots - Jake Wharton talk</a>
<ul>
<li><a href="https://github.com/square/okhttp/tree/master/mockwebserver">okHttp Mock WebServer</a></li>
<li><a href="http://wiremock.org/">Wiremock</a></li>
</ul>
</li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://kobiton.com/fragmented">Kobiton - start your 15 day free trial</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 24 Jul 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this decompress episode, DF and KG kick it off with a brief discussion of the highlights from the recent reddit AMA that the Android Engineering folk conducted. What were the interesting things they learnt or were surprised by etc.? They then go on to briefly discuss two topics they've always chatted about (off-air) packaging by feature (not layer) and most recent thoughts on testing. Listen on to find out more:</p>
<h2>Show Notes</h2>
<h3>360 | AnDev</h3>
<ul>
<li><a href="https://360andev.com/about/">360|AnDev</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/45/">045: Bluetooth (LE) with Dave (devunwired) Smith</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/059/">059: Chiu-Ki Chan explains Mocking and Stubbing with Mockito</a></li>
</ul>
<h3>AMA Reddit</h3>
<ul>
<li><a href="https://www.reddit.com/r/androiddev/comments/6nuq0a/were_on_the_engineering_team_for_android_o_ask_us/">AMA - complete reddit thread</a></li>
<li><a href="https://www.reddit.com/r/androiddev/comments/6nuq0a/were_on_the_engineering_team_for_android_o_ask_us/dkfzxa2/">Alarm Manager or JobScheduler thread - reddit thread</a>
<ul>
<li><a href="https://github.com/yigit/android-priority-jobqueue">Android Priority Job Queue - Yigit</a></li>
<li><a href="https://github.com/evernote/android-job">Android Job (Evernote)</a></li>
<li><a href="https://developer.android.com/reference/android/app/job/JobScheduler.html">JobScheduler - Android</a></li>
</ul>
</li>
<li><a href="https://www.reddit.com/r/androiddev/comments/6nuq0a/were_on_the_engineering_team_for_android_o_ask_us/dkcewfs/">Fragment backstack manager thread - reddit thread</a>
<ul>
<li><a href="https://twitter.com/donnfelker/status/887704982375542784">DF Tweet thread on using Fragments</a></li>
</ul>
</li>
<li><a href="https://www.reddit.com/r/androiddev/comments/6nuq0a/were_on_the_engineering_team_for_android_o_ask_us/dkctlad/">Soft keyboard API shortcomings - reddit thread</a>
<ul>
<li><a href="https://stackoverflow.com/questions/4312319/how-to-capture-the-virtual-keyboard-show-hide-event-in-android">SO question 1</a></li>
<li><a href="https://stackoverflow.com/questions/3793093/android-edittext-soft-keyboard-show-hide-event">SO question 2</a></li>
<li><a href="https://stackoverflow.com/questions/2150078/how-to-check-visibility-of-software-keyboard-in-android">SO question 3</a></li>
<li><a href="https://stackoverflow.com/questions/24388492/listen-for-keyboard-show-or-hide-event-in-android">SO question 4</a></li>
</ul>
</li>
<li><a href="https://www.reddit.com/r/androiddev/comments/6nuq0a/were_on_the_engineering_team_for_android_o_ask_us/dkenbnx/">Night light on Nexus 6P - reddit thread</a>
<ul>
<li><a href="https://justgetflux.com/">Flux software</a></li>
</ul>
</li>
<li><a href="https://www.reddit.com/r/androiddev/comments/6nuq0a/were_on_the_engineering_team_for_android_o_ask_us/dkfwnmw/">Sharp device: 120hz refresh rate- reddit thread</a>
<ul>
<li><a href="https://www.youtube.com/watch?v=TvrIa-UaFl4">iPad demo 1</a></li>
<li><a href="https://www.youtube.com/watch?v=TvrIa-UaFl4">iPad demo 2</a></li>
<li><a href="https://www.theverge.com/circuitbreaker/2016/7/2/12087608/sharp-aquos-mini-sh-m03-android-smartphone-japan">Sharp Aquos 120Hz Android phone</a></li>
</ul>
</li>
</ul>
<h3>Package by feature not layer</h3>
<ul>
<li><a href="https://stackoverflow.com/questions/1086041/locate-current-file-in-intellij">Alt F1 keyboard shortcut - Select in... Project View</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/68/">068: Talking Buck with Uber engineer Gautam Korlam</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/90/">090: Make your apps instant with Zarah Dominguez</a></li>
<li><a href="https://news.realm.io/news/kau-jake-wharton-testing-robots/">Instrumentation Testing Robots - Jake Wharton talk</a>
<ul>
<li><a href="https://github.com/square/okhttp/tree/master/mockwebserver">okHttp Mock WebServer</a></li>
<li><a href="http://wiremock.org/">Wiremock</a></li>
</ul>
</li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://kobiton.com/fragmented">Kobiton - start your 15 day free trial</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="52569330" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/d8dade9a-aeb2-4886-8a80-207749b8131d/091-decompress-reddit-ama_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>091 : Decompress - Reddit AMA highlights, package by feature not layer and testing!</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/d8dade9a-aeb2-4886-8a80-207749b8131d/3000x3000/1500844934-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:54:42</itunes:duration>
      <itunes:summary>In this decompress episode, DF and KG kick it off with a brief discussion of the highlights from the recent reddit AMA that the Android Engineering folk conducted. What were the interesting things they learnt or were surprised by etc.? They then go on to briefly discuss two topics they&apos;ve always chatted about (off-air) packaging by feature (not layer) and most recent thoughts on testing. Listen on to find out more:

Shownotes:  http://fragmentedpodcast.com/episodes/91/ ‎

</itunes:summary>
      <itunes:subtitle>In this decompress episode, DF and KG kick it off with a brief discussion of the highlights from the recent reddit AMA that the Android Engineering folk conducted. What were the interesting things they learnt or were surprised by etc.? They then go on to briefly discuss two topics they&apos;ve always chatted about (off-air) packaging by feature (not layer) and most recent thoughts on testing. Listen on to find out more:

Shownotes:  http://fragmentedpodcast.com/episodes/91/ ‎

</itunes:subtitle>
      <itunes:keywords>ama, testing, reddit, android engineering reddit ama, package by feature</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>91</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">72ecc356-92cb-40dc-8e1c-1e12dace479d</guid>
      <title>090: Make your apps instant with Zarah Dominguez</title>
      <description><![CDATA[<p>At I/O '16 Google announced the super cool new feature Instant Apps. At IO'17 we started to see real world examples and third parties pull off this feature. In this episode, we talk to GDE Zarah Dominguez who's company &quot;Domain&quot; was one of the partners for this program.</p>
<p>What is the Instant Apps feature? What are some usecases where this comes in handy? How does it actually work internally? What does it take for a developer to implement this feature in their own app? Listen on to find out!</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://g.co/instantapps">Instant apps - official page</a></li>
<li><a href="https://www.domain.com.au/">Domain (Zarah's company)</a></li>
<li><a href="http://tech.domain.com.au/2017/06/making-the-domain-android-app-instant-%E2%9A%A1/">Making the Domain Android app &quot;Instant&quot;</a></li>
<li><a href="https://medium.com/vimeo-engineering-blog/vimeo-android-instant-apps-2f8b1e94760c">Android Instant Apps, step-by-step: how Vimeo went about it</a></li>
<li><a href="https://www.youtube.com/watch?v=F42Rbi3WIlA">IO'17 Fireside chat with 3rd party partner who implemented Instant Apps</a></li>
<li><a href="https://github.com/googlesamples/android-instant-apps">Google samples repository</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/zarahjutz">@zarahjutz</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 17 Jul 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>At I/O '16 Google announced the super cool new feature Instant Apps. At IO'17 we started to see real world examples and third parties pull off this feature. In this episode, we talk to GDE Zarah Dominguez who's company &quot;Domain&quot; was one of the partners for this program.</p>
<p>What is the Instant Apps feature? What are some usecases where this comes in handy? How does it actually work internally? What does it take for a developer to implement this feature in their own app? Listen on to find out!</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://g.co/instantapps">Instant apps - official page</a></li>
<li><a href="https://www.domain.com.au/">Domain (Zarah's company)</a></li>
<li><a href="http://tech.domain.com.au/2017/06/making-the-domain-android-app-instant-%E2%9A%A1/">Making the Domain Android app &quot;Instant&quot;</a></li>
<li><a href="https://medium.com/vimeo-engineering-blog/vimeo-android-instant-apps-2f8b1e94760c">Android Instant Apps, step-by-step: how Vimeo went about it</a></li>
<li><a href="https://www.youtube.com/watch?v=F42Rbi3WIlA">IO'17 Fireside chat with 3rd party partner who implemented Instant Apps</a></li>
<li><a href="https://github.com/googlesamples/android-instant-apps">Google samples repository</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/zarahjutz">@zarahjutz</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="58998476" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/fa115b3c-aa6d-4f33-9194-e52186a3a801/090-interview-with-zarah_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>090: Make your apps instant with Zarah Dominguez</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/fa115b3c-aa6d-4f33-9194-e52186a3a801/3000x3000/1500168537-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:01:24</itunes:duration>
      <itunes:summary>At I/O &apos;16 Google announced the super cool new feature &quot;Instant Apps&quot;. It&apos;s only at this IO, have we started to see real world examples and third parties pull off this feature.

In this episode, we talk to GDE Zarah Dominguez who&apos;s company &quot;Domain&quot; was one of the partners for this program.

What is the Instant Apps feature? What are some usecases where this comes in handy? How does it actually work internally? What does it take for a developer to implement this feature in their own app? Listen on to find out!

Shownotes:  http://fragmentedpodcast.com/episodes/90/ ‎</itunes:summary>
      <itunes:subtitle>At I/O &apos;16 Google announced the super cool new feature &quot;Instant Apps&quot;. It&apos;s only at this IO, have we started to see real world examples and third parties pull off this feature.

In this episode, we talk to GDE Zarah Dominguez who&apos;s company &quot;Domain&quot; was one of the partners for this program.

What is the Instant Apps feature? What are some usecases where this comes in handy? How does it actually work internally? What does it take for a developer to implement this feature in their own app? Listen on to find out!

Shownotes:  http://fragmentedpodcast.com/episodes/90/ ‎</itunes:subtitle>
      <itunes:keywords>zarah, instant apps, gde, domain</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>90</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">43dd379e-b4b3-4de1-a615-2bef7e5ebeb3</guid>
      <title>089: Learning Kotlin - Properties a first class language feature</title>
      <description><![CDATA[<p>In this mini Fragment, KG talks about his journey learning Kotlin as a newb. Given that Kotlin is most likely going to be the de-facto language for most developers, it makes sense to deepen our understanding of the language (as we have strived with Java over the years).</p>
<p>&quot;Properties&quot; in Kotlin are a first class language feature. But what does that actually mean? What are the nifty features we get with properties? How are these resolved from a Java class when there's potential a name clash? What are some other gotchas and learnings from using properties? Listen on to find out:</p>
<p><a href="https://audio.simplecast.com/75654.mp3">Direct download</a></p>
<h1>Shownotes:</h1>
<ul>
<li><a href="https://kotlinlang.org/docs/reference/properties.html">Kotlin docs - Properties and Fields</a></li>
<li><a href="https://www.manning.com/books/kotlin-in-action">Kotlin in Action - Manning Publications</a></li>
<li><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html">java.util.Calendar</a></li>
<li><a href="http://blog.danlew.net/2017/05/30/mutable-vals-in-kotlin/">Mutable vals in Kotlin - Dan Lew</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 10 Jul 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this mini Fragment, KG talks about his journey learning Kotlin as a newb. Given that Kotlin is most likely going to be the de-facto language for most developers, it makes sense to deepen our understanding of the language (as we have strived with Java over the years).</p>
<p>&quot;Properties&quot; in Kotlin are a first class language feature. But what does that actually mean? What are the nifty features we get with properties? How are these resolved from a Java class when there's potential a name clash? What are some other gotchas and learnings from using properties? Listen on to find out:</p>
<p><a href="https://audio.simplecast.com/75654.mp3">Direct download</a></p>
<h1>Shownotes:</h1>
<ul>
<li><a href="https://kotlinlang.org/docs/reference/properties.html">Kotlin docs - Properties and Fields</a></li>
<li><a href="https://www.manning.com/books/kotlin-in-action">Kotlin in Action - Manning Publications</a></li>
<li><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html">java.util.Calendar</a></li>
<li><a href="http://blog.danlew.net/2017/05/30/mutable-vals-in-kotlin/">Mutable vals in Kotlin - Dan Lew</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="22304157" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/527abf15-4577-4ff0-b80f-2131ba46c805/089-learning-kotlin-with-kaush_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>089: Learning Kotlin - Properties a first class language feature</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/527abf15-4577-4ff0-b80f-2131ba46c805/3000x3000/1499317833-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:23:11</itunes:duration>
      <itunes:summary>In this mini Fragment, KG talks about his journey learning Kotlin as a newb. Given that Kotlin is most likely going to be the de-facto language for most developers, it makes sense to deepen our understanding of the language (as we have strived with Java over the years).

&quot;Properties&quot; in Kotlin are a first class language feature. But what does that actually mean? What are the nifty features we get with properties? How are these resolved from a Java class when there&apos;s potential a name clash? What are some other gotchas and learnings from using properties? Listen on to find out:

Shownotes:  http://fragmentedpodcast.com/episodes/89/</itunes:summary>
      <itunes:subtitle>In this mini Fragment, KG talks about his journey learning Kotlin as a newb. Given that Kotlin is most likely going to be the de-facto language for most developers, it makes sense to deepen our understanding of the language (as we have strived with Java over the years).

&quot;Properties&quot; in Kotlin are a first class language feature. But what does that actually mean? What are the nifty features we get with properties? How are these resolved from a Java class when there&apos;s potential a name clash? What are some other gotchas and learnings from using properties? Listen on to find out:

Shownotes:  http://fragmentedpodcast.com/episodes/89/</itunes:subtitle>
      <itunes:keywords>kotlin, properties, learning kotlin, fragment</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>89</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">e1599e06-5ce0-4c9f-9693-9725548d15eb</guid>
      <title>088: Offensive programming</title>
      <description><![CDATA[<p>In this episode of Fragmented we talk to our friend Piwai from Square.</p>
<p>Piwai's a pro at testing and breaking apps (he built LeakCanary - so not terribly unexpected). He teaches us some strategies on debugging app crashes and briefs us on this concept he calls &quot;offensive programming&quot; which has helped him a lot with his Android development.</p>
<p>It's good stuff and we hope you enjoy the show.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Defensive_programming">Defensive programming</a></li>
</ul>
<h3>Py's libraries:</h3>
<ul>
<li><a href="http://androidannotations.org">AndroidAnnotations</a></li>
<li><a href="https://github.com/square/leakcanary">LeakCanary</a></li>
</ul>
<h3>Misc resources:</h3>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Luhn_algorithm">Luhn check - algorithm</a></li>
<li><a href="http://whatis.techtarget.com/definition/debouncing">Debouncing in general</a></li>
<li><a href="http://whatis.techtarget.com/definition/debouncing">Debounce operator in RxJava</a></li>
<li><a href="https://medium.com/square-corner-blog/advocating-against-android-fragments-81fd0b462c97">Advocating against Android Fragments</a></li>
</ul>
<h3>Pending touches and UI event:</h3>
<ul>
<li><a href="https://developer.android.com/reference/android/view/View.html#cancelPendingInputEvents()">Cancel pending touches</a></li>
<li><a href="https://github.com/JakeWharton/butterknife/blob/master/butterknife/src/main/java/butterknife/internal/DebouncingOnClickListener.java">DebouncingOnClickListener (RxBindings)</a></li>
<li><a href="https://atscaleconference.com/videos/all-apps-shall-crash">Py's talk - All apps shall crash</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/piwai">@piwai</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 3 Jul 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode of Fragmented we talk to our friend Piwai from Square.</p>
<p>Piwai's a pro at testing and breaking apps (he built LeakCanary - so not terribly unexpected). He teaches us some strategies on debugging app crashes and briefs us on this concept he calls &quot;offensive programming&quot; which has helped him a lot with his Android development.</p>
<p>It's good stuff and we hope you enjoy the show.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Defensive_programming">Defensive programming</a></li>
</ul>
<h3>Py's libraries:</h3>
<ul>
<li><a href="http://androidannotations.org">AndroidAnnotations</a></li>
<li><a href="https://github.com/square/leakcanary">LeakCanary</a></li>
</ul>
<h3>Misc resources:</h3>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Luhn_algorithm">Luhn check - algorithm</a></li>
<li><a href="http://whatis.techtarget.com/definition/debouncing">Debouncing in general</a></li>
<li><a href="http://whatis.techtarget.com/definition/debouncing">Debounce operator in RxJava</a></li>
<li><a href="https://medium.com/square-corner-blog/advocating-against-android-fragments-81fd0b462c97">Advocating against Android Fragments</a></li>
</ul>
<h3>Pending touches and UI event:</h3>
<ul>
<li><a href="https://developer.android.com/reference/android/view/View.html#cancelPendingInputEvents()">Cancel pending touches</a></li>
<li><a href="https://github.com/JakeWharton/butterknife/blob/master/butterknife/src/main/java/butterknife/internal/DebouncingOnClickListener.java">DebouncingOnClickListener (RxBindings)</a></li>
<li><a href="https://atscaleconference.com/videos/all-apps-shall-crash">Py's talk - All apps shall crash</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/piwai">@piwai</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="56055129" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/e2e896ea-b306-4cca-8056-cbd0a78ac834/088-interview-wpiwai_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>088: Offensive programming</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/e2e896ea-b306-4cca-8056-cbd0a78ac834/3000x3000/1498435921-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:58:20</itunes:duration>
      <itunes:summary>In this episode of Fragmented we talk to our friend Piwai from Square. 

Piwai&apos;s a pro at testing and breaking apps (he built LeakCanary - so not terribly unexpected). He teaches us some strategies on debugging app crashes and briefs us on this concept he calls &quot;offensive programming&quot; which has helped him a lot with his Android development.

It&apos;s good stuff and we hope you enjoy the show.

Shownotes:  http://fragmentedpodcast.com/episodes/88/</itunes:summary>
      <itunes:subtitle>In this episode of Fragmented we talk to our friend Piwai from Square. 

Piwai&apos;s a pro at testing and breaking apps (he built LeakCanary - so not terribly unexpected). He teaches us some strategies on debugging app crashes and briefs us on this concept he calls &quot;offensive programming&quot; which has helped him a lot with his Android development.

It&apos;s good stuff and we hope you enjoy the show.

Shownotes:  http://fragmentedpodcast.com/episodes/88/</itunes:subtitle>
      <itunes:keywords>defensive programming, debugging, offensive programming, square, leak canary, crash</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>88</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">d8808a84-1af3-4fd9-a9cc-9377990d1dc4</guid>
      <title>087: Effective Java - Item #16: Favor Composition over Inheritance</title>
      <description><![CDATA[<p>In this mini-Fragment episode, Donn talks about Item #16 of the Effective Java series - Favor Composition over Inheritance. You'll learn why using inheritance is not always a great idea and how you can use composition in place of it to make your code more anti-fragile, resilient and clean.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://amzn.to/1RUCko3">Effective Java Book</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="http://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="http://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="http://twitter.com/kaushikgopal">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Mon, 19 Jun 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this mini-Fragment episode, Donn talks about Item #16 of the Effective Java series - Favor Composition over Inheritance. You'll learn why using inheritance is not always a great idea and how you can use composition in place of it to make your code more anti-fragile, resilient and clean.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://amzn.to/1RUCko3">Effective Java Book</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="http://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="http://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="http://twitter.com/kaushikgopal">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="18867681" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/bed74da6-b2bb-4b58-8cc0-1654eb613573/087-item16-of-the-effective-java_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>087: Effective Java - Item #16: Favor Composition over Inheritance</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/bed74da6-b2bb-4b58-8cc0-1654eb613573/3000x3000/1497663023-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:19:36</itunes:duration>
      <itunes:summary>In this mini-Fragment episode, Donn talks about Item #16 of the Effective Java series - Favor Composition over Inheritance. You&apos;ll learn why using inheritance is not always a great idea and how you can use composition in place of it to make your code more anti-fragile, resilient and clean.</itunes:summary>
      <itunes:subtitle>In this mini-Fragment episode, Donn talks about Item #16 of the Effective Java series - Favor Composition over Inheritance. You&apos;ll learn why using inheritance is not always a great idea and how you can use composition in place of it to make your code more anti-fragile, resilient and clean.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>87</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">73da74f4-cf0d-4612-a9e3-c8352c05d88c</guid>
      <title>086: Working Effectively With Legacy Code</title>
      <description><![CDATA[<p>In this mini-Fragment episode, Donn talks about Working Effectively with Legacy Code. He doesn't just talk about the book itself, but he talks about how to approach a legacy code base and start delivering value as soon as possible, yet with confidence. If you've recently started a new job, moved to a new team, started working on an existing code base, then this episode is bound to help you.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://amzn.to/2skNUrS">Working Effectively with Legacy Code Book</a></li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="http://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="http://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="http://twitter.com/kaushikgopal">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Mon, 12 Jun 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this mini-Fragment episode, Donn talks about Working Effectively with Legacy Code. He doesn't just talk about the book itself, but he talks about how to approach a legacy code base and start delivering value as soon as possible, yet with confidence. If you've recently started a new job, moved to a new team, started working on an existing code base, then this episode is bound to help you.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://amzn.to/2skNUrS">Working Effectively with Legacy Code Book</a></li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="http://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="http://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="http://twitter.com/kaushikgopal">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="26148150" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/aee9f318-e166-48f1-a39c-cc46d72a5a0f/086-working-effectively-w-legacy-code_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>086: Working Effectively With Legacy Code</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/aee9f318-e166-48f1-a39c-cc46d72a5a0f/3000x3000/1497059893-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:27:11</itunes:duration>
      <itunes:summary>In this mini-Fragment episode, Donn talks about Working Effectively with Legacy Code. He doesn&apos;t just talk about the book itself, but he talks about how to approach a legacy code base and start delivering value as soon as possible, yet with confidence. If you&apos;ve recently started a new job, moved to a new team, started working on an existing code base, then this episode is bound to help you. </itunes:summary>
      <itunes:subtitle>In this mini-Fragment episode, Donn talks about Working Effectively with Legacy Code. He doesn&apos;t just talk about the book itself, but he talks about how to approach a legacy code base and start delivering value as soon as possible, yet with confidence. If you&apos;ve recently started a new job, moved to a new team, started working on an existing code base, then this episode is bound to help you. </itunes:subtitle>
      <itunes:keywords>android, programming, mobile, androiddev</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>86</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">fd277ee9-352d-443a-9369-c4c50311705c</guid>
      <title>085: Casual Kotlin conversation with Dan Kim</title>
      <description><![CDATA[<p>In this episode, we talk to Dan Kim about Kotlin. Dan is an Android developer at the company Basecamp and has some great Kotlin posts on the company's famous blog Signal Vs Noise.  He was pretty early, on the Kotlin train and has been working with the new language for quite sometime now.</p>
<p>Instead of trying to go into every single detail about Kotlin, the nuances of the language, it's syntax etc. we take a more general approach and talk about starting out on Kotlin, how does on go about migrating an Android codebase to Kotlin, what are things we should watch out for when using the language. This and a whole lot more!</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://m.signalvnoise.com/">Basecamp blog - Signal vs. Noise</a></li>
<li><a href="https://docs.google.com/document/d/1ReS3ep-hjxWA8kZi0YqDbEhCqTt29hG8P44aA9W0DM8/edit#heading=h.zi7eb2clrbue">Jake Wharton - Using project Kotlin for Android</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/20/">Fragmented - Ep 20 with Hadi (spl. mention shownotes)</a></li>
<li><a href="http://blog.danlew.net/2017/05/30/mutable-vals-in-kotlin/">Dan Lew - Mutable vals in Kotlin</a></li>
<li><a href="https://kotlinlang.org/docs/reference/idioms.html">Kotlin idioms</a></li>
<li><a href="https://kotlinlang.org/docs/reference/coding-conventions.html#functions-vs-properties">Kotlin - coding conventions</a></li>
<li><a href="https://kotlinlang.org/docs/reference/kapt.html">kapt - Annotation processing for Kotlin</a></li>
<li><a href="https://kotlinlang.org/docs/reference/android-overview.html">Kotlin website</a></li>
<li><a href="https://kotlinlang.org/docs/reference/android-overview.html">Kotlin website (source)</a></li>
</ul>
<h3>Kotlin view (binding) libs</h3>
<ul>
<li><a href="https://kotlinlang.org/docs/tutorials/android-plugin.html">Kotlin Android extensions</a></li>
<li><a href="https://github.com/JakeWharton/kotterknife">Kotterknife</a></li>
<li><a href="https://github.com/Kotlin/anko">Anko</a></li>
<li><a href="https://github.com/JetBrains/kotlin-web-site/blob/8ab6c4bde70216c1defce626268c3bee06097371/pages/docs/tutorials/android-plugin.md#importing-synthetic-properties">Synthetic properties</a></li>
</ul>
<h3>Resources</h3>
<ul>
<li>Jake's youtube video</li>
<li>Dan's blog posts:
<ul>
<li><a href="https://m.signalvnoise.com/how-we-made-basecamp-3s-android-app-100-kotlin-35e4e1c0ef12">How we made Basecamp 3’s Android app 100% Kotlin</a></li>
<li><a href="https://m.signalvnoise.com/some-of-my-favorite-kotlin-features-that-we-use-a-lot-in-basecamp-5ac9d6cea95">Some of my favorite Kotlin features</a></li>
</ul>
</li>
<li><a href="https://www.youtube.com/watch?v=A2LukgT2mKc">Android development with Kotlin - Jake Wharton</a> (video)</li>
<li><a href="https://www.youtube.com/watch?v=X1RVYt2QKQE">Introduction to Kotlin - Google I/O 17</a> (video)</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/dankim">@dankim</a> or [email Dan](mailto: dan@basecamp.com)</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 5 Jun 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, we talk to Dan Kim about Kotlin. Dan is an Android developer at the company Basecamp and has some great Kotlin posts on the company's famous blog Signal Vs Noise.  He was pretty early, on the Kotlin train and has been working with the new language for quite sometime now.</p>
<p>Instead of trying to go into every single detail about Kotlin, the nuances of the language, it's syntax etc. we take a more general approach and talk about starting out on Kotlin, how does on go about migrating an Android codebase to Kotlin, what are things we should watch out for when using the language. This and a whole lot more!</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://m.signalvnoise.com/">Basecamp blog - Signal vs. Noise</a></li>
<li><a href="https://docs.google.com/document/d/1ReS3ep-hjxWA8kZi0YqDbEhCqTt29hG8P44aA9W0DM8/edit#heading=h.zi7eb2clrbue">Jake Wharton - Using project Kotlin for Android</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/20/">Fragmented - Ep 20 with Hadi (spl. mention shownotes)</a></li>
<li><a href="http://blog.danlew.net/2017/05/30/mutable-vals-in-kotlin/">Dan Lew - Mutable vals in Kotlin</a></li>
<li><a href="https://kotlinlang.org/docs/reference/idioms.html">Kotlin idioms</a></li>
<li><a href="https://kotlinlang.org/docs/reference/coding-conventions.html#functions-vs-properties">Kotlin - coding conventions</a></li>
<li><a href="https://kotlinlang.org/docs/reference/kapt.html">kapt - Annotation processing for Kotlin</a></li>
<li><a href="https://kotlinlang.org/docs/reference/android-overview.html">Kotlin website</a></li>
<li><a href="https://kotlinlang.org/docs/reference/android-overview.html">Kotlin website (source)</a></li>
</ul>
<h3>Kotlin view (binding) libs</h3>
<ul>
<li><a href="https://kotlinlang.org/docs/tutorials/android-plugin.html">Kotlin Android extensions</a></li>
<li><a href="https://github.com/JakeWharton/kotterknife">Kotterknife</a></li>
<li><a href="https://github.com/Kotlin/anko">Anko</a></li>
<li><a href="https://github.com/JetBrains/kotlin-web-site/blob/8ab6c4bde70216c1defce626268c3bee06097371/pages/docs/tutorials/android-plugin.md#importing-synthetic-properties">Synthetic properties</a></li>
</ul>
<h3>Resources</h3>
<ul>
<li>Jake's youtube video</li>
<li>Dan's blog posts:
<ul>
<li><a href="https://m.signalvnoise.com/how-we-made-basecamp-3s-android-app-100-kotlin-35e4e1c0ef12">How we made Basecamp 3’s Android app 100% Kotlin</a></li>
<li><a href="https://m.signalvnoise.com/some-of-my-favorite-kotlin-features-that-we-use-a-lot-in-basecamp-5ac9d6cea95">Some of my favorite Kotlin features</a></li>
</ul>
</li>
<li><a href="https://www.youtube.com/watch?v=A2LukgT2mKc">Android development with Kotlin - Jake Wharton</a> (video)</li>
<li><a href="https://www.youtube.com/watch?v=X1RVYt2QKQE">Introduction to Kotlin - Google I/O 17</a> (video)</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/dankim">@dankim</a> or [email Dan](mailto: dan@basecamp.com)</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="59720246" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/db8d2a13-2c46-4147-bf98-d011482d2038/085-interview-w-dan-kim_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>085: Casual Kotlin conversation with Dan Kim</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/db8d2a13-2c46-4147-bf98-d011482d2038/3000x3000/1496610831-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:02:09</itunes:duration>
      <itunes:summary>In this episode, we talk to Dan Kim about Kotlin. Dan is an Android developer at the company Basecamp and has some great Kotlin posts on the company&apos;s famous blog Signal Vs Noise.  He was pretty early, on the Kotlin train and has been working with the new language for quite sometime now.

Instead of trying to go into every single detail about Kotlin, the nuances of the language, it&apos;s syntax etc. we take a more general approach and talk about starting out on Kotlin, how does on go about migrating an Android codebase to Kotlin, what are things we should watch out for when using the language. This and a whole lot more! 

Shownotes:  http://fragmentedpodcast.com/episodes/85/</itunes:summary>
      <itunes:subtitle>In this episode, we talk to Dan Kim about Kotlin. Dan is an Android developer at the company Basecamp and has some great Kotlin posts on the company&apos;s famous blog Signal Vs Noise.  He was pretty early, on the Kotlin train and has been working with the new language for quite sometime now.

Instead of trying to go into every single detail about Kotlin, the nuances of the language, it&apos;s syntax etc. we take a more general approach and talk about starting out on Kotlin, how does on go about migrating an Android codebase to Kotlin, what are things we should watch out for when using the language. This and a whole lot more! 

Shownotes:  http://fragmentedpodcast.com/episodes/85/</itunes:subtitle>
      <itunes:keywords>kotlin, basecamp, signal vs noise, dan kim, android basecamp</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>85</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">4bc01e71-dcc2-4793-967c-7776babb0ed5</guid>
      <title>084: Kaush and Donn go to Google IO 2017</title>
      <description><![CDATA[<p>This was truly one of the most memorable IOs Google has ever conducted. In keeping with tradition, Donn and Kaushik talk with a bunch of awesome #AndroidDev and get their opinions/thoughts on IO and Android in general. As always, these are super fun episodes.</p>
<h2>Show Notes</h2>
<ul>
<li><strong>Dan Kim</strong> (<a href="https://basecamp.com/">Basecamp</a>)
<ul>
<li><a href="https://twitter.com/dankim">@dankim</a> or <a href="mailto:dan@basecamp.com">dan@basecamp.com</a></li>
<li><a href="http://www.vysor.io/">Vysor app</a></li>
<li><a href="https://twitter.com/kaushikgopal/status/864925854219984896">Mark Allison - being brave with the O preview</a></li>
</ul>
</li>
<li><strong>Patryk Poborca</strong> (<a href="http://www.koziodigital.com/">Kozio Digital</a>)
<ul>
<li><a href="https://twitter.com/patrykpoborca">@patrykpoborca</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.trello">Trello app</a></li>
</ul>
</li>
<li><strong>Jerrell Mardis</strong> (<a href="https://www.salesforce.com/">Salesforce</a>)
<ul>
<li><a href="https://twitter.com/jerrellmardis">@jerrellmardis</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.robinhood.android&amp;hl=en">Robinhood app</a></li>
<li><a href="https://www.youtube.com/watch?v=FrteWKKVyzI">Android architecture components talk</a></li>
</ul>
</li>
<li><strong>Annyce Davis</strong> (<a href="http://offgrid-electric.com/#home">Offgrid Electric</a>)
<ul>
<li><a href="https://twitter.com/brwngrldev">@brwngrldev</a></li>
<li><a href="https://play.google.com/store/apps/details?id=cc.forestapp">Forest app</a></li>
<li><a href="https://www.linkedin.com/learning/react-native-building-mobile-apps">React Native: Building Mobile apps</a></li>
</ul>
</li>
<li><strong>Zac Sweers</strong> (Uber)
<ul>
<li><a href="https://twitter.com/pandanomic">@pandanomic</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.google.android.apps.youtube.unplugged">YouTube TV app</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.Slack">Slack app</a></li>
</ul>
</li>
<li><strong>Matt Kranzler</strong> (<a href="https://www.salesforce.com/">Salesforce</a>)
<ul>
<li><a href="https://twitter.com/mattkranzler">@mattkranzler</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.samruston.twitter">Flamingo app</a></li>
</ul>
</li>
<li><strong>Roberto Orgiu</strong> (<a href="https://caster.io/">Caster</a>)
<ul>
<li><a href="https://twitter.com/_tiwiz">@_tiwiz</a></li>
</ul>
</li>
<li><strong>Christina Lee</strong> (<a href="https://www.pinterest.com/">Pinterest</a>)
<ul>
<li><a href="https://twitter.com/RunChristinaRun">@RunChristinaRun</a></li>
<li><a href="https://www.crowdrise.com/runningacrossamerica">Christina's Fundraiser - Running across America</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.robinhood.android&amp;hl=en">Robinhood app</a></li>
<li><a href="https://www.youtube.com/watch?v=fPzxfeDJDzY&amp;list=WL&amp;index=7">Talk at IO - Life is Great and Everything Will Be Ok, Kotlin is Here</a></li>
</ul>
</li>
<li><strong>Hugo Visser</strong> (<a href="http://littlerobots.nl/">Little Robots</a>)
<ul>
<li><a href="https://twitter.com/botteaap">@botteaap</a> or <a href="https://plus.google.com/+HugoVisser">+HugoVisser</a></li>
<li><a href="https://bitbucket.org/hvisser/android-apt">Android APT</a></li>
</ul>
</li>
<li><strong>Raveesh Bhalla</strong>
<ul>
<li><a href="https://twitter.com/raveeshbhalla">@raveeshbhalla</a></li>
<li><a href="https://www.enki.com/">Enki app</a></li>
</ul>
</li>
<li><strong>Etienne Caron</strong> (<a href="https://www.shopify.com/">Shopify</a>)
<ul>
<li><a href="https://twitter.com/kanawish">@kanawish</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.safariflow.queue">Safari Queue app</a></li>
</ul>
</li>
<li><strong>Chris Jenkins</strong> (<a href="http://owlr.com/">Owlr</a>)
<ul>
<li><a href="https://twitter.com/chrisjenx">@chrisjenx</a></li>
<li><a href="https://github.com/chrisjenx/Calligraphy">Calligraphy font lib by Chris</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.waze">Waze app</a></li>
</ul>
</li>
<li><strong>Brenda Cook</strong> (<a href="https://web.seesaw.me/">Seesaw</a>)
<ul>
<li><a href="https://twitter.com/kenodoggy">@kenodoggy</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.mint">Mint app</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.memrise.android.memrisecompanion">Memrise app</a></li>
</ul>
</li>
<li><strong>Joaquim</strong> (<a href="https://www.twitch.tv/">Twitch</a>)
<ul>
<li><a href="https://twitter.com/joenrv">@joenrv</a></li>
<li><a href="https://news.realm.io/news/joaquim-verges-making-falcon-pro-3/">The Making of Falcon Pro 3</a></li>
<li><a href="http://getfalcon.pro/">Falcon Pro (Joaquim's app)</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.strafe.android">Strafe Esports app</a></li>
</ul>
</li>
</ul>
<h2>Previous Google IO Episodes</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/43">Ep 43 - Google IO 2016 (part 2)</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/42/">Ep 42 - Google IO 2016 (part 1)</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/9/">Ep 9 - Google IO 2015</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 22 May 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>This was truly one of the most memorable IOs Google has ever conducted. In keeping with tradition, Donn and Kaushik talk with a bunch of awesome #AndroidDev and get their opinions/thoughts on IO and Android in general. As always, these are super fun episodes.</p>
<h2>Show Notes</h2>
<ul>
<li><strong>Dan Kim</strong> (<a href="https://basecamp.com/">Basecamp</a>)
<ul>
<li><a href="https://twitter.com/dankim">@dankim</a> or <a href="mailto:dan@basecamp.com">dan@basecamp.com</a></li>
<li><a href="http://www.vysor.io/">Vysor app</a></li>
<li><a href="https://twitter.com/kaushikgopal/status/864925854219984896">Mark Allison - being brave with the O preview</a></li>
</ul>
</li>
<li><strong>Patryk Poborca</strong> (<a href="http://www.koziodigital.com/">Kozio Digital</a>)
<ul>
<li><a href="https://twitter.com/patrykpoborca">@patrykpoborca</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.trello">Trello app</a></li>
</ul>
</li>
<li><strong>Jerrell Mardis</strong> (<a href="https://www.salesforce.com/">Salesforce</a>)
<ul>
<li><a href="https://twitter.com/jerrellmardis">@jerrellmardis</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.robinhood.android&amp;hl=en">Robinhood app</a></li>
<li><a href="https://www.youtube.com/watch?v=FrteWKKVyzI">Android architecture components talk</a></li>
</ul>
</li>
<li><strong>Annyce Davis</strong> (<a href="http://offgrid-electric.com/#home">Offgrid Electric</a>)
<ul>
<li><a href="https://twitter.com/brwngrldev">@brwngrldev</a></li>
<li><a href="https://play.google.com/store/apps/details?id=cc.forestapp">Forest app</a></li>
<li><a href="https://www.linkedin.com/learning/react-native-building-mobile-apps">React Native: Building Mobile apps</a></li>
</ul>
</li>
<li><strong>Zac Sweers</strong> (Uber)
<ul>
<li><a href="https://twitter.com/pandanomic">@pandanomic</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.google.android.apps.youtube.unplugged">YouTube TV app</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.Slack">Slack app</a></li>
</ul>
</li>
<li><strong>Matt Kranzler</strong> (<a href="https://www.salesforce.com/">Salesforce</a>)
<ul>
<li><a href="https://twitter.com/mattkranzler">@mattkranzler</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.samruston.twitter">Flamingo app</a></li>
</ul>
</li>
<li><strong>Roberto Orgiu</strong> (<a href="https://caster.io/">Caster</a>)
<ul>
<li><a href="https://twitter.com/_tiwiz">@_tiwiz</a></li>
</ul>
</li>
<li><strong>Christina Lee</strong> (<a href="https://www.pinterest.com/">Pinterest</a>)
<ul>
<li><a href="https://twitter.com/RunChristinaRun">@RunChristinaRun</a></li>
<li><a href="https://www.crowdrise.com/runningacrossamerica">Christina's Fundraiser - Running across America</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.robinhood.android&amp;hl=en">Robinhood app</a></li>
<li><a href="https://www.youtube.com/watch?v=fPzxfeDJDzY&amp;list=WL&amp;index=7">Talk at IO - Life is Great and Everything Will Be Ok, Kotlin is Here</a></li>
</ul>
</li>
<li><strong>Hugo Visser</strong> (<a href="http://littlerobots.nl/">Little Robots</a>)
<ul>
<li><a href="https://twitter.com/botteaap">@botteaap</a> or <a href="https://plus.google.com/+HugoVisser">+HugoVisser</a></li>
<li><a href="https://bitbucket.org/hvisser/android-apt">Android APT</a></li>
</ul>
</li>
<li><strong>Raveesh Bhalla</strong>
<ul>
<li><a href="https://twitter.com/raveeshbhalla">@raveeshbhalla</a></li>
<li><a href="https://www.enki.com/">Enki app</a></li>
</ul>
</li>
<li><strong>Etienne Caron</strong> (<a href="https://www.shopify.com/">Shopify</a>)
<ul>
<li><a href="https://twitter.com/kanawish">@kanawish</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.safariflow.queue">Safari Queue app</a></li>
</ul>
</li>
<li><strong>Chris Jenkins</strong> (<a href="http://owlr.com/">Owlr</a>)
<ul>
<li><a href="https://twitter.com/chrisjenx">@chrisjenx</a></li>
<li><a href="https://github.com/chrisjenx/Calligraphy">Calligraphy font lib by Chris</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.waze">Waze app</a></li>
</ul>
</li>
<li><strong>Brenda Cook</strong> (<a href="https://web.seesaw.me/">Seesaw</a>)
<ul>
<li><a href="https://twitter.com/kenodoggy">@kenodoggy</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.mint">Mint app</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.memrise.android.memrisecompanion">Memrise app</a></li>
</ul>
</li>
<li><strong>Joaquim</strong> (<a href="https://www.twitch.tv/">Twitch</a>)
<ul>
<li><a href="https://twitter.com/joenrv">@joenrv</a></li>
<li><a href="https://news.realm.io/news/joaquim-verges-making-falcon-pro-3/">The Making of Falcon Pro 3</a></li>
<li><a href="http://getfalcon.pro/">Falcon Pro (Joaquim's app)</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.strafe.android">Strafe Esports app</a></li>
</ul>
</li>
</ul>
<h2>Previous Google IO Episodes</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/43">Ep 43 - Google IO 2016 (part 2)</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/42/">Ep 42 - Google IO 2016 (part 1)</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/9/">Ep 9 - Google IO 2015</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="88341718" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/0763652e-c1a5-4e12-9bfc-ce9ff8264351/084-kaush-and-donn-at-google-io_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>084: Kaush and Donn go to Google IO 2017</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/0763652e-c1a5-4e12-9bfc-ce9ff8264351/3000x3000/1495403043-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:31:58</itunes:duration>
      <itunes:summary>This was truly one of the most memorable IOs Google has ever conducted. In keeping with tradition, Donn and Kaushik talk with a bunch of awesome #AndroidDev and get their opinions/thoughts on IO and Android in general. As always, these are super fun episodes.

Shownotes:  http://fragmentedpodcast.com/episodes/84/</itunes:summary>
      <itunes:subtitle>This was truly one of the most memorable IOs Google has ever conducted. In keeping with tradition, Donn and Kaushik talk with a bunch of awesome #AndroidDev and get their opinions/thoughts on IO and Android in general. As always, these are super fun episodes.

Shownotes:  http://fragmentedpodcast.com/episodes/84/</itunes:subtitle>
      <itunes:keywords>android, announcement, conference, kotlin, google io, io</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>84</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">d3ab1a93-aff5-409a-9448-1ac45b6ecea3</guid>
      <title>083: Learning the basics of functional programing with Anup Cowkur</title>
      <description><![CDATA[<p>RxJava is considered a functional reactive programming library. But the paradigms of functional programming have existed for a very long time. In this episode we talk to Android GDE Anup Cowkur, about his experience experimenting with &quot;pure&quot; functional languages. He breaks down some of the basic concepts, explaining the different terms along the way.</p>
<p><a href="https://audio.simplecast.com/69502.mp3">Download directly</a></p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Gordon_Moore">Gordon Moore &amp; Moore's law</a></li>
<li><a href="https://www.infoq.com/interviews/hickey-clojure/">Rich Hickey on Clojure's Features and Implementation</a></li>
<li><a href="https://github.com/hrldcpr/pcollections">PCollections - persistent Java collections library</a></li>
</ul>
<h3>Functional languages:</h3>
<ul>
<li><a href="http://elixir-lang.org/">Elixir</a></li>
<li><a href="http://elm-lang.org/">Elm</a></li>
<li><a href="http://www.scala-lang.org/">Scala</a></li>
<li><a href="https://en.wikipedia.org/wiki/Lisp_(programming_language)">Lisp</a></li>
<li><a href="https://www.haskell.org/">Haskell</a></li>
<li><a href="https://en.wikipedia.org/wiki/Erlang_(programming_language)">Erlang</a></li>
</ul>
<h3>Resources</h3>
<ul>
<li><a href="https://medium.freecodecamp.com/functional-programming-for-android-developers-part-1-a58d40d6e742">Anup's multi part series on functional programming</a></li>
<li><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/releases/tag/Episode_8">The Context podcast - Functional programming with Paco Estevez</a></li>
<li><a href="https://www.youtube.com/watch?v=e-5obm1G_FY&amp;feature=youtu.be">Anjana Vakil: Learning Functional Programming with JavaScript - JSUnconf 2016</a></li>
<li><a href="https://medium.com/javascript-scene/the-rise-and-fall-and-rise-of-functional-programming-composable-software-c2d91b424c8c">Learning functional programming and compositional software techniques in JavaScript - Eric Elliot</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/anupcowkur">@anupcowkur</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 15 May 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>RxJava is considered a functional reactive programming library. But the paradigms of functional programming have existed for a very long time. In this episode we talk to Android GDE Anup Cowkur, about his experience experimenting with &quot;pure&quot; functional languages. He breaks down some of the basic concepts, explaining the different terms along the way.</p>
<p><a href="https://audio.simplecast.com/69502.mp3">Download directly</a></p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Gordon_Moore">Gordon Moore &amp; Moore's law</a></li>
<li><a href="https://www.infoq.com/interviews/hickey-clojure/">Rich Hickey on Clojure's Features and Implementation</a></li>
<li><a href="https://github.com/hrldcpr/pcollections">PCollections - persistent Java collections library</a></li>
</ul>
<h3>Functional languages:</h3>
<ul>
<li><a href="http://elixir-lang.org/">Elixir</a></li>
<li><a href="http://elm-lang.org/">Elm</a></li>
<li><a href="http://www.scala-lang.org/">Scala</a></li>
<li><a href="https://en.wikipedia.org/wiki/Lisp_(programming_language)">Lisp</a></li>
<li><a href="https://www.haskell.org/">Haskell</a></li>
<li><a href="https://en.wikipedia.org/wiki/Erlang_(programming_language)">Erlang</a></li>
</ul>
<h3>Resources</h3>
<ul>
<li><a href="https://medium.freecodecamp.com/functional-programming-for-android-developers-part-1-a58d40d6e742">Anup's multi part series on functional programming</a></li>
<li><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/releases/tag/Episode_8">The Context podcast - Functional programming with Paco Estevez</a></li>
<li><a href="https://www.youtube.com/watch?v=e-5obm1G_FY&amp;feature=youtu.be">Anjana Vakil: Learning Functional Programming with JavaScript - JSUnconf 2016</a></li>
<li><a href="https://medium.com/javascript-scene/the-rise-and-fall-and-rise-of-functional-programming-composable-software-c2d91b424c8c">Learning functional programming and compositional software techniques in JavaScript - Eric Elliot</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/anupcowkur">@anupcowkur</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="51109070" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/9b8d1b50-dc19-4256-bf3a-dc854ea6bd4a/083-anup-cowkur-interview_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>083: Learning the basics of functional programing with Anup Cowkur</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/9b8d1b50-dc19-4256-bf3a-dc854ea6bd4a/3000x3000/1494750663-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:53:11</itunes:duration>
      <itunes:summary>RxJava is considered a functional reactive programming library. But the paradigms of functional programming have existed for a very long time. In this episode we talk to Android GDE Anup Cowkur, about his experience experimenting with &quot;pure&quot; functional languages. He breaks down some of the basic concepts, explaining the different terms along the way.

Shownotes: http://fragmentedpodcast.com/episodes/83</itunes:summary>
      <itunes:subtitle>RxJava is considered a functional reactive programming library. But the paradigms of functional programming have existed for a very long time. In this episode we talk to Android GDE Anup Cowkur, about his experience experimenting with &quot;pure&quot; functional languages. He breaks down some of the basic concepts, explaining the different terms along the way.

Shownotes: http://fragmentedpodcast.com/episodes/83</itunes:subtitle>
      <itunes:keywords>gde, functional programming, rxjava, elixir, elm</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>83</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">893c6006-2f63-41f6-9ba8-2844405e074a</guid>
      <title>082: Airbnb&apos;s Gabriel tells  us how to animate with Lottie</title>
      <description><![CDATA[<p>It's pretty awesome, when you use a third party library, love using it and finally get to talk to the person who actually helped build it. In this episode, we talk to Gabriel Peal. Besides having quite the illustrious career in Android development, Gabriel now works at Airbnb and helped build Lottie - an animation library.</p>
<p>What is Lottie, how do you use Lottie? why is so Lottie so cool? how does it actually work under the hood?  Listen to this episode and find out.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://github.com/airbnb/lottie-android">Lottie for Android (github)</a></li>
<li><a href="https://github.com/bodymovin/bodymovin">Bodymovin (github)</a>
<ul>
<li><a href="https://creative.adobe.com/addons/products/12557">Install via Adobe cloud extensions</a></li>
</ul>
</li>
<li><a href="http://www.lottiefiles.com/">lottiefiles.com - sample Lottie animations</a></li>
<li><a href="https://github.com/airbnb/lottie-android#using-lottie">Using lottie - example snippets</a></li>
<li><a href="https://en.wikipedia.org/wiki/Lotte_Reiniger">Lotte Reiniger- the animator</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/gpeal8">@gpeal8</a> or <a href="mailto:lottie@airbnb.com">lottie@airbnb</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 8 May 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>It's pretty awesome, when you use a third party library, love using it and finally get to talk to the person who actually helped build it. In this episode, we talk to Gabriel Peal. Besides having quite the illustrious career in Android development, Gabriel now works at Airbnb and helped build Lottie - an animation library.</p>
<p>What is Lottie, how do you use Lottie? why is so Lottie so cool? how does it actually work under the hood?  Listen to this episode and find out.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://github.com/airbnb/lottie-android">Lottie for Android (github)</a></li>
<li><a href="https://github.com/bodymovin/bodymovin">Bodymovin (github)</a>
<ul>
<li><a href="https://creative.adobe.com/addons/products/12557">Install via Adobe cloud extensions</a></li>
</ul>
</li>
<li><a href="http://www.lottiefiles.com/">lottiefiles.com - sample Lottie animations</a></li>
<li><a href="https://github.com/airbnb/lottie-android#using-lottie">Using lottie - example snippets</a></li>
<li><a href="https://en.wikipedia.org/wiki/Lotte_Reiniger">Lotte Reiniger- the animator</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/gpeal8">@gpeal8</a> or <a href="mailto:lottie@airbnb.com">lottie@airbnb</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="59974009" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/0b20dce6-c3f0-43a4-93d6-062746d596d5/interview-w-gabriel-airbnb_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>082: Airbnb&apos;s Gabriel tells  us how to animate with Lottie</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/0b20dce6-c3f0-43a4-93d6-062746d596d5/3000x3000/1494179100-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:02:25</itunes:duration>
      <itunes:summary>It&apos;s pretty awesome, when you use a third party library, love using it and finally get to talk to the person who actually helped build it. In this episode, we talk to Gabriel Peal. Besides having quite the illustrious career in Android development, Gabriel now works at Airbnb and helped build Lottie - an animation library.

What is Lottie, how do you use Lottie? why is so Lottie so cool? how does it actually work under the hood?  Listen to this episode and find out.

Shownotes:  http://fragmentedpodcast.com/episodes/82/</itunes:summary>
      <itunes:subtitle>It&apos;s pretty awesome, when you use a third party library, love using it and finally get to talk to the person who actually helped build it. In this episode, we talk to Gabriel Peal. Besides having quite the illustrious career in Android development, Gabriel now works at Airbnb and helped build Lottie - an animation library.

What is Lottie, how do you use Lottie? why is so Lottie so cool? how does it actually work under the hood?  Listen to this episode and find out.

Shownotes:  http://fragmentedpodcast.com/episodes/82/</itunes:subtitle>
      <itunes:keywords>android lottie, lottie, airbnb, animation</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>82</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">0af3a95f-90ee-4562-9cdb-a36af67bf88f</guid>
      <title>081: Talking Android Things with Rebecca Franks</title>
      <description><![CDATA[<p>It is the world of the Internet of Things (IoT) and Google's answer to that is the Android Things. In this episode, we talk to the amazing Rebecca Franks. She explains how Android things works and talks of some of the adventures and examples she's embarked on with Android Things. If you've had that hobby Raspberry Pi or Arduino board lying around and not sure how to put it to use, this episode's for you.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/42/">Ep 42 - Google IO episode</a></li>
<li>Rebecca's blog posts:
<ul>
<li><a href="https://riggaroo.co.za/android-things-building-distributed-piano/">Distributed Piano with Android Things</a></li>
<li><a href="https://riggaroo.co.za/android-things-electricity-monitoring-app/">Electricity Monitoring app with Android Things</a></li>
<li><a href="https://riggaroo.co.za/android-things-hardware-basics/">Hardware basics for the Software Engineer</a></li>
</ul>
</li>
<li><a href="https://developer.android.com/things/hardware/developer-kits.html">Android Things Developer Kits</a></li>
<li><a href="https://www.arduino.cc/en/Main/ArduinoStarterKit">Arduino Starter Kit (includes the h/w book she recommends)</a></li>
<li><a href="https://github.com/androidthings">Android Things - official github repo</a></li>
<li><a href="https://github.com/androidthings/contrib-drivers">Android things Contrib drivers - (e.g. button gradle dependency)</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://kobiton.com/fragmented">Kobiton</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/riggaroo">@riggaroo</a> and <a href="https://riggaroo.co.za">riggaroo.co.za</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 1 May 2017 10:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>It is the world of the Internet of Things (IoT) and Google's answer to that is the Android Things. In this episode, we talk to the amazing Rebecca Franks. She explains how Android things works and talks of some of the adventures and examples she's embarked on with Android Things. If you've had that hobby Raspberry Pi or Arduino board lying around and not sure how to put it to use, this episode's for you.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/42/">Ep 42 - Google IO episode</a></li>
<li>Rebecca's blog posts:
<ul>
<li><a href="https://riggaroo.co.za/android-things-building-distributed-piano/">Distributed Piano with Android Things</a></li>
<li><a href="https://riggaroo.co.za/android-things-electricity-monitoring-app/">Electricity Monitoring app with Android Things</a></li>
<li><a href="https://riggaroo.co.za/android-things-hardware-basics/">Hardware basics for the Software Engineer</a></li>
</ul>
</li>
<li><a href="https://developer.android.com/things/hardware/developer-kits.html">Android Things Developer Kits</a></li>
<li><a href="https://www.arduino.cc/en/Main/ArduinoStarterKit">Arduino Starter Kit (includes the h/w book she recommends)</a></li>
<li><a href="https://github.com/androidthings">Android Things - official github repo</a></li>
<li><a href="https://github.com/androidthings/contrib-drivers">Android things Contrib drivers - (e.g. button gradle dependency)</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://kobiton.com/fragmented">Kobiton</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/riggaroo">@riggaroo</a> and <a href="https://riggaroo.co.za">riggaroo.co.za</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="52810112" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/6d4ca8f6-3d23-4d34-9a1f-2f2a2b03c0ff/interview-with-rebecca-frank_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>081: Talking Android Things with Rebecca Franks</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/6d4ca8f6-3d23-4d34-9a1f-2f2a2b03c0ff/3000x3000/1493595859-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:54:57</itunes:duration>
      <itunes:summary>It is the world of the Internet of Things (IoT) and Google&apos;s answer to that is the Android Things. In this episode, we talk to the amazing Rebecca Franks. She explains how Android things works and talks of some of the adventures and examples she&apos;s embarked on with Android Things. If you&apos;ve had that hobby Raspberry Pi or Arduino board lying around and not sure how to put it to use, this episode&apos;s for you.

Shownotes:  http://fragmentedpodcast.com/episodes/81/</itunes:summary>
      <itunes:subtitle>It is the world of the Internet of Things (IoT) and Google&apos;s answer to that is the Android Things. In this episode, we talk to the amazing Rebecca Franks. She explains how Android things works and talks of some of the adventures and examples she&apos;s embarked on with Android Things. If you&apos;ve had that hobby Raspberry Pi or Arduino board lying around and not sure how to put it to use, this episode&apos;s for you.

Shownotes:  http://fragmentedpodcast.com/episodes/81/</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>81</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">5d094434-fef8-43aa-b414-e2575a1d9869</guid>
      <title>080: 10 Books Android developers should read</title>
      <description><![CDATA[<p>In this episode Donn and Kaushik recommend 10 books on Software programming that they think every Android developer would greatly benefit from reading. These are books that helped them become better programmers and have had the most impact in their daily lives as Android developers.</p>
<h2>Show Notes</h2>
<ol>
<li><a href="http://amzn.to/2nDhCBs">Effective Java - Joshua Bloch</a></li>
</ol>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/effective-java/">Effective Java Items (Fragmented fragments)</a></li>
</ul>
<ol start="2">
<li><a href="http://amzn.to/2oHqFTK">Working effectively with legacy code - Michael Feathers</a></li>
<li><a href="http://amzn.to/2oBXrbK">Head first Design Patterns</a></li>
<li><a href="http://amzn.to/2oHsKPO">Don't make me think - Steve Krug, 3rd edition</a></li>
<li><a href="http://amzn.to/2oHqMPe">Java Concurrency in Practice</a></li>
<li><a href="http://amzn.to/2nDkkHd">XUnit testing patterns</a></li>
</ol>
<ul>
<li><a href="http://xunitpatterns.com/">Website xunitpatterns.com</a></li>
</ul>
<ol start="7">
<li><a href="http://amzn.to/2oBPgfu">Patterns of Enterprise Application Architecture - Martin Fowler</a></li>
<li><a href="http://amzn.to/2oBPi74">Javascript the good parts - Douglas Crockford</a></li>
</ol>
<ul>
<li><a href="https://www.destroyallsoftware.com/talks/wat">Gary Bernhardt - WAT</a></li>
</ul>
<ol start="9">
<li><a href="http://amzn.to/2oHzRYo">Clean Code - Robert.C.Martin</a></li>
</ol>
<ul>
<li><a href="https://www.pluralsight.com/courses/writing-clean-code-humans">Clean Code: Writing code for humans (Puralsight)</a></li>
</ul>
<ol start="10">
<li><a href="http://amzn.to/2oZJelu">Coders at Work - Peter Seibel</a></li>
</ol>
<h2>Honorable mentions</h2>
<ul>
<li><a href="http://amzn.to/2oC9iqd">Release it</a></li>
<li><a href="http://amzn.to/2nDiWEC">Design Patterns: Elements of Reusable Object-Oriented Software (Gang of Four)</a></li>
<li><a href="http://amzn.to/2oBY70M">Pragmatic Programmer</a></li>
<li><a href="http://amzn.to/2oC51TR">CODE - The Hidden Language of Computer Hardware and Software</a></li>
<li><a href="http://amzn.to/2o8NS3k">Soft Skills - John Sonmez</a></li>
<li><a href="http://amzn.to/2naeGkz">Deskbound - Kelly Starett</a>
<ul>
<li><a href="http://amzn.to/2oBYCYT">8 steps to a pain free back - Esther Gokhale</a></li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 17 Apr 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode Donn and Kaushik recommend 10 books on Software programming that they think every Android developer would greatly benefit from reading. These are books that helped them become better programmers and have had the most impact in their daily lives as Android developers.</p>
<h2>Show Notes</h2>
<ol>
<li><a href="http://amzn.to/2nDhCBs">Effective Java - Joshua Bloch</a></li>
</ol>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/effective-java/">Effective Java Items (Fragmented fragments)</a></li>
</ul>
<ol start="2">
<li><a href="http://amzn.to/2oHqFTK">Working effectively with legacy code - Michael Feathers</a></li>
<li><a href="http://amzn.to/2oBXrbK">Head first Design Patterns</a></li>
<li><a href="http://amzn.to/2oHsKPO">Don't make me think - Steve Krug, 3rd edition</a></li>
<li><a href="http://amzn.to/2oHqMPe">Java Concurrency in Practice</a></li>
<li><a href="http://amzn.to/2nDkkHd">XUnit testing patterns</a></li>
</ol>
<ul>
<li><a href="http://xunitpatterns.com/">Website xunitpatterns.com</a></li>
</ul>
<ol start="7">
<li><a href="http://amzn.to/2oBPgfu">Patterns of Enterprise Application Architecture - Martin Fowler</a></li>
<li><a href="http://amzn.to/2oBPi74">Javascript the good parts - Douglas Crockford</a></li>
</ol>
<ul>
<li><a href="https://www.destroyallsoftware.com/talks/wat">Gary Bernhardt - WAT</a></li>
</ul>
<ol start="9">
<li><a href="http://amzn.to/2oHzRYo">Clean Code - Robert.C.Martin</a></li>
</ol>
<ul>
<li><a href="https://www.pluralsight.com/courses/writing-clean-code-humans">Clean Code: Writing code for humans (Puralsight)</a></li>
</ul>
<ol start="10">
<li><a href="http://amzn.to/2oZJelu">Coders at Work - Peter Seibel</a></li>
</ol>
<h2>Honorable mentions</h2>
<ul>
<li><a href="http://amzn.to/2oC9iqd">Release it</a></li>
<li><a href="http://amzn.to/2nDiWEC">Design Patterns: Elements of Reusable Object-Oriented Software (Gang of Four)</a></li>
<li><a href="http://amzn.to/2oBY70M">Pragmatic Programmer</a></li>
<li><a href="http://amzn.to/2oC51TR">CODE - The Hidden Language of Computer Hardware and Software</a></li>
<li><a href="http://amzn.to/2o8NS3k">Soft Skills - John Sonmez</a></li>
<li><a href="http://amzn.to/2naeGkz">Deskbound - Kelly Starett</a>
<ul>
<li><a href="http://amzn.to/2oBYCYT">8 steps to a pain free back - Esther Gokhale</a></li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="39606933" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/cfecb12a-3aa2-4b32-a670-634d8cfe4c53/080-10-books-to-read_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>080: 10 Books Android developers should read</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/cfecb12a-3aa2-4b32-a670-634d8cfe4c53/3000x3000/1492219501-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:54:59</itunes:duration>
      <itunes:summary>In this episode Donn and Kaushik recommend 10 books on Software programming that they think every Android developer would greatly benefit from reading. These are books that helped them become better programmers and have had the most impact in their daily lives as Android developers.

Shownotes:  http://fragmentedpodcast.com/episodes/80/ </itunes:summary>
      <itunes:subtitle>In this episode Donn and Kaushik recommend 10 books on Software programming that they think every Android developer would greatly benefit from reading. These are books that helped them become better programmers and have had the most impact in their daily lives as Android developers.

Shownotes:  http://fragmentedpodcast.com/episodes/80/ </itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>80</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">01444fb5-1146-4534-8e32-b29f50d7552f</guid>
      <title>079: Interview with Etienne Caron</title>
      <description><![CDATA[<p>Have you ever thought about building VR (Virtual Reality) apps? Where do you start? How difficult is it? How similar is to Android development? Do you still code in Java? In this episode, Etienne Caron AndroidDev extraordinaire and expert VR hobbyist gets us up to speed on what you need to know, to start creating VR apps.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://engineering.shopify.com/blogs/engineering/tagged/virtual-reality">Shopify Engineering Blog (VR)</a></li>
<li><a href="https://en.wikipedia.org/wiki/Demoscene">Demoscene</a></li>
<li><a href="https://www.youtube.com/watch?v=9NoAQ1Ocvv4">Save a cat from a skyscraper (VR game)</a></li>
<li><a href="https://github.com/Rajawali/Rajawali">Rajawali - Android OpenGL engine</a></li>
<li><a href="https://caster.io/lessons/build-your-first-google-vr-app-in-ten-minutes/">Build your first Google VR app in 10 minutes : caster.io course</a></li>
<li><a href="https://developers.google.com/vr/android/get-started">developer docs on Google VR</a></li>
<li><a href="https://en.wikipedia.org/wiki/Unity_(game_engine)">Unity game engine</a></li>
<li><a href="https://en.wikipedia.org/wiki/Vulkan_(API)">Vulkan API (open GL)</a></li>
<li><a href="https://blog.jetbrains.com/dotnet/2016/01/13/project-rider-a-csharp-ide/">Project Rider - C# IDE</a></li>
<li><a href="https://www.shadertoy.com/">Shadertoy.com</a></li>
<li><a href="https://developer.apple.com/library/content/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/Introduction/Introduction.html">OpenGL ES Apple docs</a></li>
<li><a href="http://www.learnopengles.com/">Learn OpenGL ES.com</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/kanawish">@kanawish</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 10 Apr 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Have you ever thought about building VR (Virtual Reality) apps? Where do you start? How difficult is it? How similar is to Android development? Do you still code in Java? In this episode, Etienne Caron AndroidDev extraordinaire and expert VR hobbyist gets us up to speed on what you need to know, to start creating VR apps.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://engineering.shopify.com/blogs/engineering/tagged/virtual-reality">Shopify Engineering Blog (VR)</a></li>
<li><a href="https://en.wikipedia.org/wiki/Demoscene">Demoscene</a></li>
<li><a href="https://www.youtube.com/watch?v=9NoAQ1Ocvv4">Save a cat from a skyscraper (VR game)</a></li>
<li><a href="https://github.com/Rajawali/Rajawali">Rajawali - Android OpenGL engine</a></li>
<li><a href="https://caster.io/lessons/build-your-first-google-vr-app-in-ten-minutes/">Build your first Google VR app in 10 minutes : caster.io course</a></li>
<li><a href="https://developers.google.com/vr/android/get-started">developer docs on Google VR</a></li>
<li><a href="https://en.wikipedia.org/wiki/Unity_(game_engine)">Unity game engine</a></li>
<li><a href="https://en.wikipedia.org/wiki/Vulkan_(API)">Vulkan API (open GL)</a></li>
<li><a href="https://blog.jetbrains.com/dotnet/2016/01/13/project-rider-a-csharp-ide/">Project Rider - C# IDE</a></li>
<li><a href="https://www.shadertoy.com/">Shadertoy.com</a></li>
<li><a href="https://developer.apple.com/library/content/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/Introduction/Introduction.html">OpenGL ES Apple docs</a></li>
<li><a href="http://www.learnopengles.com/">Learn OpenGL ES.com</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/kanawish">@kanawish</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="53464896" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/2ad77346-5870-4e17-9d34-6587a3e7bde0/079-interview-w-etienne-caron_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>079: Interview with Etienne Caron</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/2ad77346-5870-4e17-9d34-6587a3e7bde0/3000x3000/1491688871-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:55:40</itunes:duration>
      <itunes:summary>Have you ever thought about building VR (Virtual Reality) apps? Where do you start? How difficult is it? How similar is to Android development? Do you still code in Java? In this episode, Etienne Caron AndroidDev extraordinaire and expert VR hobbyist gets us up to speed on what you need to know, to start creating VR apps.

Shownotes:  http://fragmentedpodcast.com/episodes/79/

</itunes:summary>
      <itunes:subtitle>Have you ever thought about building VR (Virtual Reality) apps? Where do you start? How difficult is it? How similar is to Android development? Do you still code in Java? In this episode, Etienne Caron AndroidDev extraordinaire and expert VR hobbyist gets us up to speed on what you need to know, to start creating VR apps.

Shownotes:  http://fragmentedpodcast.com/episodes/79/

</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>79</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">108b15a9-d620-4989-a1c8-c2dfd5e3380e</guid>
      <title>078: Ten Testing Strategies with Michael Bailey</title>
      <description><![CDATA[<p>In this episode, Donn sits down with fellow Android GDE, Michael Bailey to cover 10 testing strategies to help you get your application under test and to make sure your testing environment is top notch. They start off with the basics and then progress further down the testing rabbit hole eventually covering topics like cloud-based testing labs, hermetic testing and much much more. This episode will help provide you with a blueprint of how to get your Android app under test and get you to a level where you can develop your app with confidence.</p>
<h2>The Ten Tips</h2>
<ol>
<li>Use Espresso for functional/integration testing</li>
<li>Mock data and API endpoints to keep tests hermetic</li>
<li>Utilize JUnit JVM Tests and patterns for a fast dev cycle</li>
<li>Utilize a git branching strategy and utilize pull requests (PR's) for code reviews</li>
<li>Use CI to run the tests and provide constant feedback</li>
<li>Speed up testing and ease of testing with shell helpers and helper classes for testing</li>
<li>Cloud Testing Services</li>
<li>Mutation Testing</li>
<li>Thoughts on code coverage &amp; value based testing</li>
<li>Don't let flaky tests linger</li>
</ol>
<h2>Show Notes</h2>
<ul>
<li><a href="https://google.github.io/android-testing-support-library/docs/espresso/">Espresso</a></li>
<li><a href="http://wiremock.org/">Wiremock</a></li>
<li><a href="https://github.com/square/okhttp/tree/master/mockwebserver">MockWebServer</a></li>
<li><a href="https://caster.io/courses/mockwebserver/">MockWebServer Course on Caster.IO</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/054/">Git Branching Strategies Fragmented Episode</a></li>
<li><a href="https://firebase.google.com/docs/test-lab/">Firebase Test Lab</a></li>
<li><a href="https://www.xamarin.com/test-cloud">Xamarin Test Cloud</a></li>
<li><a href="https://aws.amazon.com/device-farm/">Amazon Device Farm</a></li>
<li><a href="https://www.genymotion.com/cloud/">Genymotion Cloud</a></li>
<li><a href="https://en.wikipedia.org/wiki/Mutation_testing">Mutation Testing</a></li>
<li><a href="http://pitest.org/">Pit Mutation Library</a></li>
<li><a href="http://nativewheel.house/">Michaels Podcast - Native Wheel House</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/yogurtearl">@yogurtearl</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 3 Apr 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn sits down with fellow Android GDE, Michael Bailey to cover 10 testing strategies to help you get your application under test and to make sure your testing environment is top notch. They start off with the basics and then progress further down the testing rabbit hole eventually covering topics like cloud-based testing labs, hermetic testing and much much more. This episode will help provide you with a blueprint of how to get your Android app under test and get you to a level where you can develop your app with confidence.</p>
<h2>The Ten Tips</h2>
<ol>
<li>Use Espresso for functional/integration testing</li>
<li>Mock data and API endpoints to keep tests hermetic</li>
<li>Utilize JUnit JVM Tests and patterns for a fast dev cycle</li>
<li>Utilize a git branching strategy and utilize pull requests (PR's) for code reviews</li>
<li>Use CI to run the tests and provide constant feedback</li>
<li>Speed up testing and ease of testing with shell helpers and helper classes for testing</li>
<li>Cloud Testing Services</li>
<li>Mutation Testing</li>
<li>Thoughts on code coverage &amp; value based testing</li>
<li>Don't let flaky tests linger</li>
</ol>
<h2>Show Notes</h2>
<ul>
<li><a href="https://google.github.io/android-testing-support-library/docs/espresso/">Espresso</a></li>
<li><a href="http://wiremock.org/">Wiremock</a></li>
<li><a href="https://github.com/square/okhttp/tree/master/mockwebserver">MockWebServer</a></li>
<li><a href="https://caster.io/courses/mockwebserver/">MockWebServer Course on Caster.IO</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/054/">Git Branching Strategies Fragmented Episode</a></li>
<li><a href="https://firebase.google.com/docs/test-lab/">Firebase Test Lab</a></li>
<li><a href="https://www.xamarin.com/test-cloud">Xamarin Test Cloud</a></li>
<li><a href="https://aws.amazon.com/device-farm/">Amazon Device Farm</a></li>
<li><a href="https://www.genymotion.com/cloud/">Genymotion Cloud</a></li>
<li><a href="https://en.wikipedia.org/wiki/Mutation_testing">Mutation Testing</a></li>
<li><a href="http://pitest.org/">Pit Mutation Library</a></li>
<li><a href="http://nativewheel.house/">Michaels Podcast - Native Wheel House</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/yogurtearl">@yogurtearl</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="41769150" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/474eb635-be88-4668-927f-d46d19bf2a01/078-michaelbailey_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>078: Ten Testing Strategies with Michael Bailey</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/474eb635-be88-4668-927f-d46d19bf2a01/3000x3000/1490997592-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:43:29</itunes:duration>
      <itunes:summary>In this episode, Donn sits down with fellow Android GDE, Michael Bailey to cover 10 testing strategies to help you get your application under test and to make sure your testing environment is top notch. They start off with the basics and then progress further down the testing rabbit hole eventually covering topics like cloud-based testing labs, hermetic testing and much much more. This episode will help provide you with a blueprint of how to get your Android app under test and get you to a level where you can develop your app with confidence.</itunes:summary>
      <itunes:subtitle>In this episode, Donn sits down with fellow Android GDE, Michael Bailey to cover 10 testing strategies to help you get your application under test and to make sure your testing environment is top notch. They start off with the basics and then progress further down the testing rabbit hole eventually covering topics like cloud-based testing labs, hermetic testing and much much more. This episode will help provide you with a blueprint of how to get your Android app under test and get you to a level where you can develop your app with confidence.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>78</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">ab1c6fd0-f6ed-4cbc-9e74-f19675b8f775</guid>
      <title>077: Chatting ADB with Genymotion&apos;s Eyal Lezmy</title>
      <description><![CDATA[<p>Today on Fragmented, we talk to Eyal Lezmy. Eyal works as an Android developer for Genymotion. While working for Genymotion he had to deal with the Android Debug Bridge a whole bunch, so in this episode we dive into the details of ADB, some super slick commands and in general just get a better understanding of this tool we use every single day.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://www.genymotion.com/">Genymotion</a></li>
<li><a href="https://developer.android.com/studio/command-line/adb.html">ADB - Android Debug Bridge</a></li>
<li><a href="https://www.youtube.com/watch?v=dzx81sAKylg">Droidcon NYC - ADB, Break On Through To the Other Side</a></li>
<li><a href="http://www.androidcentral.com/look-back-google-sooner-first-android-phone">HTC Sooner (juicy non-developer article alert)</a></li>
<li><a href="https://github.com/JakeWharton/pidcat">pidcat (adb logcat tool)</a></li>
<li><a href="https://github.com/pbreault/adb-idea">Phillipe's ADB IDEA plugin</a></li>
<li><a href="https://caster.io/lessons/enabling-fingerprint-on-the-android-emulator/">Caster IO - Enabling Fingerprint on the Android emulator</a></li>
</ul>
<h2>helpful commands</h2>
<pre><code> adb shell input text &quot;keyboard text&quot;
 adb exec-out run-as package.name cat databases/file &gt; file
 adb shell &quot;run-as package.name chmod 666 /data/data/package.name/databases/file&quot;
</code></pre>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/eyal_lezmy">@eyal_lezmy</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 20 Mar 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Today on Fragmented, we talk to Eyal Lezmy. Eyal works as an Android developer for Genymotion. While working for Genymotion he had to deal with the Android Debug Bridge a whole bunch, so in this episode we dive into the details of ADB, some super slick commands and in general just get a better understanding of this tool we use every single day.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://www.genymotion.com/">Genymotion</a></li>
<li><a href="https://developer.android.com/studio/command-line/adb.html">ADB - Android Debug Bridge</a></li>
<li><a href="https://www.youtube.com/watch?v=dzx81sAKylg">Droidcon NYC - ADB, Break On Through To the Other Side</a></li>
<li><a href="http://www.androidcentral.com/look-back-google-sooner-first-android-phone">HTC Sooner (juicy non-developer article alert)</a></li>
<li><a href="https://github.com/JakeWharton/pidcat">pidcat (adb logcat tool)</a></li>
<li><a href="https://github.com/pbreault/adb-idea">Phillipe's ADB IDEA plugin</a></li>
<li><a href="https://caster.io/lessons/enabling-fingerprint-on-the-android-emulator/">Caster IO - Enabling Fingerprint on the Android emulator</a></li>
</ul>
<h2>helpful commands</h2>
<pre><code> adb shell input text &quot;keyboard text&quot;
 adb exec-out run-as package.name cat databases/file &gt; file
 adb shell &quot;run-as package.name chmod 666 /data/data/package.name/databases/file&quot;
</code></pre>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/eyal_lezmy">@eyal_lezmy</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="52414504" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/6514ec3f-4999-4af9-af22-bba4ab6d5bf3/077-eyal-lezmy_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>077: Chatting ADB with Genymotion&apos;s Eyal Lezmy</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/6514ec3f-4999-4af9-af22-bba4ab6d5bf3/3000x3000/1489790122-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:54:34</itunes:duration>
      <itunes:summary>Today on Fragmented, we talk to Eyal Lezmy. Eyal works as an Android developer for Genymotion. While working for Genymotion he had to deal with the Android Debug Bridge a whole bunch, so in this episode we dive into the details of ADB, some super slick commands and in general just get a better understanding of this tool we use every single day.

Shownotes: http://fragmentedpodcast.com/episodes/77</itunes:summary>
      <itunes:subtitle>Today on Fragmented, we talk to Eyal Lezmy. Eyal works as an Android developer for Genymotion. While working for Genymotion he had to deal with the Android Debug Bridge a whole bunch, so in this episode we dive into the details of ADB, some super slick commands and in general just get a better understanding of this tool we use every single day.

Shownotes: http://fragmentedpodcast.com/episodes/77</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>77</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">8627af41-e9ac-4358-bf76-8d20261a53d5</guid>
      <title>076: Taming the activity lifecycle with Kristin Marsicano</title>
      <description><![CDATA[<p>In this episode Kaushik talks to Kristin of Big Nerd Ranch. You would think that the Android lifecycle is pretty standard and basic stuff. But as Kristin begins to unpack the nuances of the Android lifecycle, we learn there's a world of details that's easy to miss. Listen on, to get an ironclad grip on the Activity lifecycle.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://www.bignerdranch.com/books/android-programming/">Android programming : The Big Nerd Ranch Guide</a></li>
<li><a href="https://realm.io/news/activities-in-the-wild-exploring-the-activity-lifecycle-android/">Activities in the Wild: Kristin at 360AnDev</a></li>
<li><a href="https://speakerdeck.com/kristinmars/activities-in-the-wild-exploring-the-activity-lifecycle-360-andev-july-2016?slide=106">Kristin's Lifecycle diagram (and slides)</a></li>
<li><a href="https://gist.github.com/kaushikgopal/5c1b029798b73c73193d">Notes on opportune moments to do &quot;stuff&quot; in the Android lifecycle</a></li>
<li><a href="https://www.bignerdranch.com/blog/android-activity-lifecycle-onStop/">Kristin's follow up blog post to the Activity<br />
lifecycle</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/kristinmars">@kristinmars</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 13 Mar 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode Kaushik talks to Kristin of Big Nerd Ranch. You would think that the Android lifecycle is pretty standard and basic stuff. But as Kristin begins to unpack the nuances of the Android lifecycle, we learn there's a world of details that's easy to miss. Listen on, to get an ironclad grip on the Activity lifecycle.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://www.bignerdranch.com/books/android-programming/">Android programming : The Big Nerd Ranch Guide</a></li>
<li><a href="https://realm.io/news/activities-in-the-wild-exploring-the-activity-lifecycle-android/">Activities in the Wild: Kristin at 360AnDev</a></li>
<li><a href="https://speakerdeck.com/kristinmars/activities-in-the-wild-exploring-the-activity-lifecycle-360-andev-july-2016?slide=106">Kristin's Lifecycle diagram (and slides)</a></li>
<li><a href="https://gist.github.com/kaushikgopal/5c1b029798b73c73193d">Notes on opportune moments to do &quot;stuff&quot; in the Android lifecycle</a></li>
<li><a href="https://www.bignerdranch.com/blog/android-activity-lifecycle-onStop/">Kristin's follow up blog post to the Activity<br />
lifecycle</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/kristinmars">@kristinmars</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="49966589" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/859fa7c7-a204-479a-93d6-f356f885e837/076-kristinm-interview_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>076: Taming the activity lifecycle with Kristin Marsicano</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/859fa7c7-a204-479a-93d6-f356f885e837/3000x3000/1489293199-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:52:01</itunes:duration>
      <itunes:summary>In this episode Kaushik talks to Kristin of Big Nerd Ranch. You would think that the Android lifecycle is pretty standard and basic stuff. But as Kristin begins to unpack the nuances of the Android lifecycle, we learn there&apos;s a world of details that&apos;s easy to miss. Listen on, to get an ironclad grip on the Activity lifecycle.

Show notes at http://fragmentedpodcast.com/episodes/76/</itunes:summary>
      <itunes:subtitle>In this episode Kaushik talks to Kristin of Big Nerd Ranch. You would think that the Android lifecycle is pretty standard and basic stuff. But as Kristin begins to unpack the nuances of the Android lifecycle, we learn there&apos;s a world of details that&apos;s easy to miss. Listen on, to get an ironclad grip on the Activity lifecycle.

Show notes at http://fragmentedpodcast.com/episodes/76/</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>76</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">86e9d0db-ddf5-4f41-b915-778d5bd48e82</guid>
      <title>075: Effective Java - Item #15</title>
      <description><![CDATA[<p>In this mini-Fragment episode, Donn talks about Item #15 of the Effective Java series - Minimize Mutability. You'll learn what mutable and immutable objects are, how and why immutability is a good thing and how you can implement it.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://ryanharter.com/blog/2016/03/22/autovalue/">Ryan Harter's Intro to AutoValue</a></li>
<li><a href="https://caster.io/courses/autovalue/?utm_source=fragmented_075">Caster.IO Course on AutoValue</a></li>
<li><a href="http://amzn.to/1RUCko3">Effective Java Book</a></li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="http://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="http://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="http://twitter.com/kaushikgopal">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Mon, 6 Mar 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this mini-Fragment episode, Donn talks about Item #15 of the Effective Java series - Minimize Mutability. You'll learn what mutable and immutable objects are, how and why immutability is a good thing and how you can implement it.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://ryanharter.com/blog/2016/03/22/autovalue/">Ryan Harter's Intro to AutoValue</a></li>
<li><a href="https://caster.io/courses/autovalue/?utm_source=fragmented_075">Caster.IO Course on AutoValue</a></li>
<li><a href="http://amzn.to/1RUCko3">Effective Java Book</a></li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="http://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="http://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="http://twitter.com/kaushikgopal">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="24699269" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/dd6469ac-fa5d-46d6-8cbf-a92bd3ae4ddc/075-effective-java-item15_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>075: Effective Java - Item #15</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/dd6469ac-fa5d-46d6-8cbf-a92bd3ae4ddc/3000x3000/1488673021-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:25:42</itunes:duration>
      <itunes:summary>In this mini-Fragment episode, Donn talks about Item #15 of the Effective Java series - Minimize Mutability. You&apos;ll learn what mutable and immutable objects are, how and why immutability is a good thing and how you can implement it.</itunes:summary>
      <itunes:subtitle>In this mini-Fragment episode, Donn talks about Item #15 of the Effective Java series - Minimize Mutability. You&apos;ll learn what mutable and immutable objects are, how and why immutability is a good thing and how you can implement it.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>75</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">f8e287ac-bd64-47d9-a525-73910b74dbd5</guid>
      <title>074: Ben Oberkfell talks Fingerprint API</title>
      <description><![CDATA[<p>It's almost a given these days that most phones will have Fingerprint APIs. But how does the hardware actually work? How does the Software work? How does an Android developer make use of these APIs? Ben Oberkfell breaks it down for us in great detail. Listen on!</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://play.google.com/store/apps/details?id=com.nytimes.crossword&amp;hl=en">NY Times Crossword app</a></li>
<li><a href="http://androidbackstage.blogspot.com/2015/11/episode-38-fingerprint.html">Chicken Wing test - ADB Ep 38</a></li>
<li><a href="https://source.android.com/compatibility/cdd.html">Android CDD - Compatibility Definition Document</a></li>
<li><a href="https://medium.com/@vrypan/explaining-public-key-cryptography-to-non-geeks-f0994b3c2d5#.vhcid82d">Explaining public/private encryptino</a></li>
<li><a href="https://blog.elcomsoft.com/2016/06/fingerprint-unlock-security-ios-vs-google-android-part-ii/">Android vs iOS fingerprint</a></li>
<li><a href="https://github.com/benoberkfell/android-fingerprint-demo">Ben's fingerprint demo app</a></li>
<li><a href="https://www.youtube.com/watch?v=JWMpvDWwdJY">Ben's Droidcon NYC 2016 presentation</a></li>
<li><a href="https://source.android.com/security/keystore/">Android hardware keystore</a></li>
<li><a href="https://www.apple.com/business/docs/iOS_Security_Guide.pdf">Apple's security whitepaper</a></li>
<li><a href="https://github.com/square/whorlwind">Whorlwind - Reactive fingerprint library courtesy Square</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/benlikestocode">@benlikestocode</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 20 Feb 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>It's almost a given these days that most phones will have Fingerprint APIs. But how does the hardware actually work? How does the Software work? How does an Android developer make use of these APIs? Ben Oberkfell breaks it down for us in great detail. Listen on!</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://play.google.com/store/apps/details?id=com.nytimes.crossword&amp;hl=en">NY Times Crossword app</a></li>
<li><a href="http://androidbackstage.blogspot.com/2015/11/episode-38-fingerprint.html">Chicken Wing test - ADB Ep 38</a></li>
<li><a href="https://source.android.com/compatibility/cdd.html">Android CDD - Compatibility Definition Document</a></li>
<li><a href="https://medium.com/@vrypan/explaining-public-key-cryptography-to-non-geeks-f0994b3c2d5#.vhcid82d">Explaining public/private encryptino</a></li>
<li><a href="https://blog.elcomsoft.com/2016/06/fingerprint-unlock-security-ios-vs-google-android-part-ii/">Android vs iOS fingerprint</a></li>
<li><a href="https://github.com/benoberkfell/android-fingerprint-demo">Ben's fingerprint demo app</a></li>
<li><a href="https://www.youtube.com/watch?v=JWMpvDWwdJY">Ben's Droidcon NYC 2016 presentation</a></li>
<li><a href="https://source.android.com/security/keystore/">Android hardware keystore</a></li>
<li><a href="https://www.apple.com/business/docs/iOS_Security_Guide.pdf">Apple's security whitepaper</a></li>
<li><a href="https://github.com/square/whorlwind">Whorlwind - Reactive fingerprint library courtesy Square</a></li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/benlikestocode">@benlikestocode</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="48225781" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/3b7e7046-e123-4b74-a59b-2c4c6de9442b/074-ben-fragmented-podcast_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>074: Ben Oberkfell talks Fingerprint API</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/3b7e7046-e123-4b74-a59b-2c4c6de9442b/3000x3000/1487475676-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:50:13</itunes:duration>
      <itunes:summary>It&apos;s almost a given these days that most phones will have Fingerprint APIs. But how does the hardware actually work? How does the Software work? How does an Android developer make use of these APIs? Ben Oberkfell breaks it down for us in great detail. Listen on!

Shownotes: http://fragmentedpodcast.com/episodes/74/</itunes:summary>
      <itunes:subtitle>It&apos;s almost a given these days that most phones will have Fingerprint APIs. But how does the hardware actually work? How does the Software work? How does an Android developer make use of these APIs? Ben Oberkfell breaks it down for us in great detail. Listen on!

Shownotes: http://fragmentedpodcast.com/episodes/74/</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>74</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">b736b5a1-3eb5-43e9-9439-8641122e2d5c</guid>
      <title>073: Effective Java - Item #14</title>
      <description><![CDATA[<p>In this mini-Fragment episode, Donn talks about Item #14 of the Effective Java series - In public classes, use accessor methods, not public fields. You'll learn why it's important to use accessors in your public classes and some caveats to this rule.</p>
<p>For example, you may decide that the class is a private inner class or package private. Donn digs into the details in this week's episode. This is a glimpse of what's to come in Item #15, which is coming soon...</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html">Java Access Control</a></li>
<li><a href="http://amzn.to/1RUCko3">Effective Java Book</a></li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="http://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="http://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="http://twitter.com/kaushikgopal">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Mon, 13 Feb 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this mini-Fragment episode, Donn talks about Item #14 of the Effective Java series - In public classes, use accessor methods, not public fields. You'll learn why it's important to use accessors in your public classes and some caveats to this rule.</p>
<p>For example, you may decide that the class is a private inner class or package private. Donn digs into the details in this week's episode. This is a glimpse of what's to come in Item #15, which is coming soon...</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html">Java Access Control</a></li>
<li><a href="http://amzn.to/1RUCko3">Effective Java Book</a></li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="http://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="http://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="http://twitter.com/kaushikgopal">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="11766768" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/9e212b0c-b934-4943-bbaa-e8ba627228f1/073-effectivejavaitem14_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>073: Effective Java - Item #14</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/9e212b0c-b934-4943-bbaa-e8ba627228f1/3000x3000/1486862491-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:12:14</itunes:duration>
      <itunes:summary>In this mini-Fragment episode, Donn talks about Item #14 of the Effective Java series - In public classes, use accessor methods, not public fields. You&apos;ll learn why it&apos;s important to use accessors in your public classes and some caveats to this rule.</itunes:summary>
      <itunes:subtitle>In this mini-Fragment episode, Donn talks about Item #14 of the Effective Java series - In public classes, use accessor methods, not public fields. You&apos;ll learn why it&apos;s important to use accessors in your public classes and some caveats to this rule.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>73</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">284b24a6-dbb8-44af-9978-f093dc0b9080</guid>
      <title>072: App Shortcuts with Andrew Orobator</title>
      <description><![CDATA[<p>In this episode, we talk to Android developer Andrew Orobator. He gives us the lowdown on the new feature App Shortcuts that was introduced in Android. We talk about static and dynamic shortcuts, use cases for other shortcuts and how to implement them for your app. We also cover what the feature lacks and things to watch out for, while implementing them. Listen on!</p>
<p>Fragmented also has spanking new music from the super talented Blueprint: you can find out more at info@printmatic.net.</p>
<p><a href="https://audio.simplecast.com/59649.mp3">Download directly</a></p>
<h2>Show Notes</h2>
<h3>Andrew's Medium posts</h3>
<ul>
<li><a href="https://medium.com/@andreworobator/taking-control-of-your-music-playback-experience-ed4c6a30c85#.d6flbdrfz">Introducing Auracle: A queue based music player: Andrew's new music player</a></li>
<li><a href="https://medium.com/@andreworobator/implementing-android-app-shortcuts-74feb524959b">Implementing Android App shortcuts</a></li>
<li><a href="https://medium.com/@andreworobator">Andrew's medium posts</a></li>
<li><a href="https://techbeacon.com/best-productivity-tools-android-developers">Best productivity tools for Android developers</a> (another article Andrew wrote)</li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://developer.android.com/shareables/design/app-shortcuts-design-guidelines.pdf">App shortcuts design guidelines</a></li>
<li><a href="https://github.com/AOrobator/Konstellations">Konstellation</a> (Kotlin demo app using App Shortcuts)</li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/aorobator">@aorobator</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 6 Feb 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, we talk to Android developer Andrew Orobator. He gives us the lowdown on the new feature App Shortcuts that was introduced in Android. We talk about static and dynamic shortcuts, use cases for other shortcuts and how to implement them for your app. We also cover what the feature lacks and things to watch out for, while implementing them. Listen on!</p>
<p>Fragmented also has spanking new music from the super talented Blueprint: you can find out more at info@printmatic.net.</p>
<p><a href="https://audio.simplecast.com/59649.mp3">Download directly</a></p>
<h2>Show Notes</h2>
<h3>Andrew's Medium posts</h3>
<ul>
<li><a href="https://medium.com/@andreworobator/taking-control-of-your-music-playback-experience-ed4c6a30c85#.d6flbdrfz">Introducing Auracle: A queue based music player: Andrew's new music player</a></li>
<li><a href="https://medium.com/@andreworobator/implementing-android-app-shortcuts-74feb524959b">Implementing Android App shortcuts</a></li>
<li><a href="https://medium.com/@andreworobator">Andrew's medium posts</a></li>
<li><a href="https://techbeacon.com/best-productivity-tools-android-developers">Best productivity tools for Android developers</a> (another article Andrew wrote)</li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://developer.android.com/shareables/design/app-shortcuts-design-guidelines.pdf">App shortcuts design guidelines</a></li>
<li><a href="https://github.com/AOrobator/Konstellations">Konstellation</a> (Kotlin demo app using App Shortcuts)</li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="https://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/aorobator">@aorobator</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="38382011" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/ccfc3fb4-970c-4294-8ac7-3d60bb020d8f/072-andrew-orobator_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>072: App Shortcuts with Andrew Orobator</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/ccfc3fb4-970c-4294-8ac7-3d60bb020d8f/3000x3000/1486346582-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:39:57</itunes:duration>
      <itunes:summary>In this episode, we talk to Android developer Andrew Orobator. He gives us the lowdown on the new feature App Shortcuts that was introduced in Android. We talk about static and dynamic shortcuts, use cases for other shortcuts and how to implement them for your app. We also cover what the feature lacks and things to watch out for, while implementing them. Listen on! 

Fragmented also has spanking new music from the super talented Blueprint: you can find out more at info@printmatic.net.

Shownotes: http://fragmentedpodcast.com/episodes/72/</itunes:summary>
      <itunes:subtitle>In this episode, we talk to Android developer Andrew Orobator. He gives us the lowdown on the new feature App Shortcuts that was introduced in Android. We talk about static and dynamic shortcuts, use cases for other shortcuts and how to implement them for your app. We also cover what the feature lacks and things to watch out for, while implementing them. Listen on! 

Fragmented also has spanking new music from the super talented Blueprint: you can find out more at info@printmatic.net.

Shownotes: http://fragmentedpodcast.com/episodes/72/</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>72</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">f64bd515-7b83-4f93-abea-aadd92bc32be</guid>
      <title>071: Interview with Raveesh Bhalla</title>
      <description><![CDATA[<p>In this episode we change the tune and talk with Raveesh Bhalla; Raveesh is a GDE for design specialized in UI/UX.</p>
<p>He starts off by helping us get a good understanding of what UI/UX involves. He then shares his experiences and learnings from having conducted extensive research specifically for Android. What are some good patterns today, what are anti-patterns, what should we watch out for. Listen on to find out more!</p>
<h2>Show Notes</h2>
<h3>Apps with interesting designs</h3>
<ul>
<li><a href="https://en.todoist.com/android">Todoist (Karma points)</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.foursquare.robin&amp;hl=en">Swarm</a></li>
<li><a href="https://www.enki.com/">Enki</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.fastfilmz.android&amp;hl=en">Fastfilmz</a></li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://medium.com/facebook-research/embarking-on-international-research-a485cc160f22#.ahwt864xp">Facebook research medium post: Embarking on international research</a></li>
<li><a href="https://www.amazon.com/Rocket-Surgery-Made-Easy-Yourself/dp/0321657292">Rocket Surgery Made Easy: The Do-It-Yourself Guide to Finding and Fixing Usability Problems</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.UCMobile.intl&amp;hl=en">UC Mobile browser app</a></li>
<li><a href="http://www.gv.com/sprint/">Google Ventures : The design sprint</a></li>
</ul>
<h2>Sponsor</h2>
<p><a href="http://buddybuild.com/?ref=fragmented012317">BuddyBuild</a> is a continuous integration and continuous deployment system built specifically for mobile developers. Thousands of development teams love BuddyBuild because it's the fastest way to build, distribute and gather feedback for their apps. Give it a try for FREE at <a href="http://buddybuild.com/?ref=fragmented012317">buddybuild.com</a></p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/raveeshbhalla">@raveeshbhalla</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 23 Jan 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode we change the tune and talk with Raveesh Bhalla; Raveesh is a GDE for design specialized in UI/UX.</p>
<p>He starts off by helping us get a good understanding of what UI/UX involves. He then shares his experiences and learnings from having conducted extensive research specifically for Android. What are some good patterns today, what are anti-patterns, what should we watch out for. Listen on to find out more!</p>
<h2>Show Notes</h2>
<h3>Apps with interesting designs</h3>
<ul>
<li><a href="https://en.todoist.com/android">Todoist (Karma points)</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.foursquare.robin&amp;hl=en">Swarm</a></li>
<li><a href="https://www.enki.com/">Enki</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.fastfilmz.android&amp;hl=en">Fastfilmz</a></li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://medium.com/facebook-research/embarking-on-international-research-a485cc160f22#.ahwt864xp">Facebook research medium post: Embarking on international research</a></li>
<li><a href="https://www.amazon.com/Rocket-Surgery-Made-Easy-Yourself/dp/0321657292">Rocket Surgery Made Easy: The Do-It-Yourself Guide to Finding and Fixing Usability Problems</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.UCMobile.intl&amp;hl=en">UC Mobile browser app</a></li>
<li><a href="http://www.gv.com/sprint/">Google Ventures : The design sprint</a></li>
</ul>
<h2>Sponsor</h2>
<p><a href="http://buddybuild.com/?ref=fragmented012317">BuddyBuild</a> is a continuous integration and continuous deployment system built specifically for mobile developers. Thousands of development teams love BuddyBuild because it's the fastest way to build, distribute and gather feedback for their apps. Give it a try for FREE at <a href="http://buddybuild.com/?ref=fragmented012317">buddybuild.com</a></p>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/raveeshbhalla">@raveeshbhalla</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="47479728" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/2efcc263-d7c3-44e6-920a-2461e843f81f/071interview-with-raveesh-bhalla_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>071: Interview with Raveesh Bhalla</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/2efcc263-d7c3-44e6-920a-2461e843f81f/3000x3000/1485138965-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:49:26</itunes:duration>
      <itunes:summary>In this episode we change the tune and talk with Raveesh Bhalla; Raveesh is a GDE for design specialized in UI/UX.

He starts off by helping us get a good understanding of what UI/UX involves. He then shares his experiences and learnings from having conducted extensive research specifically for Android. What are some good patterns today, what are anti-patterns, what should we watch out for. Listen on to find out more!

Show notes: http://fragmentedpodcast.com/episodes/71/</itunes:summary>
      <itunes:subtitle>In this episode we change the tune and talk with Raveesh Bhalla; Raveesh is a GDE for design specialized in UI/UX.

He starts off by helping us get a good understanding of what UI/UX involves. He then shares his experiences and learnings from having conducted extensive research specifically for Android. What are some good patterns today, what are anti-patterns, what should we watch out for. Listen on to find out more!

Show notes: http://fragmentedpodcast.com/episodes/71/</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>71</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">e015aa54-1631-43c9-9c42-db06466fd101</guid>
      <title>070: An honest discussion about Realm</title>
      <description><![CDATA[<p>In this episode Donn and Kaushik have an honest discussion about Realm (a client side database). Donn has worked pretty extensively with Realm and even consulted for their Android platform previously. But Kaushik has only recently tried it out on a production app.</p>
<p>In this episode they have an honest and frank discussion about using Realm, the advantages, the disadvantages, the gotchas and if it makes sense to use a database like Realm as an Android developer today.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/27/">Fragmented episode with Realm Android developer Christian Melchior </a></li>
<li><a href="https://github.com/square/sqlbrite">Sqlbrite by Square (Reactive SQLiteOpenHelper wrapper)</a></li>
<li><a href="https://engineering.pushtorefresh.com/2015/07/02/storio-modern-replacement-for-sqlitedatabase-and-contentresolver-apis/">StorIO: wrapper for SQLite or ContentResolver</a></li>
</ul>
<p>###Sponsor</p>
<ul>
<li><a href="http://buddybuild.com/?ref=fragmented012317">BuddyBuild</a> is a continuous integration and continuous deployment system built specifically for mobile developers. Thousands of development teams love buddybuild because it's the fastest way to build, distribute and gather feedback for their apps. Give it a try for FREE at <a href="http://buddybuild.com/?ref=fragmented012317">BuddyBuild.com</a></li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://realm.io/docs/java/latest/#auto-updating-objects">Feature: auto updating objects</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/064/">Fragmented episode on GC vs Reference counting</a></li>
<li><a href="https://github.com/realm/realm-java/tree/master/examples/rxJavaExample">Realm RxExample</a></li>
<li><a href="https://www2.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-1.pdf">The problem with Threads - Edward Lee</a></li>
</ul>
<h3>Sync stuff</h3>
<ul>
<li><a href="https://realm.io/products/realm-mobile-platform/">Realm Mobile platform</a></li>
<li><a href="http://inessential.com/vespersyncdiary">Building a sync engine (Vesper Sync diary)</a></li>
</ul>
<h3>Github issues tracked on Realm</h3>
<ul>
<li><a href="https://github.com/realm/realm-java/issues/1129">Request: Compound primary key support</a></li>
<li><a href="https://github.com/realm/realm-java/issues/2538">Request: Value object support</a></li>
<li><a href="https://github.com/realm/realm-java/issues/1470">Request: Custom column names</a></li>
<li><a href="https://github.com/realm/realm-java/issues/931">Feature: Copy from Realm</a></li>
</ul>
<h3>Resources</h3>
<ul>
<li><a href="https://realm.io/docs/java/latest/">Latest Realm docs</a></li>
<li><a href="https://caster.io/tag/realm-course/">Caster.io series for Realm</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 16 Jan 2017 07:02:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode Donn and Kaushik have an honest discussion about Realm (a client side database). Donn has worked pretty extensively with Realm and even consulted for their Android platform previously. But Kaushik has only recently tried it out on a production app.</p>
<p>In this episode they have an honest and frank discussion about using Realm, the advantages, the disadvantages, the gotchas and if it makes sense to use a database like Realm as an Android developer today.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/27/">Fragmented episode with Realm Android developer Christian Melchior </a></li>
<li><a href="https://github.com/square/sqlbrite">Sqlbrite by Square (Reactive SQLiteOpenHelper wrapper)</a></li>
<li><a href="https://engineering.pushtorefresh.com/2015/07/02/storio-modern-replacement-for-sqlitedatabase-and-contentresolver-apis/">StorIO: wrapper for SQLite or ContentResolver</a></li>
</ul>
<p>###Sponsor</p>
<ul>
<li><a href="http://buddybuild.com/?ref=fragmented012317">BuddyBuild</a> is a continuous integration and continuous deployment system built specifically for mobile developers. Thousands of development teams love buddybuild because it's the fastest way to build, distribute and gather feedback for their apps. Give it a try for FREE at <a href="http://buddybuild.com/?ref=fragmented012317">BuddyBuild.com</a></li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://realm.io/docs/java/latest/#auto-updating-objects">Feature: auto updating objects</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/064/">Fragmented episode on GC vs Reference counting</a></li>
<li><a href="https://github.com/realm/realm-java/tree/master/examples/rxJavaExample">Realm RxExample</a></li>
<li><a href="https://www2.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-1.pdf">The problem with Threads - Edward Lee</a></li>
</ul>
<h3>Sync stuff</h3>
<ul>
<li><a href="https://realm.io/products/realm-mobile-platform/">Realm Mobile platform</a></li>
<li><a href="http://inessential.com/vespersyncdiary">Building a sync engine (Vesper Sync diary)</a></li>
</ul>
<h3>Github issues tracked on Realm</h3>
<ul>
<li><a href="https://github.com/realm/realm-java/issues/1129">Request: Compound primary key support</a></li>
<li><a href="https://github.com/realm/realm-java/issues/2538">Request: Value object support</a></li>
<li><a href="https://github.com/realm/realm-java/issues/1470">Request: Custom column names</a></li>
<li><a href="https://github.com/realm/realm-java/issues/931">Feature: Copy from Realm</a></li>
</ul>
<h3>Resources</h3>
<ul>
<li><a href="https://realm.io/docs/java/latest/">Latest Realm docs</a></li>
<li><a href="https://caster.io/tag/realm-course/">Caster.io series for Realm</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="56385706" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/50645e76-77d4-4d51-abe6-395c86b49535/070_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>070: An honest discussion about Realm</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/50645e76-77d4-4d51-abe6-395c86b49535/3000x3000/1484506106-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:18:17</itunes:duration>
      <itunes:summary>In this episode Donn and Kaushik have an honest discussion about Realm (a client side database). Donn has worked pretty extensively with Realm and even consulted for their Android platform previously. But Kaushik has only recently dove deeply and tried it out for a production app.

In this episode they have an honest and frank discussion about using Realm, the advantages, the disadvantages, the gotchas and if it makes sense to use a database like Realm as an Android developer today.

Shownotes: fragmentedpodcast.com/episodes/70</itunes:summary>
      <itunes:subtitle>In this episode Donn and Kaushik have an honest discussion about Realm (a client side database). Donn has worked pretty extensively with Realm and even consulted for their Android platform previously. But Kaushik has only recently dove deeply and tried it out for a production app.

In this episode they have an honest and frank discussion about using Realm, the advantages, the disadvantages, the gotchas and if it makes sense to use a database like Realm as an Android developer today.

Shownotes: fragmentedpodcast.com/episodes/70</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>70</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">4da67984-b0c1-4010-9f76-9e2b154a36af</guid>
      <title>069: Talking Buck with Uber engineer Gautam Korlam (part 2)</title>
      <description><![CDATA[<p>We're back with part 2 of our Buck episode. We continue our chat with Uber Engineer, Gautam. We dive into the details of how buck is used, how you can use it and how it can help you and your team. Learn about how to use it with Gradle and more with OkBuck.</p>
<h2>Show Notes</h2>
<h3>Build systems</h3>
<ul>
<li><a href="https://buckbuild.com/about/overview.html">Buck overview (Facebook/Uber)</a></li>
<li><a href="https://www.bazel.io/">Bazel (Google)</a></li>
<li><a href="http://www.pantsbuild.org/">Pants (Twitter)</a></li>
<li><a href="https://github.com/kageiit/android-studio-gradle-test">Android test app comparing different build systems</a> [github.com]</li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://github.com/uber/okbuck">okBuck (adopting Buck easily)</a> [github.com]</li>
<li><a href="https://buckbuild.com/article/exopackage.html">Buck - Exopackage</a></li>
<li><a href="https://facebook.github.io/watchman/docs/install.html">Watchman</a></li>
</ul>
<h3>Resources</h3>
<ul>
<li><a href="https://buckbuild.com/concept/what_makes_buck_so_fast.html">What makes Buck so fast</a></li>
<li><a href="https://www.youtube.com/watch?v=j6CiHlapado">Gautam's talk on okBuck at Droidcon NYC</a> [youtube.com] (<a href="https://speakerdeck.com/kageiit/lightning-fast-android-builds-with-gradle-plus-buck">Slides</a>)</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/kageiit">@kageiit</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 9 Jan 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>We're back with part 2 of our Buck episode. We continue our chat with Uber Engineer, Gautam. We dive into the details of how buck is used, how you can use it and how it can help you and your team. Learn about how to use it with Gradle and more with OkBuck.</p>
<h2>Show Notes</h2>
<h3>Build systems</h3>
<ul>
<li><a href="https://buckbuild.com/about/overview.html">Buck overview (Facebook/Uber)</a></li>
<li><a href="https://www.bazel.io/">Bazel (Google)</a></li>
<li><a href="http://www.pantsbuild.org/">Pants (Twitter)</a></li>
<li><a href="https://github.com/kageiit/android-studio-gradle-test">Android test app comparing different build systems</a> [github.com]</li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://github.com/uber/okbuck">okBuck (adopting Buck easily)</a> [github.com]</li>
<li><a href="https://buckbuild.com/article/exopackage.html">Buck - Exopackage</a></li>
<li><a href="https://facebook.github.io/watchman/docs/install.html">Watchman</a></li>
</ul>
<h3>Resources</h3>
<ul>
<li><a href="https://buckbuild.com/concept/what_makes_buck_so_fast.html">What makes Buck so fast</a></li>
<li><a href="https://www.youtube.com/watch?v=j6CiHlapado">Gautam's talk on okBuck at Droidcon NYC</a> [youtube.com] (<a href="https://speakerdeck.com/kageiit/lightning-fast-android-builds-with-gradle-plus-buck">Slides</a>)</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/kageiit">@kageiit</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="26040932" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/c6a91644-24c7-4d7a-ae3a-b30a1b20d2a1/069-interview-part-2_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>069: Talking Buck with Uber engineer Gautam Korlam (part 2)</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/c6a91644-24c7-4d7a-ae3a-b30a1b20d2a1/3000x3000/1483470785-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:27:06</itunes:duration>
      <itunes:summary>We&apos;re back with part 2 of our Buck episode. We continue our chat with Uber Engineer, Gautam. We dive into the details of how buck is used, how you can use it and how it can help you and your team. Learn about how to use it with Gradle and more with OkBuck. </itunes:summary>
      <itunes:subtitle>We&apos;re back with part 2 of our Buck episode. We continue our chat with Uber Engineer, Gautam. We dive into the details of how buck is used, how you can use it and how it can help you and your team. Learn about how to use it with Gradle and more with OkBuck. </itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>69</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">7992965f-4f2a-4449-9243-620ecb97664c</guid>
      <title>068: Talking Buck with Uber engineer Gautam Korlam</title>
      <description><![CDATA[<p>We kick off 2017 talking to Uber Engineer Gautam. In first part of this 2 part series, Gautam talks to us about the Uber Android app, the complexity in the architecture, the scaling challenges, the pain points Android developers faced working on such a massive app.</p>
<p>He then goes on to explain how his team (Android Developer Experience) at Uber have approached these challenges and come up with elegant solutions.</p>
<p>We then dive head deep into Buck - the build system for Android development, it's advantages and the benefits that the folks at Uber have observed having migrated.</p>
<h2>Show Notes</h2>
<h3>Build systems</h3>
<ul>
<li><a href="https://buckbuild.com/about/overview.html">Buck overview (Facebook/Uber)</a></li>
<li><a href="https://www.bazel.io/">Bazel (Google)</a></li>
<li><a href="http://www.pantsbuild.org/">Pants (Twitter)</a></li>
<li><a href="https://github.com/kageiit/android-studio-gradle-test">Android test app comparing different build systems</a> [github.com]</li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://github.com/uber/okbuck">okBuck (adopting Buck easily)</a> [github.com]</li>
<li><a href="https://buckbuild.com/article/exopackage.html">Buck - Exopackage</a></li>
<li><a href="https://facebook.github.io/watchman/docs/install.html">Watchman</a></li>
</ul>
<h3>Resources</h3>
<ul>
<li><a href="https://buckbuild.com/concept/what_makes_buck_so_fast.html">What makes Buck so fast</a></li>
<li><a href="https://www.youtube.com/watch?v=j6CiHlapado">Gautam's talk on okBuck at Droidcon NYC</a> [youtube.com] (<a href="https://speakerdeck.com/kageiit/lightning-fast-android-builds-with-gradle-plus-buck">Slides</a>)</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/kageiit">@kageiit</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 2 Jan 2017 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>We kick off 2017 talking to Uber Engineer Gautam. In first part of this 2 part series, Gautam talks to us about the Uber Android app, the complexity in the architecture, the scaling challenges, the pain points Android developers faced working on such a massive app.</p>
<p>He then goes on to explain how his team (Android Developer Experience) at Uber have approached these challenges and come up with elegant solutions.</p>
<p>We then dive head deep into Buck - the build system for Android development, it's advantages and the benefits that the folks at Uber have observed having migrated.</p>
<h2>Show Notes</h2>
<h3>Build systems</h3>
<ul>
<li><a href="https://buckbuild.com/about/overview.html">Buck overview (Facebook/Uber)</a></li>
<li><a href="https://www.bazel.io/">Bazel (Google)</a></li>
<li><a href="http://www.pantsbuild.org/">Pants (Twitter)</a></li>
<li><a href="https://github.com/kageiit/android-studio-gradle-test">Android test app comparing different build systems</a> [github.com]</li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://github.com/uber/okbuck">okBuck (adopting Buck easily)</a> [github.com]</li>
<li><a href="https://buckbuild.com/article/exopackage.html">Buck - Exopackage</a></li>
<li><a href="https://facebook.github.io/watchman/docs/install.html">Watchman</a></li>
</ul>
<h3>Resources</h3>
<ul>
<li><a href="https://buckbuild.com/concept/what_makes_buck_so_fast.html">What makes Buck so fast</a></li>
<li><a href="https://www.youtube.com/watch?v=j6CiHlapado">Gautam's talk on okBuck at Droidcon NYC</a> [youtube.com] (<a href="https://speakerdeck.com/kageiit/lightning-fast-android-builds-with-gradle-plus-buck">Slides</a>)</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/kageiit">@kageiit</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="21627597" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/a25ff481-4c31-4150-80c9-40bcfb2e1379/068-interview-w-gautam_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>068: Talking Buck with Uber engineer Gautam Korlam</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/a25ff481-4c31-4150-80c9-40bcfb2e1379/3000x3000/1483300168-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:30:00</itunes:duration>
      <itunes:summary>
We kick off 2017 talking to Uber Engineer Gautam. In first part of this 2 part series, Gautam talks to us about the Uber Android app, the complexity in the architecture, the scaling challenges, the pain points Android developers faced working on such a massive app.

He then goes on to explain how his team (Android Developer Experience) at Uber have approached these challenges and come up with elegant solutions.

We then dive head deep into Buck - the build system for Android development, it&apos;s advantages and the benefits that the folks at Uber have observed having migrated.

Shownotes:  http://fragmentedpodcast.com/episodes/68</itunes:summary>
      <itunes:subtitle>
We kick off 2017 talking to Uber Engineer Gautam. In first part of this 2 part series, Gautam talks to us about the Uber Android app, the complexity in the architecture, the scaling challenges, the pain points Android developers faced working on such a massive app.

He then goes on to explain how his team (Android Developer Experience) at Uber have approached these challenges and come up with elegant solutions.

We then dive head deep into Buck - the build system for Android development, it&apos;s advantages and the benefits that the folks at Uber have observed having migrated.

Shownotes:  http://fragmentedpodcast.com/episodes/68</itunes:subtitle>
      <itunes:keywords>buck, okbuck, uber, android, gradle, bazel</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>68</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">32b4d877-5b00-483d-8a39-3b103d9a3969</guid>
      <title>067: Cross platform development with Xamarin cofounder Joseph Hill</title>
      <description><![CDATA[<p>In this episode, Donn talks with Xamarin cofounder on how one can use Xamarin for Android development.</p>
<p>They start off chatting about using Xamarin just for business logic sharing. This Joseph tells us was the original intention for use. They also touch on Xamarin forms which allows you to additionally build UI elements cross platform.</p>
<p>Even if you don't use Xamarin or plan to use Xamarin right away, this was a fantastic insight into the platform, from the creators directly. They touch on advantages, how to really leverage the platform and potential downsides.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://www.xamarin.com/platform">Xamarin</a></li>
<li><a href="https://developer.xamarin.com/guides/android/">Developer guides</a> (Joseph mentioned they're particularly proud of this one)</li>
<li><a href="https://www.xamarin.com/university">Xamarin University</a></li>
<li><a href="https://www.visualstudio.com/vs/android/#downloadvs">Download Visual Studio</a></li>
<li><a href="https://www.xamarin.com/forms">Xamarin Forms</a></li>
</ul>
<h3>Apps using Xamarin for Code sharing</h3>
<ul>
<li><a href="https://play.google.com/store/apps/details?id=com.alaskaairlines.android">Alaska Airlines</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.outback.tampa">Outback steakhouse</a></li>
</ul>
<h3>Notable alternatives:</h3>
<ul>
<li><a href="https://cordova.apache.org/">Cordova</a></li>
<li><a href="http://facebook.github.io/react-native/">React Native</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/josephhill">@josephhill</a> and <a href="mailto:jhill@microsoft.com">jhill@microsoft</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 19 Dec 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Donn talks with Xamarin cofounder on how one can use Xamarin for Android development.</p>
<p>They start off chatting about using Xamarin just for business logic sharing. This Joseph tells us was the original intention for use. They also touch on Xamarin forms which allows you to additionally build UI elements cross platform.</p>
<p>Even if you don't use Xamarin or plan to use Xamarin right away, this was a fantastic insight into the platform, from the creators directly. They touch on advantages, how to really leverage the platform and potential downsides.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://www.xamarin.com/platform">Xamarin</a></li>
<li><a href="https://developer.xamarin.com/guides/android/">Developer guides</a> (Joseph mentioned they're particularly proud of this one)</li>
<li><a href="https://www.xamarin.com/university">Xamarin University</a></li>
<li><a href="https://www.visualstudio.com/vs/android/#downloadvs">Download Visual Studio</a></li>
<li><a href="https://www.xamarin.com/forms">Xamarin Forms</a></li>
</ul>
<h3>Apps using Xamarin for Code sharing</h3>
<ul>
<li><a href="https://play.google.com/store/apps/details?id=com.alaskaairlines.android">Alaska Airlines</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.outback.tampa">Outback steakhouse</a></li>
</ul>
<h3>Notable alternatives:</h3>
<ul>
<li><a href="https://cordova.apache.org/">Cordova</a></li>
<li><a href="http://facebook.github.io/react-native/">React Native</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/josephhill">@josephhill</a> and <a href="mailto:jhill@microsoft.com">jhill@microsoft</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="36641181" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/0047ad19-0291-46a4-809c-c86ad100948d/067_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>067: Cross platform development with Xamarin cofounder Joseph Hill</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/0047ad19-0291-46a4-809c-c86ad100948d/3000x3000/1482098831-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:50:51</itunes:duration>
      <itunes:summary>In this episode, Donn talks with Xamarin cofounder on how one can use Xamarin for Android development. 

They start off chatting about using Xamarin just for business logic sharing. This Joseph tells us was the original intention for use. They also touch on Xamarin forms which allows you to additionally build UI elements cross platform.

Even if you don&apos;t use Xamarin or plan to use Xamarin right away, this was a fantastic insight into the platform, from the creators directly. They touch on advantages, how to really leverage the platform and potential downsides.

show notes:  http://fragmentedpodcast.com/episodes/67/</itunes:summary>
      <itunes:subtitle>In this episode, Donn talks with Xamarin cofounder on how one can use Xamarin for Android development. 

They start off chatting about using Xamarin just for business logic sharing. This Joseph tells us was the original intention for use. They also touch on Xamarin forms which allows you to additionally build UI elements cross platform.

Even if you don&apos;t use Xamarin or plan to use Xamarin right away, this was a fantastic insight into the platform, from the creators directly. They touch on advantages, how to really leverage the platform and potential downsides.

show notes:  http://fragmentedpodcast.com/episodes/67/</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>67</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">98c7a7c8-81ab-43e9-92cb-652b4c8d4bfa</guid>
      <title>066: Let&apos;s talk Immutability, Value Types and AutoValue with Ryan Harter</title>
      <description><![CDATA[<p>In this episode, we talk to our good friend and immutability champ Ryan Harter. We start off talking about the benefits and disadvantages of immutability, then we dive into Value types and the subtle difference with Value types. Finally we close out by talking about AutoValue and how you can extend it using the super nifty auto-value extension system for functionality like Parcelability, Json parsing etc.</p>
<h2>Show Notes</h2>
<h2>About Ryan</h2>
<ul>
<li><a href="https://play.google.com/store/apps/details?id=com.pixite.pigment&amp;hl=en">Pigment (coloring for adults)</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.pixite.fragment&amp;hl=en">Fragment (prismatic photography art)</a> (His <a href="http://ryanharter.com/blog/2014/08/21/bringing-an-app-to-android/">blog post</a> on the same)</li>
<li><a href="http://fragmentedpodcast.com/episodes/42/">Fragmented: Google IO special (Ryan was one of our guests)</a></li>
</ul>
<h2>References</h2>
<ul>
<li><a href="http://martinfowler.com/bliki/ValueObject.html">Martin Fowler's updated article on ValueObjects</a></li>
<li>Effective Java Fragments:
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/14">Ep 14: Consider providing static factory methods instead of constructors</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/31/">Ep 31: Obey the general contract when overriding equals</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/34/">Ep 34: Always Override hashcode when overriding equals</a></li>
</ul>
</li>
<li><a href="http://www.methodscount.com/">Methods Count (check number of methods for a library)</a></li>
</ul>
<h3>AutoValue</h3>
<ul>
<li><a href="https://github.com/google/auto/tree/master/value">AutoValue</a></li>
<li><a href="https://github.com/google/auto/blob/master/value/userguide/builders.md">AutoValue Builders</a></li>
<li><a href="https://github.com/google/auto/tree/master/factory">AutoValue Factory</a> (different from AutoValue Builders)</li>
<li><a href="http://stackoverflow.com/questions/757743/what-is-the-difference-between-builder-design-pattern-and-factory-design-pattern">Difference between Builder and Factory patterns </a> [stackoverflow.com]</li>
</ul>
<h3>AutoValue extensions</h3>
<ul>
<li><a href="http://ryanharter.com/blog/2016/05/16/autovalue-extensions/">Ryan's blog post</a></li>
<li><a href="https://github.com/rharter/auto-value-parcel">AutoValue Parcel</a> [github.com/rharter]</li>
<li><a href="https://github.com/gabrielittner/auto-value-cursor">AutoValue Cursor</a> [github.com/gabrielittner]</li>
<li><a href="https://github.com/square/auto-value-redacted">AutoValue Redacted</a> [github.com/square]</li>
<li><a href="https://github.com/rharter/auto-value-moshi">AutoValue Moshi</a> [github.com/rharter]</li>
<li><a href="https://github.com/rharter/auto-value-gson">AutoValue Gson</a> [github.com/rharter]</li>
<li><a href="https://github.com/mattlogan/auto-value-firebase">AutoValue Firebase</a> [github.com/mattlogan]</li>
</ul>
<h2>Misc</h2>
<ul>
<li><a href="https://projectlombok.org/"><em>Project</em> Lombok</a></li>
<li><a href="https://github.com/google/auto">Google's Auto Libraries (code generating helpers)</a></li>
<li><a href="http://ryanharter.com/blog/">Ryan's Blog</a></li>
<li><a href="https://caster.io/instructors/ryan-harter/">Ryan's Caster.io series</a> [caster.io]</li>
<li><a href="http://chicagoroboto.com/">Chicago Roboto 2017</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/rharter">@rharter</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 12 Dec 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, we talk to our good friend and immutability champ Ryan Harter. We start off talking about the benefits and disadvantages of immutability, then we dive into Value types and the subtle difference with Value types. Finally we close out by talking about AutoValue and how you can extend it using the super nifty auto-value extension system for functionality like Parcelability, Json parsing etc.</p>
<h2>Show Notes</h2>
<h2>About Ryan</h2>
<ul>
<li><a href="https://play.google.com/store/apps/details?id=com.pixite.pigment&amp;hl=en">Pigment (coloring for adults)</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.pixite.fragment&amp;hl=en">Fragment (prismatic photography art)</a> (His <a href="http://ryanharter.com/blog/2014/08/21/bringing-an-app-to-android/">blog post</a> on the same)</li>
<li><a href="http://fragmentedpodcast.com/episodes/42/">Fragmented: Google IO special (Ryan was one of our guests)</a></li>
</ul>
<h2>References</h2>
<ul>
<li><a href="http://martinfowler.com/bliki/ValueObject.html">Martin Fowler's updated article on ValueObjects</a></li>
<li>Effective Java Fragments:
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/14">Ep 14: Consider providing static factory methods instead of constructors</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/31/">Ep 31: Obey the general contract when overriding equals</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/34/">Ep 34: Always Override hashcode when overriding equals</a></li>
</ul>
</li>
<li><a href="http://www.methodscount.com/">Methods Count (check number of methods for a library)</a></li>
</ul>
<h3>AutoValue</h3>
<ul>
<li><a href="https://github.com/google/auto/tree/master/value">AutoValue</a></li>
<li><a href="https://github.com/google/auto/blob/master/value/userguide/builders.md">AutoValue Builders</a></li>
<li><a href="https://github.com/google/auto/tree/master/factory">AutoValue Factory</a> (different from AutoValue Builders)</li>
<li><a href="http://stackoverflow.com/questions/757743/what-is-the-difference-between-builder-design-pattern-and-factory-design-pattern">Difference between Builder and Factory patterns </a> [stackoverflow.com]</li>
</ul>
<h3>AutoValue extensions</h3>
<ul>
<li><a href="http://ryanharter.com/blog/2016/05/16/autovalue-extensions/">Ryan's blog post</a></li>
<li><a href="https://github.com/rharter/auto-value-parcel">AutoValue Parcel</a> [github.com/rharter]</li>
<li><a href="https://github.com/gabrielittner/auto-value-cursor">AutoValue Cursor</a> [github.com/gabrielittner]</li>
<li><a href="https://github.com/square/auto-value-redacted">AutoValue Redacted</a> [github.com/square]</li>
<li><a href="https://github.com/rharter/auto-value-moshi">AutoValue Moshi</a> [github.com/rharter]</li>
<li><a href="https://github.com/rharter/auto-value-gson">AutoValue Gson</a> [github.com/rharter]</li>
<li><a href="https://github.com/mattlogan/auto-value-firebase">AutoValue Firebase</a> [github.com/mattlogan]</li>
</ul>
<h2>Misc</h2>
<ul>
<li><a href="https://projectlombok.org/"><em>Project</em> Lombok</a></li>
<li><a href="https://github.com/google/auto">Google's Auto Libraries (code generating helpers)</a></li>
<li><a href="http://ryanharter.com/blog/">Ryan's Blog</a></li>
<li><a href="https://caster.io/instructors/ryan-harter/">Ryan's Caster.io series</a> [caster.io]</li>
<li><a href="http://chicagoroboto.com/">Chicago Roboto 2017</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/rharter">@rharter</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="30980589" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/d6f46c3e-b052-4406-88b9-613b13ac1b43/066_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>066: Let&apos;s talk Immutability, Value Types and AutoValue with Ryan Harter</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/d6f46c3e-b052-4406-88b9-613b13ac1b43/3000x3000/1481329777-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:43:00</itunes:duration>
      <itunes:summary>In this episode, we talk to our good friend and immutability champ Ryan Harter. We start off talking about the benefits and disadvantages of immutability, then we dive into Value types and the subtle difference with Value types. Finally we close out by talking about AutoValue and how you can extend it using the super nifty auto-value extension system for functionality like Parcelability, Json parsing etc.

http://fragmentedpodcast.com/episodes/66/</itunes:summary>
      <itunes:subtitle>In this episode, we talk to our good friend and immutability champ Ryan Harter. We start off talking about the benefits and disadvantages of immutability, then we dive into Value types and the subtle difference with Value types. Finally we close out by talking about AutoValue and how you can extend it using the super nifty auto-value extension system for functionality like Parcelability, Json parsing etc.

http://fragmentedpodcast.com/episodes/66/</itunes:subtitle>
      <itunes:keywords>auto, autovalue, android, immutability</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>66</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">4f5620bb-f56c-4004-8462-6e0b51ccf86b</guid>
      <title>065: Developer Platform engineering with Ty Smith</title>
      <description><![CDATA[<p>In this episode we talk to Ty Smith about all things Developer Platform. Currently a tech lead at Uber, Ty has quite the illustrious career having worked on some of the biggest names you've heard like Uber, Twitter(Fabric), Evernote, Zagat etc.</p>
<p>Unlike regular client app development, Developer Platform spans a variety of interesting topics like building consumable SDKs, building libraries with good APIs, creating Android integrations and App to app communication via components like Content Providers, AIDL Integrations, Intent APIS and deep links.</p>
<p>We ask Ty how he got started in this field, how one should go about thinking about it and the interesting challenges that one would run across in this intriguing field.</p>
<h2>Show Notes</h2>
<h3>Ty's all star Dallas crew</h3>
<ul>
<li><a href="https://twitter.com/chrisbanes">Chris Banes</a> [@chrisbanes] previously on <a href="http://onelouder.com/friendcaster">FriendCaster</a></li>
<li><a href="https://twitter.com/ChrisArvinSF">Chris Arvin </a> [@ChrisArvinSF] previously on <a href="http://baconreader.com/">BaconReader</a></li>
<li><a href="https://twitter.com/danlew42?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor">Dan Lew</a> [@danlew42] previously on <a href="https://play.google.com/store/apps/details?id=com.expedia.bookings&amp;hl=en">Expedia</a></li>
<li><a href="http://parallelcross.com/">Matt Wear</a> [parallelcross.com] prevoiusly on <a href="https://play.google.com/store/apps/details?id=com.evernote&amp;hl=en">Evernote</a></li>
<li><a href="https://twitter.com/_juandg">Juan Gomez</a> [@_juandg] on <a href="https://play.google.com/store/apps/details?id=com.netflix.mediaclient&amp;hl=en">Netflix</a></li>
</ul>
<h3>Developer Platform</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=lTqUbDXUUXk">Tests? Ain't Nobody Got Time For That! by Ty Smith</a> [youtube.com]</li>
<li><a href="https://developer.android.com/guide/topics/providers/content-providers.html">Content providers</a> [developer.android.com]</li>
<li><a href="https://developer.android.com/guide/components/aidl.html">AIDL (Andorid Interface Definition Language)</a> [developer.android.com]
<ul>
<li><a href="https://developer.android.com/reference/android/os/TransactionTooLargeException.html">TransactionTooLargeException</a> [developer.android.com]</li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/tsmith">@tsmith</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 5 Dec 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode we talk to Ty Smith about all things Developer Platform. Currently a tech lead at Uber, Ty has quite the illustrious career having worked on some of the biggest names you've heard like Uber, Twitter(Fabric), Evernote, Zagat etc.</p>
<p>Unlike regular client app development, Developer Platform spans a variety of interesting topics like building consumable SDKs, building libraries with good APIs, creating Android integrations and App to app communication via components like Content Providers, AIDL Integrations, Intent APIS and deep links.</p>
<p>We ask Ty how he got started in this field, how one should go about thinking about it and the interesting challenges that one would run across in this intriguing field.</p>
<h2>Show Notes</h2>
<h3>Ty's all star Dallas crew</h3>
<ul>
<li><a href="https://twitter.com/chrisbanes">Chris Banes</a> [@chrisbanes] previously on <a href="http://onelouder.com/friendcaster">FriendCaster</a></li>
<li><a href="https://twitter.com/ChrisArvinSF">Chris Arvin </a> [@ChrisArvinSF] previously on <a href="http://baconreader.com/">BaconReader</a></li>
<li><a href="https://twitter.com/danlew42?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor">Dan Lew</a> [@danlew42] previously on <a href="https://play.google.com/store/apps/details?id=com.expedia.bookings&amp;hl=en">Expedia</a></li>
<li><a href="http://parallelcross.com/">Matt Wear</a> [parallelcross.com] prevoiusly on <a href="https://play.google.com/store/apps/details?id=com.evernote&amp;hl=en">Evernote</a></li>
<li><a href="https://twitter.com/_juandg">Juan Gomez</a> [@_juandg] on <a href="https://play.google.com/store/apps/details?id=com.netflix.mediaclient&amp;hl=en">Netflix</a></li>
</ul>
<h3>Developer Platform</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=lTqUbDXUUXk">Tests? Ain't Nobody Got Time For That! by Ty Smith</a> [youtube.com]</li>
<li><a href="https://developer.android.com/guide/topics/providers/content-providers.html">Content providers</a> [developer.android.com]</li>
<li><a href="https://developer.android.com/guide/components/aidl.html">AIDL (Andorid Interface Definition Language)</a> [developer.android.com]
<ul>
<li><a href="https://developer.android.com/reference/android/os/TransactionTooLargeException.html">TransactionTooLargeException</a> [developer.android.com]</li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/tsmith">@tsmith</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="44172450" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/bc149b7c-261c-404f-a094-9b003c4edbc5/065-interview-w-tysmith_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>065: Developer Platform engineering with Ty Smith</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/bc149b7c-261c-404f-a094-9b003c4edbc5/3000x3000/1480894022-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:45:59</itunes:duration>
      <itunes:summary>In this episode we talk to Ty Smith about all things Developer Platform. Currently a tech lead at Uber, Ty has quite the illustrious career having worked on some of the biggest names you&apos;ve heard like Uber, Twitter(Fabric), Evernote, Zagat etc.

Unlike regular client app development, Developer Platform spans a variety of interesting topics like building consumable SDKs, building libraries with good APIs, creating Android integrations and App to app communication via components like Content Providers, AIDL Integrations, Intent APIS and deep links.

We ask Ty how he got started in this field, how one should go about thinking about it and the interesting challenges that one would run across in this intriguing field.</itunes:summary>
      <itunes:subtitle>In this episode we talk to Ty Smith about all things Developer Platform. Currently a tech lead at Uber, Ty has quite the illustrious career having worked on some of the biggest names you&apos;ve heard like Uber, Twitter(Fabric), Evernote, Zagat etc.

Unlike regular client app development, Developer Platform spans a variety of interesting topics like building consumable SDKs, building libraries with good APIs, creating Android integrations and App to app communication via components like Content Providers, AIDL Integrations, Intent APIS and deep links.

We ask Ty how he got started in this field, how one should go about thinking about it and the interesting challenges that one would run across in this intriguing field.</itunes:subtitle>
      <itunes:keywords>developer platform</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>65</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">a0c04ba0-a39d-41f8-a62c-8ff722331b4d</guid>
      <title>064: Garbage Collection (Android) vs Reference Counting (iOS)</title>
      <description><![CDATA[<p>In this mini-Fragment episode, Kaushik talks about the process of Garbage collection and how it compares to Reference counting (which is the equivalent process in iOS).</p>
<p>How does each work? What are the differences? Which is better 😁  ? Listen on for all the juicy details...</p>
<h2>Show Notes</h2>
<h3>Garbage collection (Android)</h3>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Garbage_collection_(computer_science)">Garbage collection</a> [wikipedia.org]</li>
<li><a href="https://medium.com/@nitinkumargove/how-garbage-collection-works-in-dalvik-vm-in-android-bf781ab48531#.srrig644u">How GC works in Dalvik</a> [medium.com]</li>
<li><a href="http://stackoverflow.com/questions/1910194/how-does-java-garbage-collection-work-with-circular-references">How GC works with circular references</a> [stackoverflow.com]</li>
</ul>
<h3>Reference counting (iOS)</h3>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Reference_counting">Reference counting</a> [wikipedia.org]</li>
<li><a href="http://www.tomdalling.com/blog/cocoa/an-in-depth-look-at-manual-memory-management-in-objective-c/">An in-depth look at manual memory management in Objective C</a> [tomdalling.com]</li>
<li><a href="http://rypress.com/tutorials/objective-c/memory-management">Memory management in Objective C</a> [rypress.com]</li>
<li><a href="http://krakendev.io/blog/weak-and-unowned-references-in-swift">Weak, strong, unowned, oh my! (references in Swift)</a> [krakendev.io]</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 21 Nov 2016 00:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this mini-Fragment episode, Kaushik talks about the process of Garbage collection and how it compares to Reference counting (which is the equivalent process in iOS).</p>
<p>How does each work? What are the differences? Which is better 😁  ? Listen on for all the juicy details...</p>
<h2>Show Notes</h2>
<h3>Garbage collection (Android)</h3>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Garbage_collection_(computer_science)">Garbage collection</a> [wikipedia.org]</li>
<li><a href="https://medium.com/@nitinkumargove/how-garbage-collection-works-in-dalvik-vm-in-android-bf781ab48531#.srrig644u">How GC works in Dalvik</a> [medium.com]</li>
<li><a href="http://stackoverflow.com/questions/1910194/how-does-java-garbage-collection-work-with-circular-references">How GC works with circular references</a> [stackoverflow.com]</li>
</ul>
<h3>Reference counting (iOS)</h3>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Reference_counting">Reference counting</a> [wikipedia.org]</li>
<li><a href="http://www.tomdalling.com/blog/cocoa/an-in-depth-look-at-manual-memory-management-in-objective-c/">An in-depth look at manual memory management in Objective C</a> [tomdalling.com]</li>
<li><a href="http://rypress.com/tutorials/objective-c/memory-management">Memory management in Objective C</a> [rypress.com]</li>
<li><a href="http://krakendev.io/blog/weak-and-unowned-references-in-swift">Weak, strong, unowned, oh my! (references in Swift)</a> [krakendev.io]</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="17299380" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/456d73a1-62a1-4edc-8254-0d94c052c7c6/064garbage-collection-android-vs-reference-counting-ios_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>064: Garbage Collection (Android) vs Reference Counting (iOS)</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/456d73a1-62a1-4edc-8254-0d94c052c7c6/3000x3000/1479677134-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:24:00</itunes:duration>
      <itunes:summary>In this mini-Fragment episode, Kaushik talks about the process of Garbage collection and how it compares to Reference counting (which is the equivalent process in iOS).

How does each work? What are the differences? Which is better 😁  ? Listen on for all the juicy details...

Show notes at http://fragmentedpodcast.com/episodes/064/</itunes:summary>
      <itunes:subtitle>In this mini-Fragment episode, Kaushik talks about the process of Garbage collection and how it compares to Reference counting (which is the equivalent process in iOS).

How does each work? What are the differences? Which is better 😁  ? Listen on for all the juicy details...

Show notes at http://fragmentedpodcast.com/episodes/064/</itunes:subtitle>
      <itunes:keywords>gc, reference counting, garbage collection</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>64</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">d96ac456-f65c-4604-882e-92cb2e40468d</guid>
      <title>063: Effective Java for Android Developers – Item #13: Minimize the accessibility of classes and members</title>
      <description><![CDATA[<p>In this mini-Fragment episode, Donn talks about Item #13 of the Effective Java series - Minimize the accessibility of classes and members. You'll learn why it's important to limit the access on your public API, how it can help you with development and performance. You'll also learn how changing a public API can affect the consumers of your API, for good and bad.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html">Java Access Control</a></li>
<li><a href="http://amzn.to/1RUCko3">Effective Java Book</a></li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="http://www.fragmentedpodcast.com/buddybuild">BuddyBuild</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="http://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="http://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="http://twitter.com/kaushikgopal">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Mon, 14 Nov 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this mini-Fragment episode, Donn talks about Item #13 of the Effective Java series - Minimize the accessibility of classes and members. You'll learn why it's important to limit the access on your public API, how it can help you with development and performance. You'll also learn how changing a public API can affect the consumers of your API, for good and bad.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html">Java Access Control</a></li>
<li><a href="http://amzn.to/1RUCko3">Effective Java Book</a></li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="http://www.fragmentedpodcast.com/buddybuild">BuddyBuild</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="http://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="http://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="http://twitter.com/kaushikgopal">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="21657372" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/24fbefec-dc9b-44f6-b1fc-eddf4c97f51a/063-effectivejava13_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>063: Effective Java for Android Developers – Item #13: Minimize the accessibility of classes and members</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/24fbefec-dc9b-44f6-b1fc-eddf4c97f51a/3000x3000/1478982171-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:22:32</itunes:duration>
      <itunes:summary>In this mini-Fragment episode, Donn talks about Item #13 of the Effective Java series - Minimize the accessibility of classes and members. You&apos;ll learn why it&apos;s important to limit the access on your public API, how it can help you with development and performance. You&apos;ll also learn how changing a public API can affect the consumers of your API, for good and bad.</itunes:summary>
      <itunes:subtitle>In this mini-Fragment episode, Donn talks about Item #13 of the Effective Java series - Minimize the accessibility of classes and members. You&apos;ll learn why it&apos;s important to limit the access on your public API, how it can help you with development and performance. You&apos;ll also learn how changing a public API can affect the consumers of your API, for good and bad.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>63</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">8a66cf4e-5445-44eb-95c5-f61ef388eddc</guid>
      <title>062: Effective Java for Android Developers – Item #12: Consider Implementing Comparable</title>
      <description><![CDATA[<p>In this mini-Fragment episode, Donn talks about Item #12 of the Effective Java series - Consider Implementing Comparable. You'll learn about how you can use the Comparable interface to give your code the extra sorting boost it needs. Work with Arrays.sort(), Collections utilities and even sorted data structures. Donn breaks down what it takes to implement the compareTo method of the Comparable interface.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html">Comparable Interface</a></li>
<li><a href="http://amzn.to/1RUCko3">Effective Java Book</a></li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="http://www.fragmentedpodcast.com/buddybuild">BuddyBuild</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="http://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="http://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="http://twitter.com/kaushikgopal">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Mon, 7 Nov 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this mini-Fragment episode, Donn talks about Item #12 of the Effective Java series - Consider Implementing Comparable. You'll learn about how you can use the Comparable interface to give your code the extra sorting boost it needs. Work with Arrays.sort(), Collections utilities and even sorted data structures. Donn breaks down what it takes to implement the compareTo method of the Comparable interface.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html">Comparable Interface</a></li>
<li><a href="http://amzn.to/1RUCko3">Effective Java Book</a></li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="http://www.fragmentedpodcast.com/buddybuild">BuddyBuild</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="http://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="http://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="http://twitter.com/kaushikgopal">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="12009116" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/ea2d364f-a55a-4578-942d-d57e261f0123/062_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>062: Effective Java for Android Developers – Item #12: Consider Implementing Comparable</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/ea2d364f-a55a-4578-942d-d57e261f0123/3000x3000/1478476325-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:16:39</itunes:duration>
      <itunes:summary>In this mini-Fragment episode, Donn talks about Item #12 of the Effective Java series - Consider Implementing Comparable. You&apos;ll learn about how you can use the Comparable interface to give your code the extra sorting boost it needs. Work with Arrays.sort(), Collections utilities and even sorted data structures. Donn breaks down what it takes to implement the compareTo method of the Comparable interface.</itunes:summary>
      <itunes:subtitle>In this mini-Fragment episode, Donn talks about Item #12 of the Effective Java series - Consider Implementing Comparable. You&apos;ll learn about how you can use the Comparable interface to give your code the extra sorting boost it needs. Work with Arrays.sort(), Collections utilities and even sorted data structures. Donn breaks down what it takes to implement the compareTo method of the Comparable interface.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>62</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">309266d7-a3fb-4be8-ac85-e6a785fa8201</guid>
      <title>061: The state of event bus(es) today</title>
      <description><![CDATA[<p>The age old question: should I be using an event bus today? What is an event bus? what are still some good use cases for an event bus? Can i replace an event bus with RxJava?</p>
<p>Donn and Kaushik have at it and try to answer this question that gets asked constantly in the AndroidDev circles. Listen on for our take.</p>
<h2>Show Notes</h2>
<h3>What's an event bus</h3>
<ul>
<li><a href="http://www.donnfelker.com/using-prisms-compositewpf-eventaggregator/">Donn's blog post on event aggregators (event buses)</a> [donnfelker.com]</li>
<li><a href="http://blog.kaush.co/2014/12/24/implementing-an-event-bus-with-rxjava-rxbus/">KG's blog post on implementing an event bus with Rx</a> [blog.kaush.co]</li>
</ul>
<h3>Libraries</h3>
<ul>
<li><a href="https://github.com/square/otto#deprecated">Otto - Square's Event Bus library</a> [github.com]</li>
<li><a href="https://github.com/greenrobot/EventBus">EventBus - greenrobot</a> [github.com]</li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://markhudnall.com/2013/11/13/gcm-foreground-and-background/">Handling GCM messages in the foreground and background by Mark Hudnall</a> [markhudnall.comm]</li>
<li><a href="https://en.wikipedia.org/wiki/KISS_principle">KISS</a> [wikipedia.org]</li>
<li><a href="http://fragmentedpodcast.com/episodes/053-jake-wharton-on-rxjava-2/">Ep 53: Jake on RxJava 2</a> [fragmentedpodcast.com]</li>
<li><a href="https://github.com/JakeWharton/RxRelay">RxRelays</a> [github.com/JakeWharton]</li>
<li><a href="https://github.com/kaushikgopal/RxJava-Android-Samples/commit/dedadafd88cd3a5a926d4a7f2761822a43121569">Diff change set for converting RxBus to an RxRelay</a> [github.com/kaushikgopal]</li>
<li><a href="https://caster.io/courses/event-bus/">Caster.io EventBus course - Annyce Davis</a> [caster.io]</li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/buddybuild">BuddyBuild</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 24 Oct 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>The age old question: should I be using an event bus today? What is an event bus? what are still some good use cases for an event bus? Can i replace an event bus with RxJava?</p>
<p>Donn and Kaushik have at it and try to answer this question that gets asked constantly in the AndroidDev circles. Listen on for our take.</p>
<h2>Show Notes</h2>
<h3>What's an event bus</h3>
<ul>
<li><a href="http://www.donnfelker.com/using-prisms-compositewpf-eventaggregator/">Donn's blog post on event aggregators (event buses)</a> [donnfelker.com]</li>
<li><a href="http://blog.kaush.co/2014/12/24/implementing-an-event-bus-with-rxjava-rxbus/">KG's blog post on implementing an event bus with Rx</a> [blog.kaush.co]</li>
</ul>
<h3>Libraries</h3>
<ul>
<li><a href="https://github.com/square/otto#deprecated">Otto - Square's Event Bus library</a> [github.com]</li>
<li><a href="https://github.com/greenrobot/EventBus">EventBus - greenrobot</a> [github.com]</li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://markhudnall.com/2013/11/13/gcm-foreground-and-background/">Handling GCM messages in the foreground and background by Mark Hudnall</a> [markhudnall.comm]</li>
<li><a href="https://en.wikipedia.org/wiki/KISS_principle">KISS</a> [wikipedia.org]</li>
<li><a href="http://fragmentedpodcast.com/episodes/053-jake-wharton-on-rxjava-2/">Ep 53: Jake on RxJava 2</a> [fragmentedpodcast.com]</li>
<li><a href="https://github.com/JakeWharton/RxRelay">RxRelays</a> [github.com/JakeWharton]</li>
<li><a href="https://github.com/kaushikgopal/RxJava-Android-Samples/commit/dedadafd88cd3a5a926d4a7f2761822a43121569">Diff change set for converting RxBus to an RxRelay</a> [github.com/kaushikgopal]</li>
<li><a href="https://caster.io/courses/event-bus/">Caster.io EventBus course - Annyce Davis</a> [caster.io]</li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/buddybuild">BuddyBuild</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="40243125" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/8e20971b-7a3e-4cbd-8862-8df95557c3bf/061-thegreateventbusepisode_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>061: The state of event bus(es) today</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/8e20971b-7a3e-4cbd-8862-8df95557c3bf/3000x3000/1477024980-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:41:54</itunes:duration>
      <itunes:summary>The age old question: should I be using an event bus today? What is an event bus? what are still some good use cases for an event bus? Can i replace an event bus with RxJava? 

Donn and Kaushik have at it and try to answer this question that gets asked constantly in the AndroidDev circles. Listen on for our take.

Show notes at http://fragmentedpodcast.com/episodes/061/</itunes:summary>
      <itunes:subtitle>The age old question: should I be using an event bus today? What is an event bus? what are still some good use cases for an event bus? Can i replace an event bus with RxJava? 

Donn and Kaushik have at it and try to answer this question that gets asked constantly in the AndroidDev circles. Listen on for our take.

Show notes at http://fragmentedpodcast.com/episodes/061/</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>61</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">94d55a71-3cb9-49e2-9eed-45b9fae3be92</guid>
      <title>060: Smoke and Mirror Android UI tricks with Israel</title>
      <description><![CDATA[<p>We talk with Android UI magician Israel. In this episode, Israel does what magicians are never supposed to do, reveal those exciting magic tricks. He talks about tricks you can use in your Android apps to create a super slick UI, citing examples from Google Photos, Twitter and other apps.</p>
<p>Dazzle your Android users with these UI tricks.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/26/">Israel's last appearance on Fragmented (Ep 26)</a> [fragmentedpodcast.com]</li>
</ul>
<h3>Smoke and Mirros</h3>
<ul>
<li><a href="https://github.com/rallat/smokeAndMirrors">Israel's sample app</a> [github.com]</li>
<li><a href="https://photos.google.com/share/AF1QipMFXmZvx7yW0oaAgNMkjy4-BkQ9ikNHJ_-MwanFXWVAjKpoVcwAlUSDonqgt8e0ew?key=emRlWjh2M2drX1Q3dF9QdGFuZE1XMjdrMEJsaThn">Slides (with animation demos)</a> [photos.google.com]</li>
<li><a href="https://photos.google.com/share/AF1QipMFXmZvx7yW0oaAgNMkjy4-BkQ9ikNHJ_-MwanFXWVAjKpoVcwAlUSDonqgt8e0ew/photo/AF1QipPy1IRLkCD9gS5k14Z68QDBj2GNdPexUba82N_6?key=emRlWjh2M2drX1Q3dF9QdGFuZE1XMjdrMEJsaThn">Google Photos Recycler View pinch to expand/shrink</a> [photos.google.com]</li>
<li><a href="https://photos.google.com/share/AF1QipMFXmZvx7yW0oaAgNMkjy4-BkQ9ikNHJ_-MwanFXWVAjKpoVcwAlUSDonqgt8e0ew/photo/AF1QipPnALK2LYsODJLefeJsN-Oqm8z2g2OjUlDapNWs?key=emRlWjh2M2drX1Q3dF9QdGFuZE1XMjdrMEJsaThn">ClipChildren demo</a> [photos.google.com]</li>
<li><a href="https://photos.google.com/share/AF1QipMFXmZvx7yW0oaAgNMkjy4-BkQ9ikNHJ_-MwanFXWVAjKpoVcwAlUSDonqgt8e0ew/photo/AF1QipPgbNlY78Lj0NHfvaqvLYqvK3yMjpGSsuMqivzA?key=emRlWjh2M2drX1Q3dF9QdGFuZE1XMjdrMEJsaThn">Utils method - traverse hierarchy and clip</a> [photos.google.com]</li>
<li><a href="https://photos.google.com/share/AF1QipMFXmZvx7yW0oaAgNMkjy4-BkQ9ikNHJ_-MwanFXWVAjKpoVcwAlUSDonqgt8e0ew/photo/AF1QipOJhw_Bo9C6U2XkZQHn-qCTO6lIntqZR0_wXTou?key=emRlWjh2M2drX1Q3dF9QdGFuZE1XMjdrMEJsaThn">Tap image to show full screen</a> [photos.google.com]</li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://github.com/nickbutcher/plaid">Nick Butcher's Plaid app</a> [github.com]</li>
<li><a href="https://github.com/evernote/android-job">Android-Job library by Evernote</a> [github.com]</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/rallat">@rallat</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 17 Oct 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>We talk with Android UI magician Israel. In this episode, Israel does what magicians are never supposed to do, reveal those exciting magic tricks. He talks about tricks you can use in your Android apps to create a super slick UI, citing examples from Google Photos, Twitter and other apps.</p>
<p>Dazzle your Android users with these UI tricks.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/26/">Israel's last appearance on Fragmented (Ep 26)</a> [fragmentedpodcast.com]</li>
</ul>
<h3>Smoke and Mirros</h3>
<ul>
<li><a href="https://github.com/rallat/smokeAndMirrors">Israel's sample app</a> [github.com]</li>
<li><a href="https://photos.google.com/share/AF1QipMFXmZvx7yW0oaAgNMkjy4-BkQ9ikNHJ_-MwanFXWVAjKpoVcwAlUSDonqgt8e0ew?key=emRlWjh2M2drX1Q3dF9QdGFuZE1XMjdrMEJsaThn">Slides (with animation demos)</a> [photos.google.com]</li>
<li><a href="https://photos.google.com/share/AF1QipMFXmZvx7yW0oaAgNMkjy4-BkQ9ikNHJ_-MwanFXWVAjKpoVcwAlUSDonqgt8e0ew/photo/AF1QipPy1IRLkCD9gS5k14Z68QDBj2GNdPexUba82N_6?key=emRlWjh2M2drX1Q3dF9QdGFuZE1XMjdrMEJsaThn">Google Photos Recycler View pinch to expand/shrink</a> [photos.google.com]</li>
<li><a href="https://photos.google.com/share/AF1QipMFXmZvx7yW0oaAgNMkjy4-BkQ9ikNHJ_-MwanFXWVAjKpoVcwAlUSDonqgt8e0ew/photo/AF1QipPnALK2LYsODJLefeJsN-Oqm8z2g2OjUlDapNWs?key=emRlWjh2M2drX1Q3dF9QdGFuZE1XMjdrMEJsaThn">ClipChildren demo</a> [photos.google.com]</li>
<li><a href="https://photos.google.com/share/AF1QipMFXmZvx7yW0oaAgNMkjy4-BkQ9ikNHJ_-MwanFXWVAjKpoVcwAlUSDonqgt8e0ew/photo/AF1QipPgbNlY78Lj0NHfvaqvLYqvK3yMjpGSsuMqivzA?key=emRlWjh2M2drX1Q3dF9QdGFuZE1XMjdrMEJsaThn">Utils method - traverse hierarchy and clip</a> [photos.google.com]</li>
<li><a href="https://photos.google.com/share/AF1QipMFXmZvx7yW0oaAgNMkjy4-BkQ9ikNHJ_-MwanFXWVAjKpoVcwAlUSDonqgt8e0ew/photo/AF1QipOJhw_Bo9C6U2XkZQHn-qCTO6lIntqZR0_wXTou?key=emRlWjh2M2drX1Q3dF9QdGFuZE1XMjdrMEJsaThn">Tap image to show full screen</a> [photos.google.com]</li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://github.com/nickbutcher/plaid">Nick Butcher's Plaid app</a> [github.com]</li>
<li><a href="https://github.com/evernote/android-job">Android-Job library by Evernote</a> [github.com]</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/rallat">@rallat</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="43274625" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/5160ca31-ce8a-4467-8ca6-686e8cda8428/060-interview-with-israel_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>060: Smoke and Mirror Android UI tricks with Israel</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/5160ca31-ce8a-4467-8ca6-686e8cda8428/3000x3000/1476654147-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:45:03</itunes:duration>
      <itunes:summary>We talk with Android UI magician Israel. In this episode, Israel does what magicians are never supposed to do, reveal those exciting magic tricks. He talks about tricks you can use in your Android apps to create a super slick UI, citing examples from Google Photos, Twitter and other apps. 

Dazzle your Android users with these UI tricks.

Shownotes: http://fragmentedpodcast.com/episodes/060</itunes:summary>
      <itunes:subtitle>We talk with Android UI magician Israel. In this episode, Israel does what magicians are never supposed to do, reveal those exciting magic tricks. He talks about tricks you can use in your Android apps to create a super slick UI, citing examples from Google Photos, Twitter and other apps. 

Dazzle your Android users with these UI tricks.

Shownotes: http://fragmentedpodcast.com/episodes/060</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>60</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">301b3225-50f6-4291-97f6-82804704bd83</guid>
      <title>059: Interview with Chiu-Ki</title>
      <description><![CDATA[<p>We talk with the all-star multi-talented GDE Chiu-Ki Chan about testing. Specifically, we dive into leveraging Mockito for your testing needs. What is Mocking, what is Stubbing, what are the different test doubles, how does mockito help with this? Listen on to find about that and some more interesting stuff on testing!</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://blog.google/products/pixel/introducing-pixel-our-new-phone-made-google/">Introducing Pixel</a> [blog.google]</li>
<li><a href="http://codebetter.com/jpboodhoo/2007/10/15/the-static-gateway-pattern/">Static Gateway Pattern</a> [codebetter.com]</li>
</ul>
<h3>About Chiu-Ki:</h3>
<ul>
<li><a href="https://www.youtube.com/channel/UCMEmNnHT69aZuaOrE-dF6ug">Android Dialogs | youtube</a> [youtube.com]</li>
<li><a href="http://360andev.com/about/">360|AnDev co-organizer | conference</a> [360andev.com]</li>
<li><a href="https://tinyletter.com/techspeak">Technically Speaking| newsletter</a> [tinyletter.com]</li>
</ul>
<h3>fake SharedPreferences implementations from AOSP</h3>
<ul>
<li><a href="https://github.com/android/platform_packages_apps_calendar/blob/master/tests/src/com/android/calendar/FakeSharedPreferences.java">FakeSharedPreferences | fake in-memory SharedPreferences implementation </a> [github.com]</li>
<li><a href="https://github.com/android/platform_frameworks_base/blob/4b1a8f46d6ec55796bf77fd8921a5a242a219278/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeSharedPreferences.java">BridgeSharedPreferences | empty SharedPreferences that does nothing implementation</a> [github.com]</li>
<li><a href="https://gumroad.com/l/AndroidTestSharedPref">Testing SharedPreferences</a> [gumroad.com]</li>
</ul>
<h3>Different kinds of Test doubles</h3>
<ul>
<li><a href="https://testing.googleblog.com/2013/07/testing-on-toilet-know-your-test-doubles.html">Know your test doubles</a> [testing.googleblog.com]</li>
<li>[Test Doubles: Mocks, Stubs, and More](https://www.objc.io/issues/15-testing/mocking-stubbing/<br />
http://www.javaworld.com/article/2074508/core-java/mocks-and-stubs---understanding-test-doubles-with-mockito.html) [objc.io]</li>
<li><a href="http://martinfowler.com/articles/mocksArentStubs.html">Mocks aren't Stubs</a> [martinfowler.com]</li>
</ul>
<h3>Mockito</h3>
<ul>
<li><a href="https://github.com/mockito/mockito">Mockito library</a> [github.com]</li>
<li><a href="http://site.mockito.org/mockito/docs/current/org/mockito/Mockito.html#stubbing_consecutive_calls">Stubbing consecutive calls</a> [mockito.org]</li>
<li><a href="http://site.mockito.org/mockito/docs/current/org/mockito/ArgumentCaptor.html">Argument Captor</a> [mockito.org]</li>
<li><a href="https://github.com/jayway/powermock">PowerMock</a> [github.com]</li>
</ul>
<h3>Resources</h3>
<ul>
<li><a href="https://github.com/chiuki/friendspell">friendspell | Chiu-Ki’s example project with a variety of testing strategies</a> [github.com]</li>
<li><a href="http://blog.sqisland.com/2015/12/mock-application-in-espresso.html">Mock Application in Espresso for Dependency Injection</a> [sqisland.com]</li>
<li><a href="https://caster.io/lessons/mockwebserver-introduction/?utm_source=fragmentedpodcast&amp;utm_medium=shownotes&amp;utm_term=ep059&amp;utm_campaign=fragmented-ep059">Chiu-Ki's caster.io courses on Testing | MockWebServer</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/chiuki">@chiuki</a> and <a href="https://plus.google.com/+ChiuKiChan">+ChiuKiChan</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 10 Oct 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>We talk with the all-star multi-talented GDE Chiu-Ki Chan about testing. Specifically, we dive into leveraging Mockito for your testing needs. What is Mocking, what is Stubbing, what are the different test doubles, how does mockito help with this? Listen on to find about that and some more interesting stuff on testing!</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://blog.google/products/pixel/introducing-pixel-our-new-phone-made-google/">Introducing Pixel</a> [blog.google]</li>
<li><a href="http://codebetter.com/jpboodhoo/2007/10/15/the-static-gateway-pattern/">Static Gateway Pattern</a> [codebetter.com]</li>
</ul>
<h3>About Chiu-Ki:</h3>
<ul>
<li><a href="https://www.youtube.com/channel/UCMEmNnHT69aZuaOrE-dF6ug">Android Dialogs | youtube</a> [youtube.com]</li>
<li><a href="http://360andev.com/about/">360|AnDev co-organizer | conference</a> [360andev.com]</li>
<li><a href="https://tinyletter.com/techspeak">Technically Speaking| newsletter</a> [tinyletter.com]</li>
</ul>
<h3>fake SharedPreferences implementations from AOSP</h3>
<ul>
<li><a href="https://github.com/android/platform_packages_apps_calendar/blob/master/tests/src/com/android/calendar/FakeSharedPreferences.java">FakeSharedPreferences | fake in-memory SharedPreferences implementation </a> [github.com]</li>
<li><a href="https://github.com/android/platform_frameworks_base/blob/4b1a8f46d6ec55796bf77fd8921a5a242a219278/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeSharedPreferences.java">BridgeSharedPreferences | empty SharedPreferences that does nothing implementation</a> [github.com]</li>
<li><a href="https://gumroad.com/l/AndroidTestSharedPref">Testing SharedPreferences</a> [gumroad.com]</li>
</ul>
<h3>Different kinds of Test doubles</h3>
<ul>
<li><a href="https://testing.googleblog.com/2013/07/testing-on-toilet-know-your-test-doubles.html">Know your test doubles</a> [testing.googleblog.com]</li>
<li>[Test Doubles: Mocks, Stubs, and More](https://www.objc.io/issues/15-testing/mocking-stubbing/<br />
http://www.javaworld.com/article/2074508/core-java/mocks-and-stubs---understanding-test-doubles-with-mockito.html) [objc.io]</li>
<li><a href="http://martinfowler.com/articles/mocksArentStubs.html">Mocks aren't Stubs</a> [martinfowler.com]</li>
</ul>
<h3>Mockito</h3>
<ul>
<li><a href="https://github.com/mockito/mockito">Mockito library</a> [github.com]</li>
<li><a href="http://site.mockito.org/mockito/docs/current/org/mockito/Mockito.html#stubbing_consecutive_calls">Stubbing consecutive calls</a> [mockito.org]</li>
<li><a href="http://site.mockito.org/mockito/docs/current/org/mockito/ArgumentCaptor.html">Argument Captor</a> [mockito.org]</li>
<li><a href="https://github.com/jayway/powermock">PowerMock</a> [github.com]</li>
</ul>
<h3>Resources</h3>
<ul>
<li><a href="https://github.com/chiuki/friendspell">friendspell | Chiu-Ki’s example project with a variety of testing strategies</a> [github.com]</li>
<li><a href="http://blog.sqisland.com/2015/12/mock-application-in-espresso.html">Mock Application in Espresso for Dependency Injection</a> [sqisland.com]</li>
<li><a href="https://caster.io/lessons/mockwebserver-introduction/?utm_source=fragmentedpodcast&amp;utm_medium=shownotes&amp;utm_term=ep059&amp;utm_campaign=fragmented-ep059">Chiu-Ki's caster.io courses on Testing | MockWebServer</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/chiuki">@chiuki</a> and <a href="https://plus.google.com/+ChiuKiChan">+ChiuKiChan</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="50056082" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/8dbcb8bb-fb30-4ac6-8fa1-86c2c9961087/059-interview-with-chiu-ki_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>059: Interview with Chiu-Ki</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/8dbcb8bb-fb30-4ac6-8fa1-86c2c9961087/3000x3000/1475879191-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:52:07</itunes:duration>
      <itunes:summary>We talk with the all-star multi-talented GDE Chiu-Ki Chan about testing. Specifically, we dive into leveraging Mockito for your testing needs. What is Mocking, what is Stubbing, what are the different test doubles, how does mockito help with this? Listen on to find about that and some more interesting stuff on testing!

Shownotes: http://fragmentedpodcast.com/episodes/059/</itunes:summary>
      <itunes:subtitle>We talk with the all-star multi-talented GDE Chiu-Ki Chan about testing. Specifically, we dive into leveraging Mockito for your testing needs. What is Mocking, what is Stubbing, what are the different test doubles, how does mockito help with this? Listen on to find about that and some more interesting stuff on testing!

Shownotes: http://fragmentedpodcast.com/episodes/059/</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>59</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">562f53a3-478d-41f4-9c8d-48d82c01e069</guid>
      <title>058: Effective Java for Android Developers – Item #11: Override clone Judiciously</title>
      <description><![CDATA[<p>In this mini-Fragment, Donn talks about Item #11 of the Effective Java series - Override clone Judiciously. You'll learn about the extralinguistic behavior of clone and the Cloneable interface. Clone and Cloneable are very special, and this episode helps explain the nuances.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#clone()">Object#clone</a></li>
<li><a href="http://amzn.to/1RUCko3">Effective Java Book</a></li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="https://hired.com/fragmented/">Hired - special offer: double the signing bonus!</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="http://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="http://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="http://twitter.com/kaushikgopal">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Mon, 3 Oct 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this mini-Fragment, Donn talks about Item #11 of the Effective Java series - Override clone Judiciously. You'll learn about the extralinguistic behavior of clone and the Cloneable interface. Clone and Cloneable are very special, and this episode helps explain the nuances.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#clone()">Object#clone</a></li>
<li><a href="http://amzn.to/1RUCko3">Effective Java Book</a></li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="https://hired.com/fragmented/">Hired - special offer: double the signing bonus!</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="http://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="http://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="http://twitter.com/kaushikgopal">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="20066193" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/f5667441-74d7-4615-819f-73e107bd82a0/058-effective-java-item11_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>058: Effective Java for Android Developers – Item #11: Override clone Judiciously</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/f5667441-74d7-4615-819f-73e107bd82a0/3000x3000/1475185667-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:20:53</itunes:duration>
      <itunes:summary>In this mini-Fragment, Donn talks about Item #11 of the Effective Java series - Override clone Judiciously. You&apos;ll learn about the extralinguistic behavior of clone and the Cloneable interface. Clone and Cloneable are very special, and this episode helps explain the nuances. 
</itunes:summary>
      <itunes:subtitle>In this mini-Fragment, Donn talks about Item #11 of the Effective Java series - Override clone Judiciously. You&apos;ll learn about the extralinguistic behavior of clone and the Cloneable interface. Clone and Cloneable are very special, and this episode helps explain the nuances. 
</itunes:subtitle>
      <itunes:keywords>java, android, programming, androiddev, development, developer, software</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>58</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">de4940e2-038e-414a-a29b-77029b502806</guid>
      <title>057: Data Binding with GDE Lisa Wray</title>
      <description><![CDATA[<p>In this episode we talk with, Lisa Wray, first of her job title, mother of the Genius Android app and sorceress of Data Binding.</p>
<p>What is Data Binding? How does it work? What can you do with it? ... and what you can <em>really</em> do with it ! Listen on and find out more. Lisa walks us through the basics and then talks to us about how we can really push the envelope with Data Binding and do some really cool things.</p>
<h2>Show Notes</h2>
<h3>About Lisa Wray</h3>
<ul>
<li><a href="http://www.xwray.com">xwray.com</a></li>
<li><a href="http://genius.com">Genius</a> [genius.com]</li>
<li><a href="http://fragmentedpodcast.com/episodes/42/">Fragmented Ep 042 - Google IO 2016 special</a> [fragmentedpodcast.com]</li>
</ul>
<h3>Data Binding Resources</h3>
<ul>
<li><a href="https://developer.android.com/topic/libraries/data-binding/index.html">Data Binding Library</a> [developer.android.com]</li>
<li><a href="https://www.youtube.com/watch?v=NBbeQMOcnZ0">Data Binding - Writing Apps Faster (Android Dev Summit 2015)</a> [youtube.com]</li>
<li><a href="https://www.youtube.com/watch?v=WdUbXWztKNY">Data Binding Techniques - Jacob Tabak's Droidcon NYC 2015 talk</a> [youtube.com]</li>
<li><a href="https://www.youtube.com/watch?v=zYGVsTE_scI"><code>talk:title=&quot;@{dataBinding}&quot;</code> - Lisa's lightning talk at Square Android Spring Cleaning</a> [youtube.com]</li>
<li><a href="https://www.bignerdranch.com/blog/descent-into-databinding/">Descent into Data Binding - Bill Phillips at Big Nerd Ranch</a> [bignerdranch.com]</li>
<li><a href="https://www.youtube.com/watch?v=DAmMN7m3wLU">Advanced Data Binding - Google I/O 2016</a> [youtube.com]</li>
<li><a href="http://androidbackstage.blogspot.com/2015/09/episode-35-data-bound.html">ADB Ep 35 - Data Bound</a> [androidbackstage.com]</li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="https://hired.com/fragmented/">Hired - special offer: double the signing bonus!</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/lisawrayz">@lisawrayz</a> and <a href="https://plus.google.com/+LisaWrayZeitouni">+LisaWrayZeitouni</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 19 Sep 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode we talk with, Lisa Wray, first of her job title, mother of the Genius Android app and sorceress of Data Binding.</p>
<p>What is Data Binding? How does it work? What can you do with it? ... and what you can <em>really</em> do with it ! Listen on and find out more. Lisa walks us through the basics and then talks to us about how we can really push the envelope with Data Binding and do some really cool things.</p>
<h2>Show Notes</h2>
<h3>About Lisa Wray</h3>
<ul>
<li><a href="http://www.xwray.com">xwray.com</a></li>
<li><a href="http://genius.com">Genius</a> [genius.com]</li>
<li><a href="http://fragmentedpodcast.com/episodes/42/">Fragmented Ep 042 - Google IO 2016 special</a> [fragmentedpodcast.com]</li>
</ul>
<h3>Data Binding Resources</h3>
<ul>
<li><a href="https://developer.android.com/topic/libraries/data-binding/index.html">Data Binding Library</a> [developer.android.com]</li>
<li><a href="https://www.youtube.com/watch?v=NBbeQMOcnZ0">Data Binding - Writing Apps Faster (Android Dev Summit 2015)</a> [youtube.com]</li>
<li><a href="https://www.youtube.com/watch?v=WdUbXWztKNY">Data Binding Techniques - Jacob Tabak's Droidcon NYC 2015 talk</a> [youtube.com]</li>
<li><a href="https://www.youtube.com/watch?v=zYGVsTE_scI"><code>talk:title=&quot;@{dataBinding}&quot;</code> - Lisa's lightning talk at Square Android Spring Cleaning</a> [youtube.com]</li>
<li><a href="https://www.bignerdranch.com/blog/descent-into-databinding/">Descent into Data Binding - Bill Phillips at Big Nerd Ranch</a> [bignerdranch.com]</li>
<li><a href="https://www.youtube.com/watch?v=DAmMN7m3wLU">Advanced Data Binding - Google I/O 2016</a> [youtube.com]</li>
<li><a href="http://androidbackstage.blogspot.com/2015/09/episode-35-data-bound.html">ADB Ep 35 - Data Bound</a> [androidbackstage.com]</li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="https://hired.com/fragmented/">Hired - special offer: double the signing bonus!</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/lisawrayz">@lisawrayz</a> and <a href="https://plus.google.com/+LisaWrayZeitouni">+LisaWrayZeitouni</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="49232229" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/b6caa0a2-b1b2-4970-bdac-5fc38cd73af6/57-lisa-wray_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>057: Data Binding with GDE Lisa Wray</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/b6caa0a2-b1b2-4970-bdac-5fc38cd73af6/3000x3000/1474255331-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:51:16</itunes:duration>
      <itunes:summary>In this episode we talk with, Lisa Wray, first of her job title, mother of the Genius Android app and sorceress of Data Binding.

What is Data Binding? How does it work? What can you do with it? ... and what you can *really* do with it ! Listen on and find out more. Lisa walks us through the basics and then talks to us about how we can really push the envelope with Data Binding and do some really cool things.

Show notes at http://fragmentedpodcast.com/episodes/057/</itunes:summary>
      <itunes:subtitle>In this episode we talk with, Lisa Wray, first of her job title, mother of the Genius Android app and sorceress of Data Binding.

What is Data Binding? How does it work? What can you do with it? ... and what you can *really* do with it ! Listen on and find out more. Lisa walks us through the basics and then talks to us about how we can really push the envelope with Data Binding and do some really cool things.

Show notes at http://fragmentedpodcast.com/episodes/057/</itunes:subtitle>
      <itunes:keywords>android developer podcast, developer podcast, data binding</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>57</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">2f758e65-f510-46b1-8b19-5f0a1624ec14</guid>
      <title>056: GDE Philippe Breault on tinkering with Android Studio (Part II)</title>
      <description><![CDATA[<p>We wind this two part series down with GDE Philippe by chatting about postfix completion, live templates, structural search/replace, integrating with external tools, cool configurations and much more. Prepare to be mind blown.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/055">Ep 55 - Fragmented: Part 1 of this series</a></li>
<li><a href="https://twitter.com/360andev/status/752921824812498945">Phil's talk at 360Andev talk (coming soon): Android Studio like a boss</a> [twitter.com]</li>
<li><a href="https://plus.google.com/collection/wtO0PB">Phil's Android Studio Tip of the day series</a> [plus.google.com]</li>
<li><a href="https://github.com/JakeWharton/timber">Timber logging : courtesy JakeWharton</a> [github.com]</li>
<li><a href="https://github.com/pbreault/adb-idea">ADB Idea plugin by Phil</a> [github.com]</li>
<li>Caster.io AS stuff:
<ul>
<li><a href="https://caster.io/episodes/episode-3-android-studio-productivity-custom-shortcuts?utm_source=fragmentedpodcast&amp;utm_medium=shownotes&amp;utm_term=ep056&amp;utm_campaign=fragmented-ep056">Lesson 3: Android Studio Productivity – Custom Shortcuts</a></li>
<li><a href="https://caster.io/episodes/integrating-robolectric-3-with-android-studio-2/?utm_source=fragmentedpodcast&amp;utm_medium=shownotes&amp;utm_term=ep056&amp;utm_campaign=fragmented-ep056">Lesson 47: Integrating Robolectric 3 with Android Studio 2</a></li>
<li><a href="https://caster.io/episodes/android-studio-applying-logcat-filters/?utm_source=fragmentedpodcast&amp;utm_medium=shownotes&amp;utm_term=ep056&amp;utm_campaign=fragmented-ep056">Lesson 66: Android Studio – Applying Logcat Filters</a></li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/pbreault">@pbreault</a> and <a href="http://developerphil.com">developerphil.com</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Tue, 13 Sep 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>We wind this two part series down with GDE Philippe by chatting about postfix completion, live templates, structural search/replace, integrating with external tools, cool configurations and much more. Prepare to be mind blown.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/055">Ep 55 - Fragmented: Part 1 of this series</a></li>
<li><a href="https://twitter.com/360andev/status/752921824812498945">Phil's talk at 360Andev talk (coming soon): Android Studio like a boss</a> [twitter.com]</li>
<li><a href="https://plus.google.com/collection/wtO0PB">Phil's Android Studio Tip of the day series</a> [plus.google.com]</li>
<li><a href="https://github.com/JakeWharton/timber">Timber logging : courtesy JakeWharton</a> [github.com]</li>
<li><a href="https://github.com/pbreault/adb-idea">ADB Idea plugin by Phil</a> [github.com]</li>
<li>Caster.io AS stuff:
<ul>
<li><a href="https://caster.io/episodes/episode-3-android-studio-productivity-custom-shortcuts?utm_source=fragmentedpodcast&amp;utm_medium=shownotes&amp;utm_term=ep056&amp;utm_campaign=fragmented-ep056">Lesson 3: Android Studio Productivity – Custom Shortcuts</a></li>
<li><a href="https://caster.io/episodes/integrating-robolectric-3-with-android-studio-2/?utm_source=fragmentedpodcast&amp;utm_medium=shownotes&amp;utm_term=ep056&amp;utm_campaign=fragmented-ep056">Lesson 47: Integrating Robolectric 3 with Android Studio 2</a></li>
<li><a href="https://caster.io/episodes/android-studio-applying-logcat-filters/?utm_source=fragmentedpodcast&amp;utm_medium=shownotes&amp;utm_term=ep056&amp;utm_campaign=fragmented-ep056">Lesson 66: Android Studio – Applying Logcat Filters</a></li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/pbreault">@pbreault</a> and <a href="http://developerphil.com">developerphil.com</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="16335261" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/ce31613f-fd45-4ae2-a486-9611ff1615f6/056_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>056: GDE Philippe Breault on tinkering with Android Studio (Part II)</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/ce31613f-fd45-4ae2-a486-9611ff1615f6/3000x3000/1473747607-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:33:59</itunes:duration>
      <itunes:summary>We wind this two part series down with GDE Philippe by chatting about postfix completion, live templates, structural search/replace, integrating with external tools, cool configurations and much more. Prepare to be mind blown.

Shownotes: http://fragmentedpodcast.com/episodes/056/</itunes:summary>
      <itunes:subtitle>We wind this two part series down with GDE Philippe by chatting about postfix completion, live templates, structural search/replace, integrating with external tools, cool configurations and much more. Prepare to be mind blown.

Shownotes: http://fragmentedpodcast.com/episodes/056/</itunes:subtitle>
      <itunes:keywords>android studio, philippe b, gde</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>56</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">e36da231-b44b-45b2-ac67-26c06a02cbcf</guid>
      <title>055: GDE Philippe discusses Tinkering with Android Studio - Part I</title>
      <description><![CDATA[<p>In this 2 part series, we talk to the illustrious Philippe of Android Studio tinkering fame. He starts off by discussing the intermediate basics that everyone should know about using Android Studio: window configuration, keyboard shortcuts, navigating the code smoothly, debugging etc. Gradually he moves into ninja mode and starts blowing DF &amp; KG's minds with cool tips and configurations.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://www.jetbrains.com/idea/buy/">JetBrains Toolbox subscription</a></li>
<li><a href="https://plus.google.com/collection/wtO0PB">Phil's Android Studio Tip of the day series</a> [plus.google.com]</li>
<li><a href="http://2015.droidcon.ca/">DroidCon Montreal 2015</a> [droidcon.ca]</li>
<li><a href="http://hadihariri.com/2014/06/24/no-tabs-in-intellij-idea/">No tabs in IntelliJ - Hadi Hariri</a> [hadihariri.com]</li>
<li><a href="http://fragmentedpodcast.com/episodes/20/">Ep 20 - Fragmented : One with Hadi Hariri</a></li>
<li><a href="http://facebook.github.io/stetho/">Facebook Stetho</a> [github.io]</li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="https://hired.com/fragmented/">Hired - special offer: double the signing bonus!</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/pbreault">@pbreault</a> and <a href="http://developerphil.com">developerphil.com</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 12 Sep 2016 00:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this 2 part series, we talk to the illustrious Philippe of Android Studio tinkering fame. He starts off by discussing the intermediate basics that everyone should know about using Android Studio: window configuration, keyboard shortcuts, navigating the code smoothly, debugging etc. Gradually he moves into ninja mode and starts blowing DF &amp; KG's minds with cool tips and configurations.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://www.jetbrains.com/idea/buy/">JetBrains Toolbox subscription</a></li>
<li><a href="https://plus.google.com/collection/wtO0PB">Phil's Android Studio Tip of the day series</a> [plus.google.com]</li>
<li><a href="http://2015.droidcon.ca/">DroidCon Montreal 2015</a> [droidcon.ca]</li>
<li><a href="http://hadihariri.com/2014/06/24/no-tabs-in-intellij-idea/">No tabs in IntelliJ - Hadi Hariri</a> [hadihariri.com]</li>
<li><a href="http://fragmentedpodcast.com/episodes/20/">Ep 20 - Fragmented : One with Hadi Hariri</a></li>
<li><a href="http://facebook.github.io/stetho/">Facebook Stetho</a> [github.io]</li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="https://hired.com/fragmented/">Hired - special offer: double the signing bonus!</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/pbreault">@pbreault</a> and <a href="http://developerphil.com">developerphil.com</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="25320237" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/5b7d6185-b049-41d6-aca4-559c1fd03845/055_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>055: GDE Philippe discusses Tinkering with Android Studio - Part I</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/5b7d6185-b049-41d6-aca4-559c1fd03845/3000x3000/1473665768-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:52:42</itunes:duration>
      <itunes:summary>In this 2 part series, we talk to the illustrious Philippe of Android Studio tinkering fame. He starts off by discussing the intermediate basics that everyone should know about using Android Studio: window configuration, keyboard shortcuts, navigating the code smoothly, debugging etc. Gradually he moves into ninja mode and starts blowing DF &amp; KG&apos;s minds with cool tips and configurations.

Shownotes:  http://fragmentedpodcast.com/episodes/055/</itunes:summary>
      <itunes:subtitle>In this 2 part series, we talk to the illustrious Philippe of Android Studio tinkering fame. He starts off by discussing the intermediate basics that everyone should know about using Android Studio: window configuration, keyboard shortcuts, navigating the code smoothly, debugging etc. Gradually he moves into ninja mode and starts blowing DF &amp; KG&apos;s minds with cool tips and configurations.

Shownotes:  http://fragmentedpodcast.com/episodes/055/</itunes:subtitle>
      <itunes:keywords>gde, android studio, philippe b</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>55</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">13789984-055a-4755-98ce-f90e4fff73b3</guid>
      <title>054: Git Development Workflow and Branch Versioning for App Devs</title>
      <description><![CDATA[<p>Donn and Kaushik discuss how they use git for their development workflow. They also touch on semantic versioning and how they rollout new versions of their app in a controlled fashion.</p>
<h2>Show Notes</h2>
<h3>Follow up</h3>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/052/">Ep 052: Junit tricks with Parameterized and Enclosing tests</a></li>
<li><a href="https://twitter.com/ppvi/status/765513456749514752">Jose Alcerecca showing some Stephan Linzer love</a></li>
<li><a href="https://github.com/square/burst">Burst : Better Parameterized testing by Square</a></li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://tortoisesvn.net/">TortoiseSVN</a></li>
<li><a href="http://nvie.com/posts/a-successful-git-branching-model/">A successful git branching model</a></li>
<li><a href="https://sourcegear.com/diffmerge/">DiffMerge by SourceGear</a></li>
<li><a href="https://github.com/realm/realm-java/branches">realm-java open source repo</a> (shows branch naming convention)</li>
<li><a href="http://semver.org/">Semantic versioning spec</a></li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="https://hired.com/fragmented/">Hired - special offer: double the signing bonus!</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 5 Sep 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Donn and Kaushik discuss how they use git for their development workflow. They also touch on semantic versioning and how they rollout new versions of their app in a controlled fashion.</p>
<h2>Show Notes</h2>
<h3>Follow up</h3>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/052/">Ep 052: Junit tricks with Parameterized and Enclosing tests</a></li>
<li><a href="https://twitter.com/ppvi/status/765513456749514752">Jose Alcerecca showing some Stephan Linzer love</a></li>
<li><a href="https://github.com/square/burst">Burst : Better Parameterized testing by Square</a></li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="https://tortoisesvn.net/">TortoiseSVN</a></li>
<li><a href="http://nvie.com/posts/a-successful-git-branching-model/">A successful git branching model</a></li>
<li><a href="https://sourcegear.com/diffmerge/">DiffMerge by SourceGear</a></li>
<li><a href="https://github.com/realm/realm-java/branches">realm-java open source repo</a> (shows branch naming convention)</li>
<li><a href="http://semver.org/">Semantic versioning spec</a></li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="https://hired.com/fragmented/">Hired - special offer: double the signing bonus!</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="46368089" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/50b53922-675c-4354-b7d3-b2a9f2ddddf0/054-git-development-workflow-and-branch-versioning-for-app-devs_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>054: Git Development Workflow and Branch Versioning for App Devs</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/50b53922-675c-4354-b7d3-b2a9f2ddddf0/3000x3000/1472860993-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:48:16</itunes:duration>
      <itunes:summary>Donn and Kaushik discuss how they use git for their development workflow. They also touch on semantic versioning and how they rollout new versions of their app in a controlled fashion.

Show notes at http://fragmentedpodcast.com/episodes/054/</itunes:summary>
      <itunes:subtitle>Donn and Kaushik discuss how they use git for their development workflow. They also touch on semantic versioning and how they rollout new versions of their app in a controlled fashion.

Show notes at http://fragmentedpodcast.com/episodes/054/</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>54</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">8eda9ede-7bff-4f59-aea0-bd52b83ec3c0</guid>
      <title>053: Jake Wharton on RxJava (2)</title>
      <description><![CDATA[<p>We have Jake Wharton and RxJava in one episode 💥. In this power-packed episode we talk to Jake about the advances in RxJava 1.x since the last time he was on the show and also looking ahead at the advancements coming down with RxJava 2. If you're interested in RxJava, this episode will definitely be a treat!</p>
<p>Watch out for a special <a href="https://twitter.com/jakewharton/status/749293555970023425">guest cameo</a> by the adorable <a href="https://www.instagram.com/LeFrenchOlive/">Olive</a>.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/6/">Fragmented Episode 6: with Jake</a> [fragmentedpodcast.com]</li>
<li><a href="http://fragmentedpodcast.com/episodes/7/">Fragmented Episode 7: with Jake</a> [fragmentedpodcast.com]</li>
<li><a href="http://sched.droidcon.nyc/showTopicSquarespace/61360">Looking ahead to RxJava 2</a> [droidcon.nyc] - Jake’s upcoming talk at DroidCon 2016</li>
<li><a href="https://github.com/evant/gradle-retrolambda#usage">Retrolambda usage</a> [github.com]</li>
<li>Single
<ul>
<li><a href="http://reactivex.io/documentation/single.html">Documentation</a> [reactivex.io]</li>
<li><a href="https://github.com/ReactiveX/RxJava/issues/1594">Origin github issue discussion</a> [github.com]</li>
</ul>
</li>
<li>Libraries used:
<ul>
<li><a href="https://github.com/JakeWharton/RxRelay">RxRelay</a> [github.com/JakeWharton]</li>
<li><a href="https://github.com/JakeWharton/RxReplayingShare">RxReplayingShare</a> [github.com/JakeWharton]</li>
<li><a href="https://github.com/square/sqlbrite">SqlBrite</a> [github.com]</li>
<li><a href="https://github.com/JakeWharton/RxBinding">RxBindings</a> [github.com]</li>
<li><a href="http://blog.kaush.co/2015/07/11/a-note-about-the-warmth-share-operator/">Note about the warmth of the share operator</a> [blog.kaush.co]</li>
</ul>
</li>
</ul>
<h3>Looking ahead</h3>
<ul>
<li><a href="http://www.reactive-streams.org/">Reactive Streams specification</a> [reactive-streams.org]</li>
<li><a href="http://stackoverflow.com/documentation/rx-java/2341/backpressure/10629/creating-backpressured-data-sources#t=201607290718331225652">Using Observable fromAsync</a> [stackoverflow.com/documentation] (released with 1.1.7)</li>
<li><a href="https://github.com/ReactiveX/RxJava/tree/2.x#releases">RxJava2 release schedule </a> [github.com]</li>
<li>Completable</li>
<li><a href="https://github.com/ReactiveX/RxJava/issues/2787">RxJava 2.0 Design: Naming</a> [github.com]</li>
<li>Backpressure types - buffer, latest, drop</li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/buddybuild">BuddyBuild</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/JakeWharton">@JakeWharton</a> and <a href="http://jakewharton.com/">jakewharton.com</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 22 Aug 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>We have Jake Wharton and RxJava in one episode 💥. In this power-packed episode we talk to Jake about the advances in RxJava 1.x since the last time he was on the show and also looking ahead at the advancements coming down with RxJava 2. If you're interested in RxJava, this episode will definitely be a treat!</p>
<p>Watch out for a special <a href="https://twitter.com/jakewharton/status/749293555970023425">guest cameo</a> by the adorable <a href="https://www.instagram.com/LeFrenchOlive/">Olive</a>.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/6/">Fragmented Episode 6: with Jake</a> [fragmentedpodcast.com]</li>
<li><a href="http://fragmentedpodcast.com/episodes/7/">Fragmented Episode 7: with Jake</a> [fragmentedpodcast.com]</li>
<li><a href="http://sched.droidcon.nyc/showTopicSquarespace/61360">Looking ahead to RxJava 2</a> [droidcon.nyc] - Jake’s upcoming talk at DroidCon 2016</li>
<li><a href="https://github.com/evant/gradle-retrolambda#usage">Retrolambda usage</a> [github.com]</li>
<li>Single
<ul>
<li><a href="http://reactivex.io/documentation/single.html">Documentation</a> [reactivex.io]</li>
<li><a href="https://github.com/ReactiveX/RxJava/issues/1594">Origin github issue discussion</a> [github.com]</li>
</ul>
</li>
<li>Libraries used:
<ul>
<li><a href="https://github.com/JakeWharton/RxRelay">RxRelay</a> [github.com/JakeWharton]</li>
<li><a href="https://github.com/JakeWharton/RxReplayingShare">RxReplayingShare</a> [github.com/JakeWharton]</li>
<li><a href="https://github.com/square/sqlbrite">SqlBrite</a> [github.com]</li>
<li><a href="https://github.com/JakeWharton/RxBinding">RxBindings</a> [github.com]</li>
<li><a href="http://blog.kaush.co/2015/07/11/a-note-about-the-warmth-share-operator/">Note about the warmth of the share operator</a> [blog.kaush.co]</li>
</ul>
</li>
</ul>
<h3>Looking ahead</h3>
<ul>
<li><a href="http://www.reactive-streams.org/">Reactive Streams specification</a> [reactive-streams.org]</li>
<li><a href="http://stackoverflow.com/documentation/rx-java/2341/backpressure/10629/creating-backpressured-data-sources#t=201607290718331225652">Using Observable fromAsync</a> [stackoverflow.com/documentation] (released with 1.1.7)</li>
<li><a href="https://github.com/ReactiveX/RxJava/tree/2.x#releases">RxJava2 release schedule </a> [github.com]</li>
<li>Completable</li>
<li><a href="https://github.com/ReactiveX/RxJava/issues/2787">RxJava 2.0 Design: Naming</a> [github.com]</li>
<li>Backpressure types - buffer, latest, drop</li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/buddybuild">BuddyBuild</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/JakeWharton">@JakeWharton</a> and <a href="http://jakewharton.com/">jakewharton.com</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="63994141" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/8011feff-17b8-44cb-a9d9-3b256be9ab47/053-jake-wharton-on-rxjava-feat-olive_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>053: Jake Wharton on RxJava (2)</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/8011feff-17b8-44cb-a9d9-3b256be9ab47/3000x3000/1471652948-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:06:38</itunes:duration>
      <itunes:summary>We have Jake Wharton and RxJava in one episode 💥. In this power-packed episode we talk to Jake about the advances in RxJava 1.x since the last time he was on the show and also looking ahead at the advancements coming down with RxJava 2. If you&apos;re interested in RxJava, this episode will definitely be a treat!

Show notes at http://fragmentedpodcast.com/episodes/53/

Watch out for a special [guest cameo](https://twitter.com/jakewharton/status/749293555970023425) by the adorable [Olive](https://www.instagram.com/LeFrenchOlive/).</itunes:summary>
      <itunes:subtitle>We have Jake Wharton and RxJava in one episode 💥. In this power-packed episode we talk to Jake about the advances in RxJava 1.x since the last time he was on the show and also looking ahead at the advancements coming down with RxJava 2. If you&apos;re interested in RxJava, this episode will definitely be a treat!

Show notes at http://fragmentedpodcast.com/episodes/53/

Watch out for a special [guest cameo](https://twitter.com/jakewharton/status/749293555970023425) by the adorable [Olive](https://www.instagram.com/LeFrenchOlive/).</itunes:subtitle>
      <itunes:keywords>fragmented, rxjava, rxjake, rxjava 2, android developer podcast, jake wharton</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>53</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">f7977ce3-16af-488b-a759-b861be3f1d7a</guid>
      <title>052: Junit4 tricks with @Parameterized @Enclosing tests</title>
      <description><![CDATA[<p>In this mini fragment Kaushik talks about some cool Junit 4 tricks using Parameterize, Enclosing test runners. 🤘 #AlwaysBeTesting</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://tools.android.com/tech-docs/unit-testing-support">Junit4 introduced with Android Studio 1.1</a> [tools.android.com]</li>
<li><a href="https://github.com/junit-team/junit4/wiki/parameterized-tests">Junit4 Parameterized tests</a> [github.com]</li>
<li><a href="https://github.com/googlesamples/android-testing/blob/master/runner/AndroidJunitRunnerSample/app/src/androidTest/java/com/example/android/testing/androidjunitrunnersample/CalculatorAddParameterizedTest.java">Calculator example from googlesamples</a> [github.com]</li>
<li><a href="https://gist.github.com/kaushikgopal/b6aa7d111d48705435ce93d4a2c22b3e">Sample template code for Enclosed.class</a> [gist.github.com]</li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/buddybuild">BuddyBuild</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 15 Aug 2016 00:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this mini fragment Kaushik talks about some cool Junit 4 tricks using Parameterize, Enclosing test runners. 🤘 #AlwaysBeTesting</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://tools.android.com/tech-docs/unit-testing-support">Junit4 introduced with Android Studio 1.1</a> [tools.android.com]</li>
<li><a href="https://github.com/junit-team/junit4/wiki/parameterized-tests">Junit4 Parameterized tests</a> [github.com]</li>
<li><a href="https://github.com/googlesamples/android-testing/blob/master/runner/AndroidJunitRunnerSample/app/src/androidTest/java/com/example/android/testing/androidjunitrunnersample/CalculatorAddParameterizedTest.java">Calculator example from googlesamples</a> [github.com]</li>
<li><a href="https://gist.github.com/kaushikgopal/b6aa7d111d48705435ce93d4a2c22b3e">Sample template code for Enclosed.class</a> [gist.github.com]</li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/buddybuild">BuddyBuild</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="15336007" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/d584463c-22eb-47fc-b28e-d34204b2e2f6/052-testing_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>052: Junit4 tricks with @Parameterized @Enclosing tests</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/d584463c-22eb-47fc-b28e-d34204b2e2f6/3000x3000/1470950401-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:15:57</itunes:duration>
      <itunes:summary>In this mini fragment Kaushik talks about some cool Junit 4 tricks using Parameterize, Enclosing test runners

Show notes at http://fragmentedpodcast.com/episodes/52/

🤘 #AlwaysBeTesting</itunes:summary>
      <itunes:subtitle>In this mini fragment Kaushik talks about some cool Junit 4 tricks using Parameterize, Enclosing test runners

Show notes at http://fragmentedpodcast.com/episodes/52/

🤘 #AlwaysBeTesting</itunes:subtitle>
      <itunes:keywords>junit4, android developer podcast, parameterized, enclosed</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>52</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">d3163b21-7355-441c-a247-9a3702d02020</guid>
      <title>051: Annotation processing Q&amp;A with GDE Mike Evans</title>
      <description><![CDATA[<p>We've always wanted to know more about annotation processing, so in this episode we pick GDE Mike Evans' brains on the topic and ask him a whole bunch of questions. If you've thought about diving into Annotation processing but never quite grappled with what it's all about, this is a good episode to listen to.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=dBUAqPs0TB0">Mike's DroidCon NYC 2015</a> [youtube.com]</li>
<li><a href="https://github.com/airbnb/DeepLinkDispatch">AirBnB's deep link dispatch</a> [github.com]</li>
<li><a href="http://jakewharton.github.io/butterknife/">ButterKnife from Jake Wharton</a> [github.io]</li>
<li><a href="http://michaelevans.org/blog/2015/07/14/improving-your-code-with-android-support-annotations/">Improving your code with Android Support Annotations</a> [michaelevans.org]</li>
<li><a href="https://www.youtube.com/watch?v=dOcs-NKK-RA">Jake Wharton and Jesse Wilson - Annotation Processing Boilerplate Destruction</a> [youtube.com]</li>
<li><a href="http://fragmentedpodcast.com/episodes/021/">021: Fragmented - Jesse Wilson on Linker</a> [fragmentedpodcast.com]</li>
<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/ElementType.html">@Target Element Types</a> [docs.oracle.com]</li>
<li><a href="https://github.com/square/javapoet">JavaPoet by Square</a> [github.com]</li>
<li><a href="https://github.com/google/auto/tree/master/service">AutoService library by Google</a></li>
<li><a href="https://blog.jetbrains.com/kotlin/2015/05/kapt-annotation-processing-for-kotlin/">kapt - Annotation processing for Kotlin</a> [blog.jetbrains.com]</li>
<li><a href="http://hannesdorfmann.com/annotation-processing/annotationprocessing101">Annotation processing 101</a> [hannesdorfmann.com]</li>
<li><a href="https://github.com/MichaelEvans/Aftermath">Aftermath by Michael Evans</a> [github.com]</li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/buddybuild">BuddyBuild</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/m_evans10">@m_evans10</a> and <a href="https://plus.google.com/+MichaelEvans">+MichaelEvans</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 8 Aug 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>We've always wanted to know more about annotation processing, so in this episode we pick GDE Mike Evans' brains on the topic and ask him a whole bunch of questions. If you've thought about diving into Annotation processing but never quite grappled with what it's all about, this is a good episode to listen to.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=dBUAqPs0TB0">Mike's DroidCon NYC 2015</a> [youtube.com]</li>
<li><a href="https://github.com/airbnb/DeepLinkDispatch">AirBnB's deep link dispatch</a> [github.com]</li>
<li><a href="http://jakewharton.github.io/butterknife/">ButterKnife from Jake Wharton</a> [github.io]</li>
<li><a href="http://michaelevans.org/blog/2015/07/14/improving-your-code-with-android-support-annotations/">Improving your code with Android Support Annotations</a> [michaelevans.org]</li>
<li><a href="https://www.youtube.com/watch?v=dOcs-NKK-RA">Jake Wharton and Jesse Wilson - Annotation Processing Boilerplate Destruction</a> [youtube.com]</li>
<li><a href="http://fragmentedpodcast.com/episodes/021/">021: Fragmented - Jesse Wilson on Linker</a> [fragmentedpodcast.com]</li>
<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/ElementType.html">@Target Element Types</a> [docs.oracle.com]</li>
<li><a href="https://github.com/square/javapoet">JavaPoet by Square</a> [github.com]</li>
<li><a href="https://github.com/google/auto/tree/master/service">AutoService library by Google</a></li>
<li><a href="https://blog.jetbrains.com/kotlin/2015/05/kapt-annotation-processing-for-kotlin/">kapt - Annotation processing for Kotlin</a> [blog.jetbrains.com]</li>
<li><a href="http://hannesdorfmann.com/annotation-processing/annotationprocessing101">Annotation processing 101</a> [hannesdorfmann.com]</li>
<li><a href="https://github.com/MichaelEvans/Aftermath">Aftermath by Michael Evans</a> [github.com]</li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/buddybuild">BuddyBuild</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/m_evans10">@m_evans10</a> and <a href="https://plus.google.com/+MichaelEvans">+MichaelEvans</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="37581505" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/d9845088-cb03-48cd-bf6e-3adc5f93ef1e/051-interview-with-mike-evans_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>051: Annotation processing Q&amp;A with GDE Mike Evans</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/d9845088-cb03-48cd-bf6e-3adc5f93ef1e/3000x3000/1470438692-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:39:07</itunes:duration>
      <itunes:summary>We&apos;ve always wanted to know more about annotation processing, so in this episode we pick GDE Mike Evans&apos; brains on the topic and ask him a whole bunch of questions. If you&apos;ve thought about diving into Annotation processing but never quite grappled with what it&apos;s all about, this is a good episode to listen to.

http://fragmentedpodcast.com/episodes/51/</itunes:summary>
      <itunes:subtitle>We&apos;ve always wanted to know more about annotation processing, so in this episode we pick GDE Mike Evans&apos; brains on the topic and ask him a whole bunch of questions. If you&apos;ve thought about diving into Annotation processing but never quite grappled with what it&apos;s all about, this is a good episode to listen to.

http://fragmentedpodcast.com/episodes/51/</itunes:subtitle>
      <itunes:keywords>mike evans, gde, android developer podcast, annotation processing</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>51</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">15bc4831-7e5d-4179-8176-d579d5644082</guid>
      <title>050: GDE gentleman Mark Allison dissects Constraint Layouts</title>
      <description><![CDATA[<p>Friend of the show -and one of the finest gentlemen we know- Mark Allison chats with us about Constraint Layouts, what they are, why you need them, what to watch out for and how you can start using them in your application.</p>
<h2>Show Notes</h2>
<ul>
<li>
<p><a href="https://blog.stylingandroid.com/">Styling Android - Mark's blog</a> [stylingandroid.com]</p>
</li>
<li>
<p>Marks' Constraint Layout Series:  [stylingandroid.com]</p>
<ul>
<li><a href="https://blog.stylingandroid.com/constraintlayout-part-1/">Part 1</a></li>
<li><a href="https://blog.stylingandroid.com/constraintlayout-part-2/">Part 2</a></li>
<li><a href="https://blog.stylingandroid.com/constraintlayout-part-3/">Part 3</a></li>
<li><a href="https://blog.stylingandroid.com/constraintlayout-part-4/">Part 4</a></li>
<li><a href="https://blog.stylingandroid.com/constraintlayout-part-5/">Part 5</a></li>
<li><a href="https://blog.stylingandroid.com/constraintlayout-part-6/">Part 6</a></li>
<li><a href="https://blog.stylingandroid.com/constraintlayout-part-7/">Part 7</a></li>
<li><a href="https://blog.stylingandroid.com/constraintlayout-part-8/">Part 8</a></li>
</ul>
</li>
<li>
<p><a href="http://android-developers.blogspot.com/2016/05/android-studio-22-preview-new-ui.html">Introducing Constraint Layout</a> [tools.android.com]</p>
</li>
<li>
<p><a href="http://www.grokkingandroid.com/thoughts-on-constraintlayout-and-design-editor/">Wolfram's post: Some thoughts on Android's new Constraint Layout and Android Studio's new Design Editor</a> [grokkingandroid.com]</p>
</li>
<li>
<p><a href="http://androidbackstage.blogspot.com/2016/06/episode-50-constraint-layout.html">ADB episode-50</a> [androidbackstage.blogspot.com]</p>
</li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="https://hired.com/fragmented/">Hired - special offer: double the signing bonus!</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/MarkIAllison">@MarkIAllison</a> and <a href="https://blog.stylingandroid.com/">Styling Android</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 1 Aug 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Friend of the show -and one of the finest gentlemen we know- Mark Allison chats with us about Constraint Layouts, what they are, why you need them, what to watch out for and how you can start using them in your application.</p>
<h2>Show Notes</h2>
<ul>
<li>
<p><a href="https://blog.stylingandroid.com/">Styling Android - Mark's blog</a> [stylingandroid.com]</p>
</li>
<li>
<p>Marks' Constraint Layout Series:  [stylingandroid.com]</p>
<ul>
<li><a href="https://blog.stylingandroid.com/constraintlayout-part-1/">Part 1</a></li>
<li><a href="https://blog.stylingandroid.com/constraintlayout-part-2/">Part 2</a></li>
<li><a href="https://blog.stylingandroid.com/constraintlayout-part-3/">Part 3</a></li>
<li><a href="https://blog.stylingandroid.com/constraintlayout-part-4/">Part 4</a></li>
<li><a href="https://blog.stylingandroid.com/constraintlayout-part-5/">Part 5</a></li>
<li><a href="https://blog.stylingandroid.com/constraintlayout-part-6/">Part 6</a></li>
<li><a href="https://blog.stylingandroid.com/constraintlayout-part-7/">Part 7</a></li>
<li><a href="https://blog.stylingandroid.com/constraintlayout-part-8/">Part 8</a></li>
</ul>
</li>
<li>
<p><a href="http://android-developers.blogspot.com/2016/05/android-studio-22-preview-new-ui.html">Introducing Constraint Layout</a> [tools.android.com]</p>
</li>
<li>
<p><a href="http://www.grokkingandroid.com/thoughts-on-constraintlayout-and-design-editor/">Wolfram's post: Some thoughts on Android's new Constraint Layout and Android Studio's new Design Editor</a> [grokkingandroid.com]</p>
</li>
<li>
<p><a href="http://androidbackstage.blogspot.com/2016/06/episode-50-constraint-layout.html">ADB episode-50</a> [androidbackstage.blogspot.com]</p>
</li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="https://hired.com/fragmented/">Hired - special offer: double the signing bonus!</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/MarkIAllison">@MarkIAllison</a> and <a href="https://blog.stylingandroid.com/">Styling Android</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="42652602" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/c3932a30-985c-47f6-a171-9d2df54353e8/50-interview-with-mark-allison_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>050: GDE gentleman Mark Allison dissects Constraint Layouts</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/c3932a30-985c-47f6-a171-9d2df54353e8/3000x3000/1469921362-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:44:24</itunes:duration>
      <itunes:summary>Friend of the show -and one of the finest gentlemen we know- Mark Allison chats with us about Constraint Layouts, what they are, why you need them, what to watch out for and how you can start using them in your application.

Shownotes at </itunes:summary>
      <itunes:subtitle>Friend of the show -and one of the finest gentlemen we know- Mark Allison chats with us about Constraint Layouts, what they are, why you need them, what to watch out for and how you can start using them in your application.

Shownotes at </itunes:subtitle>
      <itunes:keywords>styling android, constraint layout, android developer podcast, mark allison</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>50</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">8b06909b-0421-4a3e-90ca-d9fd9fdd9619</guid>
      <title>049: Translating an app for different languages with Dan Lew</title>
      <description><![CDATA[<p>Friend of the show Dan Lew makes a return! In this show Kaushik talks to Dan about translating an app for other languages.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/39/">Ep 39: Elliot Chenger</a> [fragmentedpodcast.com]</li>
<li><a href="https://github.com/grantland/android-autofittextview">AutoFitting TextViews</a>  [github.com]</li>
<li><a href="https://www.transifex.com">Transifex - service for helping with translations</a></li>
<li><a href="http://blog.danlew.net/2015/04/06/pseudolocalization-visiting-androids-bizarro-world/">Pseudo localization</a> [danlew.net]</li>
<li><a href="https://en.wikipedia.org/wiki/XLIFF">Xliff</a> [wikipedia.org]</li>
<li><a href="https://github.com/square/phrase">Phrase lib by Square</a> [github.com]</li>
<li><a href="https://www.youtube.com/watch?v=4dJHtT4-vBE">Ahmed's Droidcon SF talk: From Right to Left and Back</a> [youtube.com]</li>
<li><a href="https://www.youtube.com/watch?v=0j74jcxSunY">Internationalis(z)ing Code - Computerphile</a> [youtube.com]</li>
<li><a href="http://motherboard.vice.com/read/what-the-emoji-youre-sending-actually-look-like-to-your-friends">What your emojis actually look like</a> [youtube.com]</li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="https://hired.com/fragmented/">Hired - special offer: double the signing bonus!</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/danlew42">@danlew42</a> [twitter.com] and <a href="http://blog.danlew.net">Dan's website</a> [danlew.net]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 18 Jul 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Friend of the show Dan Lew makes a return! In this show Kaushik talks to Dan about translating an app for other languages.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/episodes/39/">Ep 39: Elliot Chenger</a> [fragmentedpodcast.com]</li>
<li><a href="https://github.com/grantland/android-autofittextview">AutoFitting TextViews</a>  [github.com]</li>
<li><a href="https://www.transifex.com">Transifex - service for helping with translations</a></li>
<li><a href="http://blog.danlew.net/2015/04/06/pseudolocalization-visiting-androids-bizarro-world/">Pseudo localization</a> [danlew.net]</li>
<li><a href="https://en.wikipedia.org/wiki/XLIFF">Xliff</a> [wikipedia.org]</li>
<li><a href="https://github.com/square/phrase">Phrase lib by Square</a> [github.com]</li>
<li><a href="https://www.youtube.com/watch?v=4dJHtT4-vBE">Ahmed's Droidcon SF talk: From Right to Left and Back</a> [youtube.com]</li>
<li><a href="https://www.youtube.com/watch?v=0j74jcxSunY">Internationalis(z)ing Code - Computerphile</a> [youtube.com]</li>
<li><a href="http://motherboard.vice.com/read/what-the-emoji-youre-sending-actually-look-like-to-your-friends">What your emojis actually look like</a> [youtube.com]</li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="https://hired.com/fragmented/">Hired - special offer: double the signing bonus!</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/danlew42">@danlew42</a> [twitter.com] and <a href="http://blog.danlew.net">Dan's website</a> [danlew.net]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="44281773" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/1ef27aad-be6c-45fb-b8df-cbcea20e382b/049-dan-lew_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>049: Translating an app for different languages with Dan Lew</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/1ef27aad-be6c-45fb-b8df-cbcea20e382b/3000x3000/1468618193-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:46:06</itunes:duration>
      <itunes:summary>Friend of the show Dan Lew makes a return! In this show Kaushik talks to Dan about translating an app for other languages.

Show notes at http://fragmentedpodcast.com/episodes/49/</itunes:summary>
      <itunes:subtitle>Friend of the show Dan Lew makes a return! In this show Kaushik talks to Dan about translating an app for other languages.

Show notes at http://fragmentedpodcast.com/episodes/49/</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>49</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">c7b461ad-35f4-4b48-9dc1-36a77c50252c</guid>
      <title>048: Tips and tricks we picked in 2016 (I)</title>
      <description><![CDATA[<p>2016's first installment of a grand bonanza of tips and tricks for #AndroidDev! Donn and Kaushik talk about all the tips and tricks they've picked up over the first part of this year.</p>
<h2>Show Notes</h2>
<ul>
<li>[Orthogonal podcast](http://spec.fm/podcasts/orthogonal</li>
<li><a href="https://developers.google.com/groups/">GDG - Google Developer Groups</a> [developers.google.com]</li>
<li><a href="http://fragmentedpodcast.com/episodes/28/">Ep 028: Fragmented -  tips and tricks from 2015</a> [fragmentedpodcast.com]</li>
<li>DF: Developer happiness is <a href="https://gettingreal.37signals.com/ch10_Optimize_for_Happiness.php">a real thing</a>; Learn <a href="http://kotlinlang.org">Kotlin</a>.</li>
<li>KG: Prevent logcat clearing on app crash
<ul>
<li><a href="http://stackoverflow.com/a/31040015/159825">link 1</a> [stackoverflow.com]</li>
<li><a href="http://stackoverflow.com/questions/35415101/prevent-android-logcat-clear-during-app-restart">link 2</a> [stackoverflow.com]</li>
</ul>
</li>
<li>KG: IntelliJ command line launcher:
<ul>
<li><a href="http://brian.pontarelli.com/2013/10/25/using-idea-for-git-merging-and-diffing/">git diffing</a> [pontarelli.com]</li>
<li><a href="https://www.jetbrains.com/help/idea/2016.1/running-intellij-idea-as-a-diff-or-merge-command-line-tool.html">regular diffing</a> [jetbrains.com]</li>
<li><a href="https://youtu.be/hHnTIMjd1Y8?t=1m59s">IO 2016 session: Expert guide to Android Studio</a> [youtube.com]</li>
</ul>
</li>
<li>DF:
<ul>
<li><a href="http://plugins.jetbrains.com/plugin/4455">KeyPromoter plugin</a> [jetbrains.com]</li>
<li><a href="http://www.developerphil.com/android-studio-tips-of-the-day-roundup-1/">Philippe Breault</a> [developerphil.com]</li>
</ul>
</li>
<li>DF: Window management tool
<ul>
<li><a href="http://mizage.com/divvy/">Divvy</a> [mizage.com]</li>
<li><a href="https://manytricks.com/moom/">Moom</a> [manytricks.com]</li>
<li><a href="http://www.slant.co/topics/526/%7Ewindow-manager-for-mac">Slant article comparing window management tools (for the Mac)</a> [slant.com]</li>
<li><a href="https://github.com/kasper/phoenix">Phoenix - lightweight open source js configurable tool</a> [github.com]</li>
</ul>
</li>
<li><a href="https://caster.io/instructors/annyce-davis/?utm_source=fragmentedpodcast&amp;utm_medium=shownotes&amp;utm_term=ep048&amp;utm_campaign=fragmented-ep048">Annyce' caster.io videos</a> [caster.io]</li>
<li>DF:
<ul>
<li><a href="https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en">Postman chrome extension</a> [chrome.google.com]</li>
<li><a href="http://blog.runscope.com/posts/new-import-feature-support-for-swagger-postman">Runscope</a> [blog.runscope.com]</li>
</ul>
</li>
<li><a href="https://gist.github.com/donnfelker/5e919828c889e5e82173929cb53969be">Donn's git alias (un)watch</a> [gist.github.com]</li>
<li>git config:
<ul>
<li><a href="https://gist.github.com/donnfelker/e8c51a98e22f2bf1c2d5">Donn</a> [gist.github.com]</li>
<li><a href="https://gist.github.com/kaushikgopal/c9cc3c2307cbfd2dfc7addd119daa7a1">KG</a> [gist.github.com]</li>
</ul>
</li>
<li>KG: <a href="https://gist.github.com/kaushikgopal/90135e035147870e037b723e6e94c6e2">LogExOnlySubscriber.java - log exceptions only subscriber</a> [gist.github.com]</li>
<li>KG: <a href="https://gist.github.com/kaushikgopal/b680b69953cc5a5692581f69b8c9c65c">RxSchedulerHook.java - Lazy man's RxJava Espresso scheduler hooks</a> [gist.github.com]</li>
<li>DF: <a href="http://mizage.com/shush/">Shush</a> [mizage.com]</li>
<li>KG: Intellij plugins
<ul>
<li><a href="https://plugins.jetbrains.com/plugin/2162?pr=idea">String Manipulation</a> [plugins.jetbrains.com]</li>
<li><a href="https://plugins.jetbrains.com/plugin/5919?pr=clion">Lines Sorter</a> [plugins.jetbrains.com]</li>
<li><a href="https://blog.jetbrains.com/objc/2014/03/github-right-in-your-ide/">Open on Github - see last line in blog post</a> [blog.jetbrains.com]</li>
</ul>
</li>
<li>DF:
<ul>
<li><a href="http://amzn.to/29jNSUR">8 steps to a pain free back</a> [amazon.com]</li>
<li><a href="http://www.ikea.com/us/en/catalog/products/S19022530/">IKEA - Bekant standup desk</a> [ikea.com]</li>
<li><a href="https://www.autonomous.ai/desk">Autonomous - SmartDesk</a> [autonomous.ai]</li>
</ul>
</li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="https://hired.com/fragmented/">Hired - special offer: double the signing bonus!</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 11 Jul 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>2016's first installment of a grand bonanza of tips and tricks for #AndroidDev! Donn and Kaushik talk about all the tips and tricks they've picked up over the first part of this year.</p>
<h2>Show Notes</h2>
<ul>
<li>[Orthogonal podcast](http://spec.fm/podcasts/orthogonal</li>
<li><a href="https://developers.google.com/groups/">GDG - Google Developer Groups</a> [developers.google.com]</li>
<li><a href="http://fragmentedpodcast.com/episodes/28/">Ep 028: Fragmented -  tips and tricks from 2015</a> [fragmentedpodcast.com]</li>
<li>DF: Developer happiness is <a href="https://gettingreal.37signals.com/ch10_Optimize_for_Happiness.php">a real thing</a>; Learn <a href="http://kotlinlang.org">Kotlin</a>.</li>
<li>KG: Prevent logcat clearing on app crash
<ul>
<li><a href="http://stackoverflow.com/a/31040015/159825">link 1</a> [stackoverflow.com]</li>
<li><a href="http://stackoverflow.com/questions/35415101/prevent-android-logcat-clear-during-app-restart">link 2</a> [stackoverflow.com]</li>
</ul>
</li>
<li>KG: IntelliJ command line launcher:
<ul>
<li><a href="http://brian.pontarelli.com/2013/10/25/using-idea-for-git-merging-and-diffing/">git diffing</a> [pontarelli.com]</li>
<li><a href="https://www.jetbrains.com/help/idea/2016.1/running-intellij-idea-as-a-diff-or-merge-command-line-tool.html">regular diffing</a> [jetbrains.com]</li>
<li><a href="https://youtu.be/hHnTIMjd1Y8?t=1m59s">IO 2016 session: Expert guide to Android Studio</a> [youtube.com]</li>
</ul>
</li>
<li>DF:
<ul>
<li><a href="http://plugins.jetbrains.com/plugin/4455">KeyPromoter plugin</a> [jetbrains.com]</li>
<li><a href="http://www.developerphil.com/android-studio-tips-of-the-day-roundup-1/">Philippe Breault</a> [developerphil.com]</li>
</ul>
</li>
<li>DF: Window management tool
<ul>
<li><a href="http://mizage.com/divvy/">Divvy</a> [mizage.com]</li>
<li><a href="https://manytricks.com/moom/">Moom</a> [manytricks.com]</li>
<li><a href="http://www.slant.co/topics/526/%7Ewindow-manager-for-mac">Slant article comparing window management tools (for the Mac)</a> [slant.com]</li>
<li><a href="https://github.com/kasper/phoenix">Phoenix - lightweight open source js configurable tool</a> [github.com]</li>
</ul>
</li>
<li><a href="https://caster.io/instructors/annyce-davis/?utm_source=fragmentedpodcast&amp;utm_medium=shownotes&amp;utm_term=ep048&amp;utm_campaign=fragmented-ep048">Annyce' caster.io videos</a> [caster.io]</li>
<li>DF:
<ul>
<li><a href="https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en">Postman chrome extension</a> [chrome.google.com]</li>
<li><a href="http://blog.runscope.com/posts/new-import-feature-support-for-swagger-postman">Runscope</a> [blog.runscope.com]</li>
</ul>
</li>
<li><a href="https://gist.github.com/donnfelker/5e919828c889e5e82173929cb53969be">Donn's git alias (un)watch</a> [gist.github.com]</li>
<li>git config:
<ul>
<li><a href="https://gist.github.com/donnfelker/e8c51a98e22f2bf1c2d5">Donn</a> [gist.github.com]</li>
<li><a href="https://gist.github.com/kaushikgopal/c9cc3c2307cbfd2dfc7addd119daa7a1">KG</a> [gist.github.com]</li>
</ul>
</li>
<li>KG: <a href="https://gist.github.com/kaushikgopal/90135e035147870e037b723e6e94c6e2">LogExOnlySubscriber.java - log exceptions only subscriber</a> [gist.github.com]</li>
<li>KG: <a href="https://gist.github.com/kaushikgopal/b680b69953cc5a5692581f69b8c9c65c">RxSchedulerHook.java - Lazy man's RxJava Espresso scheduler hooks</a> [gist.github.com]</li>
<li>DF: <a href="http://mizage.com/shush/">Shush</a> [mizage.com]</li>
<li>KG: Intellij plugins
<ul>
<li><a href="https://plugins.jetbrains.com/plugin/2162?pr=idea">String Manipulation</a> [plugins.jetbrains.com]</li>
<li><a href="https://plugins.jetbrains.com/plugin/5919?pr=clion">Lines Sorter</a> [plugins.jetbrains.com]</li>
<li><a href="https://blog.jetbrains.com/objc/2014/03/github-right-in-your-ide/">Open on Github - see last line in blog post</a> [blog.jetbrains.com]</li>
</ul>
</li>
<li>DF:
<ul>
<li><a href="http://amzn.to/29jNSUR">8 steps to a pain free back</a> [amazon.com]</li>
<li><a href="http://www.ikea.com/us/en/catalog/products/S19022530/">IKEA - Bekant standup desk</a> [ikea.com]</li>
<li><a href="https://www.autonomous.ai/desk">Autonomous - SmartDesk</a> [autonomous.ai]</li>
</ul>
</li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="https://hired.com/fragmented/">Hired - special offer: double the signing bonus!</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="56914577" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/1eca091d-e270-49b9-82c5-e72ba5581c2e/048-tips-and-tricks_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>048: Tips and tricks we picked in 2016 (I)</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/1eca091d-e270-49b9-82c5-e72ba5581c2e/3000x3000/1468101934-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:59:16</itunes:duration>
      <itunes:summary>2016&apos;s first installment of a grand bonanza of tips and tricks for #AndroidDev! Donn and Kaushik talk about all the tips and tricks they&apos;ve picked up over the first part of this year. 

Show notes at http://fragmentedpodcast.com/episodes/048/
</itunes:summary>
      <itunes:subtitle>2016&apos;s first installment of a grand bonanza of tips and tricks for #AndroidDev! Donn and Kaushik talk about all the tips and tricks they&apos;ve picked up over the first part of this year. 

Show notes at http://fragmentedpodcast.com/episodes/048/
</itunes:subtitle>
      <itunes:keywords>android, androiddev tips tricks, developer, tips, podcast, tricks</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>48</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">7e46d098-c2cd-489f-a68a-69c31bf349e9</guid>
      <title>047: Interview with Huyen Dao</title>
      <description><![CDATA[<p>In this episode we talk to Trello Engineer, GDE, Youtuber, Caster IO instructor and View magician Huyen about all things custom View/ViewGroups.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://www.youtube.com/channel/UCMEmNnHT69aZuaOrE-dF6ug">Android Dialogs</a> [youtube.com]</li>
<li><a href="https://caster.io/episodes/custom-views-and-viewgroups-part-1/?utm_source=fragmentedpodcast&amp;utm_medium=shownotes&amp;utm_term=ep047&amp;utm_campaign=fragmented-ep047">Huyen's Custom Views/View Groups Part 1</a> [caster.io]</li>
<li><a href="https://developer.android.com/guide/topics/ui/how-android-draws.html">How Android draws views</a> [developer.android.com]</li>
</ul>
<h2>Resources</h2>
<ul>
<li><a href="https://caster.io/instructors/huyen-tue-dao?utm_source=fragmentedpodcast&amp;utm_medium=shownotes&amp;utm_term=ep047&amp;utm_campaign=fragmented-ep047">Huyen's caster.io series</a> [caster.io]</li>
<li><a href="https://www.youtube.com/watch?v=-8M5nDABiqg">New Circle - Enhancing Android UI with Custom Views</a> [youtube.com]</li>
<li><a href="https://www.youtube.com/watch?v=-xAdDqwaWJk">Loving Lean Layouts - DroidCon SF 2016</a> [youtube.com]</li>
<li><a href="http://lucasr.org/2014/05/12/custom-layouts-on-android/">Custom Layouts on Android - Lucas Rocha</a> [lucasr.org]</li>
<li><a href="https://youtu.be/jF6Ad4GYjRU">Taming Android UI's - Erik Burke - Square</a> [youtube.com]</li>
<li><a href="https://youtu.be/zK2i7ivzK7M">Android Performance Patterns - Custom Views and Performance</a>  [youtube.com]</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/queencodemonkey">@queencodemonkey</a> or <a href="http://www.randomlytyping.com">randomlytyping.com</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="http://fragmentedpodcast.com/contact/">Contact form</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> or <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> or <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Tue, 5 Jul 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode we talk to Trello Engineer, GDE, Youtuber, Caster IO instructor and View magician Huyen about all things custom View/ViewGroups.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://www.youtube.com/channel/UCMEmNnHT69aZuaOrE-dF6ug">Android Dialogs</a> [youtube.com]</li>
<li><a href="https://caster.io/episodes/custom-views-and-viewgroups-part-1/?utm_source=fragmentedpodcast&amp;utm_medium=shownotes&amp;utm_term=ep047&amp;utm_campaign=fragmented-ep047">Huyen's Custom Views/View Groups Part 1</a> [caster.io]</li>
<li><a href="https://developer.android.com/guide/topics/ui/how-android-draws.html">How Android draws views</a> [developer.android.com]</li>
</ul>
<h2>Resources</h2>
<ul>
<li><a href="https://caster.io/instructors/huyen-tue-dao?utm_source=fragmentedpodcast&amp;utm_medium=shownotes&amp;utm_term=ep047&amp;utm_campaign=fragmented-ep047">Huyen's caster.io series</a> [caster.io]</li>
<li><a href="https://www.youtube.com/watch?v=-8M5nDABiqg">New Circle - Enhancing Android UI with Custom Views</a> [youtube.com]</li>
<li><a href="https://www.youtube.com/watch?v=-xAdDqwaWJk">Loving Lean Layouts - DroidCon SF 2016</a> [youtube.com]</li>
<li><a href="http://lucasr.org/2014/05/12/custom-layouts-on-android/">Custom Layouts on Android - Lucas Rocha</a> [lucasr.org]</li>
<li><a href="https://youtu.be/jF6Ad4GYjRU">Taming Android UI's - Erik Burke - Square</a> [youtube.com]</li>
<li><a href="https://youtu.be/zK2i7ivzK7M">Android Performance Patterns - Custom Views and Performance</a>  [youtube.com]</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/queencodemonkey">@queencodemonkey</a> or <a href="http://www.randomlytyping.com">randomlytyping.com</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> or <a href="http://fragmentedpodcast.com/contact/">Contact form</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> or <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> or <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="42620377" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/b00cf2bc-f125-4056-a002-2550254d13ab/047-interview-with-huyen-dao_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>047: Interview with Huyen Dao</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/b00cf2bc-f125-4056-a002-2550254d13ab/3000x3000/1467444808-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:44:22</itunes:duration>
      <itunes:summary>In this episode we talk to Trello Engineer, GDE, Youtuber, Caster IO instructor and View magician Huyen about all things custom View/ViewGroups.

Shownotes:  http://fragmentedpodcast.com/episodes/047</itunes:summary>
      <itunes:subtitle>In this episode we talk to Trello Engineer, GDE, Youtuber, Caster IO instructor and View magician Huyen about all things custom View/ViewGroups.

Shownotes:  http://fragmentedpodcast.com/episodes/047</itunes:subtitle>
      <itunes:keywords>huyen, gde, android, viewgroup, custom views, developer, podcast, view</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>47</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">a7327c64-a68c-4327-8b18-f2a5f6e7fdd8</guid>
      <title>046: okJesse - A deep discussion on okHttp, okio and Retrofit</title>
      <description><![CDATA[<p>Everyone loves Retrofit &amp; okHttp. But how did they come about? Why ok? What was the need for such libraries? We went knocking on the doors of Square trying to find the answers to these question. We were lucky cause we found probably the nicest most brilliant Android/Java developer of our times - our good friend Jesse Wilson and without surprise, he crushes it!</p>
<p>He gives us the scoop on the origin stories of these amazing libraries and also gives us insight into okio and why it's such a game changer today.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://github.com/google/guice">Guice - DI lib</a> [github.com]</li>
<li><a href="http://fragmentedpodcast.com/episodes/021/">Fragmented 21 : Diving Deep with Dagger (Cameo by Jesse Wilson)</a> [fragmentedpodcast.com]</li>
<li>Android's HTTP Clients
<ul>
<li><a href="https://developer.android.com/reference/java/net/HttpURLConnection.html">Apache Http Client</a> [developer.android.com]</li>
<li><a href="https://developer.android.com/reference/java/net/HttpURLConnection.html">Http URL Connection</a> [developer.android.com]</li>
<li><a href="http://android-developers.blogspot.com/2011/09/androids-http-clients.html">Jesse's blog post on the subject</a> [android-developers.blogspot.com]</li>
</ul>
</li>
</ul>
<h3>Okio</h3>
<ul>
<li><a href="https://corner.squareup.com/2014/04/okio.html">Announcing okio</a> [squareup.com]</li>
<li><a href="https://github.com/square/okio">okio source</a> [okio.com]</li>
</ul>
<h3>Retrofit github throwback</h3>
<ul>
<li><a href="https://github.com/square/retrofit/tree/17886a10eecccada75e736cb2ffb30b8b8a58b55">Retrofit very first commit - crazybob</a> [github.com]</li>
<li><a href="https://github.com/square/retrofit/blob/fb98822a9c17acfb6846d3f07d368804e155fd3f/modules/android/src/retrofit/android/ShakeDetector.java">ShakeDetector in Retrofit</a> [github.com]</li>
</ul>
<h3>Moshi</h3>
<ul>
<li><a href="https://github.com/square/moshi">Moshi - json parsing</a> [github.com]</li>
<li><a href="https://github.com/google/gson">Gson</a> [github.com]</li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/jessewilson">@jessewilson</a> and <a href="https://plus.google.com/+JesseWilson">+JesseWilson</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 20 Jun 2016 03:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Everyone loves Retrofit &amp; okHttp. But how did they come about? Why ok? What was the need for such libraries? We went knocking on the doors of Square trying to find the answers to these question. We were lucky cause we found probably the nicest most brilliant Android/Java developer of our times - our good friend Jesse Wilson and without surprise, he crushes it!</p>
<p>He gives us the scoop on the origin stories of these amazing libraries and also gives us insight into okio and why it's such a game changer today.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://github.com/google/guice">Guice - DI lib</a> [github.com]</li>
<li><a href="http://fragmentedpodcast.com/episodes/021/">Fragmented 21 : Diving Deep with Dagger (Cameo by Jesse Wilson)</a> [fragmentedpodcast.com]</li>
<li>Android's HTTP Clients
<ul>
<li><a href="https://developer.android.com/reference/java/net/HttpURLConnection.html">Apache Http Client</a> [developer.android.com]</li>
<li><a href="https://developer.android.com/reference/java/net/HttpURLConnection.html">Http URL Connection</a> [developer.android.com]</li>
<li><a href="http://android-developers.blogspot.com/2011/09/androids-http-clients.html">Jesse's blog post on the subject</a> [android-developers.blogspot.com]</li>
</ul>
</li>
</ul>
<h3>Okio</h3>
<ul>
<li><a href="https://corner.squareup.com/2014/04/okio.html">Announcing okio</a> [squareup.com]</li>
<li><a href="https://github.com/square/okio">okio source</a> [okio.com]</li>
</ul>
<h3>Retrofit github throwback</h3>
<ul>
<li><a href="https://github.com/square/retrofit/tree/17886a10eecccada75e736cb2ffb30b8b8a58b55">Retrofit very first commit - crazybob</a> [github.com]</li>
<li><a href="https://github.com/square/retrofit/blob/fb98822a9c17acfb6846d3f07d368804e155fd3f/modules/android/src/retrofit/android/ShakeDetector.java">ShakeDetector in Retrofit</a> [github.com]</li>
</ul>
<h3>Moshi</h3>
<ul>
<li><a href="https://github.com/square/moshi">Moshi - json parsing</a> [github.com]</li>
<li><a href="https://github.com/google/gson">Gson</a> [github.com]</li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/jessewilson">@jessewilson</a> and <a href="https://plus.google.com/+JesseWilson">+JesseWilson</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="47716571" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/1c289d22-8e6d-4fef-89fe-395eb58258a7/046-fragmented-interview-with-jesse-wilson_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>046: okJesse - A deep discussion on okHttp, okio and Retrofit</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/1c289d22-8e6d-4fef-89fe-395eb58258a7/3000x3000/1466136030-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:49:41</itunes:duration>
      <itunes:summary>Everyone loves Retrofit &amp; okHttp. But how did they come about? Why ok? What was the need for such libraries? We went knocking on the doors of Square trying to find the answers to these question. We were lucky cause we found probably the nicest most brilliant Android/Java developer of our times - our good friend Jesse Wilson and without surprise, he crushes it!

He gives us the scoop on the origin stories of these amazing libraries and also gives us insight into okio and why it&apos;s such a game changer today.

Show notes at http://fragmentedpodcast.com/episodes/46/</itunes:summary>
      <itunes:subtitle>Everyone loves Retrofit &amp; okHttp. But how did they come about? Why ok? What was the need for such libraries? We went knocking on the doors of Square trying to find the answers to these question. We were lucky cause we found probably the nicest most brilliant Android/Java developer of our times - our good friend Jesse Wilson and without surprise, he crushes it!

He gives us the scoop on the origin stories of these amazing libraries and also gives us insight into okio and why it&apos;s such a game changer today.

Show notes at http://fragmentedpodcast.com/episodes/46/</itunes:subtitle>
      <itunes:keywords>okio, square, dagger, retrofit, okhttp, jesse wilson</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>46</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">a7cdd699-b074-4a47-9fc4-f80d3305321f</guid>
      <title>045: Bluetooth (LE) with Dave (devunwired) Smith</title>
      <description><![CDATA[<p>We've always been curious about technology and the software surrounding embedded devices and the like. One such technology that's ubiquitous these days is Bluetooth (LE). In this show we talk with embedded technology expert and all round super smart AndroidDev Dave Smith a.k.a the wonderful devunwired.</p>
<p>We try to get a high level understanding of how Bluetooth works. From a developer's perspective, how does this tech work? Why should we as AndroidDevs be interested in this technology. What boundaries can we push? How can we effectively use this technology? In this episode we pick Dave's brain and try to answer some of these questions.</p>
<h2>Show Notes</h2>
<h3>Dave's talks on Bluetooth</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=qx55Sa8UZAQ">Android Lollipop: Bluetooth LE Matures</a> [youtube.com]</li>
<li><a href="https://www.youtube.com/watch?v=x1y4tEHDwk0">Developing Bluetooth Smart Applications for Android Tutorial</a> [youtube.com]</li>
<li><a href="https://www.youtube.com/watch?v=TZf4WquRGJU">Dave's talk: Google Beacons - AnDevCon</a> [youtube.com]</li>
</ul>
<h3>Other resources:</h3>
<ul>
<li><a href="https://developer.android.com/guide/topics/connectivity/bluetooth.html#TheBasics">Bluetooth Classic</a> [developer.android.com]</li>
<li><a href="https://developer.android.com/guide/topics/connectivity/bluetooth-le.html">Bluetooth LE</a> [developer.android.com]</li>
<li><a href="https://developer.apple.com/bluetooth/">Apple docs - Bluetooth for Developers</a> [developer.apple.com]</li>
<li><a href="https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=245130">Bluetooth specification</a> [bluetooth.org]
<ul>
<li>check Advertisements: Volume 3, Part C, Section 11</li>
<li>check GATT: Volume 3, Part G</li>
</ul>
</li>
</ul>
<h2>360|Andev</h2>
<p>Use special code <a href="http://360andev.com/#tile_registration">&quot;Fragmented&quot;</a> if you're registering for the <a href="http://360andev.com/#tile_registration">360|Andev conference</a> to get a 10% discount on registration.</p>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/devunwired">@devunwired</a> and <a href="https://plus.google.com/+DaveSmithDev">+DaveSmithDev</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></description>
      <pubDate>Mon, 13 Jun 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>We've always been curious about technology and the software surrounding embedded devices and the like. One such technology that's ubiquitous these days is Bluetooth (LE). In this show we talk with embedded technology expert and all round super smart AndroidDev Dave Smith a.k.a the wonderful devunwired.</p>
<p>We try to get a high level understanding of how Bluetooth works. From a developer's perspective, how does this tech work? Why should we as AndroidDevs be interested in this technology. What boundaries can we push? How can we effectively use this technology? In this episode we pick Dave's brain and try to answer some of these questions.</p>
<h2>Show Notes</h2>
<h3>Dave's talks on Bluetooth</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=qx55Sa8UZAQ">Android Lollipop: Bluetooth LE Matures</a> [youtube.com]</li>
<li><a href="https://www.youtube.com/watch?v=x1y4tEHDwk0">Developing Bluetooth Smart Applications for Android Tutorial</a> [youtube.com]</li>
<li><a href="https://www.youtube.com/watch?v=TZf4WquRGJU">Dave's talk: Google Beacons - AnDevCon</a> [youtube.com]</li>
</ul>
<h3>Other resources:</h3>
<ul>
<li><a href="https://developer.android.com/guide/topics/connectivity/bluetooth.html#TheBasics">Bluetooth Classic</a> [developer.android.com]</li>
<li><a href="https://developer.android.com/guide/topics/connectivity/bluetooth-le.html">Bluetooth LE</a> [developer.android.com]</li>
<li><a href="https://developer.apple.com/bluetooth/">Apple docs - Bluetooth for Developers</a> [developer.apple.com]</li>
<li><a href="https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=245130">Bluetooth specification</a> [bluetooth.org]
<ul>
<li>check Advertisements: Volume 3, Part C, Section 11</li>
<li>check GATT: Volume 3, Part G</li>
</ul>
</li>
</ul>
<h2>360|Andev</h2>
<p>Use special code <a href="http://360andev.com/#tile_registration">&quot;Fragmented&quot;</a> if you're registering for the <a href="http://360andev.com/#tile_registration">360|Andev conference</a> to get a 10% discount on registration.</p>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/devunwired">@devunwired</a> and <a href="https://plus.google.com/+DaveSmithDev">+DaveSmithDev</a></li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> and <a href="https://plus.google.com/+DonnFelker">+DonnFelker</a></li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> and <a href="https://plus.google.com/+KaushikGopalIsMe">+KaushikGopalIsMe</a></li>
</ul>
]]></content:encoded>
      <enclosure length="49489970" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/f0290714-7909-4f1e-9514-a83e30e66e13/045-interview-with-dave-smith_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>045: Bluetooth (LE) with Dave (devunwired) Smith</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/f0290714-7909-4f1e-9514-a83e30e66e13/3000x3000/1465547444-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:51:31</itunes:duration>
      <itunes:summary>We&apos;ve always been curious about technology and the software surrounding embedded devices and the like. One such technology that&apos;s ubiquitous these days is Bluetooth (LE). In this show we talk with embedded technology expert and all round super smart AndroidDev Dave Smith a.k.a the wonderful devunwired.

We try to get a high level understanding of how Bluetooth works. From a developer&apos;s perspective, how does this tech work? Why should we as AndroidDevs be interested in this technology. What boundaries can we push? How can we effectively use this technology? In this episode we pick Dave&apos;s brain and try to answer some of these questions.

* [Shownotes](http://fragmentedpodcast.com/episodes/45/)
* Use special code &quot;Fragmented&quot; for [360|AnDev](http://360andev.com/#tile_registration)
* [Rollbar - special offer: Bootstrap plan free for 90 days](http://rollbar.com/fragmented)
</itunes:summary>
      <itunes:subtitle>We&apos;ve always been curious about technology and the software surrounding embedded devices and the like. One such technology that&apos;s ubiquitous these days is Bluetooth (LE). In this show we talk with embedded technology expert and all round super smart AndroidDev Dave Smith a.k.a the wonderful devunwired.

We try to get a high level understanding of how Bluetooth works. From a developer&apos;s perspective, how does this tech work? Why should we as AndroidDevs be interested in this technology. What boundaries can we push? How can we effectively use this technology? In this episode we pick Dave&apos;s brain and try to answer some of these questions.

* [Shownotes](http://fragmentedpodcast.com/episodes/45/)
* Use special code &quot;Fragmented&quot; for [360|AnDev](http://360andev.com/#tile_registration)
* [Rollbar - special offer: Bootstrap plan free for 90 days](http://rollbar.com/fragmented)
</itunes:subtitle>
      <itunes:keywords>bluetooth le, bluetooth, devunwired, android, dave smith, 360 | andev</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>45</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">5cfea05f-6909-4b4f-b5a2-19285721849c</guid>
      <title>044 – Effective Java for Android Developers – Item #10</title>
      <description><![CDATA[<p>In this mini-Fragment, Donn talks about Item #10 of the Effective Java series - Always Override toString. You'll learn why it's important for your own sanity, future developers, and overall developer happiness.</p>
<p>This episode is sponsored by Hired.com</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#toString%28%29">Object#toString</a></li>
<li><a href="http://amzn.to/1RUCko3">Effective Java Book</a></li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="https://hired.com/fragmented/">Hired.com</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="http://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="http://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="http://twitter.com/kaushikgopal">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Mon, 6 Jun 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this mini-Fragment, Donn talks about Item #10 of the Effective Java series - Always Override toString. You'll learn why it's important for your own sanity, future developers, and overall developer happiness.</p>
<p>This episode is sponsored by Hired.com</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#toString%28%29">Object#toString</a></li>
<li><a href="http://amzn.to/1RUCko3">Effective Java Book</a></li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="https://hired.com/fragmented/">Hired.com</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="http://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="http://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="http://twitter.com/kaushikgopal">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="9210850" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/09d27f15-3d6f-4082-b355-cd85bfd56f59/044_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>044 – Effective Java for Android Developers – Item #10</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/09d27f15-3d6f-4082-b355-cd85bfd56f59/3000x3000/1465168568-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:12:45</itunes:duration>
      <itunes:summary>In this mini-Fragment, Donn talks about Item #10 of the Effective Java series - Always Override toString. You&apos;ll learn why it&apos;s important for your own sanity, future developers, and overall developer happiness.</itunes:summary>
      <itunes:subtitle>In this mini-Fragment, Donn talks about Item #10 of the Effective Java series - Always Override toString. You&apos;ll learn why it&apos;s important for your own sanity, future developers, and overall developer happiness.</itunes:subtitle>
      <itunes:keywords>effective java, android development, java, android, android dev, androiddev</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>44</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">f99ce2e1-ace6-4281-82c0-85dc9656f4c5</guid>
      <title>043: Google IO (Part 2)</title>
      <description><![CDATA[<p>In Part 2 of our Google IO special we continue asking some simple questions to the best AndroidDev today. This concludes our IO special for this year. Hope you enjoyed it as much as we did.</p>
<p>By popular demand we added some extra specials at the very end, so make sure to listen all the way through :)</p>
<h2>Show Notes</h2>
<ul>
<li>Pierre-Yves Ricau (<a href="https://squareup.com">Square</a>)
<ul>
<li><a href="https://twitter.com/piwai">@Piwai</a></li>
<li><a href="https://github.com/pyricau/fragnums">Fragnums</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.pennyapp">Penny - Conversational Finance app</a></li>
</ul>
</li>
<li>Israel @rallat Ferrer Camacho (<a href="https://squareup.com">Square</a>)
<ul>
<li><a href="https://twitter.com/rallat">@rallat</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/26/">Fragmented 026: the show with Israel</a></li>
<li><a href="https://play.google.com/store/apps/details?id=au.com.shiftyjelly.pocketcasts">Pocket Casts</a></li>
</ul>
</li>
<li>Tor Norbye
<ul>
<li><a href="https://twitter.com/tornorbye">@tornorbye</a></li>
<li><a href="http://www.javaposse.com">The Java Posse</a></li>
<li><a href="http://androidbackstage.blogspot.com">Android Developers Backstage</a></li>
</ul>
</li>
<li>Kelly Shushter
<ul>
<li><a href="https://twitter.com/kellyshuster">@kellyshuster</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/40/">Fragmented 40: Episode with Kelly</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.clue.android">Clue</a></li>
</ul>
</li>
<li>Eugenio Marletti (<a href="https://helloclue.com/">Clue</a>)
<ul>
<li><a href="https://twitter.com/workingkills">@workingkills</a></li>
<li><a href="https://speakerdeck.com/rock3r/life-without-fragments-with-eugenio-marletti">Life without fragments</a></li>
</ul>
</li>
<li>Sebastiano Poggi (<a href="https://www.novoda.com/">Novoda</a>)
<ul>
<li><a href="https://twitter.com/seebrock3r">@seebrock3r</a></li>
<li><a href="https://www.youtube.com/watch?v=k3IT-IJ0J98">What the Fragment - Google IO session</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.google.android.apps.photos">Google Photos</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/20/">Fragmented 20: Episode with Hadi Harriri</a></li>
</ul>
</li>
<li>Mike Evans
<ul>
<li><a href="https://twitter.com/m_evans10">@m_evans10</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.robinhood.android">Robinhood</a></li>
</ul>
</li>
<li><a href="http://droidista.blogspot.com/">Zarah Dominguez</a>
<ul>
<li><a href="https://twitter.com/zarahjutz">@zarahjutz</a></li>
<li><a href="https://play.google.com/store/apps/details?id=au.com.shiftyjelly.pocketcasts">Pocket Casts</a></li>
</ul>
</li>
</ul>
<h2>Contact us:</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Wed, 1 Jun 2016 03:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In Part 2 of our Google IO special we continue asking some simple questions to the best AndroidDev today. This concludes our IO special for this year. Hope you enjoyed it as much as we did.</p>
<p>By popular demand we added some extra specials at the very end, so make sure to listen all the way through :)</p>
<h2>Show Notes</h2>
<ul>
<li>Pierre-Yves Ricau (<a href="https://squareup.com">Square</a>)
<ul>
<li><a href="https://twitter.com/piwai">@Piwai</a></li>
<li><a href="https://github.com/pyricau/fragnums">Fragnums</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.pennyapp">Penny - Conversational Finance app</a></li>
</ul>
</li>
<li>Israel @rallat Ferrer Camacho (<a href="https://squareup.com">Square</a>)
<ul>
<li><a href="https://twitter.com/rallat">@rallat</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/26/">Fragmented 026: the show with Israel</a></li>
<li><a href="https://play.google.com/store/apps/details?id=au.com.shiftyjelly.pocketcasts">Pocket Casts</a></li>
</ul>
</li>
<li>Tor Norbye
<ul>
<li><a href="https://twitter.com/tornorbye">@tornorbye</a></li>
<li><a href="http://www.javaposse.com">The Java Posse</a></li>
<li><a href="http://androidbackstage.blogspot.com">Android Developers Backstage</a></li>
</ul>
</li>
<li>Kelly Shushter
<ul>
<li><a href="https://twitter.com/kellyshuster">@kellyshuster</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/40/">Fragmented 40: Episode with Kelly</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.clue.android">Clue</a></li>
</ul>
</li>
<li>Eugenio Marletti (<a href="https://helloclue.com/">Clue</a>)
<ul>
<li><a href="https://twitter.com/workingkills">@workingkills</a></li>
<li><a href="https://speakerdeck.com/rock3r/life-without-fragments-with-eugenio-marletti">Life without fragments</a></li>
</ul>
</li>
<li>Sebastiano Poggi (<a href="https://www.novoda.com/">Novoda</a>)
<ul>
<li><a href="https://twitter.com/seebrock3r">@seebrock3r</a></li>
<li><a href="https://www.youtube.com/watch?v=k3IT-IJ0J98">What the Fragment - Google IO session</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.google.android.apps.photos">Google Photos</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/20/">Fragmented 20: Episode with Hadi Harriri</a></li>
</ul>
</li>
<li>Mike Evans
<ul>
<li><a href="https://twitter.com/m_evans10">@m_evans10</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.robinhood.android">Robinhood</a></li>
</ul>
</li>
<li><a href="http://droidista.blogspot.com/">Zarah Dominguez</a>
<ul>
<li><a href="https://twitter.com/zarahjutz">@zarahjutz</a></li>
<li><a href="https://play.google.com/store/apps/details?id=au.com.shiftyjelly.pocketcasts">Pocket Casts</a></li>
</ul>
</li>
</ul>
<h2>Contact us:</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="55040036" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/4c16d38a-148f-4618-a79c-f437a164bb67/043-googleio-part-2_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>043: Google IO (Part 2)</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/4c16d38a-148f-4618-a79c-f437a164bb67/3000x3000/1464572421-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:57:18</itunes:duration>
      <itunes:summary>In Part 2 of our Google IO special we continue asking some simple questions to the best AndroidDev today. This concludes our IO special for this year. Hope you enjoyed it as much as we did.

By popular demand we added some extra specials at the very end, so make sure to listen all the way through :)

Shownotes: http://fragmentedpodcast.com/episodes/43/</itunes:summary>
      <itunes:subtitle>In Part 2 of our Google IO special we continue asking some simple questions to the best AndroidDev today. This concludes our IO special for this year. Hope you enjoyed it as much as we did.

By popular demand we added some extra specials at the very end, so make sure to listen all the way through :)

Shownotes: http://fragmentedpodcast.com/episodes/43/</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>43</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">e9926c48-546a-45ee-afda-24dfd25d51f4</guid>
      <title>042: Google IO 2016 (Part 1)</title>
      <description><![CDATA[<p>In Part 1 of our Google IO special we talk to a whole bunch of amazing AndroidDev. We go around asking them a few simple questions. Questions, that you probably thought to ask when you saw them in person, but just forgot to.</p>
<p>Oh and you really should listen all the way to the end :)</p>
<h2>Show Notes</h2>
<ul>
<li>Annyce Davis (<a href="http://offgrid-electric.com/#home">Offgrid Electric</a>)
<ul>
<li><a href="https://twitter.com/brwngrldev">@brwngrldev</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/33/">Fragmented episode 33 : talking Gradle with GDE Annyce Davis</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.fitbit.FitbitMobile&amp;hl=en">Fitbit Android app</a></li>
</ul>
</li>
<li>Mark Allison (Freelancer currently contracting for AMEX)
<ul>
<li><a href="https://twitter.com/MarkIAllison">@MarkIAllison</a></li>
<li><a href="https://blog.stylingandroid.com">Styling Android</a></li>
</ul>
</li>
<li><a href="Wiebe-Elsinga.com">Wiebe Elsinga</a>
<ul>
<li><a href="https://twitter.com/welsinga">@welsinga</a></li>
</ul>
</li>
<li>Jake Wharton (<a href="https://squareup.com">Square</a>)
<ul>
<li><a href="https://twitter.com/JakeWharton">@JakeWharton</a></li>
<li><a href="http://www.meetup.com/kotlin-android/events/230353449/">Kotlin Night in SF</a></li>
</ul>
</li>
<li>Ryan Harter
<ul>
<li><a href="https://twitter.com/rharter">@rharter</a></li>
<li><a href="https://play.google.com/store/apps/details?id=au.com.shiftyjelly.pocketcasts">Pocket Casts</a></li>
</ul>
</li>
<li>Lisa Wray (<a href="http://genius.com">Genius</a>)
<ul>
<li><a href="https://twitter.com/lisawrayz">@lisawrayz</a></li>
</ul>
</li>
<li><a href="http://riggaroo.co.za">Rebecca</a>
<ul>
<li><a href="https://twitter.com/riggaroo">@riggaroo</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.twentytwoseven.android">22Seven</a></li>
</ul>
</li>
<li>Erik Hellman
<ul>
<li><a href="https://twitter.com/ErikHellman">@ErikHellman</a></li>
<li><a href="https://play.google.com/store/apps/details?id=co.thefabulous.app">Fabulous - Motivate Me</a></li>
</ul>
</li>
</ul>
<h2>Contact us:</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/contact/">Contact form</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
<p>Stay tuned for Part 2 where we talk to another list of top notch Android developers and get their answers for these questions.</p>
]]></description>
      <pubDate>Tue, 31 May 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In Part 1 of our Google IO special we talk to a whole bunch of amazing AndroidDev. We go around asking them a few simple questions. Questions, that you probably thought to ask when you saw them in person, but just forgot to.</p>
<p>Oh and you really should listen all the way to the end :)</p>
<h2>Show Notes</h2>
<ul>
<li>Annyce Davis (<a href="http://offgrid-electric.com/#home">Offgrid Electric</a>)
<ul>
<li><a href="https://twitter.com/brwngrldev">@brwngrldev</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/33/">Fragmented episode 33 : talking Gradle with GDE Annyce Davis</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.fitbit.FitbitMobile&amp;hl=en">Fitbit Android app</a></li>
</ul>
</li>
<li>Mark Allison (Freelancer currently contracting for AMEX)
<ul>
<li><a href="https://twitter.com/MarkIAllison">@MarkIAllison</a></li>
<li><a href="https://blog.stylingandroid.com">Styling Android</a></li>
</ul>
</li>
<li><a href="Wiebe-Elsinga.com">Wiebe Elsinga</a>
<ul>
<li><a href="https://twitter.com/welsinga">@welsinga</a></li>
</ul>
</li>
<li>Jake Wharton (<a href="https://squareup.com">Square</a>)
<ul>
<li><a href="https://twitter.com/JakeWharton">@JakeWharton</a></li>
<li><a href="http://www.meetup.com/kotlin-android/events/230353449/">Kotlin Night in SF</a></li>
</ul>
</li>
<li>Ryan Harter
<ul>
<li><a href="https://twitter.com/rharter">@rharter</a></li>
<li><a href="https://play.google.com/store/apps/details?id=au.com.shiftyjelly.pocketcasts">Pocket Casts</a></li>
</ul>
</li>
<li>Lisa Wray (<a href="http://genius.com">Genius</a>)
<ul>
<li><a href="https://twitter.com/lisawrayz">@lisawrayz</a></li>
</ul>
</li>
<li><a href="http://riggaroo.co.za">Rebecca</a>
<ul>
<li><a href="https://twitter.com/riggaroo">@riggaroo</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.twentytwoseven.android">22Seven</a></li>
</ul>
</li>
<li>Erik Hellman
<ul>
<li><a href="https://twitter.com/ErikHellman">@ErikHellman</a></li>
<li><a href="https://play.google.com/store/apps/details?id=co.thefabulous.app">Fabulous - Motivate Me</a></li>
</ul>
</li>
</ul>
<h2>Contact us:</h2>
<ul>
<li><a href="http://fragmentedpodcast.com/contact/">Contact form</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
<p>Stay tuned for Part 2 where we talk to another list of top notch Android developers and get their answers for these questions.</p>
]]></content:encoded>
      <enclosure length="54673486" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/64859faf-9cb3-4160-9807-1f2baf2fd92a/042-google-io-part-1_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>042: Google IO 2016 (Part 1)</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/64859faf-9cb3-4160-9807-1f2baf2fd92a/3000x3000/1464474600-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:56:55</itunes:duration>
      <itunes:summary>In Part 1 of our Google IO special we talk to a whole bunch of amazing AndroidDev. We go around asking them a few simple questions. Questions, that you probably thought to ask when you saw them in person, but just forgot to. 

Shownotes: fragmentedpodcast.com/episodes/42

Stay tuned for Part 2 where we talk to another list of top notch Android developers and get their answers for these questions.

Oh and you really should listen all the way to the end :)</itunes:summary>
      <itunes:subtitle>In Part 1 of our Google IO special we talk to a whole bunch of amazing AndroidDev. We go around asking them a few simple questions. Questions, that you probably thought to ask when you saw them in person, but just forgot to. 

Shownotes: fragmentedpodcast.com/episodes/42

Stay tuned for Part 2 where we talk to another list of top notch Android developers and get their answers for these questions.

Oh and you really should listen all the way to the end :)</itunes:subtitle>
      <itunes:keywords>androiddev, gde, google io, io, io interview</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>42</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">f581cb8d-6848-4818-b208-9f93a63e0cb8</guid>
      <title>041: YAGNI</title>
      <description><![CDATA[<p>In this mini Fragment, Donn talks about one of his favorite topics, YAGNI. YAGNI is an acronym that stands for &quot;You Arent Going To Need It&quot;. Donn explains what it is, why its useful and shares a personal story of how he was introduced to the YAGNI concept back in 2008.</p>
<h1>Show Notes</h1>
<ul>
<li><a href="http://c2.com/xp/YouArentGonnaNeedIt.html">YAGNI</a></li>
<li><a href="https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it">YAGNI on Wikipedia</a></li>
<li><a href="http://www.marketwatch.com/">MarketWatch</a></li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="https://caster.io">Caster.IO</a> Use the coupon code &quot;fragmented&quot; to receive 15% off any monthly subscription.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Mon, 23 May 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this mini Fragment, Donn talks about one of his favorite topics, YAGNI. YAGNI is an acronym that stands for &quot;You Arent Going To Need It&quot;. Donn explains what it is, why its useful and shares a personal story of how he was introduced to the YAGNI concept back in 2008.</p>
<h1>Show Notes</h1>
<ul>
<li><a href="http://c2.com/xp/YouArentGonnaNeedIt.html">YAGNI</a></li>
<li><a href="https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it">YAGNI on Wikipedia</a></li>
<li><a href="http://www.marketwatch.com/">MarketWatch</a></li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="https://caster.io">Caster.IO</a> Use the coupon code &quot;fragmented&quot; to receive 15% off any monthly subscription.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="11355752" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/25158cc8-d24f-4931-8b84-726bc6a92a42/041-yagni_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>041: YAGNI</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/25158cc8-d24f-4931-8b84-726bc6a92a42/3000x3000/1463349488-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:11:48</itunes:duration>
      <itunes:summary>In this mini Fragment, Donn talks about one of his favorite topics, YAGNI. YAGNI is an acronym that stands for &quot;You Arent Going To Need It&quot;. Donn explains what it is, why its useful and shares a personal story of how he was introduced to the YAGNI concept back in 2008. 
</itunes:summary>
      <itunes:subtitle>In this mini Fragment, Donn talks about one of his favorite topics, YAGNI. YAGNI is an acronym that stands for &quot;You Arent Going To Need It&quot;. Donn explains what it is, why its useful and shares a personal story of how he was introduced to the YAGNI concept back in 2008. 
</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>41</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">8953a7e1-a4ac-4a29-9e55-cfee966b6dd3</guid>
      <title>040: Internal Library Dependency Management with GDE Kelly Shuster</title>
      <description><![CDATA[<p>In this mini episode, we talk with the lovely Kelly Shushter about Internal Library Dependency Management. Kelly is a GDE, the Director of Women Who Code (Denver chapter), a developer at Thoughtbot, a mind blowingly good AndroidDev and just an all round boss of everything.</p>
<p>She gives us the rundown explaining different strategies for maintaining and managing internal libraries in your organization/company.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://www.womenwhocode.com/boulder">Women Who Code</a> [womenwhocode.com]</li>
<li><a href="https://www.youtube.com/watch?v=ld-ikhhv57s">Droidcon SF 2015 - Android Internal Library Dependency Management</a> [youtube.com]</li>
<li><a href="http://programmers.stackexchange.com/questions/133824/is-it-significantly-costlier-to-fix-a-bug-at-the-end-of-the-project">Fixing a bug later is costly?</a> [programmers.stackexchange.com]</li>
</ul>
<h3>Solutions</h3>
<ul>
<li><a href="https://git-scm.com/book/en/v2/Git-Tools-Submodules">Git submodules</a> [git-scm.com]</li>
<li><a href="https://source.android.com/source/developing.html">Repo by Google</a> [source.android.com]</li>
<li><a href="https://www.jfrog.com/artifactory/">Artifactory - Jfrog</a> [jfrog.com]</li>
<li><a href="https://jitpack.io">Jitpack</a> [jitpack.io]</li>
<li><a href="https://github.com/KioKrofovitch/dependency-sample/tree/06-maven-plus-source-code">Kelly's hack to toggle between maven lib dependency and local source</a> [github.com]</li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://caster.io">Caster.io</a> [Coupon code: Fragmented]</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/kellyshuster">@kellyshuster</a> [twitter.com]</li>
<li><a href="http://www.kiodev.com">kiodev.com</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Mon, 16 May 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this mini episode, we talk with the lovely Kelly Shushter about Internal Library Dependency Management. Kelly is a GDE, the Director of Women Who Code (Denver chapter), a developer at Thoughtbot, a mind blowingly good AndroidDev and just an all round boss of everything.</p>
<p>She gives us the rundown explaining different strategies for maintaining and managing internal libraries in your organization/company.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://www.womenwhocode.com/boulder">Women Who Code</a> [womenwhocode.com]</li>
<li><a href="https://www.youtube.com/watch?v=ld-ikhhv57s">Droidcon SF 2015 - Android Internal Library Dependency Management</a> [youtube.com]</li>
<li><a href="http://programmers.stackexchange.com/questions/133824/is-it-significantly-costlier-to-fix-a-bug-at-the-end-of-the-project">Fixing a bug later is costly?</a> [programmers.stackexchange.com]</li>
</ul>
<h3>Solutions</h3>
<ul>
<li><a href="https://git-scm.com/book/en/v2/Git-Tools-Submodules">Git submodules</a> [git-scm.com]</li>
<li><a href="https://source.android.com/source/developing.html">Repo by Google</a> [source.android.com]</li>
<li><a href="https://www.jfrog.com/artifactory/">Artifactory - Jfrog</a> [jfrog.com]</li>
<li><a href="https://jitpack.io">Jitpack</a> [jitpack.io]</li>
<li><a href="https://github.com/KioKrofovitch/dependency-sample/tree/06-maven-plus-source-code">Kelly's hack to toggle between maven lib dependency and local source</a> [github.com]</li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://caster.io">Caster.io</a> [Coupon code: Fragmented]</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/kellyshuster">@kellyshuster</a> [twitter.com]</li>
<li><a href="http://www.kiodev.com">kiodev.com</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="38274435" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/87646040-b5dd-4687-bd34-1f9a6b04c9f5/040-kelly-shuster_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>040: Internal Library Dependency Management with GDE Kelly Shuster</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/87646040-b5dd-4687-bd34-1f9a6b04c9f5/3000x3000/1463181260-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:39:51</itunes:duration>
      <itunes:summary>In this mini episode, we talk with the lovely Kelly Shushter about Internal Library Dependency Management. Kelly is a GDE, the Director of Women Who Code (Denver chapter), a developer at Thoughtbot, a mind blowingly good AndroidDev and just an all round boss of everything.

She gives us the rundown explaining different strategies for maintaining and managing internal libraries in your organization/company.

http://fragmentedpodcast.com/episodes/40</itunes:summary>
      <itunes:subtitle>In this mini episode, we talk with the lovely Kelly Shushter about Internal Library Dependency Management. Kelly is a GDE, the Director of Women Who Code (Denver chapter), a developer at Thoughtbot, a mind blowingly good AndroidDev and just an all round boss of everything.

She gives us the rundown explaining different strategies for maintaining and managing internal libraries in your organization/company.

http://fragmentedpodcast.com/episodes/40</itunes:subtitle>
      <itunes:keywords>internal library dependency management, gde interview, androiddev, gde, repo, git submodule, jitpack</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>40</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">25c16cc9-6161-45ad-9fdd-4a1a5e009397</guid>
      <title>039: Talking TextView with Elliott Chenger</title>
      <description><![CDATA[<p>In this episode we chat with our friend an all round amazing AndroidDev Elliott Chenger. Elliot does Android development for Under Armour and knows a thing or two about TextViews.  We talk TextViews, font rendering complications in Android, performance optimizations, localization (vs internationalization), ECDC (it's a thing!) and wind the discussion off with some design software tools out there.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://www.underarmour.com/en-us/healthbox">Under Armour : Health box</a> [underarmour.com]</li>
<li><a href="https://www.youtube.com/watch?v=bScUAmg-7EQ">Droidcon NYC 2015 - TextView how to turn design into reality for multiple languages</a> [youtube.com]</li>
<li><a href="https://medium.com/@romainguy/androids-font-renderer-c368bbde87d9#.idw9u3ov3">Android’s Font Renderer : Efficient text rendering with OpenGL ES</a> Romain Guy [medium.com]</li>
<li>DÖnn Fëlker</li>
<li><a href="https://speakerdeck.com/erchenger/textviews-and-localization">TextView packages : Slide from Elliott's talk</a> [speakerdeck.com]</li>
<li><a href="http://developer.android.com/reference/android/text/StaticLayout.html">Static Layout</a> [developer.android.com]</li>
<li><a href="http://developer.android.com/reference/android/text/BoringLayout.html">Boring Layout</a> [developer.android.com]</li>
</ul>
<h3>Performance</h3>
<ul>
<li><a href="http://tools.android.com/tips/traceview">Traceview in Android Studio</a> [tools.android.com]</li>
<li><a href="http://developer.android.com/tools/performance/profile-gpu-rendering/index.html">Profile GPU rendering</a></li>
<li><a href="http://developer.android.com/reference/android/text/StaticLayout.html">Static Layout : for text that will not be edited after it is laid out</a></li>
<li><a href="http://developer.android.com/reference/android/text/DynamicLayout.html">Dynamic Layout :  text layout that updates itself as the text is edited</a></li>
<li><a href="http://instagram-engineering.tumblr.com/post/114508858967/improving-comment-rendering-on-android">Improving comment rendering on Android</a> [instagram-engineering.tumblr.com]</li>
<li><a href="http://stackoverflow.com/questions/29860276/how-to-use-textlayoutview-of-instagram-in-improving-textview-rendering-on-andr">Sample implementation of technique Instagram describes</a> [stackoverflow.com]</li>
<li><a href="http://martinadamek.com/2011/01/05/performance-of-android-listview-containing-textviews/">Simple trick explaining TextView wrap_content vs fixed height</a></li>
<li><a href="https://medium.com/smartphone-enerlytics/apple-music-the-latest-music-app-also-has-energy-glitches-how-we-reduced-its-battery-drain-by-18-3a82b62b1178">Energy glitches with Apple music app</a></li>
<li><a href="http://developer.android.com/distribute/tools/localization-checklist.html">Google Localization Checklist</a> [developer.android.com]</li>
</ul>
<h3>Design tools</h3>
<ul>
<li><a href="https://zeplin.io">Zeplin</a></li>
<li><a href="https://redpen.io">Red Pen</a></li>
<li><a href="https://www.youtube.com/watch?v=bipEyYaxFNU">Sketch 3 For Android Developers (Big Android BBQ 2015)</a> [youtube.com]</li>
<li><a href="https://www.sketchapp.com">Sketch app</a></li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="http://nrdryjobs.com/fragmented">The Nerdery</a> [nrdryjobs.com/fragmented]</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/Echenger">@Echenger</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Mon, 9 May 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode we chat with our friend an all round amazing AndroidDev Elliott Chenger. Elliot does Android development for Under Armour and knows a thing or two about TextViews.  We talk TextViews, font rendering complications in Android, performance optimizations, localization (vs internationalization), ECDC (it's a thing!) and wind the discussion off with some design software tools out there.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://www.underarmour.com/en-us/healthbox">Under Armour : Health box</a> [underarmour.com]</li>
<li><a href="https://www.youtube.com/watch?v=bScUAmg-7EQ">Droidcon NYC 2015 - TextView how to turn design into reality for multiple languages</a> [youtube.com]</li>
<li><a href="https://medium.com/@romainguy/androids-font-renderer-c368bbde87d9#.idw9u3ov3">Android’s Font Renderer : Efficient text rendering with OpenGL ES</a> Romain Guy [medium.com]</li>
<li>DÖnn Fëlker</li>
<li><a href="https://speakerdeck.com/erchenger/textviews-and-localization">TextView packages : Slide from Elliott's talk</a> [speakerdeck.com]</li>
<li><a href="http://developer.android.com/reference/android/text/StaticLayout.html">Static Layout</a> [developer.android.com]</li>
<li><a href="http://developer.android.com/reference/android/text/BoringLayout.html">Boring Layout</a> [developer.android.com]</li>
</ul>
<h3>Performance</h3>
<ul>
<li><a href="http://tools.android.com/tips/traceview">Traceview in Android Studio</a> [tools.android.com]</li>
<li><a href="http://developer.android.com/tools/performance/profile-gpu-rendering/index.html">Profile GPU rendering</a></li>
<li><a href="http://developer.android.com/reference/android/text/StaticLayout.html">Static Layout : for text that will not be edited after it is laid out</a></li>
<li><a href="http://developer.android.com/reference/android/text/DynamicLayout.html">Dynamic Layout :  text layout that updates itself as the text is edited</a></li>
<li><a href="http://instagram-engineering.tumblr.com/post/114508858967/improving-comment-rendering-on-android">Improving comment rendering on Android</a> [instagram-engineering.tumblr.com]</li>
<li><a href="http://stackoverflow.com/questions/29860276/how-to-use-textlayoutview-of-instagram-in-improving-textview-rendering-on-andr">Sample implementation of technique Instagram describes</a> [stackoverflow.com]</li>
<li><a href="http://martinadamek.com/2011/01/05/performance-of-android-listview-containing-textviews/">Simple trick explaining TextView wrap_content vs fixed height</a></li>
<li><a href="https://medium.com/smartphone-enerlytics/apple-music-the-latest-music-app-also-has-energy-glitches-how-we-reduced-its-battery-drain-by-18-3a82b62b1178">Energy glitches with Apple music app</a></li>
<li><a href="http://developer.android.com/distribute/tools/localization-checklist.html">Google Localization Checklist</a> [developer.android.com]</li>
</ul>
<h3>Design tools</h3>
<ul>
<li><a href="https://zeplin.io">Zeplin</a></li>
<li><a href="https://redpen.io">Red Pen</a></li>
<li><a href="https://www.youtube.com/watch?v=bipEyYaxFNU">Sketch 3 For Android Developers (Big Android BBQ 2015)</a> [youtube.com]</li>
<li><a href="https://www.sketchapp.com">Sketch app</a></li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="http://nrdryjobs.com/fragmented">The Nerdery</a> [nrdryjobs.com/fragmented]</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/Echenger">@Echenger</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="40245207" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/086f029f-06bd-4010-aac4-2ce674c25a2f/039_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>039: Talking TextView with Elliott Chenger</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/086f029f-06bd-4010-aac4-2ce674c25a2f/3000x3000/1462584480-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:41:54</itunes:duration>
      <itunes:summary>In this episode we chat with our friend an all round amazing AndroidDev Elliott Chenger. Elliot does Android development for Under Armour and knows a thing or two about TextViews.  We talk TextViews, font rendering complications in Android, performance optimizations, localization (vs internationalization), ECDC (it&apos;s a thing!) and wind the discussion off with some design software tools out there.

Show Notes: http://fragmentedpodcast.com/episodes/39/


## Sponsor

* [The Nerdery](http://nrdryjobs.com/fragmented) [nrdryjobs.com/fragmented]</itunes:summary>
      <itunes:subtitle>In this episode we chat with our friend an all round amazing AndroidDev Elliott Chenger. Elliot does Android development for Under Armour and knows a thing or two about TextViews.  We talk TextViews, font rendering complications in Android, performance optimizations, localization (vs internationalization), ECDC (it&apos;s a thing!) and wind the discussion off with some design software tools out there.

Show Notes: http://fragmentedpodcast.com/episodes/39/


## Sponsor

* [The Nerdery](http://nrdryjobs.com/fragmented) [nrdryjobs.com/fragmented]</itunes:subtitle>
      <itunes:keywords>font rendering, textview, font, static layout, settext, dynamic layout</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>39</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">889a00db-9a1f-4d32-9579-4eaa22bf7d5c</guid>
      <title>038: What Android Devs Need to know about N</title>
      <description><![CDATA[<p>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.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://android-developers.blogspot.com/2016/03/first-preview-of-android-n-developer.html">First preview of Android N: Developer API &amp; Tools</a> [android-developers.blogspot.com]</li>
<li><a href="http://developer.android.com/preview/setup-sdk.html">Instruction for setting up your dev environment for  the N preview (~=&gt; Lambda support)</a> [developer.android.com]</li>
<li><a href="http://developer.android.com/preview/j8-jack.html#supported-features">Java 8 Language features</a> [developer.android.com]</li>
<li><a href="http://androidbackstage.blogspot.com/2016/03/episode-45-state-of-art.html">ADB episode : 45 State of the Art</a></li>
<li>Lambdas do not retain enclosing reference (unless really needed)
<ul>
<li><a href="https://android.googlesource.com/toolchain/jack/+/0af676c4779c5b55fb321f491811516f3d74ed93">commit note on Jack toolchain</a> [android.googlesource.com]</li>
<li><a href="https://android.googlesource.com/toolchain/jack/+/0af676c4779c5b55fb321f491811516f3d74ed93/jack/src/com/android/jack/ir/impl/JackIrBuilder.java#1347">JacklrBuilder source createMethodInfoforLambda</a> [android.googlesource.com]</li>
<li><a href="https://github.com/kaushikgopal/RxJava-Android-Samples/tree/kg/2-1_prev_lambda">RxJava Android Samples using lambdas</a> [github.com]</li>
<li><a href="http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javap.html">javap - The Java class file Disassembler</a> [docs.oracle.com]</li>
</ul>
</li>
<li><a href="https://code.google.com/p/android/issues/detail?id=204065">Issue tracking Annotation processing options in Jack</a> [code.google.com]</li>
<li><a href="http://developer.android.com/preview/j8-jack.html">Other Java 8 language features for N</a> [developer.android.com]</li>
<li><a href="http://developer.android.com/preview/features/multi-window.html">Android MultiWindow features</a> [developer.android.com]</li>
<li><a href="https://developers.google.com/cloud-messaging/network-manager">GCM Network Manager a.k.a Job Scheduler</a> [developers.google.com]</li>
<li><a href="http://developer.android.com/reference/android/app/Notification.Style.html">Android Notification styles</a> [developer.android.com]</li>
</ul>
<h2>Resources</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=CsulIu3UaUM">What’s new in Android N: Ian Lake + Joanna smith</a> [youtube.com]</li>
<li><a href="https://medium.com/google-developers/5-tips-for-preparing-for-multi-window-in-android-n-7bed803dda64#.mcs2o5rpy">5 tips for preparing for multi window in Android N: Ian Lake</a> [medium.com]</li>
<li><a href="https://www.youtube.com/watch?v=IL50oWdgfNY">DroidCon SF keynote: Chet and Romain</a> [youtube.com]</li>
<li><a href="https://commonsware.com/blog/2016/03/09/random-musings-n-developer-preview.html">Random musing on the N developer preview</a> [commonsware.com]</li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="https://hired.com/fragmented/">Hired - special offer: double your accepting bonus $2000</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Mon, 2 May 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>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.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://android-developers.blogspot.com/2016/03/first-preview-of-android-n-developer.html">First preview of Android N: Developer API &amp; Tools</a> [android-developers.blogspot.com]</li>
<li><a href="http://developer.android.com/preview/setup-sdk.html">Instruction for setting up your dev environment for  the N preview (~=&gt; Lambda support)</a> [developer.android.com]</li>
<li><a href="http://developer.android.com/preview/j8-jack.html#supported-features">Java 8 Language features</a> [developer.android.com]</li>
<li><a href="http://androidbackstage.blogspot.com/2016/03/episode-45-state-of-art.html">ADB episode : 45 State of the Art</a></li>
<li>Lambdas do not retain enclosing reference (unless really needed)
<ul>
<li><a href="https://android.googlesource.com/toolchain/jack/+/0af676c4779c5b55fb321f491811516f3d74ed93">commit note on Jack toolchain</a> [android.googlesource.com]</li>
<li><a href="https://android.googlesource.com/toolchain/jack/+/0af676c4779c5b55fb321f491811516f3d74ed93/jack/src/com/android/jack/ir/impl/JackIrBuilder.java#1347">JacklrBuilder source createMethodInfoforLambda</a> [android.googlesource.com]</li>
<li><a href="https://github.com/kaushikgopal/RxJava-Android-Samples/tree/kg/2-1_prev_lambda">RxJava Android Samples using lambdas</a> [github.com]</li>
<li><a href="http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javap.html">javap - The Java class file Disassembler</a> [docs.oracle.com]</li>
</ul>
</li>
<li><a href="https://code.google.com/p/android/issues/detail?id=204065">Issue tracking Annotation processing options in Jack</a> [code.google.com]</li>
<li><a href="http://developer.android.com/preview/j8-jack.html">Other Java 8 language features for N</a> [developer.android.com]</li>
<li><a href="http://developer.android.com/preview/features/multi-window.html">Android MultiWindow features</a> [developer.android.com]</li>
<li><a href="https://developers.google.com/cloud-messaging/network-manager">GCM Network Manager a.k.a Job Scheduler</a> [developers.google.com]</li>
<li><a href="http://developer.android.com/reference/android/app/Notification.Style.html">Android Notification styles</a> [developer.android.com]</li>
</ul>
<h2>Resources</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=CsulIu3UaUM">What’s new in Android N: Ian Lake + Joanna smith</a> [youtube.com]</li>
<li><a href="https://medium.com/google-developers/5-tips-for-preparing-for-multi-window-in-android-n-7bed803dda64#.mcs2o5rpy">5 tips for preparing for multi window in Android N: Ian Lake</a> [medium.com]</li>
<li><a href="https://www.youtube.com/watch?v=IL50oWdgfNY">DroidCon SF keynote: Chet and Romain</a> [youtube.com]</li>
<li><a href="https://commonsware.com/blog/2016/03/09/random-musings-n-developer-preview.html">Random musing on the N developer preview</a> [commonsware.com]</li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="https://hired.com/fragmented/">Hired - special offer: double your accepting bonus $2000</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="33190804" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/29f0711b-7dd6-488c-b62b-3c65c0fcaa5d/038-android-n-developer-preivew-highlights_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>038: What Android Devs Need to know about N</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/29f0711b-7dd6-488c-b62b-3c65c0fcaa5d/3000x3000/1461744105-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:34:33</itunes:duration>
      <itunes:summary>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: http://fragmentedpodcast.com/episodes/38/ </itunes:summary>
      <itunes:subtitle>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: http://fragmentedpodcast.com/episodes/38/ </itunes:subtitle>
      <itunes:keywords>lambda, android nutella, android n, android, developer podcast</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>38</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">84b0b165-7ec3-4ec7-b59c-0b6c2933085f</guid>
      <title>037: Decompress 1 : Xcode, Fonts sizes, Testing and yes Agera!</title>
      <description><![CDATA[<p>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!</p>
<h1>Shownotes:</h1>
<ul>
<li><a href="https://github.com/google/agera/wiki">Agera</a></li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="https://hired.com/fragmented/">Hired - special offer: double your accepting bonus $2000</a></li>
</ul>
]]></description>
      <pubDate>Mon, 25 Apr 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>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!</p>
<h1>Shownotes:</h1>
<ul>
<li><a href="https://github.com/google/agera/wiki">Agera</a></li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="https://hired.com/fragmented/">Hired - special offer: double your accepting bonus $2000</a></li>
</ul>
]]></content:encoded>
      <enclosure length="38010709" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/c8ec5ca1-9475-4556-b4ab-35f8baaeb0be/36-decompress-vol-1_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>037: Decompress 1 : Xcode, Fonts sizes, Testing and yes Agera!</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/c8ec5ca1-9475-4556-b4ab-35f8baaeb0be/3000x3000/1461344664-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:39:34</itunes:duration>
      <itunes:summary>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!</itunes:summary>
      <itunes:subtitle>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!</itunes:subtitle>
      <itunes:keywords>testing, decompress, agera, xcode</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>37</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">08e928e7-ec05-44a7-9e7f-d6dedf2e4a30</guid>
      <title>036: Working Remotely</title>
      <description><![CDATA[<p>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.</p>
<h1>Show Notes</h1>
<ul>
<li>Remote work is best suited for information workers (programmers, designers, engineers, etc)</li>
<li><a href="http://amzn.to/1NiaztU">Read Remote by DHH and Jason Fried</a>
<ul>
<li>Great book that echoes what I feel about working remote.</li>
<li>Tip: Listen to it on Audible, it's faster to consume.</li>
</ul>
</li>
<li>How to ease into remote work at your current job
<ul>
<li>Convince manager to allow a 1 day trial for one - three months.</li>
<li>Remote day should be on Friday (fewer critical things happen on Friday, on average)</li>
<li>After trial, if success, aim for 2-3 days of remote work. (Again, do this at the end of the week. Wed,Thu, Fri)</li>
<li>Once successful, rally for full week of remote with an occasional in office visit (a day every week work two)</li>
</ul>
</li>
</ul>
<h2>Staying sane while working remote</h2>
<ul>
<li><a href="http://www.donnfelker.com/working-remotely-tips/">Donn's blog post on this topic</a></li>
<li>Create a work day schedule (5am-2pm, 8am-5pm, 10am-7pm, etc)
<ul>
<li>When you're done, you're done. Leave work (your office/etc).</li>
</ul>
</li>
<li>Schedule. Schedule. Schedule. Stick to a schedule.
<ul>
<li>Get up at the same time</li>
<li>Get dressed for work (no PJ's etc)</li>
<li>Do your hair.</li>
<li>Be presentable</li>
<li>This is all mental</li>
</ul>
</li>
<li>Prepare for the day
<ul>
<li>Get coffee/tea/water and snacks</li>
<li>Try to limit the opportunity of distractions</li>
</ul>
</li>
<li>During the day
<ul>
<li>Take a lunch, away from your desk.</li>
<li>Go out for lunch with someone (significant other, friend, etc) at one to two times a week.</li>
<li>Work out of the house a couple times a week, this increases our creativity.</li>
</ul>
</li>
<li>Outside of Work
<ul>
<li>You need social interaction, Cabin Fever is a real thing.</li>
<li>Exercise 3-4 times a week if possible.</li>
<li>Group classes are perfect for this.
<ul>
<li>CrossFit</li>
<li>Martial Arts</li>
<li>Yoga</li>
<li>Pilates</li>
<li>etc</li>
</ul>
</li>
</ul>
</li>
<li>Communication When Remote
<ul>
<li>Put 3x-4x more effort into communicating than previous. You're not visible seen so you need to be more vocal.
<ul>
<li>Call</li>
<li>SMS</li>
<li>Blow up the Slack/Hipchat channel/etc</li>
<li>Objective - Clear your own path</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>Tools</h2>
<ul>
<li>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.</li>
<li>Communication
<ul>
<li>Group Chat
<ul>
<li><a href="http://www.slack.com">Slack</a></li>
<li><a href="http://www.hipchat.com">HipChat</a></li>
</ul>
</li>
<li>Video Chat
<ul>
<li>Google Hangouts</li>
<li>Skype</li>
<li><a href="http://www.join.me">Join.me</a></li>
<li><a href="http://www.zoom.us">Zoom.us</a></li>
</ul>
</li>
<li>Task Management
<ul>
<li><a href="http://www.trello.com">Trello</a></li>
<li><a href="https://www.atlassian.com/software/jira">Jira</a></li>
<li><a href="https://www.asana.com">Asana</a></li>
<li><a href="https://www.github.com">GitHub</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>Remote for Employers</h2>
<ul>
<li>Benefits from Remote workforce
<ul>
<li>Much larger talent pool than the exhausted pool (or non-existent one that local). Higher quality employees/contractors/consultants for the same overhead.</li>
<li>Remote creates much more loyal employees. You're giving them their life back and this is reciprocated.</li>
<li>Your company becomes anti-fragile as you're able to adapt with the industry faster. You can hire in areas others cannot.</li>
<li>On average, remote employees work harder and are more productive than their office counterparts.</li>
<li>Less overhead!  No need to pay for additional office space.</li>
</ul>
</li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Mon, 18 Apr 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>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.</p>
<h1>Show Notes</h1>
<ul>
<li>Remote work is best suited for information workers (programmers, designers, engineers, etc)</li>
<li><a href="http://amzn.to/1NiaztU">Read Remote by DHH and Jason Fried</a>
<ul>
<li>Great book that echoes what I feel about working remote.</li>
<li>Tip: Listen to it on Audible, it's faster to consume.</li>
</ul>
</li>
<li>How to ease into remote work at your current job
<ul>
<li>Convince manager to allow a 1 day trial for one - three months.</li>
<li>Remote day should be on Friday (fewer critical things happen on Friday, on average)</li>
<li>After trial, if success, aim for 2-3 days of remote work. (Again, do this at the end of the week. Wed,Thu, Fri)</li>
<li>Once successful, rally for full week of remote with an occasional in office visit (a day every week work two)</li>
</ul>
</li>
</ul>
<h2>Staying sane while working remote</h2>
<ul>
<li><a href="http://www.donnfelker.com/working-remotely-tips/">Donn's blog post on this topic</a></li>
<li>Create a work day schedule (5am-2pm, 8am-5pm, 10am-7pm, etc)
<ul>
<li>When you're done, you're done. Leave work (your office/etc).</li>
</ul>
</li>
<li>Schedule. Schedule. Schedule. Stick to a schedule.
<ul>
<li>Get up at the same time</li>
<li>Get dressed for work (no PJ's etc)</li>
<li>Do your hair.</li>
<li>Be presentable</li>
<li>This is all mental</li>
</ul>
</li>
<li>Prepare for the day
<ul>
<li>Get coffee/tea/water and snacks</li>
<li>Try to limit the opportunity of distractions</li>
</ul>
</li>
<li>During the day
<ul>
<li>Take a lunch, away from your desk.</li>
<li>Go out for lunch with someone (significant other, friend, etc) at one to two times a week.</li>
<li>Work out of the house a couple times a week, this increases our creativity.</li>
</ul>
</li>
<li>Outside of Work
<ul>
<li>You need social interaction, Cabin Fever is a real thing.</li>
<li>Exercise 3-4 times a week if possible.</li>
<li>Group classes are perfect for this.
<ul>
<li>CrossFit</li>
<li>Martial Arts</li>
<li>Yoga</li>
<li>Pilates</li>
<li>etc</li>
</ul>
</li>
</ul>
</li>
<li>Communication When Remote
<ul>
<li>Put 3x-4x more effort into communicating than previous. You're not visible seen so you need to be more vocal.
<ul>
<li>Call</li>
<li>SMS</li>
<li>Blow up the Slack/Hipchat channel/etc</li>
<li>Objective - Clear your own path</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>Tools</h2>
<ul>
<li>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.</li>
<li>Communication
<ul>
<li>Group Chat
<ul>
<li><a href="http://www.slack.com">Slack</a></li>
<li><a href="http://www.hipchat.com">HipChat</a></li>
</ul>
</li>
<li>Video Chat
<ul>
<li>Google Hangouts</li>
<li>Skype</li>
<li><a href="http://www.join.me">Join.me</a></li>
<li><a href="http://www.zoom.us">Zoom.us</a></li>
</ul>
</li>
<li>Task Management
<ul>
<li><a href="http://www.trello.com">Trello</a></li>
<li><a href="https://www.atlassian.com/software/jira">Jira</a></li>
<li><a href="https://www.asana.com">Asana</a></li>
<li><a href="https://www.github.com">GitHub</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>Remote for Employers</h2>
<ul>
<li>Benefits from Remote workforce
<ul>
<li>Much larger talent pool than the exhausted pool (or non-existent one that local). Higher quality employees/contractors/consultants for the same overhead.</li>
<li>Remote creates much more loyal employees. You're giving them their life back and this is reciprocated.</li>
<li>Your company becomes anti-fragile as you're able to adapt with the industry faster. You can hire in areas others cannot.</li>
<li>On average, remote employees work harder and are more productive than their office counterparts.</li>
<li>Less overhead!  No need to pay for additional office space.</li>
</ul>
</li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="23046474" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/22988fa6-f016-49e9-bbb0-43cb97eb255e/036-donn-felker-on-working-remotely_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>036: Working Remotely</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/22988fa6-f016-49e9-bbb0-43cb97eb255e/3000x3000/1460923108-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:23:59</itunes:duration>
      <itunes:summary>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.</itunes:summary>
      <itunes:subtitle>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.</itunes:subtitle>
      <itunes:keywords>work remote, small business, enterprise, telecommute, remote, working remotely, androiddev, android, employers</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>36</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">1fd0ea10-4cc2-44bd-ae4d-99b991a2936c</guid>
      <title>035: Vector drawables for Android</title>
      <description><![CDATA[<p>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.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://developer.android.com/reference/android/graphics/drawable/VectorDrawable.html">Vector Drawable</a> [developer.android.com]</li>
<li><a href="https://github.com/trello/victor">Trello's Victor</a> [github.com]
<ul>
<li><a href="https://www.youtube.com/watch?v=fVq4_HhBK8Y">What's our Vector Victor</a> [youtube.com]</li>
</ul>
</li>
<li><a href="http://android-developers.blogspot.com/2015/09/android-studio-14.html">Android Studio 1.4 release (with Vector Asset Studio announcement)</a> [android-developers.blogspot.com]</li>
</ul>
<h3>Support library announcements</h3>
<ul>
<li><a href="http://android-developers.blogspot.com/2016/02/android-support-library-232.html">Android Support Library v23.2</a> [android-developers.blogspot.com]
<ul>
<li>Vector Drawable backported</li>
<li>Ian Lake also gives us the instructions in this post</li>
</ul>
</li>
<li><a href="https://chris.banes.me/2016/02/25/appcompat-vector/">9% of AAR saved on AppCompat</a> [chris.banes.me]</li>
<li><a href="https://plus.google.com/+AndroidDevelopers/posts/BZgzpAqkd8G">Android Support v23.3.1 announced</a> [plus.google.com]</li>
<li><a href="http://developer.android.com/tools/help/vector-asset-studio.html">Vector Asset Studio</a> [developer.android.com]</li>
</ul>
<h3>Animated Vector Drawable</h3>
<ul>
<li><a href="http://developer.android.com/reference/android/graphics/drawable/AnimatedVectorDrawable.html">AnimatedVectorDrawable</a> [developer.android.com]</li>
<li><a href="http://blog.sqisland.com/2014/10/first-look-at-animated-vector-drawable.html">Chiuki on Animated Vector Drawables</a> [sqisland.com]</li>
<li><a href="https://github.com/glomadrian/RoadRunner">Road Runner library</a> [github.com]
<ul>
<li>see <a href="https://www.youtube.com/watch?v=1ru8vBtywHE">youtube demo</a> [youtube.com]</li>
</ul>
</li>
</ul>
<h3>Problems:</h3>
<ul>
<li><a href="https://github.com/dlew/android-svg-drawable-test">Dan Lew's SVG test project</a> [github.com]</li>
<li><a href="https://code.google.com/p/android/issues/detail?id=196452">bug report on no gradient support for vectors</a> [code.google.com]</li>
<li><a href="http://developer.android.com/tools/help/vector-asset-studio.html#apilevel">Vector format restrictions : Vector Asset Studio</a> [developer.android.com]</li>
<li><a href="http://inloop.github.io/svg2android/">Better conversation tool svg2android - Juraj Novák</a> [inloop.github.io]</li>
</ul>
<h3>Other references:</h3>
<ul>
<li><a href="https://blog.stylingandroid.com/vectordrawables-part-1/">Mark Allison - Vector Drawable Part 1</a> [stylingandroid.com]</li>
<li><a href="https://blog.stylingandroid.com/vectors-for-all-almost/">Mark Allison - Vectors for all (Almost)</a> [stylingandroid.com]</li>
<li><a href="http://code.tutsplus.com/articles/using-androids-vectordrawable-class--cms-23948">Using Android Vector Drawable</a> [code.tutsplus]</li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Mon, 11 Apr 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>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.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://developer.android.com/reference/android/graphics/drawable/VectorDrawable.html">Vector Drawable</a> [developer.android.com]</li>
<li><a href="https://github.com/trello/victor">Trello's Victor</a> [github.com]
<ul>
<li><a href="https://www.youtube.com/watch?v=fVq4_HhBK8Y">What's our Vector Victor</a> [youtube.com]</li>
</ul>
</li>
<li><a href="http://android-developers.blogspot.com/2015/09/android-studio-14.html">Android Studio 1.4 release (with Vector Asset Studio announcement)</a> [android-developers.blogspot.com]</li>
</ul>
<h3>Support library announcements</h3>
<ul>
<li><a href="http://android-developers.blogspot.com/2016/02/android-support-library-232.html">Android Support Library v23.2</a> [android-developers.blogspot.com]
<ul>
<li>Vector Drawable backported</li>
<li>Ian Lake also gives us the instructions in this post</li>
</ul>
</li>
<li><a href="https://chris.banes.me/2016/02/25/appcompat-vector/">9% of AAR saved on AppCompat</a> [chris.banes.me]</li>
<li><a href="https://plus.google.com/+AndroidDevelopers/posts/BZgzpAqkd8G">Android Support v23.3.1 announced</a> [plus.google.com]</li>
<li><a href="http://developer.android.com/tools/help/vector-asset-studio.html">Vector Asset Studio</a> [developer.android.com]</li>
</ul>
<h3>Animated Vector Drawable</h3>
<ul>
<li><a href="http://developer.android.com/reference/android/graphics/drawable/AnimatedVectorDrawable.html">AnimatedVectorDrawable</a> [developer.android.com]</li>
<li><a href="http://blog.sqisland.com/2014/10/first-look-at-animated-vector-drawable.html">Chiuki on Animated Vector Drawables</a> [sqisland.com]</li>
<li><a href="https://github.com/glomadrian/RoadRunner">Road Runner library</a> [github.com]
<ul>
<li>see <a href="https://www.youtube.com/watch?v=1ru8vBtywHE">youtube demo</a> [youtube.com]</li>
</ul>
</li>
</ul>
<h3>Problems:</h3>
<ul>
<li><a href="https://github.com/dlew/android-svg-drawable-test">Dan Lew's SVG test project</a> [github.com]</li>
<li><a href="https://code.google.com/p/android/issues/detail?id=196452">bug report on no gradient support for vectors</a> [code.google.com]</li>
<li><a href="http://developer.android.com/tools/help/vector-asset-studio.html#apilevel">Vector format restrictions : Vector Asset Studio</a> [developer.android.com]</li>
<li><a href="http://inloop.github.io/svg2android/">Better conversation tool svg2android - Juraj Novák</a> [inloop.github.io]</li>
</ul>
<h3>Other references:</h3>
<ul>
<li><a href="https://blog.stylingandroid.com/vectordrawables-part-1/">Mark Allison - Vector Drawable Part 1</a> [stylingandroid.com]</li>
<li><a href="https://blog.stylingandroid.com/vectors-for-all-almost/">Mark Allison - Vectors for all (Almost)</a> [stylingandroid.com]</li>
<li><a href="http://code.tutsplus.com/articles/using-androids-vectordrawable-class--cms-23948">Using Android Vector Drawable</a> [code.tutsplus]</li>
</ul>
<h2>Sponsor</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="13946703" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/454ea459-4146-4f2d-807e-e721f72cee7d/035-vector-assets_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>035: Vector drawables for Android</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/454ea459-4146-4f2d-807e-e721f72cee7d/3000x3000/1460075225-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:14:30</itunes:duration>
      <itunes:summary>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.</itunes:summary>
      <itunes:subtitle>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.</itunes:subtitle>
      <itunes:keywords>animated vector drawable, victor, vector, image graphic, svg, android, vector drawable</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>35</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">7e09e282-da5d-4cc0-a62a-55b701ae1997</guid>
      <title>034: Effective Java - Item 9</title>
      <description><![CDATA[ 
]]></description>
      <pubDate>Mon, 4 Apr 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <enclosure length="17282051" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/81bc6da4-2e61-488d-bf98-e0adc5393bf2/034-effective-java_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>034: Effective Java - Item 9</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/81bc6da4-2e61-488d-bf98-e0adc5393bf2/3000x3000/1459638708-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:17:58</itunes:duration>
      <itunes:summary></itunes:summary>
      <itunes:subtitle></itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>34</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">a2f96d15-b5a9-45d9-847a-63173a1dae13</guid>
      <title>033: Talking Gradle with GDE Annyce Davis</title>
      <description><![CDATA[<p>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.</p>
<p>Also we released our first ever <a href="https://teespring.com/fragmented">Fragmented T-shirt</a> in collaboration with another amazing <a href="https://twitter.com/taylorling">GDE Taylor Ling</a> of AndroidTee fame.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=gTXSMiotz6Q">Annyce's talk where she mentions Cyclomatic complexity</a> [youtube.com]</li>
<li><a href="http://offgrid-electric.com/">OffGrid Electric</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/13/">Corey Latislaw on TDD and Testing</a> [fragmentedpodcast.com]</li>
<li><a href="https://caster.io/instructors/annyce-davis/?utm_source=fragmentedpodcast&amp;utm_medium=shownotes&amp;utm_term=ep033&amp;utm_campaign=fragmented-ep033">Annyce Davis' Caster.io videos</a></li>
<li><a href="https://en.wikipedia.org/wiki/Directed_acyclic_graph">DAG: Directed Acyclic Graph</a> [wikipedia.org]</li>
<li><a href="http://spec.fm/podcasts/fragmented/26032">DAG discussion on Fragmented - Seek to 18:35</a></li>
<li><a href="http://stackoverflow.com/questions/22479145/what-commands-does-android-studios-gradle-aware-make-perform">What commands does Andorid Studio's gradle aware make perform?</a> [stackoverflow.com]
<ul>
<li><a href="https://android.googlesource.com/platform/tools/adt/idea/+/55fa5d46d8b9f9ed9b3e19938b1c2783007f5610/android/src/com/android/tools/idea/gradle/run/MakeBeforeRunTaskProvider.java">MakeBeforeRunTaskProvider source</a> [android.googlesource.com]</li>
</ul>
</li>
<li><a href="https://caster.io/episodes/creating-a-gradle-plugin/?utm_source=fragmentedpodcast&amp;utm_medium=shownotes&amp;utm_term=ep033&amp;utm_campaign=fragmented-ep033">Creating a Gradle Plugin</a></li>
<li><a href="https://discuss.gradle.org/t/usage-of-apply-from-in-buildscript-scope/1844">Use apply from in gradle to include external files</a></li>
<li><a href="http://groovy-lang.org/learn.html">Learn Groovy</a></li>
<li><a href="https://docs.gradle.org/current/userguide/tutorial_gradle_command_line.html#sec:dry_run">Gradle dry run flag</a> [docs.gradle.org]</li>
<li><a href="https://www.youtube.com/watch?v=AbNhen_zn-c">Madis Pink - Optimizing gradle build time : Droidcon Paris</a> [youtube.com]</li>
</ul>
<h3>Annyce's talks &amp; videos:</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=gTXSMiotz6Q">Be a good citizen: Develop Maintainable apps</a> [youtube.com]</li>
<li><a href="https://caster.io/instructors/annyce-davis/?utm_source=fragmentedpodcast&amp;utm_medium=shownotes&amp;utm_term=ep033&amp;utm_campaign=fragmented-ep033">Caster.io videos</a></li>
</ul>
<h3>Fragmented T-shirt</h3>
<ul>
<li><a href="http://fragmentedpodcast.com/misc/sol2">Blog post</a></li>
<li><a href="https://teespring.com/fragmented">Purchase here</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li>Annyce <a href="https://twitter.com/brwngrldev">@brwngrldev</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Mon, 28 Mar 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>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.</p>
<p>Also we released our first ever <a href="https://teespring.com/fragmented">Fragmented T-shirt</a> in collaboration with another amazing <a href="https://twitter.com/taylorling">GDE Taylor Ling</a> of AndroidTee fame.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=gTXSMiotz6Q">Annyce's talk where she mentions Cyclomatic complexity</a> [youtube.com]</li>
<li><a href="http://offgrid-electric.com/">OffGrid Electric</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/13/">Corey Latislaw on TDD and Testing</a> [fragmentedpodcast.com]</li>
<li><a href="https://caster.io/instructors/annyce-davis/?utm_source=fragmentedpodcast&amp;utm_medium=shownotes&amp;utm_term=ep033&amp;utm_campaign=fragmented-ep033">Annyce Davis' Caster.io videos</a></li>
<li><a href="https://en.wikipedia.org/wiki/Directed_acyclic_graph">DAG: Directed Acyclic Graph</a> [wikipedia.org]</li>
<li><a href="http://spec.fm/podcasts/fragmented/26032">DAG discussion on Fragmented - Seek to 18:35</a></li>
<li><a href="http://stackoverflow.com/questions/22479145/what-commands-does-android-studios-gradle-aware-make-perform">What commands does Andorid Studio's gradle aware make perform?</a> [stackoverflow.com]
<ul>
<li><a href="https://android.googlesource.com/platform/tools/adt/idea/+/55fa5d46d8b9f9ed9b3e19938b1c2783007f5610/android/src/com/android/tools/idea/gradle/run/MakeBeforeRunTaskProvider.java">MakeBeforeRunTaskProvider source</a> [android.googlesource.com]</li>
</ul>
</li>
<li><a href="https://caster.io/episodes/creating-a-gradle-plugin/?utm_source=fragmentedpodcast&amp;utm_medium=shownotes&amp;utm_term=ep033&amp;utm_campaign=fragmented-ep033">Creating a Gradle Plugin</a></li>
<li><a href="https://discuss.gradle.org/t/usage-of-apply-from-in-buildscript-scope/1844">Use apply from in gradle to include external files</a></li>
<li><a href="http://groovy-lang.org/learn.html">Learn Groovy</a></li>
<li><a href="https://docs.gradle.org/current/userguide/tutorial_gradle_command_line.html#sec:dry_run">Gradle dry run flag</a> [docs.gradle.org]</li>
<li><a href="https://www.youtube.com/watch?v=AbNhen_zn-c">Madis Pink - Optimizing gradle build time : Droidcon Paris</a> [youtube.com]</li>
</ul>
<h3>Annyce's talks &amp; videos:</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=gTXSMiotz6Q">Be a good citizen: Develop Maintainable apps</a> [youtube.com]</li>
<li><a href="https://caster.io/instructors/annyce-davis/?utm_source=fragmentedpodcast&amp;utm_medium=shownotes&amp;utm_term=ep033&amp;utm_campaign=fragmented-ep033">Caster.io videos</a></li>
</ul>
<h3>Fragmented T-shirt</h3>
<ul>
<li><a href="http://fragmentedpodcast.com/misc/sol2">Blog post</a></li>
<li><a href="https://teespring.com/fragmented">Purchase here</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li>Annyce <a href="https://twitter.com/brwngrldev">@brwngrldev</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="38497642" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/fdc0a78d-f0fa-4941-bd74-fa343d9cab8f/33-groovy-with-gradle-feat-annyse-davise_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>033: Talking Gradle with GDE Annyce Davis</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/fdc0a78d-f0fa-4941-bd74-fa343d9cab8f/3000x3000/1458879328-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:40:04</itunes:duration>
      <itunes:summary>In this episode we talk Gradle with the amazing and awesome Annyce Davis. We deal with the basics of Android&apos;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. Get the goodie here: https://teespring.com/fragmented</itunes:summary>
      <itunes:subtitle>In this episode we talk Gradle with the amazing and awesome Annyce Davis. We deal with the basics of Android&apos;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. Get the goodie here: https://teespring.com/fragmented</itunes:subtitle>
      <itunes:keywords>androidtee, android developer tshirts, fragmented tshirts, gradle, android build system, annyce davis</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>33</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">a978b7cb-1bea-45d4-8bf8-c0d82c56ab71</guid>
      <title>032:  Making sense of Android Support Library version numbers</title>
      <description><![CDATA[<p>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.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://android-developers.blogspot.com/2014/10/appcompat-v21-material-design-for-pre.html">Introducing AppCompat V21</a> [android-developers.blogspot.com]<br />
[android-developers.blogspot.com]</li>
<li><a href="http://fragmentedpodcast.com/episodes/30">Prev episode with Mike Wolfson</a> [fragmentedpodcast.com]</li>
<li><a href="http://developer.android.com/tools/support-library/index.html">Android Support Library - &quot;Revision&quot; changelog</a> [developer.android.com]</li>
<li><a href="http://stackoverflow.com/questions/1056912/source-control-vs-revision-control/1056947">Revision vs Version</a> [stackoverflow.com]</li>
<li><a href="http://android-developers.blogspot.com/2015/05/android-design-support-library.html">Introducing Design Support Library</a></li>
<li>Command to see dependency graph: <code>./gradlew -q app:dependencies</code></li>
<li><a href="https://www.youtube.com/watch?v=vwSpDDczIdg">Seinfeld Auditions</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="http://spec.fm/">Fragmented Spec channel</a> (sign up at the bottom)</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
<li><a href="http://fragmentedpodcast.com/contact/">Contact email form</a></li>
</ul>
]]></description>
      <pubDate>Mon, 14 Mar 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>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.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://android-developers.blogspot.com/2014/10/appcompat-v21-material-design-for-pre.html">Introducing AppCompat V21</a> [android-developers.blogspot.com]<br />
[android-developers.blogspot.com]</li>
<li><a href="http://fragmentedpodcast.com/episodes/30">Prev episode with Mike Wolfson</a> [fragmentedpodcast.com]</li>
<li><a href="http://developer.android.com/tools/support-library/index.html">Android Support Library - &quot;Revision&quot; changelog</a> [developer.android.com]</li>
<li><a href="http://stackoverflow.com/questions/1056912/source-control-vs-revision-control/1056947">Revision vs Version</a> [stackoverflow.com]</li>
<li><a href="http://android-developers.blogspot.com/2015/05/android-design-support-library.html">Introducing Design Support Library</a></li>
<li>Command to see dependency graph: <code>./gradlew -q app:dependencies</code></li>
<li><a href="https://www.youtube.com/watch?v=vwSpDDczIdg">Seinfeld Auditions</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="http://spec.fm/">Fragmented Spec channel</a> (sign up at the bottom)</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
<li><a href="http://fragmentedpodcast.com/contact/">Contact email form</a></li>
</ul>
]]></content:encoded>
      <enclosure length="9082438" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/f5c0c866-cad5-4883-97b0-32951526470b/ep-032-version-numbers-support-library_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>032:  Making sense of Android Support Library version numbers</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/f5c0c866-cad5-4883-97b0-32951526470b/3000x3000/1457815146-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:12:35</itunes:duration>
      <itunes:summary>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.</itunes:summary>
      <itunes:subtitle>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.</itunes:subtitle>
      <itunes:keywords>version, support library, revision, android, app compat, design support library</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>32</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">4cadf932-f146-46e8-8a1a-d9b85f03993e</guid>
      <title>031: Effective Java - Item 8</title>
      <description><![CDATA[<p>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.</p>
<p>This episode is brought to you by Rollbar. Go to <a href="http://rollbar.com/fragmented">rollbar.com/fragmented</a> to get their Bootstrap plan for free for 90 days.</p>
<p>Stay tuned for more items from our <a href="http://fragmentedpodcast.com/category/effective-java/">&quot;Effective Java for Android developers&quot; Fragment series</a>.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683/?tag=donnfelker-20">Effective Java (2nd Edition) - Joshua Bloch</a></li>
</ul>
<p><strong>Obey the general contract when overriding equals</strong></p>
<h3>When to not override equals:</h3>
<ul>
<li>Each instance of the class is inherently unique.</li>
<li>You don't care whether the class provides a &quot;logical equality&quot; test.</li>
<li>A superclass has already overridden <em>equals</em>, and the superclass behavior is appropriate for this class.</li>
</ul>
<h3>The <strong>equals</strong> method implement an equivalence relation which states it must be:</h3>
<ul>
<li>Reflexive</li>
<li>Symmetric</li>
<li>Transitive</li>
<li>Consistent</li>
<li>For any non-null reference <em>x</em>, <em>x.equals(null)</em> must return false.</li>
</ul>
<h3>A recipe for a high-quality <strong>equals</strong> method is as such:</h3>
<ul>
<li>Use the <strong>==</strong> operator to check for references to this object.</li>
<li>Use the <strong>instanceof</strong> operator to check if the argument has the correct type </li>
<li>Cast to the correct type.</li>
<li>Check all field types and corresponding field types.</li>
<li>Finally, when done, ask yourself - is this method symmetric, transitive and consistent?</li>
</ul>
<h3>Caveats</h3>
<ul>
<li>Always override <strong>hashcode</strong> when you override <strong>equals</strong></li>
<li>Don't be too clever!</li>
<li>Don't substitute another type for <strong>Object</strong> in the equals declaration.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Mon, 7 Mar 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>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.</p>
<p>This episode is brought to you by Rollbar. Go to <a href="http://rollbar.com/fragmented">rollbar.com/fragmented</a> to get their Bootstrap plan for free for 90 days.</p>
<p>Stay tuned for more items from our <a href="http://fragmentedpodcast.com/category/effective-java/">&quot;Effective Java for Android developers&quot; Fragment series</a>.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683/?tag=donnfelker-20">Effective Java (2nd Edition) - Joshua Bloch</a></li>
</ul>
<p><strong>Obey the general contract when overriding equals</strong></p>
<h3>When to not override equals:</h3>
<ul>
<li>Each instance of the class is inherently unique.</li>
<li>You don't care whether the class provides a &quot;logical equality&quot; test.</li>
<li>A superclass has already overridden <em>equals</em>, and the superclass behavior is appropriate for this class.</li>
</ul>
<h3>The <strong>equals</strong> method implement an equivalence relation which states it must be:</h3>
<ul>
<li>Reflexive</li>
<li>Symmetric</li>
<li>Transitive</li>
<li>Consistent</li>
<li>For any non-null reference <em>x</em>, <em>x.equals(null)</em> must return false.</li>
</ul>
<h3>A recipe for a high-quality <strong>equals</strong> method is as such:</h3>
<ul>
<li>Use the <strong>==</strong> operator to check for references to this object.</li>
<li>Use the <strong>instanceof</strong> operator to check if the argument has the correct type </li>
<li>Cast to the correct type.</li>
<li>Check all field types and corresponding field types.</li>
<li>Finally, when done, ask yourself - is this method symmetric, transitive and consistent?</li>
</ul>
<h3>Caveats</h3>
<ul>
<li>Always override <strong>hashcode</strong> when you override <strong>equals</strong></li>
<li>Don't be too clever!</li>
<li>Don't substitute another type for <strong>Object</strong> in the equals declaration.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="14042028" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/cbd6cff5-ae25-4d71-974f-de5cc2d50d1e/031-effective-java-item-8_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>031: Effective Java - Item 8</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/cbd6cff5-ae25-4d71-974f-de5cc2d50d1e/3000x3000/1457300973-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:14:36</itunes:duration>
      <itunes:summary>In this mini Fragment, we introduce Joshua&apos;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. 

Stay tuned for more items from our &quot;Effective Java for Android developers&quot; Fragment series.</itunes:summary>
      <itunes:subtitle>In this mini Fragment, we introduce Joshua&apos;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. 

Stay tuned for more items from our &quot;Effective Java for Android developers&quot; Fragment series.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>31</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">d949cc7d-3e9f-4190-b748-36018869a212</guid>
      <title>030: Material Design for developers with GDE Mike Wolfson</title>
      <description><![CDATA[<p>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.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://design.google.com">Material Design - Official site</a></li>
<li><a href="https://www.google.com/design/spec/material-design/introduction.html">Material Design - The Specification</a></li>
<li><a href="https://www.google.com/design/spec/style/color.html#color-color-palette">Google Color Palette - list of &quot;approved&quot; colors</a></li>
<li><a href="http://willowtreeapps.com/blog/palette-the-new-api-for-android/">Google Color Palette Library - picking colors from an image</a></li>
<li><a href="https://twitter.com/kaushikgopal/status/703105617410437120">Android Support Lib 23.2 video</a> [twitter.com]</li>
<li>Resource for getting better at Material Design:
<ul>
<li><a href="http://www.materialdoc.com/">Materialdoc.com - curated blog post for developers</a></li>
<li><a href="https://github.com/mwolfson/android-historian">Android Historian - Mike's Material Design demo</a></li>
<li><a href="http://www.materialup.com/posts/material-design-icon-template-psd">PSD resources - Up Labs</a> [materialup.com]</li>
<li><a href="https://www.google.com/design/spec/resources/layout-templates.html">Official PSD layout templates</a></li>
<li><a href="https://github.com/google/material-design-icons">Official Material Design Icons</a></li>
<li><a href="https://www.youtube.com/watch?v=5u0dtzXL3PQ">DroidconNYC 2015: Material design everywhere using the Android Support Libraries - Mike's talk</a></li>
</ul>
</li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a> [rollbar.com/fragmented]</li>
</ul>
<h2>Contact</h2>
<ul>
<li>Mike Wolfson: <a href="https://twitter.com/mikewolfson">Twitter</a> <a href="https://plus.google.com/+michaelwolfson">Google+</a> <a href="http://www.mikewolfson.com/">mikewolfson.com</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Mon, 29 Feb 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>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.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://design.google.com">Material Design - Official site</a></li>
<li><a href="https://www.google.com/design/spec/material-design/introduction.html">Material Design - The Specification</a></li>
<li><a href="https://www.google.com/design/spec/style/color.html#color-color-palette">Google Color Palette - list of &quot;approved&quot; colors</a></li>
<li><a href="http://willowtreeapps.com/blog/palette-the-new-api-for-android/">Google Color Palette Library - picking colors from an image</a></li>
<li><a href="https://twitter.com/kaushikgopal/status/703105617410437120">Android Support Lib 23.2 video</a> [twitter.com]</li>
<li>Resource for getting better at Material Design:
<ul>
<li><a href="http://www.materialdoc.com/">Materialdoc.com - curated blog post for developers</a></li>
<li><a href="https://github.com/mwolfson/android-historian">Android Historian - Mike's Material Design demo</a></li>
<li><a href="http://www.materialup.com/posts/material-design-icon-template-psd">PSD resources - Up Labs</a> [materialup.com]</li>
<li><a href="https://www.google.com/design/spec/resources/layout-templates.html">Official PSD layout templates</a></li>
<li><a href="https://github.com/google/material-design-icons">Official Material Design Icons</a></li>
<li><a href="https://www.youtube.com/watch?v=5u0dtzXL3PQ">DroidconNYC 2015: Material design everywhere using the Android Support Libraries - Mike's talk</a></li>
</ul>
</li>
</ul>
<h2>Sponsors</h2>
<ul>
<li><a href="http://rollbar.com/fragmented">Rollbar - special offer: Bootstrap plan free for 90 days</a> [rollbar.com/fragmented]</li>
</ul>
<h2>Contact</h2>
<ul>
<li>Mike Wolfson: <a href="https://twitter.com/mikewolfson">Twitter</a> <a href="https://plus.google.com/+michaelwolfson">Google+</a> <a href="http://www.mikewolfson.com/">mikewolfson.com</a></li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="41826706" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/ef8372be-59bd-4093-be38-f9dcc0cec005/030-material-design-feat-mike-wolfson_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>030: Material Design for developers with GDE Mike Wolfson</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/ef8372be-59bd-4093-be38-f9dcc0cec005/3000x3000/1456699271-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:43:33</itunes:duration>
      <itunes:summary>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&apos;t we be using? Listen to the show and find out.

Show notes at http://fragmentedpodcast.com/episodes/30/</itunes:summary>
      <itunes:subtitle>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&apos;t we be using? Listen to the show and find out.

Show notes at http://fragmentedpodcast.com/episodes/30/</itunes:subtitle>
      <itunes:keywords>material design, appcompat, android, support library</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>30</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">b6afb7a0-deda-419f-92aa-b8249c379eb3</guid>
      <title>029: All about the infamous 65,536 dex method count</title>
      <description><![CDATA[<p>If you've been an Android developer in the last 2 years, you must have seen this dreaded exception: <code>dex: method ID not in [0, 0xffff]: 65536</code></p>
<p>Quick googling would immediately bring up the phrase &quot;65K method count&quot; and the recommended solution &quot;multi-dexing&quot;. But if you want to really understand this mysterious number and the reason behind its existence, listen on!</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://source.android.com/devices/tech/dalvik/dalvik-bytecode.html">Official Dalvik specification</a> [source.android.com] (look for invoke- prefix methods)</li>
<li><a href="https://www.contentful.com/blog/2014/10/30/android-and-the-dex-64k-methods-limit/">Android and the Dex limit</a> (great post)</li>
<li><a href="http://androidbackstage.blogspot.com/2014/08/android-developers-backstage-episode-11.html">ADB Ep 11 : ART, pART 2 (Trash Talk)</a> (discussion on ART)</li>
<li><a href="http://developer.android.com/tools/building/multidex.html">MultiDexing</a> [developer.android.com] (solution to your 65K method count woes)</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Mon, 22 Feb 2016 03:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>If you've been an Android developer in the last 2 years, you must have seen this dreaded exception: <code>dex: method ID not in [0, 0xffff]: 65536</code></p>
<p>Quick googling would immediately bring up the phrase &quot;65K method count&quot; and the recommended solution &quot;multi-dexing&quot;. But if you want to really understand this mysterious number and the reason behind its existence, listen on!</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://source.android.com/devices/tech/dalvik/dalvik-bytecode.html">Official Dalvik specification</a> [source.android.com] (look for invoke- prefix methods)</li>
<li><a href="https://www.contentful.com/blog/2014/10/30/android-and-the-dex-64k-methods-limit/">Android and the Dex limit</a> (great post)</li>
<li><a href="http://androidbackstage.blogspot.com/2014/08/android-developers-backstage-episode-11.html">ADB Ep 11 : ART, pART 2 (Trash Talk)</a> (discussion on ART)</li>
<li><a href="http://developer.android.com/tools/building/multidex.html">MultiDexing</a> [developer.android.com] (solution to your 65K method count woes)</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="8266295" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/a22d1b65-3df8-4a25-9390-46a9d7c89092/029-dex-64k-methods-limit_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>029: All about the infamous 65,536 dex method count</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/a22d1b65-3df8-4a25-9390-46a9d7c89092/3000x3000/1455908058-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:08:35</itunes:duration>
      <itunes:summary>If you&apos;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 &quot;65K method count&quot; and the recommended solution &quot;multi-dexing&quot;. But if you want to really understand this mysterious number and the reason behind its existence, listen on!

Show notes:  http://fragmentedpodcast.com/episodes/29/</itunes:summary>
      <itunes:subtitle>If you&apos;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 &quot;65K method count&quot; and the recommended solution &quot;multi-dexing&quot;. But if you want to really understand this mysterious number and the reason behind its existence, listen on!

Show notes:  http://fragmentedpodcast.com/episodes/29/</itunes:subtitle>
      <itunes:keywords>dex, dex count, android, dependency, library, 64k</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>29</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">7b1155ae-bb76-462f-94d2-2ea6135e91ed</guid>
      <title>028: Tips &amp; Tricks for Android developers</title>
      <description><![CDATA[<p>Feast yourselves to a grand bonanza of tips and tricks with this episode! Donn and Kaushik talk about the tips and tricks they've picked up over the course of 2015.</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=Y2GC6P5hPeA&amp;feature=youtu.be&amp;t=6m28s">Android Dev Summit demo - Structural replace</a> [youtube.com]</li>
<li><a href="https://en.wikipedia.org/wiki/Software_design_pattern">Software Design patterns</a> [wikipedia.org]</li>
<li>Reformatting code:
<ul>
<li><a href="https://www.jetbrains.com/idea/help/reformatting-source-code.html">Reformatting Source code</a> [jetbrains.com]</li>
<li><a href="https://www.jetbrains.com/idea/help/reformat-file-dialog.html">Reformat dialog</a> [jetbrains.com] (only VCS changed text)</li>
</ul>
</li>
<li>Library dependency management:
<ul>
<li><a href="https://jitpack.io/">JitPack</a> (publishing jvm and android libraries)</li>
<li><a href="https://www.youtube.com/watch?v=EsOTPNAaH6o">Internal library dependency managment - Kelly Shushter</a></li>
</ul>
</li>
<li><a href="http://fragmentedpodcast.com/episodes/20/">Hadi Hariri on Fragmented Ep 20 talking Intellij shortcuts</a></li>
<li><a href="https://caster.io/episodes/using-uiautomatorviewer-to-help-write-espresso-tests/">Using UiAutomatorViewer to help write espresso tests - Ep. 23: Caster.io</a> [caster.io]</li>
<li><a href="https://gist.github.com/kaushikgopal/10f7f77a69b142d98f67">git pre-commit hook</a> [gist]</li>
<li><a href="https://www.jetbrains.com/idea/help/working-with-embedded-local-terminal.html">Intellij - work with embedded Terminal</a> [jetbrains.com] (yes, you can customize btw zsh/bash)</li>
<li><a href="https://gist.github.com/kaushikgopal/0a0397669fd00f96249b">KG's Update script - morning ritual</a> [gist]</li>
<li><a href="http://cyrilmottier.com/2014/11/17/grid-spacing-on-android/">Cyril on Grid Spacing on Android</a> [cyrilmottier.com] (showdividers/divider)</li>
<li><a href="https://code.google.com/p/android/issues/detail?id=72061">Tor's issue on maven vs jcenter</a> [code.google.com]</li>
</ul>
<h3>Contact</h3>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Mon, 15 Feb 2016 05:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Feast yourselves to a grand bonanza of tips and tricks with this episode! Donn and Kaushik talk about the tips and tricks they've picked up over the course of 2015.</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=Y2GC6P5hPeA&amp;feature=youtu.be&amp;t=6m28s">Android Dev Summit demo - Structural replace</a> [youtube.com]</li>
<li><a href="https://en.wikipedia.org/wiki/Software_design_pattern">Software Design patterns</a> [wikipedia.org]</li>
<li>Reformatting code:
<ul>
<li><a href="https://www.jetbrains.com/idea/help/reformatting-source-code.html">Reformatting Source code</a> [jetbrains.com]</li>
<li><a href="https://www.jetbrains.com/idea/help/reformat-file-dialog.html">Reformat dialog</a> [jetbrains.com] (only VCS changed text)</li>
</ul>
</li>
<li>Library dependency management:
<ul>
<li><a href="https://jitpack.io/">JitPack</a> (publishing jvm and android libraries)</li>
<li><a href="https://www.youtube.com/watch?v=EsOTPNAaH6o">Internal library dependency managment - Kelly Shushter</a></li>
</ul>
</li>
<li><a href="http://fragmentedpodcast.com/episodes/20/">Hadi Hariri on Fragmented Ep 20 talking Intellij shortcuts</a></li>
<li><a href="https://caster.io/episodes/using-uiautomatorviewer-to-help-write-espresso-tests/">Using UiAutomatorViewer to help write espresso tests - Ep. 23: Caster.io</a> [caster.io]</li>
<li><a href="https://gist.github.com/kaushikgopal/10f7f77a69b142d98f67">git pre-commit hook</a> [gist]</li>
<li><a href="https://www.jetbrains.com/idea/help/working-with-embedded-local-terminal.html">Intellij - work with embedded Terminal</a> [jetbrains.com] (yes, you can customize btw zsh/bash)</li>
<li><a href="https://gist.github.com/kaushikgopal/0a0397669fd00f96249b">KG's Update script - morning ritual</a> [gist]</li>
<li><a href="http://cyrilmottier.com/2014/11/17/grid-spacing-on-android/">Cyril on Grid Spacing on Android</a> [cyrilmottier.com] (showdividers/divider)</li>
<li><a href="https://code.google.com/p/android/issues/detail?id=72061">Tor's issue on maven vs jcenter</a> [code.google.com]</li>
</ul>
<h3>Contact</h3>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="36595938" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/438831a4-95e5-40db-9ea1-f9a85edd6d04/028-tips-tricks_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>028: Tips &amp; Tricks for Android developers</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/438831a4-95e5-40db-9ea1-f9a85edd6d04/3000x3000/1455344572-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:38:06</itunes:duration>
      <itunes:summary>Feast yourselves to a grand bonanza of tips and tricks with this episode! Donn and Kaushik talk about the tips and tricks they&apos;ve picked up over the course of 2015.</itunes:summary>
      <itunes:subtitle>Feast yourselves to a grand bonanza of tips and tricks with this episode! Donn and Kaushik talk about the tips and tricks they&apos;ve picked up over the course of 2015.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>28</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">64d4d51a274e53d4055c23c61db7abe8</guid>
      <title>027: Talking Realm with Christian Melchior</title>
      <description><![CDATA[<p>Realm pro and overall genius Christian Melchior joins us in this episode to talk about all things Realm.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://realm.io/docs/java/latest/">Realm.io for Java/Android</a></li>
<li><a href="http://martinfowler.com/articles/schemaless/">Martin fowler on schema-less</a></li>
<li><a href="https://github.com/realm/realm-java/issues/1756">github issue on extending Realm Object</a></li>
<li><a href="https://caster.io/episodes/realm-for-android-developers/">Caster.io video tutorial - Intro to Realm for Android Devs</a></li>
<li><a href="https://www.youtube.com/watch?v=vGFInG96KH4">Christian's talk at Droidcon NYC 2015</a> [youtube.com]</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/chrmelchior">@chrmelchior</a> [twitter.com]</li>
<li><a href="https://twitter.com/realm">@realm</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Fri, 5 Feb 2016 17:55:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Realm pro and overall genius Christian Melchior joins us in this episode to talk about all things Realm.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://realm.io/docs/java/latest/">Realm.io for Java/Android</a></li>
<li><a href="http://martinfowler.com/articles/schemaless/">Martin fowler on schema-less</a></li>
<li><a href="https://github.com/realm/realm-java/issues/1756">github issue on extending Realm Object</a></li>
<li><a href="https://caster.io/episodes/realm-for-android-developers/">Caster.io video tutorial - Intro to Realm for Android Devs</a></li>
<li><a href="https://www.youtube.com/watch?v=vGFInG96KH4">Christian's talk at Droidcon NYC 2015</a> [youtube.com]</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/chrmelchior">@chrmelchior</a> [twitter.com]</li>
<li><a href="https://twitter.com/realm">@realm</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="21280983" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/b950e460-f194-49cc-8b9d-ccae38fc2d17/027_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>027: Talking Realm with Christian Melchior</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/b950e460-f194-49cc-8b9d-ccae38fc2d17/3000x3000/1454950692-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:43:48</itunes:duration>
      <itunes:summary>Realm pro and overall genius Christian Melchior joins us in this episode to talk about all things Realm.</itunes:summary>
      <itunes:subtitle>Realm pro and overall genius Christian Melchior joins us in this episode to talk about all things Realm.</itunes:subtitle>
      <itunes:keywords>android, developer, podcast</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>27</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">dec83575d72dcf7a7b5d030f633f50a8</guid>
      <title>026: LetMeExplainYou AndroidDev like a pro</title>
      <description><![CDATA[<p>In this episode Donn and Kaushik chat with the one and only Israel Ferrer Camacho (<a href="http://twitter.com/rallat">@rallat</a>). They discuss a talk Israel gave sometime back on &quot;Android development like a pro&quot;, exchanging war stories on patterns like MVP, MVVP clean architecture etc.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://www.dropbox.com/s/jkn5aat1458f74t/AndroidDevLikeAPro.pdf">Rallat's slides</a> [pdf]</li>
<li><a href="https://github.com/rallat/effectiveandroid">Rallat's sample repo using different patterns</a> [github]</li>
<li><a href="https://twitter.com/rallat/status/676800521924050944">Burrito Design Pattern</a> [twitter.com]</li>
<li><a href="http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052">Working Effectively with Legacy Code</a> [amazon.com]</li>
<li><a href="http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html">The Clean architecture</a> [blog.8thlight.com]</li>
<li><a href="https://vimeo.com/43612849">Uncle Bob's talk on Vimeo</a></li>
</ul>
<h2>Awesome Picks:</h2>
<h3>Rallat:</h3>
<ul>
<li><a href="https://twitter.com/rallat/status/687413035590356992">Rallat's tweet on Dagger 2 &amp; Scope Provider</a></li>
<li><a href="https://open.spotify.com/track/22VdIZQfgXJea34mQxlt81">Music for the week! The Weeknd</a></li>
<li>Cmd Shift A - one shortcut to rule them all</li>
</ul>
<h3>Donn:</h3>
<ul>
<li><a href="http://2016.phillyemergingtech.com/">Philly ETE (April 11/12)</a> (Donn's giving a talk)</li>
<li><a href="http://www.paulgraham.com/vb.html">Life is Short</a> [paulgraham.com]</li>
<li><a href="https://caster.io?utm_source=fragmented_ep_26_notes">7 videos on UI Testing and TDD with Espresso : Caster.IO</a></li>
</ul>
<h3>Kaushik:</h3>
<ul>
<li>Create a pared-down &quot;lite&quot; version of the app</li>
<li><a href="http://mattlogan.me/making-pancakes-an-alternative-to-fragmentmanager-for-views.html">Pancakes library - alternative to Fragment Manager for views</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/rallat">@rallat</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Thu, 21 Jan 2016 09:23:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode Donn and Kaushik chat with the one and only Israel Ferrer Camacho (<a href="http://twitter.com/rallat">@rallat</a>). They discuss a talk Israel gave sometime back on &quot;Android development like a pro&quot;, exchanging war stories on patterns like MVP, MVVP clean architecture etc.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://www.dropbox.com/s/jkn5aat1458f74t/AndroidDevLikeAPro.pdf">Rallat's slides</a> [pdf]</li>
<li><a href="https://github.com/rallat/effectiveandroid">Rallat's sample repo using different patterns</a> [github]</li>
<li><a href="https://twitter.com/rallat/status/676800521924050944">Burrito Design Pattern</a> [twitter.com]</li>
<li><a href="http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052">Working Effectively with Legacy Code</a> [amazon.com]</li>
<li><a href="http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html">The Clean architecture</a> [blog.8thlight.com]</li>
<li><a href="https://vimeo.com/43612849">Uncle Bob's talk on Vimeo</a></li>
</ul>
<h2>Awesome Picks:</h2>
<h3>Rallat:</h3>
<ul>
<li><a href="https://twitter.com/rallat/status/687413035590356992">Rallat's tweet on Dagger 2 &amp; Scope Provider</a></li>
<li><a href="https://open.spotify.com/track/22VdIZQfgXJea34mQxlt81">Music for the week! The Weeknd</a></li>
<li>Cmd Shift A - one shortcut to rule them all</li>
</ul>
<h3>Donn:</h3>
<ul>
<li><a href="http://2016.phillyemergingtech.com/">Philly ETE (April 11/12)</a> (Donn's giving a talk)</li>
<li><a href="http://www.paulgraham.com/vb.html">Life is Short</a> [paulgraham.com]</li>
<li><a href="https://caster.io?utm_source=fragmented_ep_26_notes">7 videos on UI Testing and TDD with Espresso : Caster.IO</a></li>
</ul>
<h3>Kaushik:</h3>
<ul>
<li>Create a pared-down &quot;lite&quot; version of the app</li>
<li><a href="http://mattlogan.me/making-pancakes-an-alternative-to-fragmentmanager-for-views.html">Pancakes library - alternative to Fragment Manager for views</a></li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/rallat">@rallat</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="20087854" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/6620c28e-f64f-4d72-9d66-32316be9ac02/026_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>026: LetMeExplainYou AndroidDev like a pro</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/6620c28e-f64f-4d72-9d66-32316be9ac02/3000x3000/1454950691-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:41:18</itunes:duration>
      <itunes:summary>In this episode Donn and Kaushik chat with the one and only Israel Ferrer Camacho. They discuss a talk Israel gave sometime back on &quot;Android development like a pro&quot;, exchanging war stories on patterns like MVP, MVVP clean architecture etc.</itunes:summary>
      <itunes:subtitle>In this episode Donn and Kaushik chat with the one and only Israel Ferrer Camacho. They discuss a talk Israel gave sometime back on &quot;Android development like a pro&quot;, exchanging war stories on patterns like MVP, MVVP clean architecture etc.</itunes:subtitle>
      <itunes:keywords>android, developer, podcast</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>26</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">cd8dff857f1f1c7c33469191b6dc3090</guid>
      <title>025: Effective Java for Android developers : Item 7</title>
      <description><![CDATA[<p>In this mini Fragment, we introduce Joshua's seventh Item and a momentous end to the first chapter: <strong>Avoid finalizers</strong></p>
<p>Stay tuned for more items from our <a href="http://fragmentedpodcast.com/category/effective-java/">&quot;Effective Java for Android developers&quot; Fragment series</a>.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683/?tag=httpkaushco-20">Effective Java (2nd Edition) - Joshua Bloch</a></li>
</ul>
<p><strong>Avoid finalizers</strong></p>
<ul>
<li>If you don't know what they are, ignorance is bliss. If you know what they are, avoid them!</li>
<li>Finalizers in Java != destructors in C++ (C++ counterparts to constructors).</li>
<li>In C++ destructors
<ul>
<li>you reclaim resources here (Java has GC)</li>
<li>you also reclaim non-memory resources (use the try-finally block in Java)</li>
</ul>
</li>
<li>(unpredicatable amt of time between object becoming unreachable and finalizer being executed) Never do anything time critical in finalizer!
<ul>
<li>System.gc + System.runFinalization increase chances - no guarantee</li>
<li>System.runFinalizersOnExit + Runtime.runFinalizersOnExit are the ones that do - but they are fatally flawed</li>
</ul>
</li>
<li>Java 7 has <a href="https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html">try with resources</a>, which is also interesting and <a href="http://examples.javacodegeeks.com/core-java/java-autocloseable-interface-example/">auto-closeables</a>. [Android] devs can only dream of these.</li>
<li>If an uncaught exception is thrown in a finalizer, it is ignored, and the finalization abruptly terminates.</li>
<li>Severe performance penalty for using finalizers - (one e.g.) time to create and destroy simple object goes from 5.6ns -&gt; 2400ns</li>
<li>Only valid use: as a safety net or to terminate noncritical native resources.</li>
<li>[Android] you're probably better off using Android's lifecycle methods.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Mon, 28 Dec 2015 02:46:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this mini Fragment, we introduce Joshua's seventh Item and a momentous end to the first chapter: <strong>Avoid finalizers</strong></p>
<p>Stay tuned for more items from our <a href="http://fragmentedpodcast.com/category/effective-java/">&quot;Effective Java for Android developers&quot; Fragment series</a>.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683/?tag=httpkaushco-20">Effective Java (2nd Edition) - Joshua Bloch</a></li>
</ul>
<p><strong>Avoid finalizers</strong></p>
<ul>
<li>If you don't know what they are, ignorance is bliss. If you know what they are, avoid them!</li>
<li>Finalizers in Java != destructors in C++ (C++ counterparts to constructors).</li>
<li>In C++ destructors
<ul>
<li>you reclaim resources here (Java has GC)</li>
<li>you also reclaim non-memory resources (use the try-finally block in Java)</li>
</ul>
</li>
<li>(unpredicatable amt of time between object becoming unreachable and finalizer being executed) Never do anything time critical in finalizer!
<ul>
<li>System.gc + System.runFinalization increase chances - no guarantee</li>
<li>System.runFinalizersOnExit + Runtime.runFinalizersOnExit are the ones that do - but they are fatally flawed</li>
</ul>
</li>
<li>Java 7 has <a href="https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html">try with resources</a>, which is also interesting and <a href="http://examples.javacodegeeks.com/core-java/java-autocloseable-interface-example/">auto-closeables</a>. [Android] devs can only dream of these.</li>
<li>If an uncaught exception is thrown in a finalizer, it is ignored, and the finalization abruptly terminates.</li>
<li>Severe performance penalty for using finalizers - (one e.g.) time to create and destroy simple object goes from 5.6ns -&gt; 2400ns</li>
<li>Only valid use: as a safety net or to terminate noncritical native resources.</li>
<li>[Android] you're probably better off using Android's lifecycle methods.</li>
</ul>
<h2>Contact</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="5827618" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/0073d8ad-ff29-49db-8b2b-9d6d48728400/025_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>025: Effective Java for Android developers : Item 7</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/0073d8ad-ff29-49db-8b2b-9d6d48728400/3000x3000/1454950689-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:11:36</itunes:duration>
      <itunes:summary>In this mini Fragment, we introduce Joshua&apos;s seventh Item and a momentous end to the first chapter: Avoid finalizers.

Stay tuned for more items from our &quot;Effective Java for Android developers&quot; Fragment series.</itunes:summary>
      <itunes:subtitle>In this mini Fragment, we introduce Joshua&apos;s seventh Item and a momentous end to the first chapter: Avoid finalizers.

Stay tuned for more items from our &quot;Effective Java for Android developers&quot; Fragment series.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>25</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">a1db8042d53370ca9420f0d273ae92a7</guid>
      <title>024: Effective Java for Android developers : Item 6</title>
      <description><![CDATA[<p>Joshua's sixth Item: <strong>Eliminate obsolete object references</strong> , in a distinctively croaky voice.</p>
<p>Stay tuned for more items from our <a href="http://fragmentedpodcast.com/category/effective-java/">&quot;Effective Java for Android developers&quot; Fragment series</a>.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683/?tag=httpkaushco-20">Effective Java (2nd Edition) - Joshua Bloch</a></li>
</ul>
<p><strong>Eliminate obsolete object references</strong></p>
<p>Supplemental reading (for the diligent ones that follow shownotes)</p>
<ul>
<li><a href="http://stackoverflow.com/questions/5002589/memory-leakage-in-event-listener">Do click listeners leak memory?</a> [stackoverflow.com]</li>
<li><a href="https://github.com/square/leakcanary">Square's LeakCanary</a></li>
<li><a href="http://www.androiddesignpatterns.com/2013/01/inner-class-handler-memory-leak.html">How to leak a context - Handlers and inner classes</a> [androiddesignpatterns.com]</li>
<li><a href="http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html">Avoiding Memory leaks</a> [android-developers.blogspot.com]</li>
</ul>
<h2>Contact:</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Tue, 15 Dec 2015 18:48:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Joshua's sixth Item: <strong>Eliminate obsolete object references</strong> , in a distinctively croaky voice.</p>
<p>Stay tuned for more items from our <a href="http://fragmentedpodcast.com/category/effective-java/">&quot;Effective Java for Android developers&quot; Fragment series</a>.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683/?tag=httpkaushco-20">Effective Java (2nd Edition) - Joshua Bloch</a></li>
</ul>
<p><strong>Eliminate obsolete object references</strong></p>
<p>Supplemental reading (for the diligent ones that follow shownotes)</p>
<ul>
<li><a href="http://stackoverflow.com/questions/5002589/memory-leakage-in-event-listener">Do click listeners leak memory?</a> [stackoverflow.com]</li>
<li><a href="https://github.com/square/leakcanary">Square's LeakCanary</a></li>
<li><a href="http://www.androiddesignpatterns.com/2013/01/inner-class-handler-memory-leak.html">How to leak a context - Handlers and inner classes</a> [androiddesignpatterns.com]</li>
<li><a href="http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html">Avoiding Memory leaks</a> [android-developers.blogspot.com]</li>
</ul>
<h2>Contact:</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="6495917" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/2de30948-e0b3-4ba5-bc27-398adc3fe91e/024_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>024: Effective Java for Android developers : Item 6</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/2de30948-e0b3-4ba5-bc27-398adc3fe91e/3000x3000/1454950687-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:12:59</itunes:duration>
      <itunes:summary>Joshua&apos;s sixth Item: Eliminate obsolete object references , in a distinctively croaky voice.

Stay tuned for more items from our [&quot;Effective Java for Android developers&quot; Fragment series.</itunes:summary>
      <itunes:subtitle>Joshua&apos;s sixth Item: Eliminate obsolete object references , in a distinctively croaky voice.

Stay tuned for more items from our [&quot;Effective Java for Android developers&quot; Fragment series.</itunes:subtitle>
      <itunes:keywords>android, developer, podcast</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>24</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">44485f03ad865b9d0e29351d6a6884eb</guid>
      <title>023: Android Dev Summit Recap</title>
      <description><![CDATA[<p>Donn and Kaushik cover the happenings of Google's very first Android Developer conference - &quot;Android Dev Summit&quot;. Together, they attended the conference both virtually and physically! Listen on for the highlights.</p>
<ul>
<li><a href="https://androiddevsummit.withgoogle.com/schedule">Android Dev Summit Schedule</a></li>
<li><a href="https://twitter.com/AndroidDev/status/669314468518621184">AndroidDev Twitter account</a></li>
</ul>
<h3>Sessions</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=xdItHEVfQ4U">Android Dev Summit 2015 Keynote</a> [youtube]</li>
<li><a href="https://www.youtube.com/watch?v=Y2GC6P5hPeA">Android Studio for Experts</a> [youtube]</li>
<li><a href="https://www.youtube.com/watch?v=vdasFFfXKOY">Android Testing</a> [youtube]</li>
<li><a href="https://www.youtube.com/watch?v=-VNfWh5UkfY">Firechat - Framework team</a> [youtube]</li>
<li><a href="https://www.youtube.com/watch?v=LMyfEtElLQQ">Firechat - Android Tools and Testing team</a> [youtube]</li>
</ul>
<h3>Sample projects</h3>
<ul>
<li><a href="https://github.com/googlesamples/android-topeka">Android Topeka</a> [github]</li>
<li><a href="https://github.com/AndroidBootstrap/android-bootstrap">Android Bootstrap</a> [github]</li>
<li><a href="https://github.com/JakeWharton/u2020">u2020</a> [github]</li>
<li><a href="https://www.code-labs.io/">Google code labs</a> + <a href="https://github.com/googlecodelabs">github link</a></li>
</ul>
<p>Contact us:</p>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Mon, 30 Nov 2015 00:53:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Donn and Kaushik cover the happenings of Google's very first Android Developer conference - &quot;Android Dev Summit&quot;. Together, they attended the conference both virtually and physically! Listen on for the highlights.</p>
<ul>
<li><a href="https://androiddevsummit.withgoogle.com/schedule">Android Dev Summit Schedule</a></li>
<li><a href="https://twitter.com/AndroidDev/status/669314468518621184">AndroidDev Twitter account</a></li>
</ul>
<h3>Sessions</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=xdItHEVfQ4U">Android Dev Summit 2015 Keynote</a> [youtube]</li>
<li><a href="https://www.youtube.com/watch?v=Y2GC6P5hPeA">Android Studio for Experts</a> [youtube]</li>
<li><a href="https://www.youtube.com/watch?v=vdasFFfXKOY">Android Testing</a> [youtube]</li>
<li><a href="https://www.youtube.com/watch?v=-VNfWh5UkfY">Firechat - Framework team</a> [youtube]</li>
<li><a href="https://www.youtube.com/watch?v=LMyfEtElLQQ">Firechat - Android Tools and Testing team</a> [youtube]</li>
</ul>
<h3>Sample projects</h3>
<ul>
<li><a href="https://github.com/googlesamples/android-topeka">Android Topeka</a> [github]</li>
<li><a href="https://github.com/AndroidBootstrap/android-bootstrap">Android Bootstrap</a> [github]</li>
<li><a href="https://github.com/JakeWharton/u2020">u2020</a> [github]</li>
<li><a href="https://www.code-labs.io/">Google code labs</a> + <a href="https://github.com/googlecodelabs">github link</a></li>
</ul>
<p>Contact us:</p>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="17148811" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/f96ca62e-b6a7-45ad-b309-6114b37fe9c5/023_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>023: Android Dev Summit Recap</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/f96ca62e-b6a7-45ad-b309-6114b37fe9c5/3000x3000/1454950686-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:35:11</itunes:duration>
      <itunes:summary>Donn and Kaushik cover the happenings of Google&apos;s very first Android Developer conference - &quot;Android Dev Summit&quot;. Together, they attended the conference both virtually and physically! Listen on for the highlights.</itunes:summary>
      <itunes:subtitle>Donn and Kaushik cover the happenings of Google&apos;s very first Android Developer conference - &quot;Android Dev Summit&quot;. Together, they attended the conference both virtually and physically! Listen on for the highlights.</itunes:subtitle>
      <itunes:keywords>android, developer, podcast</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>23</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">9e8cca25af26b09da410260d454fadb0</guid>
      <title>022: Effective Java for Android developers : Item 5</title>
      <description><![CDATA[<p>In this mini Fragment, we introduce Joshua's fifth Item: <strong>Avoid creating unnecessary objects</strong>.</p>
<p>Stay tuned for more items from our <a href="http://fragmentedpodcast.com/category/effective-java/">&quot;Effective Java for Android developers&quot; Fragment series</a>.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683/?tag=httpkaushco-20">Effective Java (2nd Edition) - Joshua Bloch</a></li>
</ul>
<p><strong>Avoid creating unnecessary objects</strong></p>
<ul>
<li><a href="http://developer.android.com/training/articles/perf-tips.html#ObjectCreation">Google says - Avoiding creating unnecessary objects</a> too</li>
<li><a href="http://pca.st/uAyx#t=53m51s">Episode 10 with Michael Bailey - String optimization</a></li>
</ul>
<h3>Snippet to demonstrate AutoBoxing problems</h3>
<pre><code>// sum of all positive values
Long sum = 0L;
for (long i=0; i Integer.MAX_VALUE; i++) {
  sum+=i;
}
</code></pre>
<h2>Contact:</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Fri, 20 Nov 2015 06:24:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this mini Fragment, we introduce Joshua's fifth Item: <strong>Avoid creating unnecessary objects</strong>.</p>
<p>Stay tuned for more items from our <a href="http://fragmentedpodcast.com/category/effective-java/">&quot;Effective Java for Android developers&quot; Fragment series</a>.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683/?tag=httpkaushco-20">Effective Java (2nd Edition) - Joshua Bloch</a></li>
</ul>
<p><strong>Avoid creating unnecessary objects</strong></p>
<ul>
<li><a href="http://developer.android.com/training/articles/perf-tips.html#ObjectCreation">Google says - Avoiding creating unnecessary objects</a> too</li>
<li><a href="http://pca.st/uAyx#t=53m51s">Episode 10 with Michael Bailey - String optimization</a></li>
</ul>
<h3>Snippet to demonstrate AutoBoxing problems</h3>
<pre><code>// sum of all positive values
Long sum = 0L;
for (long i=0; i Integer.MAX_VALUE; i++) {
  sum+=i;
}
</code></pre>
<h2>Contact:</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="6243010" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/f4dd7624-70a3-48cf-88ab-988ef5ccca39/022_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>022: Effective Java for Android developers : Item 5</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/f4dd7624-70a3-48cf-88ab-988ef5ccca39/3000x3000/1454950683-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:12:28</itunes:duration>
      <itunes:summary>In this mini Fragment, we introduce Joshua&apos;s fifth Item: Avoid creating unnecessary objects.

Stay tuned for more items from our &quot;Effective Java for Android developers&quot; Fragment series.</itunes:summary>
      <itunes:subtitle>In this mini Fragment, we introduce Joshua&apos;s fifth Item: Avoid creating unnecessary objects.

Stay tuned for more items from our &quot;Effective Java for Android developers&quot; Fragment series.</itunes:subtitle>
      <itunes:keywords>java, android, developer, podcast</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>22</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">6ff097ad03027a0a92a31bd6ede98727</guid>
      <title>021: Diving Deep with Dagger</title>
      <description><![CDATA[<p>In this episode, Kaushik and Donn dive deep into the Dependency Injection library - Dagger. We have a cameo by Dagger creator Jesse!</p>
<h2>Show Notes</h2>
<h3>In other news</h3>
<ul>
<li><a href="https://twitter.com/donnfelker/status/660493375129432064">Donn in a Banana Suit</a></li>
<li><a href="https://twitter.com/Max/status/660200673242300416">KG as a Storm Trooper</a></li>
<li><a href="http://androidto.com/">AndoridTO</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/20/">020 – Talking Kotlin with Hadi Hariri</a></li>
<li><a href="http://officialandroid.blogspot.com/2015/10/podcasters-welcome-to-google-play-music.html">Google entering podcast scene and we're on it</a></li>
</ul>
<h3>Dagger</h3>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Topological_sorting">Topological Sort</a></li>
</ul>
<h3>Jesse Wilson Cameo</h3>
<ul>
<li><a href="https://github.com/square/dagger/blob/master/core/src/main/java/dagger/internal/Linker.java#L286">Dagger Linker class</a></li>
<li><a href="https://github.com/google/guice/blob/master/extensions/mini/src/com/google/inject/mini/MiniGuice.java">Jesse's MiniGuice proof of concept</a></li>
<li><a href="http://stackoverflow.com/questions/20477417/use-dagger-modules-without-the-injects-directive">Avoiding injects with library</a></li>
<li><a href="https://groups.google.com/forum/#!topic/dagger-discuss/QgnvmZ-dH9c/discussion">Assisted Injection for Dagger</a></li>
<li><a href="https://github.com/google/auto/tree/master/factory">AutoFactory</a></li>
<li><a href="https://caster.io/">caster.io</a></li>
<li><a href="http://developer.android.com/reference/android/support/test/rule/ActivityTestRule.html">Activity Test Rule</a></li>
</ul>
<h3>Other great references</h3>
<ul>
<li><a href="https://www.parleys.com/tutorial/architecting-android-applications-dagger">Jake Wharton - Architecting Android Applications with Dagger</a></li>
</ul>
<h3>Awesome picks:</h3>
<p>Donn's picks:</p>
<ul>
<li><a href="https://caster.io/episodes/episode-9-dagger-part-1/">Dagger 1</a> [caster.io]</li>
<li><a href="https://caster.io/episodes/rxjava-for-android-developers/">Intro to RxJava for Android Developers</a> [caster.io]</li>
<li><a href="https://caster.io/episodes/realm-for-android-developers/">Intro to Realm for Android Developers</a> [caster.io]</li>
<li><a href="http://www.howtogeek.com/57481/how-to-make-custom-silicone-ear-molds-for-your-in-ear-monitors/">Custom Silicone earbuds</a> [howtogeek.com]</li>
<li><a href="https://medium.com/@dhh/reconsider-41adf356857f">DHH - Reconsider</a> [medium.com]</li>
</ul>
<p>KG's picks:</p>
<ul>
<li><a href="https://github.com/DreaminginCodeZH/MaterialColdStart">Cold start illusion</a> [github.com]</li>
<li><a href="http://songexploder.net/jeff-beal">Song Exploder - House of Cards</a> [songexploder.net]</li>
<li><a href="http://songexploder.net/ramin-djawadi">Song Exploder - Game of Thrones</a> [songexploder.net]</li>
</ul>
<h2>Contact us:</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Fri, 13 Nov 2015 16:36:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, Kaushik and Donn dive deep into the Dependency Injection library - Dagger. We have a cameo by Dagger creator Jesse!</p>
<h2>Show Notes</h2>
<h3>In other news</h3>
<ul>
<li><a href="https://twitter.com/donnfelker/status/660493375129432064">Donn in a Banana Suit</a></li>
<li><a href="https://twitter.com/Max/status/660200673242300416">KG as a Storm Trooper</a></li>
<li><a href="http://androidto.com/">AndoridTO</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/20/">020 – Talking Kotlin with Hadi Hariri</a></li>
<li><a href="http://officialandroid.blogspot.com/2015/10/podcasters-welcome-to-google-play-music.html">Google entering podcast scene and we're on it</a></li>
</ul>
<h3>Dagger</h3>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Topological_sorting">Topological Sort</a></li>
</ul>
<h3>Jesse Wilson Cameo</h3>
<ul>
<li><a href="https://github.com/square/dagger/blob/master/core/src/main/java/dagger/internal/Linker.java#L286">Dagger Linker class</a></li>
<li><a href="https://github.com/google/guice/blob/master/extensions/mini/src/com/google/inject/mini/MiniGuice.java">Jesse's MiniGuice proof of concept</a></li>
<li><a href="http://stackoverflow.com/questions/20477417/use-dagger-modules-without-the-injects-directive">Avoiding injects with library</a></li>
<li><a href="https://groups.google.com/forum/#!topic/dagger-discuss/QgnvmZ-dH9c/discussion">Assisted Injection for Dagger</a></li>
<li><a href="https://github.com/google/auto/tree/master/factory">AutoFactory</a></li>
<li><a href="https://caster.io/">caster.io</a></li>
<li><a href="http://developer.android.com/reference/android/support/test/rule/ActivityTestRule.html">Activity Test Rule</a></li>
</ul>
<h3>Other great references</h3>
<ul>
<li><a href="https://www.parleys.com/tutorial/architecting-android-applications-dagger">Jake Wharton - Architecting Android Applications with Dagger</a></li>
</ul>
<h3>Awesome picks:</h3>
<p>Donn's picks:</p>
<ul>
<li><a href="https://caster.io/episodes/episode-9-dagger-part-1/">Dagger 1</a> [caster.io]</li>
<li><a href="https://caster.io/episodes/rxjava-for-android-developers/">Intro to RxJava for Android Developers</a> [caster.io]</li>
<li><a href="https://caster.io/episodes/realm-for-android-developers/">Intro to Realm for Android Developers</a> [caster.io]</li>
<li><a href="http://www.howtogeek.com/57481/how-to-make-custom-silicone-ear-molds-for-your-in-ear-monitors/">Custom Silicone earbuds</a> [howtogeek.com]</li>
<li><a href="https://medium.com/@dhh/reconsider-41adf356857f">DHH - Reconsider</a> [medium.com]</li>
</ul>
<p>KG's picks:</p>
<ul>
<li><a href="https://github.com/DreaminginCodeZH/MaterialColdStart">Cold start illusion</a> [github.com]</li>
<li><a href="http://songexploder.net/jeff-beal">Song Exploder - House of Cards</a> [songexploder.net]</li>
<li><a href="http://songexploder.net/ramin-djawadi">Song Exploder - Game of Thrones</a> [songexploder.net]</li>
</ul>
<h2>Contact us:</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="36482484" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/880f6a9f-7215-49c3-9afa-0b0f8850efac/021_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>021: Diving Deep with Dagger</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/880f6a9f-7215-49c3-9afa-0b0f8850efac/3000x3000/1454950682-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:15:28</itunes:duration>
      <itunes:summary>In this episode, Kaushik and Donn dive deep into the Dependency Injection library - Dagger. We have a cameo by Dagger creator Jesse!</itunes:summary>
      <itunes:subtitle>In this episode, Kaushik and Donn dive deep into the Dependency Injection library - Dagger. We have a cameo by Dagger creator Jesse!</itunes:subtitle>
      <itunes:keywords>android, developer, podcast</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>21</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">39bf39fbc909a8c74aa820c158a8aca6</guid>
      <title>020: Talking Kotlin with Hadi Hariri</title>
      <description><![CDATA[<p>A tonne of folks have been asking for a show on Kotlin. We got the best person in the business to take us through what could possibly be our new hope.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://hadihariri.com/2014/06/24/no-tabs-in-intellij-idea/">No tabs in Intellij</a> [hadihariri.com]</li>
</ul>
<h3>Jetbrains products</h3>
<ul>
<li>Java - <a href="https://www.jetbrains.com/idea/">IntelliJ</a></li>
<li>.Net - <a href="https://www.jetbrains.com/resharper/">ReSharper</a></li>
<li>CI server - <a href="https://www.jetbrains.com/teamcity/">TeamCity</a></li>
<li>Issue tracking - <a href="https://www.jetbrains.com/youtrack/">YouTrack</a></li>
</ul>
<p>Smaller IDES</p>
<ul>
<li>Web/Node.js - <a href="https://www.jetbrains.com/webstorm/">WebStorm</a></li>
<li>Python/Django - <a href="https://www.jetbrains.com/pycharm/">PyCharm</a></li>
<li>Ruby/Rails - <a href="https://www.jetbrains.com/ruby/">RubyMine</a></li>
<li>C++ - <a href="https://www.jetbrains.com/clion/">CLion</a></li>
<li>ObjectiveC - <a href="https://www.jetbrains.com/objc/">AppCode</a></li>
</ul>
<h3>Hadi's 3 tips for Intellij</h3>
<ol>
<li>Don't use the Mouse! <a href="https://vimeo.com/98922030">Mouseless driven development</a> [vimeo.com]</li>
<li>Cmd Shift A - look up other commands</li>
<li>Don't use the Find box to find things: Prefer shortcuts like Cmd O/Cmd Shift O</li>
</ol>
<h3>Kotlin</h3>
<ul>
<li><a href="http://kotlinlang.org/">Kotlin</a> - An open source JVM targeted language</li>
<li><a href="https://docs.google.com/document/d/1ReS3ep-hjxWA8kZi0YqDbEhCqTt29hG8P44aA9W0DM8/edit#heading=h.zi7eb2clrbue">Jake's doc on Using Project Kotlin for Android</a> [docs.google.com]</li>
<li><a href="http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html">Execution in the kingdom of nouns</a> [blogspot.com]</li>
<li><a href="https://realm.io/news/droidcon-michael-pardo-kotlin/">Kotlin : a new hope - talk by Michael Pardo</a> [realm.io]</li>
<li><a href="https://en.wikipedia.org/wiki/Tony_Hoare">Tony Hoare saying Null is his Billion dollar mistake</a> [wikipedia.org]</li>
</ul>
<h3>Getting started with Kotlin</h3>
<ul>
<li><a href="http://kotlinlang.org/docs/tutorials/">Kotlin Tutorials</a> [kotlinlang.org]</li>
<li><a href="https://kotlinlang.org/docs/tutorials/koans.html">Kotlin Koans</a> [kotlinlang.org]</li>
<li><a href="http://try.kotlinlang.org/">Try Kotlin online : online &amp; interactive</a> [kotlinlang.org]</li>
<li><a href="https://www.youtube.com/watch?v=viiDaLpPfN4">Kotlin in two minutes</a> [youtube.com]</li>
<li>Kotlin Slack channel [slack.com]</li>
<li>Books:
<ul>
<li><a href="https://leanpub.com/kotlin-for-android-developers">Antonio's book on Kotlin</a> [leanpub.com]</li>
<li><a href="https://www.manning.com/books/kotlin-in-action">Kotlin in Action</a> [manning.com]</li>
</ul>
</li>
</ul>
<h3>Kotlin tools</h3>
<ul>
<li><a href="https://github.com/JetBrains/anko">Anko</a> [github.com]</li>
<li><a href="https://kotlinlang.org/docs/tutorials/android-plugin.html">Kotlin Android extensions</a> [kotlinlang.org]</li>
</ul>
<p>Sample projects with Kotlin</p>
<ul>
<li><a href="https://github.com/hzsweers/palettehelper">Palette Helper</a> [github.com]</li>
<li><a href="https://github.com/IzanRodrigo/Cinesapp-Android-Kotlin">Cinesapp Android Kotlin</a> [github.com]</li>
<li><a href="https://github.com/mgouline/android-samples/tree/master/kotlin-demo">Kotlin demo</a> [github.com]</li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="http://blog.fogcreek.com/killing-off-wasabi-part-1/">Killing off Wasabi: Part 1</a> [fogcreek.com]</li>
<li><a href="http://blog.fogcreek.com/killing-off-wasabi-part-2/">Killing off Wasabi: Part 2</a> [fogcreek.com]</li>
</ul>
<h2>Awesome picks:</h2>
<h3>Hadi Hariri</h3>
<ul>
<li><a href="http://blogs.microsoft.com/on-the-issues/2015/10/20/the-collapse-of-the-us-eu-safe-harbor-solving-the-new-privacy-rubiks-cube/">The collapse of the US-EU Safe Harbor: Solving the new privacy Rubik’s Cube</a> [http://blogs.microsoft.com/]</li>
<li><a href="https://www.oracle.com/javaone/index.html">JavaOne Conference</a> [oracle.com]</li>
</ul>
<h3>Kaushik Gopal</h3>
<ul>
<li>When looking for solutions to a problem, search the source code first before StackOverflow</li>
<li>When working on a feature, change your launcher activity (temporarily) to the one you're working on</li>
</ul>
<h3>Donn Felker</h3>
<ul>
<li><a href="http://stackoverflow.com/a/3320183/5210">git - assume unchanged</a> [stackoverflow.com]</li>
<li><a href="http://amzn.to/1Lk1eP4">The Martian Audio Book</a> [amazon.com]</li>
<li><a href="https://leanpub.com/kotlin-for-android-developers">Antonio's book on Kotlin</a> [leanpub.com]</li>
<li>Also check out <a href="http://antonioleiva.com/">his blog</a> [antonioleiva.com]</li>
</ul>
<h2>Contact us:</h2>
<ul>
<li><a href="https://twitter.com/hhariri">@hhariri</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Mon, 26 Oct 2015 09:35:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>A tonne of folks have been asking for a show on Kotlin. We got the best person in the business to take us through what could possibly be our new hope.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://hadihariri.com/2014/06/24/no-tabs-in-intellij-idea/">No tabs in Intellij</a> [hadihariri.com]</li>
</ul>
<h3>Jetbrains products</h3>
<ul>
<li>Java - <a href="https://www.jetbrains.com/idea/">IntelliJ</a></li>
<li>.Net - <a href="https://www.jetbrains.com/resharper/">ReSharper</a></li>
<li>CI server - <a href="https://www.jetbrains.com/teamcity/">TeamCity</a></li>
<li>Issue tracking - <a href="https://www.jetbrains.com/youtrack/">YouTrack</a></li>
</ul>
<p>Smaller IDES</p>
<ul>
<li>Web/Node.js - <a href="https://www.jetbrains.com/webstorm/">WebStorm</a></li>
<li>Python/Django - <a href="https://www.jetbrains.com/pycharm/">PyCharm</a></li>
<li>Ruby/Rails - <a href="https://www.jetbrains.com/ruby/">RubyMine</a></li>
<li>C++ - <a href="https://www.jetbrains.com/clion/">CLion</a></li>
<li>ObjectiveC - <a href="https://www.jetbrains.com/objc/">AppCode</a></li>
</ul>
<h3>Hadi's 3 tips for Intellij</h3>
<ol>
<li>Don't use the Mouse! <a href="https://vimeo.com/98922030">Mouseless driven development</a> [vimeo.com]</li>
<li>Cmd Shift A - look up other commands</li>
<li>Don't use the Find box to find things: Prefer shortcuts like Cmd O/Cmd Shift O</li>
</ol>
<h3>Kotlin</h3>
<ul>
<li><a href="http://kotlinlang.org/">Kotlin</a> - An open source JVM targeted language</li>
<li><a href="https://docs.google.com/document/d/1ReS3ep-hjxWA8kZi0YqDbEhCqTt29hG8P44aA9W0DM8/edit#heading=h.zi7eb2clrbue">Jake's doc on Using Project Kotlin for Android</a> [docs.google.com]</li>
<li><a href="http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html">Execution in the kingdom of nouns</a> [blogspot.com]</li>
<li><a href="https://realm.io/news/droidcon-michael-pardo-kotlin/">Kotlin : a new hope - talk by Michael Pardo</a> [realm.io]</li>
<li><a href="https://en.wikipedia.org/wiki/Tony_Hoare">Tony Hoare saying Null is his Billion dollar mistake</a> [wikipedia.org]</li>
</ul>
<h3>Getting started with Kotlin</h3>
<ul>
<li><a href="http://kotlinlang.org/docs/tutorials/">Kotlin Tutorials</a> [kotlinlang.org]</li>
<li><a href="https://kotlinlang.org/docs/tutorials/koans.html">Kotlin Koans</a> [kotlinlang.org]</li>
<li><a href="http://try.kotlinlang.org/">Try Kotlin online : online &amp; interactive</a> [kotlinlang.org]</li>
<li><a href="https://www.youtube.com/watch?v=viiDaLpPfN4">Kotlin in two minutes</a> [youtube.com]</li>
<li>Kotlin Slack channel [slack.com]</li>
<li>Books:
<ul>
<li><a href="https://leanpub.com/kotlin-for-android-developers">Antonio's book on Kotlin</a> [leanpub.com]</li>
<li><a href="https://www.manning.com/books/kotlin-in-action">Kotlin in Action</a> [manning.com]</li>
</ul>
</li>
</ul>
<h3>Kotlin tools</h3>
<ul>
<li><a href="https://github.com/JetBrains/anko">Anko</a> [github.com]</li>
<li><a href="https://kotlinlang.org/docs/tutorials/android-plugin.html">Kotlin Android extensions</a> [kotlinlang.org]</li>
</ul>
<p>Sample projects with Kotlin</p>
<ul>
<li><a href="https://github.com/hzsweers/palettehelper">Palette Helper</a> [github.com]</li>
<li><a href="https://github.com/IzanRodrigo/Cinesapp-Android-Kotlin">Cinesapp Android Kotlin</a> [github.com]</li>
<li><a href="https://github.com/mgouline/android-samples/tree/master/kotlin-demo">Kotlin demo</a> [github.com]</li>
</ul>
<h3>Misc</h3>
<ul>
<li><a href="http://blog.fogcreek.com/killing-off-wasabi-part-1/">Killing off Wasabi: Part 1</a> [fogcreek.com]</li>
<li><a href="http://blog.fogcreek.com/killing-off-wasabi-part-2/">Killing off Wasabi: Part 2</a> [fogcreek.com]</li>
</ul>
<h2>Awesome picks:</h2>
<h3>Hadi Hariri</h3>
<ul>
<li><a href="http://blogs.microsoft.com/on-the-issues/2015/10/20/the-collapse-of-the-us-eu-safe-harbor-solving-the-new-privacy-rubiks-cube/">The collapse of the US-EU Safe Harbor: Solving the new privacy Rubik’s Cube</a> [http://blogs.microsoft.com/]</li>
<li><a href="https://www.oracle.com/javaone/index.html">JavaOne Conference</a> [oracle.com]</li>
</ul>
<h3>Kaushik Gopal</h3>
<ul>
<li>When looking for solutions to a problem, search the source code first before StackOverflow</li>
<li>When working on a feature, change your launcher activity (temporarily) to the one you're working on</li>
</ul>
<h3>Donn Felker</h3>
<ul>
<li><a href="http://stackoverflow.com/a/3320183/5210">git - assume unchanged</a> [stackoverflow.com]</li>
<li><a href="http://amzn.to/1Lk1eP4">The Martian Audio Book</a> [amazon.com]</li>
<li><a href="https://leanpub.com/kotlin-for-android-developers">Antonio's book on Kotlin</a> [leanpub.com]</li>
<li>Also check out <a href="http://antonioleiva.com/">his blog</a> [antonioleiva.com]</li>
</ul>
<h2>Contact us:</h2>
<ul>
<li><a href="https://twitter.com/hhariri">@hhariri</a> [twitter.com]</li>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="40798292" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/851fd081-5054-49c9-a04c-661c0753e330/020_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>020: Talking Kotlin with Hadi Hariri</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/851fd081-5054-49c9-a04c-661c0753e330/3000x3000/1454950680-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:24:27</itunes:duration>
      <itunes:summary>A tonne of folks have been asking for a show on Kotlin. We got the best person in the business to take us through what could possibly be our new hope.</itunes:summary>
      <itunes:subtitle>A tonne of folks have been asking for a show on Kotlin. We got the best person in the business to take us through what could possibly be our new hope.</itunes:subtitle>
      <itunes:keywords>android, developer, podcast</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>20</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">893263347702402530e6007799a0ee74</guid>
      <title>019: Effective Java for Android developers : Item 4</title>
      <description><![CDATA[<p>Singer and Android developer Donn Felker explores Joshua Bloch's fourth Item: <strong>Enforce noninstantiability with a private constructor</strong>.</p>
<p>Stay tuned, cause we got more of these quick ones coming.</p>
<ul>
<li><a href="http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683/?tag=httpkaushco-20">Effective Java (2nd Edition) - Joshua Bloch</a></li>
</ul>
<p><strong>Enforce noninstantiability with a private constructor</strong>.</p>
<p>Examples where you don't want class to be instantiated</p>
<ol>
<li>class that groups static methods and static fields (Util like classes think java.lang.Math/java.util.Arrays)</li>
<li>class that groups static methods (including factory methods) for objects implementing specific interfaces (think java.util.Collections)</li>
<li>class that group methods on a final class (vs. extending the class)</li>
</ol>
<p>Considerations</p>
<ul>
<li>Makes no sense to instantiate such &quot;Util&quot; classes</li>
<li>Private constructors prevent instantiation</li>
<li>Important side effect: prevents subclassing</li>
</ul>
<h2>Contact us:</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Thu, 15 Oct 2015 06:58:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Singer and Android developer Donn Felker explores Joshua Bloch's fourth Item: <strong>Enforce noninstantiability with a private constructor</strong>.</p>
<p>Stay tuned, cause we got more of these quick ones coming.</p>
<ul>
<li><a href="http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683/?tag=httpkaushco-20">Effective Java (2nd Edition) - Joshua Bloch</a></li>
</ul>
<p><strong>Enforce noninstantiability with a private constructor</strong>.</p>
<p>Examples where you don't want class to be instantiated</p>
<ol>
<li>class that groups static methods and static fields (Util like classes think java.lang.Math/java.util.Arrays)</li>
<li>class that groups static methods (including factory methods) for objects implementing specific interfaces (think java.util.Collections)</li>
<li>class that group methods on a final class (vs. extending the class)</li>
</ol>
<p>Considerations</p>
<ul>
<li>Makes no sense to instantiate such &quot;Util&quot; classes</li>
<li>Private constructors prevent instantiation</li>
<li>Important side effect: prevents subclassing</li>
</ul>
<h2>Contact us:</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="3167326" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/70e3e9d3-9bf8-4e6c-94d3-35780f4f42dd/ep-19_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>019: Effective Java for Android developers : Item 4</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/70e3e9d3-9bf8-4e6c-94d3-35780f4f42dd/3000x3000/1454950678-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:06:33</itunes:duration>
      <itunes:summary>Singer and Android developer Donn Felker explores Joshua Bloch&apos;s fourth Item: Enforce noninstantiability with a private constructor.

Stay tuned, cause we got more of these quick ones coming.</itunes:summary>
      <itunes:subtitle>Singer and Android developer Donn Felker explores Joshua Bloch&apos;s fourth Item: Enforce noninstantiability with a private constructor.

Stay tuned, cause we got more of these quick ones coming.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>19</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">b89e224af8fdbcaaf6e8f04d5c50b914</guid>
      <title>018: Effective Java for Android developers : Item 3</title>
      <description><![CDATA[<p>In this mini Fragment, we introduce Joshua's third Item: <strong>Enforce the Singleton property with a private constructor or an enum type</strong>.</p>
<p>Stay tuned for more items from our &quot;Effective Java for Android developers&quot; Fragment series.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683/?tag=httpkaushco-20">Effective Java (2nd Edition) - Joshua Bloch</a></li>
</ul>
<p><strong>Enforce the Singleton property with a private constructor or an enum type</strong></p>
<p>Approaches</p>
<ol>
<li>Create a public static final INSTANCE variable and privatize constructor</li>
<li>Same as 1 but privatize variable and expose access with provide factory method <code>getInstance</code></li>
<li>Single element Enums</li>
</ol>
<p>Considerations</p>
<ul>
<li>First two approaches are open to Serialization attacks (deserializing creates new instance)</li>
<li>To protect from those declare the fields transient + provide <code>readResolve</code> method</li>
<li>Enums are concise, provide free serialization and ironclad Singleton guarantees and are functionally equivalent to first approach</li>
</ul>
<p>Supplemental reading (for the diligent ones that follow shownotes)</p>
<ul>
<li><a href="https://plus.google.com/+AnderWebbs/posts/DsfpW51Vvow">Dianne Hackborn regretting exposing the base Application class</a></li>
<li><a href="http://stackoverflow.com/questions/3826905/singletons-vs-application-context-in-android">DH again saying Application is a Singleton with crappier semantics</a></li>
<li><a href="https://en.wikipedia.org/wiki/Elvis_sightings">Elvis sightings</a></li>
</ul>
<h2>Contact us:</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Thu, 8 Oct 2015 17:49:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this mini Fragment, we introduce Joshua's third Item: <strong>Enforce the Singleton property with a private constructor or an enum type</strong>.</p>
<p>Stay tuned for more items from our &quot;Effective Java for Android developers&quot; Fragment series.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683/?tag=httpkaushco-20">Effective Java (2nd Edition) - Joshua Bloch</a></li>
</ul>
<p><strong>Enforce the Singleton property with a private constructor or an enum type</strong></p>
<p>Approaches</p>
<ol>
<li>Create a public static final INSTANCE variable and privatize constructor</li>
<li>Same as 1 but privatize variable and expose access with provide factory method <code>getInstance</code></li>
<li>Single element Enums</li>
</ol>
<p>Considerations</p>
<ul>
<li>First two approaches are open to Serialization attacks (deserializing creates new instance)</li>
<li>To protect from those declare the fields transient + provide <code>readResolve</code> method</li>
<li>Enums are concise, provide free serialization and ironclad Singleton guarantees and are functionally equivalent to first approach</li>
</ul>
<p>Supplemental reading (for the diligent ones that follow shownotes)</p>
<ul>
<li><a href="https://plus.google.com/+AnderWebbs/posts/DsfpW51Vvow">Dianne Hackborn regretting exposing the base Application class</a></li>
<li><a href="http://stackoverflow.com/questions/3826905/singletons-vs-application-context-in-android">DH again saying Application is a Singleton with crappier semantics</a></li>
<li><a href="https://en.wikipedia.org/wiki/Elvis_sightings">Elvis sightings</a></li>
</ul>
<h2>Contact us:</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="5750249" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/17ba77a6-b621-4c8e-a052-d9f289319332/ep-18_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>018: Effective Java for Android developers : Item 3</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/17ba77a6-b621-4c8e-a052-d9f289319332/3000x3000/1454950677-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:11:56</itunes:duration>
      <itunes:summary>In this mini Fragment, we introduce Joshua&apos;s third Item: Enforce the Singleton property with a private constructor or an enum type.

Stay tuned for more items from our &quot;Effective Java for Android developers&quot; Fragment series.</itunes:summary>
      <itunes:subtitle>In this mini Fragment, we introduce Joshua&apos;s third Item: Enforce the Singleton property with a private constructor or an enum type.

Stay tuned for more items from our &quot;Effective Java for Android developers&quot; Fragment series.</itunes:subtitle>
      <itunes:keywords>android, developer, podcast</itunes:keywords>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>18</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">891cd52d226352782459a080d7854eb9</guid>
      <title>017: Getting Close with Android Nearby</title>
      <description><![CDATA[<p>In this power packed episode, Donn returns... If that wasn't amazing enough, Andrew and Akshay from Google join us to talk about Nearby.</p>
<h2>Show Notes</h2>
<h3>Follow up</h3>
<ul>
<li><a href="http://www.soundcloud.com/fragmentedcast">Fragmented is on SoundCloud</a> [soundcloud.com]</li>
<li><a href="https://twitter.com/maltzj/status/637669677171236864">ViewPropertyAnimator has better performance</a> [twitter.com]</li>
<li><a href="http://www.sriramramani.com/droidinspector/">Droid Inspector</a> [sriramramani.com]</li>
<li><a href="https://github.com/JakeWharton/scalpel">Jake Wharton's Scalpel</a> [github.com]</li>
</ul>
<h3>Nearby</h3>
<ul>
<li><a href="https://plus.google.com/+GoogleDevelopers/posts/4zbED7ppxUu">100 days of Google Dev, Episode 47/100 - Andrew on Nearby</a> [plus.google.com]</li>
<li><a href="https://support.google.com/chromecast/answer/6109286?hl=en">Chromecast Guest mode when Nearby</a> [support.google.com]</li>
</ul>
<h3>Examples/Documentation</h3>
<ul>
<li><a href="https://github.com/googlesamples/android-nearby/blob/master/messages/NearbyDevices/app/src/main/java/com/google/android/gms/nearby/messages/samples/nearbydevices/MainFragment.java">google sample for Nearby</a> [github.com]</li>
<li><a href="https://developers.google.com/nearby/">Nearby official docs</a> [developers.google.com]</li>
</ul>
<p>Awesome picks for the week:</p>
<h3>Andrew:</h3>
<ul>
<li><a href="https://github.com/japgolly/svg-android">svg-android</a> [github] and its various forks</li>
<li><a href="https://www.youtube.com/watch?v=zUIOEXssTSE&amp;list=PLGLfVvz_LVvTSi9bKrvGR2_DBg0Tv8Dxo">inkscape tutorials by Derek Banas</a> [youtube.com]</li>
</ul>
<h3>Akshay</h3>
<ul>
<li><a href="http://www.engadget.com/products/xiaomi/mi/band/">Xiaomi mi band</a> [engadget.com]</li>
</ul>
<h3>DF:</h3>
<ul>
<li><a href="http://www.donnfelker.com/karma">Karma Wifi</a> (donnfelker.com)</li>
<li><a href="http://modess.io/2015/08/16/one-year-of-working-remote/">Working Remote</a> (modess.io)</li>
</ul>
<h3>KG:</h3>
<ul>
<li><a href="https://chrome.google.com/webstore/detail/google-tone/nnckehldicaciogcbchegobnafnjkcne?hl=en">Google Tone - Chrome extension</a> (chrome.google.com)</li>
</ul>
<p>Contact</p>
<h3>Fragmented</h3>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
<li><a href="https://twitter.com/andrewbunner">@andrewbunner</a> [twitter.com]</li>
<li><a href="http://mailto%3aakshayk@google.com/">Akshay's email</a></li>
</ul>
<p>Soundcloud</p>
<p>shownotes: <a href="http://fragmentedpodcast.com/episodes/17">http://fragmentedpodcast.com/episodes/17</a></p>
<p>Contact:</p>
<ul>
<li>Fragmented: <a href="https://twitter.com/fragmentedcast">https://twitter.com/fragmentedcast</a></li>
<li>Donn Felker : <a href="https://twitter.com/donnfelker">https://twitter.com/donnfelker</a></li>
<li>Kaushik Gopal : <a href="https://twitter.com/kaushikgopal">https://twitter.com/kaushikgopal</a></li>
<li>Andrew : <a href="https://twitter.com/andrewbunner">https://twitter.com/andrewbunner</a></li>
<li>Akshay: <a href="http://mailto%3aakshayk@google.com/">akshayk@google.com</a></li>
</ul>
]]></description>
      <pubDate>Mon, 21 Sep 2015 16:13:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this power packed episode, Donn returns... If that wasn't amazing enough, Andrew and Akshay from Google join us to talk about Nearby.</p>
<h2>Show Notes</h2>
<h3>Follow up</h3>
<ul>
<li><a href="http://www.soundcloud.com/fragmentedcast">Fragmented is on SoundCloud</a> [soundcloud.com]</li>
<li><a href="https://twitter.com/maltzj/status/637669677171236864">ViewPropertyAnimator has better performance</a> [twitter.com]</li>
<li><a href="http://www.sriramramani.com/droidinspector/">Droid Inspector</a> [sriramramani.com]</li>
<li><a href="https://github.com/JakeWharton/scalpel">Jake Wharton's Scalpel</a> [github.com]</li>
</ul>
<h3>Nearby</h3>
<ul>
<li><a href="https://plus.google.com/+GoogleDevelopers/posts/4zbED7ppxUu">100 days of Google Dev, Episode 47/100 - Andrew on Nearby</a> [plus.google.com]</li>
<li><a href="https://support.google.com/chromecast/answer/6109286?hl=en">Chromecast Guest mode when Nearby</a> [support.google.com]</li>
</ul>
<h3>Examples/Documentation</h3>
<ul>
<li><a href="https://github.com/googlesamples/android-nearby/blob/master/messages/NearbyDevices/app/src/main/java/com/google/android/gms/nearby/messages/samples/nearbydevices/MainFragment.java">google sample for Nearby</a> [github.com]</li>
<li><a href="https://developers.google.com/nearby/">Nearby official docs</a> [developers.google.com]</li>
</ul>
<p>Awesome picks for the week:</p>
<h3>Andrew:</h3>
<ul>
<li><a href="https://github.com/japgolly/svg-android">svg-android</a> [github] and its various forks</li>
<li><a href="https://www.youtube.com/watch?v=zUIOEXssTSE&amp;list=PLGLfVvz_LVvTSi9bKrvGR2_DBg0Tv8Dxo">inkscape tutorials by Derek Banas</a> [youtube.com]</li>
</ul>
<h3>Akshay</h3>
<ul>
<li><a href="http://www.engadget.com/products/xiaomi/mi/band/">Xiaomi mi band</a> [engadget.com]</li>
</ul>
<h3>DF:</h3>
<ul>
<li><a href="http://www.donnfelker.com/karma">Karma Wifi</a> (donnfelker.com)</li>
<li><a href="http://modess.io/2015/08/16/one-year-of-working-remote/">Working Remote</a> (modess.io)</li>
</ul>
<h3>KG:</h3>
<ul>
<li><a href="https://chrome.google.com/webstore/detail/google-tone/nnckehldicaciogcbchegobnafnjkcne?hl=en">Google Tone - Chrome extension</a> (chrome.google.com)</li>
</ul>
<p>Contact</p>
<h3>Fragmented</h3>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
<li><a href="https://twitter.com/andrewbunner">@andrewbunner</a> [twitter.com]</li>
<li><a href="http://mailto%3aakshayk@google.com/">Akshay's email</a></li>
</ul>
<p>Soundcloud</p>
<p>shownotes: <a href="http://fragmentedpodcast.com/episodes/17">http://fragmentedpodcast.com/episodes/17</a></p>
<p>Contact:</p>
<ul>
<li>Fragmented: <a href="https://twitter.com/fragmentedcast">https://twitter.com/fragmentedcast</a></li>
<li>Donn Felker : <a href="https://twitter.com/donnfelker">https://twitter.com/donnfelker</a></li>
<li>Kaushik Gopal : <a href="https://twitter.com/kaushikgopal">https://twitter.com/kaushikgopal</a></li>
<li>Andrew : <a href="https://twitter.com/andrewbunner">https://twitter.com/andrewbunner</a></li>
<li>Akshay: <a href="http://mailto%3aakshayk@google.com/">akshayk@google.com</a></li>
</ul>
]]></content:encoded>
      <enclosure length="29385904" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/fc04f8ff-453a-4e09-8c56-a576926cd68a/ep-17-fragmented_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>017: Getting Close with Android Nearby</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/fc04f8ff-453a-4e09-8c56-a576926cd68a/3000x3000/1454950674-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:01:10</itunes:duration>
      <itunes:summary>In this power packed episode, Donn returns... If that wasn&apos;t amazing enough, Andrew and Akshay from Google join us to talk about Nearby.</itunes:summary>
      <itunes:subtitle>In this power packed episode, Donn returns... If that wasn&apos;t amazing enough, Andrew and Akshay from Google join us to talk about Nearby.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>17</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">f62eea7fe3cc09cc911f00c486353bec</guid>
      <title>016: Effective Java for Android developers : Item 2</title>
      <description><![CDATA[<p>In our third Fragment installment, we introduce Josh's second Item: Consider a builder when faced with many constructor parameters.</p>
<p>Stay tuned for more items from our &quot;Effective Java for Android developers&quot; Fragment series.</p>
<p>[audio src=&quot;http://traffic.libsyn.com/fragmented/ep_14_fragmented.mp3&quot; preload=&quot;none&quot; autoplay=&quot;false&quot;]</p>
<p>[Download][1]</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683/?tag=httpkaushco-20">Effective Java (2nd Edition) - Joshua Bloch</a></li>
</ul>
<h2>Consider a builder when faced with many constructor parameters</h2>
<h3>Patterns available for constructing object with parameters:</h3>
<ul>
<li><em>Telescoping Constructor Pattern</em> - Provideconstructor with only required parameters, another with a single optional param, a third with 2 optional params... and so on.
<ul>
<li>Advantage: Works well for small number of parameters</li>
<li>Disadvantage: Does NOT scale well</li>
</ul>
</li>
<li><em>JavaBeans Pattern</em> - Callparameterless constructor to create the object; then call setter methods to set required parameter and each optional param of interest.
<ul>
<li>Advantage: Scales well, easy (but wordy) to read resulting code</li>
<li>Disadvantage: Allows inconsistency (if all required params not called); impossible to make classes immutable if using this pattern.</li>
</ul>
</li>
<li><em>Builder pattern</em> - winner!
<ul>
<li>Advantage: Simulates named optional parameters; allows immutable objects to be constructed; flexible</li>
<li>Disadvantage: more ceremony to actually construct the Builder Class and finally use.</li>
</ul>
</li>
</ul>
<h3>Example usage from Android source:</h3>
<ul>
<li><a href="http://androidxref.com/5.1.1_r6/xref/frameworks/base/core/java/android/app/AlertDialog.java#371">AlertDialog Builder</a> [androidxref.com]</li>
</ul>
<h3>Tip:</h3>
<ul>
<li><a href="https://www.jetbrains.com/idea/help/replace-constructor-with-builder.html">Use IntelliJ to generate your Builders easily</a></li>
</ul>
<h2>Contact us:</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Tue, 1 Sep 2015 17:30:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In our third Fragment installment, we introduce Josh's second Item: Consider a builder when faced with many constructor parameters.</p>
<p>Stay tuned for more items from our &quot;Effective Java for Android developers&quot; Fragment series.</p>
<p>[audio src=&quot;http://traffic.libsyn.com/fragmented/ep_14_fragmented.mp3&quot; preload=&quot;none&quot; autoplay=&quot;false&quot;]</p>
<p>[Download][1]</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683/?tag=httpkaushco-20">Effective Java (2nd Edition) - Joshua Bloch</a></li>
</ul>
<h2>Consider a builder when faced with many constructor parameters</h2>
<h3>Patterns available for constructing object with parameters:</h3>
<ul>
<li><em>Telescoping Constructor Pattern</em> - Provideconstructor with only required parameters, another with a single optional param, a third with 2 optional params... and so on.
<ul>
<li>Advantage: Works well for small number of parameters</li>
<li>Disadvantage: Does NOT scale well</li>
</ul>
</li>
<li><em>JavaBeans Pattern</em> - Callparameterless constructor to create the object; then call setter methods to set required parameter and each optional param of interest.
<ul>
<li>Advantage: Scales well, easy (but wordy) to read resulting code</li>
<li>Disadvantage: Allows inconsistency (if all required params not called); impossible to make classes immutable if using this pattern.</li>
</ul>
</li>
<li><em>Builder pattern</em> - winner!
<ul>
<li>Advantage: Simulates named optional parameters; allows immutable objects to be constructed; flexible</li>
<li>Disadvantage: more ceremony to actually construct the Builder Class and finally use.</li>
</ul>
</li>
</ul>
<h3>Example usage from Android source:</h3>
<ul>
<li><a href="http://androidxref.com/5.1.1_r6/xref/frameworks/base/core/java/android/app/AlertDialog.java#371">AlertDialog Builder</a> [androidxref.com]</li>
</ul>
<h3>Tip:</h3>
<ul>
<li><a href="https://www.jetbrains.com/idea/help/replace-constructor-with-builder.html">Use IntelliJ to generate your Builders easily</a></li>
</ul>
<h2>Contact us:</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="6392811" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/de1e4007-b48b-4eff-8e5e-6d469f6a92bd/ep-16-fragmented_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>016: Effective Java for Android developers : Item 2</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/de1e4007-b48b-4eff-8e5e-6d469f6a92bd/3000x3000/1454950673-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:12:47</itunes:duration>
      <itunes:summary>In our third Fragment installment, we introduce Josh&apos;s second Item: **Consider a builder when faced with many constructor parameters**.</itunes:summary>
      <itunes:subtitle>In our third Fragment installment, we introduce Josh&apos;s second Item: **Consider a builder when faced with many constructor parameters**.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>16</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">e1790b5ab576f93ddabaf4832cc2e483</guid>
      <title>015: Amanimations - Animations with Amanda</title>
      <description><![CDATA[<p>In this episode we talk to Amanda about how she got started as an Android developer, working at Venmo, her path to mastering Java and Android, dabbling with the dark side and Animations in Android!</p>
<h2>Show Notes</h2>
<h3>Learning Java and Android</h3>
<ul>
<li><a href="http://www.amazon.com/Java-For-Dummies-Computer-Tech/dp/1118407806?tag=httpkaushco-20">Java for Dummies</a> [amazon.com]</li>
<li><a href="http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683/?tag=httpkaushco-20">Effective Java (2nd Edition) - Joshua Bloch</a> [amazon.com]</li>
<li><a href="https://www.bignerdranch.com/we-write/android-programming/">Android programming: The Big Nerd Ranch Guide</a> [bignerdranch.com]</li>
</ul>
<h3>Computer Science</h3>
<ul>
<li><a href="https://www.youtube.com/playlist?list=PLF8A834F810575A94">CS50 by Harvard University: David Malan</a> [youtube.com]</li>
<li><a href="https://www.youtube.com/watch?v=QMV45tHCYNI&amp;list=PL4BBB74C7D2A1049C">CS61B by UCBerkely: Jonathan Shewchuk</a> [youtube.com]</li>
<li><a href="https://www.youtube.com/watch?v=k6U-i4gXkLM">MIT 6.00 by MIT Opencourseware</a> [youtube.com]</li>
</ul>
<h3>Venmo</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=UEr0KuEFWog">Venmo: The Musical 2015 (lip dub)</a></li>
<li><a href="http://blog.venmo.com/hf2t3h4x98p5e13z82pl8j66ngcmry/2015/8/6/ft3gso77apqsy32o759a092htxkcmi">Hack Week at Venmo</a> [venmo.com]</li>
</ul>
<h3>Swift/iOS and other languages</h3>
<ul>
<li><a href="http://kotlinlang.org/">Kotlin</a> [kotlinlang.org]</li>
</ul>
<h3>Animations</h3>
<ul>
<li><a href="https://github.com/snowdream">Snowdream github repo</a> [github.com]</li>
<li><a href="https://www.youtube.com/playlist?list=PLWz5rJ2EKKc_XOgcRukSoKKjewFJZrKV0">DevBytes youtube playlist</a></li>
<li><a href="http://android-developers.blogspot.com/2011/02/animation-in-honeycomb.html">Chet Haase on Animations in Honeycomb</a> [blogspot.com]</li>
<li><a href="http://www.sriramramani.com/droidinspector/">Droid Inspector</a> [sriramramani.com]</li>
<li><a href="https://github.com/ksoichiro/Android-ObservableScrollView">Android ObservableScrollView</a> [github.com]</li>
</ul>
<h2>Awesome picks for the week:</h2>
<h3>Amanda</h3>
<ul>
<li><a href="http://www.kitchensoap.com/2012/10/25/on-being-a-senior-engineer/">On being a senior engineer</a> [kitchensoap.com]</li>
</ul>
<h3>KG:</h3>
<p>Guillotine animation</p>
<ul>
<li><a href="https://yalantis.com/blog/how-we-developed-the-guillotine-menu-animation-for-android/">how we developed the guillotine menu animation for Android</a> [yalantis.com]</li>
<li><a href="https://yalantis.com/blog/how-we-created-guillotine-menu-animation/">how we developed the guillotine menu animation for iOS</a> [yalantis.com]</li>
</ul>
<p>Timely like Animations</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=dFpkZiU4ptQ&amp;feature=youtu.be">Visualizing the Timely number tweening animation</a> [youtube.com]</li>
<li><a href="https://sriramramani.wordpress.com/2013/10/14/number-tweening/">Implementing Timely's tweening animation</a> [sriramramani.wordpress.com]</li>
</ul>
<h2>Contact</h2>
<h3>Amanda</h3>
<ul>
<li><a href="https://twitter.com/mandybess">@mandybess</a> [twitter.com]</li>
</ul>
<h3>Fragmented</h3>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Fri, 21 Aug 2015 14:00:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode we talk to Amanda about how she got started as an Android developer, working at Venmo, her path to mastering Java and Android, dabbling with the dark side and Animations in Android!</p>
<h2>Show Notes</h2>
<h3>Learning Java and Android</h3>
<ul>
<li><a href="http://www.amazon.com/Java-For-Dummies-Computer-Tech/dp/1118407806?tag=httpkaushco-20">Java for Dummies</a> [amazon.com]</li>
<li><a href="http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683/?tag=httpkaushco-20">Effective Java (2nd Edition) - Joshua Bloch</a> [amazon.com]</li>
<li><a href="https://www.bignerdranch.com/we-write/android-programming/">Android programming: The Big Nerd Ranch Guide</a> [bignerdranch.com]</li>
</ul>
<h3>Computer Science</h3>
<ul>
<li><a href="https://www.youtube.com/playlist?list=PLF8A834F810575A94">CS50 by Harvard University: David Malan</a> [youtube.com]</li>
<li><a href="https://www.youtube.com/watch?v=QMV45tHCYNI&amp;list=PL4BBB74C7D2A1049C">CS61B by UCBerkely: Jonathan Shewchuk</a> [youtube.com]</li>
<li><a href="https://www.youtube.com/watch?v=k6U-i4gXkLM">MIT 6.00 by MIT Opencourseware</a> [youtube.com]</li>
</ul>
<h3>Venmo</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=UEr0KuEFWog">Venmo: The Musical 2015 (lip dub)</a></li>
<li><a href="http://blog.venmo.com/hf2t3h4x98p5e13z82pl8j66ngcmry/2015/8/6/ft3gso77apqsy32o759a092htxkcmi">Hack Week at Venmo</a> [venmo.com]</li>
</ul>
<h3>Swift/iOS and other languages</h3>
<ul>
<li><a href="http://kotlinlang.org/">Kotlin</a> [kotlinlang.org]</li>
</ul>
<h3>Animations</h3>
<ul>
<li><a href="https://github.com/snowdream">Snowdream github repo</a> [github.com]</li>
<li><a href="https://www.youtube.com/playlist?list=PLWz5rJ2EKKc_XOgcRukSoKKjewFJZrKV0">DevBytes youtube playlist</a></li>
<li><a href="http://android-developers.blogspot.com/2011/02/animation-in-honeycomb.html">Chet Haase on Animations in Honeycomb</a> [blogspot.com]</li>
<li><a href="http://www.sriramramani.com/droidinspector/">Droid Inspector</a> [sriramramani.com]</li>
<li><a href="https://github.com/ksoichiro/Android-ObservableScrollView">Android ObservableScrollView</a> [github.com]</li>
</ul>
<h2>Awesome picks for the week:</h2>
<h3>Amanda</h3>
<ul>
<li><a href="http://www.kitchensoap.com/2012/10/25/on-being-a-senior-engineer/">On being a senior engineer</a> [kitchensoap.com]</li>
</ul>
<h3>KG:</h3>
<p>Guillotine animation</p>
<ul>
<li><a href="https://yalantis.com/blog/how-we-developed-the-guillotine-menu-animation-for-android/">how we developed the guillotine menu animation for Android</a> [yalantis.com]</li>
<li><a href="https://yalantis.com/blog/how-we-created-guillotine-menu-animation/">how we developed the guillotine menu animation for iOS</a> [yalantis.com]</li>
</ul>
<p>Timely like Animations</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=dFpkZiU4ptQ&amp;feature=youtu.be">Visualizing the Timely number tweening animation</a> [youtube.com]</li>
<li><a href="https://sriramramani.wordpress.com/2013/10/14/number-tweening/">Implementing Timely's tweening animation</a> [sriramramani.wordpress.com]</li>
</ul>
<h2>Contact</h2>
<h3>Amanda</h3>
<ul>
<li><a href="https://twitter.com/mandybess">@mandybess</a> [twitter.com]</li>
</ul>
<h3>Fragmented</h3>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="31210284" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/962637bf-cba8-4bd4-aa4b-7ea0be61d696/ep-15-fragmented_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>015: Amanimations - Animations with Amanda</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/962637bf-cba8-4bd4-aa4b-7ea0be61d696/3000x3000/1454950671-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:04:58</itunes:duration>
      <itunes:summary>In this episode we talk to Amanda about how she got started as an Android developer, working at Venmo, her path to mastering Java and Android, dabbling with the dark side and Animations in Android!</itunes:summary>
      <itunes:subtitle>In this episode we talk to Amanda about how she got started as an Android developer, working at Venmo, her path to mastering Java and Android, dabbling with the dark side and Animations in Android!</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>15</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">02d3f7af576078ee8cd29861e423486f</guid>
      <title>014: Effective Java for Android developers : Item 1</title>
      <description><![CDATA[<p>We've mentioned the book &quot;Effective Java&quot; by Joshua Bloch quite a few times on previous episodes. At this point, everyone knows they should have read this book (quadruple times). But it's a dense read and everyone could use a reading buddy. Also, what does Effective Java look like through the eyes of an Android developer?</p>
<p>In this second installment of our Fragment (a.k.a mini-episode), we thought we'll do our listeners a favor and help with that reading. We introduce the very first of these venerable &quot;Items&quot;: Consider providing static factory methods instead of constructors.</p>
<p>Stay tuned for more items from our &quot;Effective Java for Android developers&quot; Fragment series.</p>
<h2>Show Notes:</h2>
<ul>
<li><a href="http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683/?tag=httpkaushco-20">Effective Java (2nd Edition) - Joshua Bloch</a></li>
</ul>
<h3>Consider providing static factory methods instead of constructors</h3>
<ul>
<li><a href="http://androidxref.com/5.1.1_r6/xref/frameworks/base/core/java/android/widget/Toast.java#283">static factory method <code>makeText</code> for Toast class</a> [androidxref.com]</li>
<li><a href="http://androidxref.com/5.1.1_r6/xref/frameworks/base/core/java/android/animation/ObjectAnimator.java">ObjectAnimator</a> [androidxref.com]:
<ul>
<li><a href="http://androidxref.com/5.1.1_r6/xref/frameworks/base/core/java/android/animation/ObjectAnimator.java#217"><code>.ofInt</code></a> [androidxref.com]</li>
<li><a href="http://androidxref.com/5.1.1_r6/xref/frameworks/base/core/java/android/animation/ObjectAnimator.java#372"><code>.ofArgb</code></a> [androidxref.com]</li>
<li><a href="http://androidxref.com/5.1.1_r6/xref/frameworks/base/core/java/android/animation/ObjectAnimator.java#411"><code>.ofFloat</code></a> [androidxref.com]</li>
</ul>
</li>
</ul>
<h3>Advantages:</h3>
<ol>
<li>You can control the name and thus give it much more meaningful names</li>
<li>You are not required to create a &quot;new&quot; object each time they are invoked</li>
<li>You can even return an object that's a subtype of the return type (unlike constructors which only return class type)</li>
</ol>
<ul>
<li>e.g.  <a href="http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/Collections.java">Java Collections framework</a> [grepcode.com]</li>
</ul>
<h3>Disadvantages:</h3>
<ol>
<li>Classes without public or protected constructors cannot be subclassed</li>
<li>Static factory methods are not readily distinguishable from other static methods</li>
</ol>
<h3>Takeaways</h3>
<ol>
<li>&quot;Consider&quot; using static factory methods (not always)</li>
<li>Use  <a href="http://www.androiddesignpatterns.com/2012/05/using-newinstance-to-instantiate.html"><code>newInstance</code> when creating Fragments</a> [androiddesignpatterns.com]</li>
<li>Use <code>newIntent</code> static factory method for creating intents inside the target activity.</li>
</ol>
<h2>Contact us:</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Mon, 10 Aug 2015 11:30:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>We've mentioned the book &quot;Effective Java&quot; by Joshua Bloch quite a few times on previous episodes. At this point, everyone knows they should have read this book (quadruple times). But it's a dense read and everyone could use a reading buddy. Also, what does Effective Java look like through the eyes of an Android developer?</p>
<p>In this second installment of our Fragment (a.k.a mini-episode), we thought we'll do our listeners a favor and help with that reading. We introduce the very first of these venerable &quot;Items&quot;: Consider providing static factory methods instead of constructors.</p>
<p>Stay tuned for more items from our &quot;Effective Java for Android developers&quot; Fragment series.</p>
<h2>Show Notes:</h2>
<ul>
<li><a href="http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683/?tag=httpkaushco-20">Effective Java (2nd Edition) - Joshua Bloch</a></li>
</ul>
<h3>Consider providing static factory methods instead of constructors</h3>
<ul>
<li><a href="http://androidxref.com/5.1.1_r6/xref/frameworks/base/core/java/android/widget/Toast.java#283">static factory method <code>makeText</code> for Toast class</a> [androidxref.com]</li>
<li><a href="http://androidxref.com/5.1.1_r6/xref/frameworks/base/core/java/android/animation/ObjectAnimator.java">ObjectAnimator</a> [androidxref.com]:
<ul>
<li><a href="http://androidxref.com/5.1.1_r6/xref/frameworks/base/core/java/android/animation/ObjectAnimator.java#217"><code>.ofInt</code></a> [androidxref.com]</li>
<li><a href="http://androidxref.com/5.1.1_r6/xref/frameworks/base/core/java/android/animation/ObjectAnimator.java#372"><code>.ofArgb</code></a> [androidxref.com]</li>
<li><a href="http://androidxref.com/5.1.1_r6/xref/frameworks/base/core/java/android/animation/ObjectAnimator.java#411"><code>.ofFloat</code></a> [androidxref.com]</li>
</ul>
</li>
</ul>
<h3>Advantages:</h3>
<ol>
<li>You can control the name and thus give it much more meaningful names</li>
<li>You are not required to create a &quot;new&quot; object each time they are invoked</li>
<li>You can even return an object that's a subtype of the return type (unlike constructors which only return class type)</li>
</ol>
<ul>
<li>e.g.  <a href="http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/Collections.java">Java Collections framework</a> [grepcode.com]</li>
</ul>
<h3>Disadvantages:</h3>
<ol>
<li>Classes without public or protected constructors cannot be subclassed</li>
<li>Static factory methods are not readily distinguishable from other static methods</li>
</ol>
<h3>Takeaways</h3>
<ol>
<li>&quot;Consider&quot; using static factory methods (not always)</li>
<li>Use  <a href="http://www.androiddesignpatterns.com/2012/05/using-newinstance-to-instantiate.html"><code>newInstance</code> when creating Fragments</a> [androiddesignpatterns.com]</li>
<li>Use <code>newIntent</code> static factory method for creating intents inside the target activity.</li>
</ol>
<h2>Contact us:</h2>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="8288431" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/28e051eb-f914-476c-9827-fc86e37cbdd4/ep-14-fragmented_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>014: Effective Java for Android developers : Item 1</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/28e051eb-f914-476c-9827-fc86e37cbdd4/3000x3000/1454950669-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:17:13</itunes:duration>
      <itunes:summary>We&apos;ve mentioned the book &quot;Effective Java&quot; by Joshua Bloch quite a few times on previous episodes. At this point, everyone knows they should have read this book (quadruple times). But it&apos;s a dense read and everyone could use a reading buddy. Also, what does Effective Java look like through the eyes of an Android developer?

In this second installment of our Fragment (a.k.a mini-episode), we thought we&apos;ll do our listeners a favor and help with that reading. We introduce the very first of these venerable &quot;Items&quot;: Consider providing static factory methods instead of constructors.</itunes:summary>
      <itunes:subtitle>We&apos;ve mentioned the book &quot;Effective Java&quot; by Joshua Bloch quite a few times on previous episodes. At this point, everyone knows they should have read this book (quadruple times). But it&apos;s a dense read and everyone could use a reading buddy. Also, what does Effective Java look like through the eyes of an Android developer?

In this second installment of our Fragment (a.k.a mini-episode), we thought we&apos;ll do our listeners a favor and help with that reading. We introduce the very first of these venerable &quot;Items&quot;: Consider providing static factory methods instead of constructors.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>14</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">c02c89434f6b6418347cd4c05901bc3d</guid>
      <title>013: Corey Latislaw on TDD and Testing</title>
      <description><![CDATA[<p>In this episode we revisit the topic of Testing, looking at it from a TDD perspective. Globetrotter, Kata Queen, TDD practitioner and overall boss of Android development - Corey Latislaw, joins us in this episode with thoughts, tips and tricks on pulling off TDD. She also shares some of her wicked sketchnoting tips and made a very special Sketchnote just for this episode! Have a  <a href="http://fragmentedpodcast.com/wp-content/uploads/2015/08/sketchnote_fragemented_13.jpeg">look at the sketchnote here</a>.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://developers.google.com/groups/">GDG</a> [developers.google.com]</li>
<li><a href="https://developers.google.com/experts/">GDE</a> [developers.google.com]
<ul>
<li><a href="https://developers.google.com/experts/people/corey-latislaw">GDE Android - Ms.Latislaw</a> [developers.google.com]</li>
<li><a href="https://developers.google.com/experts/people/donn-felker">GDE Android - Mr.Felker</a> [developers.google.com]</li>
</ul>
</li>
</ul>
<h3>Sketchnoting</h3>
<ul>
<li><a href="http://www.amazon.com/The-Sketchnote-Handbook-illustrated-visual/dp/0321857895?tag=httpkaushco-20">The Sketchnote Handbook</a> - Mike Rohde [amazon.com]</li>
<li><a href="http://coreylatislaw.com/sketchnoting-for-techies/">Sketchnoting for Techies</a> [coreylatislaw.com]</li>
<li><a href="http://coreylatislaw.com/google-io-2015/">Corey's Google I/O Sketchnotes</a> [coreylatislaw.com]</li>
<li><a href="http://coreylatislaw.com/sketchnoting-the-global-gdg-summit/">Corey's live sketchnoting (with videos)</a> [coreylatislaw.com]</li>
<li><a href="http://www.kidsoncomputers.org/">Kids on Computers</a> [kidsoncomputers.org]</li>
</ul>
<h3>Corey's books</h3>
<ul>
<li><a href="https://gumroad.com/l/androidactivitybook">Android Activity Book</a> [gumroad.com] (coupon “fragmented” for $5 off)</li>
<li><a href="https://gumroad.com/l/androidtheorybook">Android Theory Book</a> [gumroad.com] (coupon “fragmented” for $5 off)</li>
<li><a href="http://stackoverflow.com/a/30177710">Running Code Coverage in Android Studio</a> [stackoverflow.com]</li>
</ul>
<h3>Katas</h3>
<ul>
<li><a href="http://gum.co/androidkataintro">Video workshop</a> [gum.co] (coupon “fragmented” for $5 off)</li>
<li><a href="http://coreylatislaw.com/robolectric-kata/">Simple Android app</a> [coreylatistlaw.com]</li>
<li><a href="http://coreylatislaw.com/kata-robolectric-integration/">Robolectric Integration</a> [coreylatistlaw.com]</li>
</ul>
<h2>Awesome picks for the week:</h2>
<h3>DF:</h3>
<ul>
<li><a href="http://hiten.com/issues/19?utm_content=bufferd12f8&amp;utm_medium=social&amp;utm_source=athnshah&amp;utm_campaign=buffer">Stop Using General CTA’s Text - be specific</a></li>
<li><a href="https://twitter.com/baremetrics/status/557968441177833472">Founder’s Journey Podcast</a></li>
<li><a href="https://soundcloud.com/baremetrics/build-vs-buy-how-to-blow-100000-saving-money">Baremetrics - Episode - Build vs. Buy: How to blow $100,000 saving money</a> [soundcloud.com]</li>
</ul>
<h3>KG:</h3>
<ul>
<li><a href="http://sahandsaba.com/nine-anti-patterns-every-programmer-should-be-aware-of-with-examples.html">ANTI PATTERNS every programmer should be aware of</a> [sahandsaba.com]</li>
</ul>
<h2>Contact</h2>
<h3>Corey</h3>
<ul>
<li><a href="https://twitter.com/corey_latislaw">@corey_latislaw</a> [twitter.com]</li>
<li><a href="http://coreylatislaw.com/">coreylatislaw.com</a></li>
</ul>
<h3>Fragmented</h3>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></description>
      <pubDate>Mon, 3 Aug 2015 17:43:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode we revisit the topic of Testing, looking at it from a TDD perspective. Globetrotter, Kata Queen, TDD practitioner and overall boss of Android development - Corey Latislaw, joins us in this episode with thoughts, tips and tricks on pulling off TDD. She also shares some of her wicked sketchnoting tips and made a very special Sketchnote just for this episode! Have a  <a href="http://fragmentedpodcast.com/wp-content/uploads/2015/08/sketchnote_fragemented_13.jpeg">look at the sketchnote here</a>.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://developers.google.com/groups/">GDG</a> [developers.google.com]</li>
<li><a href="https://developers.google.com/experts/">GDE</a> [developers.google.com]
<ul>
<li><a href="https://developers.google.com/experts/people/corey-latislaw">GDE Android - Ms.Latislaw</a> [developers.google.com]</li>
<li><a href="https://developers.google.com/experts/people/donn-felker">GDE Android - Mr.Felker</a> [developers.google.com]</li>
</ul>
</li>
</ul>
<h3>Sketchnoting</h3>
<ul>
<li><a href="http://www.amazon.com/The-Sketchnote-Handbook-illustrated-visual/dp/0321857895?tag=httpkaushco-20">The Sketchnote Handbook</a> - Mike Rohde [amazon.com]</li>
<li><a href="http://coreylatislaw.com/sketchnoting-for-techies/">Sketchnoting for Techies</a> [coreylatislaw.com]</li>
<li><a href="http://coreylatislaw.com/google-io-2015/">Corey's Google I/O Sketchnotes</a> [coreylatislaw.com]</li>
<li><a href="http://coreylatislaw.com/sketchnoting-the-global-gdg-summit/">Corey's live sketchnoting (with videos)</a> [coreylatislaw.com]</li>
<li><a href="http://www.kidsoncomputers.org/">Kids on Computers</a> [kidsoncomputers.org]</li>
</ul>
<h3>Corey's books</h3>
<ul>
<li><a href="https://gumroad.com/l/androidactivitybook">Android Activity Book</a> [gumroad.com] (coupon “fragmented” for $5 off)</li>
<li><a href="https://gumroad.com/l/androidtheorybook">Android Theory Book</a> [gumroad.com] (coupon “fragmented” for $5 off)</li>
<li><a href="http://stackoverflow.com/a/30177710">Running Code Coverage in Android Studio</a> [stackoverflow.com]</li>
</ul>
<h3>Katas</h3>
<ul>
<li><a href="http://gum.co/androidkataintro">Video workshop</a> [gum.co] (coupon “fragmented” for $5 off)</li>
<li><a href="http://coreylatislaw.com/robolectric-kata/">Simple Android app</a> [coreylatistlaw.com]</li>
<li><a href="http://coreylatislaw.com/kata-robolectric-integration/">Robolectric Integration</a> [coreylatistlaw.com]</li>
</ul>
<h2>Awesome picks for the week:</h2>
<h3>DF:</h3>
<ul>
<li><a href="http://hiten.com/issues/19?utm_content=bufferd12f8&amp;utm_medium=social&amp;utm_source=athnshah&amp;utm_campaign=buffer">Stop Using General CTA’s Text - be specific</a></li>
<li><a href="https://twitter.com/baremetrics/status/557968441177833472">Founder’s Journey Podcast</a></li>
<li><a href="https://soundcloud.com/baremetrics/build-vs-buy-how-to-blow-100000-saving-money">Baremetrics - Episode - Build vs. Buy: How to blow $100,000 saving money</a> [soundcloud.com]</li>
</ul>
<h3>KG:</h3>
<ul>
<li><a href="http://sahandsaba.com/nine-anti-patterns-every-programmer-should-be-aware-of-with-examples.html">ANTI PATTERNS every programmer should be aware of</a> [sahandsaba.com]</li>
</ul>
<h2>Contact</h2>
<h3>Corey</h3>
<ul>
<li><a href="https://twitter.com/corey_latislaw">@corey_latislaw</a> [twitter.com]</li>
<li><a href="http://coreylatislaw.com/">coreylatislaw.com</a></li>
</ul>
<h3>Fragmented</h3>
<ul>
<li><a href="https://twitter.com/fragmentedcast">@fragmentedcast</a> [twitter.com]</li>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="https://twitter.com/kaushikgopal/">@kaushikgopal</a> [twitter.com]</li>
</ul>
]]></content:encoded>
      <enclosure length="29993476" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/e81f458e-356f-4701-8ac3-24493a972813/ep-13-fragmented_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>013: Corey Latislaw on TDD and Testing</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/e81f458e-356f-4701-8ac3-24493a972813/3000x3000/1454950666-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:02:26</itunes:duration>
      <itunes:summary>In this episode we revisit the topic of Testing, looking at it from a TDD perspective. Globetrotter, Kata Queen, TDD practitioner and overall boss of Android development - Corey Latislaw, joins us in this episode with thoughts, tips and tricks on pulling off TDD. She also shares some of her wicked sketchnoting tips and made a very special Sketchnote just for this episode!</itunes:summary>
      <itunes:subtitle>In this episode we revisit the topic of Testing, looking at it from a TDD perspective. Globetrotter, Kata Queen, TDD practitioner and overall boss of Android development - Corey Latislaw, joins us in this episode with thoughts, tips and tricks on pulling off TDD. She also shares some of her wicked sketchnoting tips and made a very special Sketchnote just for this episode!</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>13</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">2965f762455d95923186e61480178636</guid>
      <title>012: Continous Integration and Collective Code Ownership</title>
      <description><![CDATA[<p>In this episode we're trying something new. Everyone has requested more episodes of the podcast. In short, everyone wants a weekly show. So this week, we're introducing what we call a mini-episode ... or as we like to call them a &quot;Fragment&quot;. Fragment episodes will be shorter in length but still packed with goodness. They will range from ~7-25 minutes in length and will showcase either Kaushik, myself (Donn) or both of us.</p>
<p>In the first &quot;Fragment&quot; installment we're going to talk about Continuous Integration (CI) and Collective Code Ownership (CCO). Donn talks about what CI is, why its important and how it benefits you and your team. He then dives right into CCO and how it can be facilitated through testing.</p>
<p>We hope you enjoy these new mini-episodes ... aptly named ... Fragments. :)</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://www.thoughtworks.com/continuous-integration">Thoughtworks - Continuous Integration</a> [thoughtworks.com]</li>
<li><a href="http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052?tag=httpkaushco-20">Working Effectively with Legacy Code - Michael Feathers</a> [amazon.com]</li>
</ul>
<h3>Continuous Integration solutions:</h3>
<ul>
<li><a href="https://jenkins-ci.org/">Jenkins CI</a> [jenkins-ci.org]
<ul>
<li><a href="https://www.cloudbees.com/">Cloud solution- Cloudbees</a> [cloudbees.com]</li>
</ul>
</li>
<li><a href="https://www.jetbrains.com/teamcity/">TeamCity</a> [jetbrains.com]</li>
<li><a href="http://www.circleci.com">CircleCI</a> [circleci.com]
<ul>
<li><a href="https://caster.io/episodes/episode-2-android-continuous-integration-with-circleci/">Setting up CI for Android</a> [caster.io]</li>
</ul>
</li>
<li><a href="https://ship.io/">Ship.IO</a> [ship.io]</li>
<li>TravisCI
<ul>
<li>(open source) <a href="https://travis-ci.org/">Travis CI org</a> [travis-ci.org]</li>
<li>(commercial) <a href="https://travis-ci.com/">Travis CI com</a> [travis-ci.com]</li>
</ul>
</li>
</ul>
<h3>Continuous Delivery:</h3>
<ul>
<li><a href="http://deploybot.com/">Deploybot (previously) Dploy.io</a> [deploybot.com]</li>
<li><a href="https://codeship.com/">Codeship</a> [codeship.com]</li>
</ul>
<h2>Contact</h2>
<h3>Donn Felker</h3>
<ul>
<li><a href="http://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="http://www.donnfelker.com">donnfelker.com</a></li>
</ul>
<h3>Kaushik Gopal</h3>
<ul>
<li><a href="http://twitter.com/kaushikgopal">@kaushikgopal</a> [twitter.com]</li>
<li><a href="http://kaush.co">kaush.co</a></li>
</ul>
]]></description>
      <pubDate>Tue, 21 Jul 2015 18:09:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode we're trying something new. Everyone has requested more episodes of the podcast. In short, everyone wants a weekly show. So this week, we're introducing what we call a mini-episode ... or as we like to call them a &quot;Fragment&quot;. Fragment episodes will be shorter in length but still packed with goodness. They will range from ~7-25 minutes in length and will showcase either Kaushik, myself (Donn) or both of us.</p>
<p>In the first &quot;Fragment&quot; installment we're going to talk about Continuous Integration (CI) and Collective Code Ownership (CCO). Donn talks about what CI is, why its important and how it benefits you and your team. He then dives right into CCO and how it can be facilitated through testing.</p>
<p>We hope you enjoy these new mini-episodes ... aptly named ... Fragments. :)</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://www.thoughtworks.com/continuous-integration">Thoughtworks - Continuous Integration</a> [thoughtworks.com]</li>
<li><a href="http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052?tag=httpkaushco-20">Working Effectively with Legacy Code - Michael Feathers</a> [amazon.com]</li>
</ul>
<h3>Continuous Integration solutions:</h3>
<ul>
<li><a href="https://jenkins-ci.org/">Jenkins CI</a> [jenkins-ci.org]
<ul>
<li><a href="https://www.cloudbees.com/">Cloud solution- Cloudbees</a> [cloudbees.com]</li>
</ul>
</li>
<li><a href="https://www.jetbrains.com/teamcity/">TeamCity</a> [jetbrains.com]</li>
<li><a href="http://www.circleci.com">CircleCI</a> [circleci.com]
<ul>
<li><a href="https://caster.io/episodes/episode-2-android-continuous-integration-with-circleci/">Setting up CI for Android</a> [caster.io]</li>
</ul>
</li>
<li><a href="https://ship.io/">Ship.IO</a> [ship.io]</li>
<li>TravisCI
<ul>
<li>(open source) <a href="https://travis-ci.org/">Travis CI org</a> [travis-ci.org]</li>
<li>(commercial) <a href="https://travis-ci.com/">Travis CI com</a> [travis-ci.com]</li>
</ul>
</li>
</ul>
<h3>Continuous Delivery:</h3>
<ul>
<li><a href="http://deploybot.com/">Deploybot (previously) Dploy.io</a> [deploybot.com]</li>
<li><a href="https://codeship.com/">Codeship</a> [codeship.com]</li>
</ul>
<h2>Contact</h2>
<h3>Donn Felker</h3>
<ul>
<li><a href="http://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="http://www.donnfelker.com">donnfelker.com</a></li>
</ul>
<h3>Kaushik Gopal</h3>
<ul>
<li><a href="http://twitter.com/kaushikgopal">@kaushikgopal</a> [twitter.com]</li>
<li><a href="http://kaush.co">kaush.co</a></li>
</ul>
]]></content:encoded>
      <enclosure length="10339144" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/30a4c024-0be4-47bc-b092-29cd98d46fb8/ep-12-fragmented_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>012: Continous Integration and Collective Code Ownership</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/30a4c024-0be4-47bc-b092-29cd98d46fb8/3000x3000/1454950663-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:21:29</itunes:duration>
      <itunes:summary>In the first &quot;Fragment&quot; installment we&apos;re going to talk about Continuous Integration (CI) and Collective Code Ownership (CCO). Donn talks about what CI is, why its important and how it benefits you and your team. He then dives right into CCO and how it can be facilitated through testing.</itunes:summary>
      <itunes:subtitle>In the first &quot;Fragment&quot; installment we&apos;re going to talk about Continuous Integration (CI) and Collective Code Ownership (CCO). Donn talks about what CI is, why its important and how it benefits you and your team. He then dives right into CCO and how it can be facilitated through testing.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>12</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">https://www.signalleaf.com/podcasts/Fragmented/55a54adff91f890300ac595a</guid>
      <title>011: The Fowler Road to a Clean Architecture</title>
      <description><![CDATA[<p>In this episode - Donn and Kaushik dive into a topic that is very near and dear their hearts - application architecture. They talk about how Martin Fowler has inspired a lot of their architectural decisions and how they're moving towards defining what a clean architecture means to them and other developers. They talk about Model View Presenter, Model View Controller and many other topics that surround these two common patterns. Take a listen and go for the ride on architecture train ... all aboard!</p>
<h2>Show Notes</h2>
<h2>Chit-chat:</h2>
<ul>
<li><a href="https://github.com/kaushikgopal/RxJava-Android-Samples#repeat-with-exponential-backoff">Exponential backoff with RxJava</a> [github.com]</li>
<li><a href="https://github.com/Reactive-Extensions/RxJS">RxJs - ReactiveExtensions for Javascript</a> [github.com]</li>
</ul>
<h2>Follow up:</h2>
<ul>
<li>Moving GC only applicable when app goes into background:
<ul>
<li><a href="http://www.anandtech.com/show/8231/a-closer-look-at-android-runtime-art-in-android-l/2">A closer look at ART in Android L</a> (see last paragraph) [anandtech.com]</li>
<li><a href="https://www.youtube.com/watch?v=EBlTzQsUoOw">Google I/O 2014: The ART Runtime</a> [youtube.com]</li>
</ul>
</li>
</ul>
<h3>The road to a clean architecture:</h3>
<ul>
<li>Bad practices:
<ul>
<li><a href="https://en.wikipedia.org/wiki/Cargo_cult_programming">Cargo cult programming</a> [wikipedia.org]</li>
<li><a href="https://en.wikipedia.org/wiki/God_object">God objects</a> [wikipedia.org]</li>
</ul>
</li>
<li>Martin Fowler’s articles on Patterns of Enterprise Application Architecture:
<ul>
<li><a href="http://martinfowler.com/eaaDev/SupervisingPresenter.html">Supervising Controller</a> [martinfowler.com]</li>
<li><a href="http://martinfowler.com/eaaDev/PresentationModel.html">Presentation Model</a> [martinfowler.com]</li>
<li><a href="http://martinfowler.com/eaaDev/PassiveScreen.html">Passive View</a> [martinfowler.com]</li>
<li><a href="http://www.amazon.com/Patterns-Enterprise-Application-Architecture-Martin/dp/0321127420?tag=httpkaushco-20">Martin Fowler’s Book P of EAA</a> [amazon.com]</li>
</ul>
</li>
<li><a href="http://mattlogan.me/decoupling-the-presenter">Decoupling the presenter</a> [mattlogan.me]</li>
</ul>
<h3>Other approaches to clean architectures:</h3>
<ul>
<li><a href="http://www.willowtreeapps.com/blog/mvvm-on-android-what-you-need-to-know/">MVVM on Android - what you need to know</a> [willowtreeapps.com]</li>
<li><a href="http://www.teehanlax.com/blog/model-view-viewmodel-for-ios/">Model View ViewModel for iOS</a> [teehanlax.com]</li>
<li><a href="http://www.objc.io/issues/13-architecture/viper/">VIPER architecture on iOS</a> [objc.io]</li>
<li><a href="https://speakerdeck.com/richk/clean-android-architecture">VIPER inspired Clean Android architecture</a> [speakerdeck]</li>
<li><a href="http://fernandocejas.com/2014/09/03/architecting-android-the-clean-way/">Architecting Android the clean way</a> [fernandocejas.com]</li>
<li><a href="http://antonioleiva.com/mvp-android/">MVP Android</a> [antonioleiva.com]</li>
</ul>
<h2>Awesome picks:</h2>
<p>Donn:</p>
<ul>
<li><a href="https://newcircle.com/s/post/1744/2015/06/29/learning-rxjava-for-android-by-example">Learning RxJava for Android by example - Kaushik’s talk</a> [youtube.com]</li>
<li><a href="http://blog.danlew.net/2015/06/22/loading-data-from-multiple-sources-with-rxjava/">Loading data from multiple source</a> [danlew.net]</li>
<li><a href="https://engineering.pushtorefresh.com/2015/07/02/storio-modern-replacement-for-sqlitedatabase-and-contentresolver-apis/?utm_source=androiddevdigest">StorIO</a> [engineering.pushtoreresh.com]</li>
<li><a href="http://martinfowler.com/articles/mocksArentStubs.html">Mocks aren’t Stubs</a> [martinfowler.com]</li>
</ul>
<p>Kaushik:</p>
<ul>
<li><a href="http://facebook.github.io/rebound/">Rebound animation library</a> [facebook.github.io]
<ul>
<li>Will Bailey (creator of Rebound):
<ul>
<li><a href="https://gist.github.com/willbailey/8811581">OrigamiActivity.java</a> [gist.github.com]</li>
<li><a href="https://code.facebook.com/posts/509869769120198/under-the-hood-building-and-open-sourcing-the-rebound-animation-library-for-android/">Under the hood</a> [code.facebook.com]</li>
<li><a href="https://www.youtube.com/watch?v=h9F7iKogkaY">Example 1</a> [youtube.com]</li>
<li><a href="https://www.youtube.com/watch?v=JWzIqMLfx3c">Example 2</a> [youtube.com]</li>
<li><a href="https://www.youtube.com/watch?v=ebAno8nxbTg">Example 3</a> [youtube.com]</li>
<li><a href="https://www.youtube.com/watch?v=ZifkBivC4C4">Example 4</a> [youtube.com]</li>
</ul>
</li>
<li><a href="http://parallelcross.com/post/96597851715/springy-animations-with-facebook-rebound-for">Springy animations with Rebound</a> [parallelcross.com]</li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<h3>Donn Felker</h3>
<ul>
<li><a href="http://www.twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="http://donnfelker.com/">donnfelker.com</a></li>
</ul>
<h3>Kaushik Gopal</h3>
<ul>
<li><a href="http://www.twitter.com/kaushikgopal">@kaushikgopal</a> [twitter.com]</li>
<li><a href="http://kaush.co/">kaush.co</a></li>
</ul>
]]></description>
      <pubDate>Tue, 14 Jul 2015 15:43:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode - Donn and Kaushik dive into a topic that is very near and dear their hearts - application architecture. They talk about how Martin Fowler has inspired a lot of their architectural decisions and how they're moving towards defining what a clean architecture means to them and other developers. They talk about Model View Presenter, Model View Controller and many other topics that surround these two common patterns. Take a listen and go for the ride on architecture train ... all aboard!</p>
<h2>Show Notes</h2>
<h2>Chit-chat:</h2>
<ul>
<li><a href="https://github.com/kaushikgopal/RxJava-Android-Samples#repeat-with-exponential-backoff">Exponential backoff with RxJava</a> [github.com]</li>
<li><a href="https://github.com/Reactive-Extensions/RxJS">RxJs - ReactiveExtensions for Javascript</a> [github.com]</li>
</ul>
<h2>Follow up:</h2>
<ul>
<li>Moving GC only applicable when app goes into background:
<ul>
<li><a href="http://www.anandtech.com/show/8231/a-closer-look-at-android-runtime-art-in-android-l/2">A closer look at ART in Android L</a> (see last paragraph) [anandtech.com]</li>
<li><a href="https://www.youtube.com/watch?v=EBlTzQsUoOw">Google I/O 2014: The ART Runtime</a> [youtube.com]</li>
</ul>
</li>
</ul>
<h3>The road to a clean architecture:</h3>
<ul>
<li>Bad practices:
<ul>
<li><a href="https://en.wikipedia.org/wiki/Cargo_cult_programming">Cargo cult programming</a> [wikipedia.org]</li>
<li><a href="https://en.wikipedia.org/wiki/God_object">God objects</a> [wikipedia.org]</li>
</ul>
</li>
<li>Martin Fowler’s articles on Patterns of Enterprise Application Architecture:
<ul>
<li><a href="http://martinfowler.com/eaaDev/SupervisingPresenter.html">Supervising Controller</a> [martinfowler.com]</li>
<li><a href="http://martinfowler.com/eaaDev/PresentationModel.html">Presentation Model</a> [martinfowler.com]</li>
<li><a href="http://martinfowler.com/eaaDev/PassiveScreen.html">Passive View</a> [martinfowler.com]</li>
<li><a href="http://www.amazon.com/Patterns-Enterprise-Application-Architecture-Martin/dp/0321127420?tag=httpkaushco-20">Martin Fowler’s Book P of EAA</a> [amazon.com]</li>
</ul>
</li>
<li><a href="http://mattlogan.me/decoupling-the-presenter">Decoupling the presenter</a> [mattlogan.me]</li>
</ul>
<h3>Other approaches to clean architectures:</h3>
<ul>
<li><a href="http://www.willowtreeapps.com/blog/mvvm-on-android-what-you-need-to-know/">MVVM on Android - what you need to know</a> [willowtreeapps.com]</li>
<li><a href="http://www.teehanlax.com/blog/model-view-viewmodel-for-ios/">Model View ViewModel for iOS</a> [teehanlax.com]</li>
<li><a href="http://www.objc.io/issues/13-architecture/viper/">VIPER architecture on iOS</a> [objc.io]</li>
<li><a href="https://speakerdeck.com/richk/clean-android-architecture">VIPER inspired Clean Android architecture</a> [speakerdeck]</li>
<li><a href="http://fernandocejas.com/2014/09/03/architecting-android-the-clean-way/">Architecting Android the clean way</a> [fernandocejas.com]</li>
<li><a href="http://antonioleiva.com/mvp-android/">MVP Android</a> [antonioleiva.com]</li>
</ul>
<h2>Awesome picks:</h2>
<p>Donn:</p>
<ul>
<li><a href="https://newcircle.com/s/post/1744/2015/06/29/learning-rxjava-for-android-by-example">Learning RxJava for Android by example - Kaushik’s talk</a> [youtube.com]</li>
<li><a href="http://blog.danlew.net/2015/06/22/loading-data-from-multiple-sources-with-rxjava/">Loading data from multiple source</a> [danlew.net]</li>
<li><a href="https://engineering.pushtorefresh.com/2015/07/02/storio-modern-replacement-for-sqlitedatabase-and-contentresolver-apis/?utm_source=androiddevdigest">StorIO</a> [engineering.pushtoreresh.com]</li>
<li><a href="http://martinfowler.com/articles/mocksArentStubs.html">Mocks aren’t Stubs</a> [martinfowler.com]</li>
</ul>
<p>Kaushik:</p>
<ul>
<li><a href="http://facebook.github.io/rebound/">Rebound animation library</a> [facebook.github.io]
<ul>
<li>Will Bailey (creator of Rebound):
<ul>
<li><a href="https://gist.github.com/willbailey/8811581">OrigamiActivity.java</a> [gist.github.com]</li>
<li><a href="https://code.facebook.com/posts/509869769120198/under-the-hood-building-and-open-sourcing-the-rebound-animation-library-for-android/">Under the hood</a> [code.facebook.com]</li>
<li><a href="https://www.youtube.com/watch?v=h9F7iKogkaY">Example 1</a> [youtube.com]</li>
<li><a href="https://www.youtube.com/watch?v=JWzIqMLfx3c">Example 2</a> [youtube.com]</li>
<li><a href="https://www.youtube.com/watch?v=ebAno8nxbTg">Example 3</a> [youtube.com]</li>
<li><a href="https://www.youtube.com/watch?v=ZifkBivC4C4">Example 4</a> [youtube.com]</li>
</ul>
</li>
<li><a href="http://parallelcross.com/post/96597851715/springy-animations-with-facebook-rebound-for">Springy animations with Rebound</a> [parallelcross.com]</li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<h3>Donn Felker</h3>
<ul>
<li><a href="http://www.twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="http://donnfelker.com/">donnfelker.com</a></li>
</ul>
<h3>Kaushik Gopal</h3>
<ul>
<li><a href="http://www.twitter.com/kaushikgopal">@kaushikgopal</a> [twitter.com]</li>
<li><a href="http://kaush.co/">kaush.co</a></li>
</ul>
]]></content:encoded>
      <enclosure length="32357399" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/58164c4a-0122-4a6c-b6e9-d8eb339f26ba/ep-11-fragmented_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>011: The Fowler Road to a Clean Architecture</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/58164c4a-0122-4a6c-b6e9-d8eb339f26ba/3000x3000/1454950662-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:07:22</itunes:duration>
      <itunes:summary>In this episode - Donn and Kaushik dive into a topic that is very near and dear their hearts - application architecture. They talk about how Martin Fowler has inspired a lot of their architectural decisions and how they&apos;re moving towards defining what a clean architecture means to them and other developers. They talk about Model View Presenter, Model View Controller and many other topics that surround these two common patterns. Take a listen and go for the ride on architecture train ... all aboard!</itunes:summary>
      <itunes:subtitle>In this episode - Donn and Kaushik dive into a topic that is very near and dear their hearts - application architecture. They talk about how Martin Fowler has inspired a lot of their architectural decisions and how they&apos;re moving towards defining what a clean architecture means to them and other developers. They talk about Model View Presenter, Model View Controller and many other topics that surround these two common patterns. Take a listen and go for the ride on architecture train ... all aboard!</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>11</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">https://www.signalleaf.com/podcasts/Fragmented/558a167b15ac5d03005bc202</guid>
      <title>010: Boning Up on Core Java with Michael Bailey</title>
      <description><![CDATA[<p>In this episode Donn and Kaushik talk to the very talented Michael Bailey about core Java principles and practices. Michael has quite the deep and passionate understanding of Java and we thought it would only be perfect to share this episode with a very passionate Java crowd - Android developers. We talk about IntelliJ, Testing, Inheritance, Static Code analysis, Garbage Collection, Data Structures and much more in this episode. If you're looking to learn a thing or two about Java, then this is your episode. We hope you enjoy.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://developer.android.com/reference/android/os/SystemClock.html#elapsedRealtimeNanos%28%29">elapsedRealtimeNanos for getting wall time</a> [developer.android.com]</li>
<li><a href="http://officialandroid.blogspot.co.uk/2015/05/pay-your-way-with-android.html">Android Pay announcement</a> [officialandroid.blogpost.co.uk]</li>
</ul>
<h2>Intellij information:</h2>
<ul>
<li><a href="http://blog.jetbrains.com/idea/2015/04/a-curated-list-of-ide-plugins-for-android-development/">Curated list of IDE plugings by Jetbrains</a> [blog.jetbrains.com]</li>
<li><a href="https://plugins.jetbrains.com/plugin/4455">Key promoter plugin</a> [plugins.jetbrains.com]</li>
<li><a href="https://www.jetbrains.com/idea/help/using-productivity-guide.html">Productivity Guide</a> [jetbrains.com/help]</li>
<li><a href="https://www.jetbrains.com/idea/help/selecting-text-in-the-editor.html#d1395590e179">Extending + Shrinking selection</a> [jetbrains.com/help]</li>
</ul>
<h2>Testing talk:</h2>
<ul>
<li><a href="http://techcrunch.com/2014/06/25/google-appurify/">Google acquires Appurify</a> [techcrunch.com]</li>
<li><a href="https://developers.google.com/cloud-test-lab/">Cloud Test Lab (erstwhile Appurify)</a> [developers.google.com/cloud-test-lab]</li>
</ul>
<h2>Great books on improving your Java skills:</h2>
<ul>
<li><a href="http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented-ebook/dp/B000SEIBB8">Gang of Four</a> [amazon.com]</li>
<li><a href="http://www.amazon.com/Effective-Java-2nd-Edition-Series-ebook/dp/B00B8V09HY/ref=dp_kinw_strp_1">Effective Java (2nd Edition)- Joshua Bloch</a> [amazon.com]</li>
</ul>
<p><a href="http://www.osnews.com/story/19266/WTFs_m">Effective code review technique (WTFs a minute)</a> [cryhavok.org]</p>
<h2>On inheritance:</h2>
<ul>
<li>Item 15 : Design and document for inheritance or else prohibit it</li>
<li>Item 16 : Favor composition over inheritance</li>
<li><a href="https://twitter.com/chrisbanes/status/591180993542938624">Chris Banes on using AppCompatDelegate</a> [twitter.com]</li>
</ul>
<h2>Static code analyzers:</h2>
<ul>
<li><a href="https://github.com/checkstyle/checkstyle/wiki/Java-static-code-analysis-tools">Checkstyle, PMD, Findbugs</a> [github.com]</li>
<li><a href="http://developer.android.com/tools/help/lint.html">Android Lint</a> [developer.android.com]</li>
<li><a href="http://findbugs.sourceforge.net/">Findbugs</a> [sourceforge.net]</li>
<li><a href="http://pmd.sourceforge.net/">PMD</a> [sourceforge.net]</li>
<li><a href="http://vincentbrison.com/2014/07/19/how-to-improve-quality-and-syntax-of-your-android-code/">blog post setup static code analysis tools</a> [vincentbrison.com]</li>
<li><a href="https://code.facebook.com/posts/1648953042007882/open-sourcing-facebook-infer-identify-bugs-before-you-ship/">Infer by Facebook</a> [code.facebook.com]</li>
<li><a href="http://www.gamasutra.com/view/news/128836/InDepth_Static_Code_Analysis.php">John Carmack In-Depth: static code analysis</a> [gamasutra.com]</li>
</ul>
<h2>Garbage collection:</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=_CruQY55HOk">Google IO 2011 talk</a> [youtube.com]</li>
<li><a href="https://medium.com/google-developers/developing-for-android-i-understanding-the-mobile-context-fd2351b131f8">Medium article - Garbage Collection</a>[medium.com]</li>
<li><a href="https://github.com/square/leakcanary">LeakCanary by Square</a> [github.com]</li>
<li><a href="http://stackoverflow.com/questions/279507/what-is-meant-by-immutable">What is meant by immutable</a> [stackoverflow.com]</li>
</ul>
<h2>Data structures for Android</h2>
<ul>
<li><a href="https://developer.android.com/reference/android/util/ArrayMap.html">ArrayMap</a> (Android alt. to HashMap) [developer.android.com]</li>
<li><a href="https://developer.android.com/reference/android/support/v4/util/SimpleArrayMap.html">SimpleArrayMap</a> [developer.android.com]</li>
<li><a href="http://developer.android.com/reference/android/util/SparseArray.html">SparseArray</a> (Android alt. to mapping int -&gt; Objects) [developer.android.com]</li>
</ul>
<h2>Benchmarking DS:</h2>
<ul>
<li><a href="https://github.com/google/caliper">Caliper</a> [github.com]</li>
<li><a href="https://code.google.com/p/vogar/wiki/Examples">Vogar examples</a> [code.google.com]</li>
<li>ADB Ep. 27 (forEach quirks) ( <a href="https://overcast.fm/+BaKNoy7TY/9:08">minute 9:07</a>) [androidbackstage.blogpost.com]</li>
<li><a href="http://www.devahead.com/blog/2011/12/coding-for-performance-and-avoiding-garbage-collection-in-android/">Coding for performance blog post</a> [devahead.com]</li>
<li>See Item 21 in Effective Java (Ed. 1) about typesafe enum patterns (this was before enums existed)</li>
<li><a href="http://kotlinlang.org/docs/reference/null-safety.html">Null safety in Kotlin</a> [kotlinlang.org]</li>
<li><a href="https://en.wikipedia.org/?title=Mondegreen">Mondegreen</a> [wikipedia.org]</li>
<li>Mad Gab</li>
</ul>
<h2>Awesome picks:</h2>
<p>Michael:</p>
<ul>
<li><a href="http://tools.android.com/filing-bugs">Learn how to file high quality bug report for Android tools</a> [tools.android.com]</li>
<li><a href="http://androidstudygroup.github.io/conferences/">List of Android conferences</a> [androidstudygroup.github.io]</li>
<li><a href="http://googletesting.blogspot.com/2015/05/gtac-2015-coming-to-cambridge-greater.html">GTAC 2015 conference</a> [googletesting.blogpost.com]</li>
<li><a href="https://medium.com/google-developers/developing-for-android-introduction-5345b451567c">Developing for Android - blog post series by Google developers</a> [medium.com]</li>
</ul>
<p>Kaushik:</p>
<ul>
<li><a href="https://github.com/mcharmas/Android-ReactiveLocation">library: Android-ReactiveLocation</a> [github.com]</li>
<li><a href="https://onetoday.google.com/">Google App for Donation OneToday</a> [onetoday.google.com]</li>
<li><a href="https://www.techdirt.com/articles/20150526/16550931121/obama-administration-files-totally-clueless-argument-concerning-software-copyrights-supreme-court-case.shtml">An article discussing the case between Oracle vs Google</a> [techdirt.com]</li>
</ul>
<p>Donn:</p>
<ul>
<li><a href="http://droidcon.nyc/2015/sched/">Vote for my android talks at DroidCon NYC</a>! :)</li>
<li><a href="http://www.amazon.com/Anker-Desktop-Charger-PowerIQ-Technology/dp/B00GTGETFG">Anker Charging Station</a> [amazon.com]</li>
<li><a href="http://iamnotaprogrammer.com/Ikea-Standing-desk-for-22-dollars.html">22$ Standing Desk</a> [iamnotaprogrammer.com]</li>
</ul>
<h2>Contact</h2>
<h3>Michael Bailey</h3>
<ul>
<li><a href="https://twitter.com/yogurtearl">@yogurtearl</a> [twitter.com]</li>
</ul>
<h3>Donn Felker</h3>
<ul>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="http://www.donnfelker.com/">donnfelker.com</a></li>
</ul>
<h3>Kaushik Gopal</h3>
<ul>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> [twitter.com]</li>
<li><a href="http://kaush.co/">kaush.co</a></li>
</ul>
]]></description>
      <pubDate>Tue, 23 Jun 2015 12:29:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode Donn and Kaushik talk to the very talented Michael Bailey about core Java principles and practices. Michael has quite the deep and passionate understanding of Java and we thought it would only be perfect to share this episode with a very passionate Java crowd - Android developers. We talk about IntelliJ, Testing, Inheritance, Static Code analysis, Garbage Collection, Data Structures and much more in this episode. If you're looking to learn a thing or two about Java, then this is your episode. We hope you enjoy.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://developer.android.com/reference/android/os/SystemClock.html#elapsedRealtimeNanos%28%29">elapsedRealtimeNanos for getting wall time</a> [developer.android.com]</li>
<li><a href="http://officialandroid.blogspot.co.uk/2015/05/pay-your-way-with-android.html">Android Pay announcement</a> [officialandroid.blogpost.co.uk]</li>
</ul>
<h2>Intellij information:</h2>
<ul>
<li><a href="http://blog.jetbrains.com/idea/2015/04/a-curated-list-of-ide-plugins-for-android-development/">Curated list of IDE plugings by Jetbrains</a> [blog.jetbrains.com]</li>
<li><a href="https://plugins.jetbrains.com/plugin/4455">Key promoter plugin</a> [plugins.jetbrains.com]</li>
<li><a href="https://www.jetbrains.com/idea/help/using-productivity-guide.html">Productivity Guide</a> [jetbrains.com/help]</li>
<li><a href="https://www.jetbrains.com/idea/help/selecting-text-in-the-editor.html#d1395590e179">Extending + Shrinking selection</a> [jetbrains.com/help]</li>
</ul>
<h2>Testing talk:</h2>
<ul>
<li><a href="http://techcrunch.com/2014/06/25/google-appurify/">Google acquires Appurify</a> [techcrunch.com]</li>
<li><a href="https://developers.google.com/cloud-test-lab/">Cloud Test Lab (erstwhile Appurify)</a> [developers.google.com/cloud-test-lab]</li>
</ul>
<h2>Great books on improving your Java skills:</h2>
<ul>
<li><a href="http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented-ebook/dp/B000SEIBB8">Gang of Four</a> [amazon.com]</li>
<li><a href="http://www.amazon.com/Effective-Java-2nd-Edition-Series-ebook/dp/B00B8V09HY/ref=dp_kinw_strp_1">Effective Java (2nd Edition)- Joshua Bloch</a> [amazon.com]</li>
</ul>
<p><a href="http://www.osnews.com/story/19266/WTFs_m">Effective code review technique (WTFs a minute)</a> [cryhavok.org]</p>
<h2>On inheritance:</h2>
<ul>
<li>Item 15 : Design and document for inheritance or else prohibit it</li>
<li>Item 16 : Favor composition over inheritance</li>
<li><a href="https://twitter.com/chrisbanes/status/591180993542938624">Chris Banes on using AppCompatDelegate</a> [twitter.com]</li>
</ul>
<h2>Static code analyzers:</h2>
<ul>
<li><a href="https://github.com/checkstyle/checkstyle/wiki/Java-static-code-analysis-tools">Checkstyle, PMD, Findbugs</a> [github.com]</li>
<li><a href="http://developer.android.com/tools/help/lint.html">Android Lint</a> [developer.android.com]</li>
<li><a href="http://findbugs.sourceforge.net/">Findbugs</a> [sourceforge.net]</li>
<li><a href="http://pmd.sourceforge.net/">PMD</a> [sourceforge.net]</li>
<li><a href="http://vincentbrison.com/2014/07/19/how-to-improve-quality-and-syntax-of-your-android-code/">blog post setup static code analysis tools</a> [vincentbrison.com]</li>
<li><a href="https://code.facebook.com/posts/1648953042007882/open-sourcing-facebook-infer-identify-bugs-before-you-ship/">Infer by Facebook</a> [code.facebook.com]</li>
<li><a href="http://www.gamasutra.com/view/news/128836/InDepth_Static_Code_Analysis.php">John Carmack In-Depth: static code analysis</a> [gamasutra.com]</li>
</ul>
<h2>Garbage collection:</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=_CruQY55HOk">Google IO 2011 talk</a> [youtube.com]</li>
<li><a href="https://medium.com/google-developers/developing-for-android-i-understanding-the-mobile-context-fd2351b131f8">Medium article - Garbage Collection</a>[medium.com]</li>
<li><a href="https://github.com/square/leakcanary">LeakCanary by Square</a> [github.com]</li>
<li><a href="http://stackoverflow.com/questions/279507/what-is-meant-by-immutable">What is meant by immutable</a> [stackoverflow.com]</li>
</ul>
<h2>Data structures for Android</h2>
<ul>
<li><a href="https://developer.android.com/reference/android/util/ArrayMap.html">ArrayMap</a> (Android alt. to HashMap) [developer.android.com]</li>
<li><a href="https://developer.android.com/reference/android/support/v4/util/SimpleArrayMap.html">SimpleArrayMap</a> [developer.android.com]</li>
<li><a href="http://developer.android.com/reference/android/util/SparseArray.html">SparseArray</a> (Android alt. to mapping int -&gt; Objects) [developer.android.com]</li>
</ul>
<h2>Benchmarking DS:</h2>
<ul>
<li><a href="https://github.com/google/caliper">Caliper</a> [github.com]</li>
<li><a href="https://code.google.com/p/vogar/wiki/Examples">Vogar examples</a> [code.google.com]</li>
<li>ADB Ep. 27 (forEach quirks) ( <a href="https://overcast.fm/+BaKNoy7TY/9:08">minute 9:07</a>) [androidbackstage.blogpost.com]</li>
<li><a href="http://www.devahead.com/blog/2011/12/coding-for-performance-and-avoiding-garbage-collection-in-android/">Coding for performance blog post</a> [devahead.com]</li>
<li>See Item 21 in Effective Java (Ed. 1) about typesafe enum patterns (this was before enums existed)</li>
<li><a href="http://kotlinlang.org/docs/reference/null-safety.html">Null safety in Kotlin</a> [kotlinlang.org]</li>
<li><a href="https://en.wikipedia.org/?title=Mondegreen">Mondegreen</a> [wikipedia.org]</li>
<li>Mad Gab</li>
</ul>
<h2>Awesome picks:</h2>
<p>Michael:</p>
<ul>
<li><a href="http://tools.android.com/filing-bugs">Learn how to file high quality bug report for Android tools</a> [tools.android.com]</li>
<li><a href="http://androidstudygroup.github.io/conferences/">List of Android conferences</a> [androidstudygroup.github.io]</li>
<li><a href="http://googletesting.blogspot.com/2015/05/gtac-2015-coming-to-cambridge-greater.html">GTAC 2015 conference</a> [googletesting.blogpost.com]</li>
<li><a href="https://medium.com/google-developers/developing-for-android-introduction-5345b451567c">Developing for Android - blog post series by Google developers</a> [medium.com]</li>
</ul>
<p>Kaushik:</p>
<ul>
<li><a href="https://github.com/mcharmas/Android-ReactiveLocation">library: Android-ReactiveLocation</a> [github.com]</li>
<li><a href="https://onetoday.google.com/">Google App for Donation OneToday</a> [onetoday.google.com]</li>
<li><a href="https://www.techdirt.com/articles/20150526/16550931121/obama-administration-files-totally-clueless-argument-concerning-software-copyrights-supreme-court-case.shtml">An article discussing the case between Oracle vs Google</a> [techdirt.com]</li>
</ul>
<p>Donn:</p>
<ul>
<li><a href="http://droidcon.nyc/2015/sched/">Vote for my android talks at DroidCon NYC</a>! :)</li>
<li><a href="http://www.amazon.com/Anker-Desktop-Charger-PowerIQ-Technology/dp/B00GTGETFG">Anker Charging Station</a> [amazon.com]</li>
<li><a href="http://iamnotaprogrammer.com/Ikea-Standing-desk-for-22-dollars.html">22$ Standing Desk</a> [iamnotaprogrammer.com]</li>
</ul>
<h2>Contact</h2>
<h3>Michael Bailey</h3>
<ul>
<li><a href="https://twitter.com/yogurtearl">@yogurtearl</a> [twitter.com]</li>
</ul>
<h3>Donn Felker</h3>
<ul>
<li><a href="https://twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="http://www.donnfelker.com/">donnfelker.com</a></li>
</ul>
<h3>Kaushik Gopal</h3>
<ul>
<li><a href="https://twitter.com/kaushikgopal">@kaushikgopal</a> [twitter.com]</li>
<li><a href="http://kaush.co/">kaush.co</a></li>
</ul>
]]></content:encoded>
      <enclosure length="46555472" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/f3c1020b-f7d3-4068-8d06-d23072998666/ep-10-fragmented_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>010: Boning Up on Core Java with Michael Bailey</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/f3c1020b-f7d3-4068-8d06-d23072998666/3000x3000/1454950660-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:36:57</itunes:duration>
      <itunes:summary>In this episode Donn and Kaushik talk to the very talented Michael Bailey about core Java principles and practices. Michael has quite the deep and passionate understanding of Java and we thought it would only be perfect to share this episode with a very passionate Java crowd - Android developers. We talk about IntelliJ, Testing, Inheritance, Static Code analysis, Garbage Collection, Data Structures and much more in this episode. If you&apos;re looking to learn a thing or two about Java, then this is your episode. We hope you enjoy.</itunes:summary>
      <itunes:subtitle>In this episode Donn and Kaushik talk to the very talented Michael Bailey about core Java principles and practices. Michael has quite the deep and passionate understanding of Java and we thought it would only be perfect to share this episode with a very passionate Java crowd - Android developers. We talk about IntelliJ, Testing, Inheritance, Static Code analysis, Garbage Collection, Data Structures and much more in this episode. If you&apos;re looking to learn a thing or two about Java, then this is your episode. We hope you enjoy.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>10</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">https://www.signalleaf.com/podcasts/Fragmented/556f2ccc5c90ff0300e65fb3</guid>
      <title>009: Google IO Special</title>
      <description><![CDATA[<p>This is the special Google I/O 2015 episode. In this episode - Kaushik makes the trek to Google I/O and chats with various Android developers about their favorite part of Google IO. I was not able to make it but Kaushik was able to interview of top developers in the industry and I’ll tell you what - this is a great episode - I really wish I was there to join him. I know he had a great time chatting and interacting with everyone. We hope you enjoy the show as much as we enjoyed creating it.</p>
<h2>Show Notes</h2>
<ul>
<li>Dan Lew (Trello)
<ul>
<li>@danlew42 -  <a href="http://www.twitter.com/danlew42">twitter.com</a></li>
<li>Dan's Blog -  <a href="http://danlew.net/">danlew.net</a></li>
</ul>
</li>
<li>Ty Smith (Twitter)
<ul>
<li>@tsmith -  <a href="http://twitter.com/tsmith">twitter</a></li>
</ul>
</li>
<li>Eric Cochran (IFTTT)
<ul>
<li>NightlyNexus -  <a href="http://github.com/nightlynexus">github</a></li>
<li>+EricCochranNightlyNexus -  <a href="http://plus.google.com/+EricCochranNightlyNexus">plus.google.com</a></li>
</ul>
</li>
<li>Cyril Mottier (Capitaine Train)
<ul>
<li>@cyrilmottier -  <a href="http://twitter.com/cyrilmottier">twitter</a></li>
<li>About page -  <a href="http://cyrilmottier.com/about/">cyrilmottier.com</a></li>
</ul>
</li>
<li>Shifty Jelly Team
<ul>
<li>Pocket Casts -  <a href="http://www.pocketcasts.com/">pocketcasts.com</a></li>
<li>Philip Simpson</li>
<li>@geekygecko -  <a href="http://twitter.com/geekygecko">twitter.com</a></li>
<li>Russell Ivanovic</li>
<li>@rustyshelf -  <a href="http://twitter.com/rustyshelf">twitter.com</a></li>
</ul>
</li>
<li>Amanda Hill (Venmo)
<ul>
<li>@mandybess -  <a href="http://twitter.com/mandybess">twitter.com</a></li>
</ul>
</li>
<li>Dave Smith (New Circle)
<ul>
<li>@devunwired -  <a href="http://twitter.com/devunwired">twitter.com</a></li>
<li>+DaveSmithDev -  <a href="http://plus.google.com/+DaveSmithDev">plus.google.com</a></li>
</ul>
</li>
<li>Corey Latislaw (CapitalOne)
<ul>
<li>@corey_latislaw -  <a href="https://twitter.com/corey_latislaw">twitter.com</a></li>
<li><a href="http://coreylatislaw.com/">coreylatislaw.com</a></li>
</ul>
</li>
<li>Chet Haase
<ul>
<li>@chethaase -  <a href="http://twitter.com/chethaase">twitter.com</a></li>
<li>Android Backstaage -  <a href="http://androidbackstage.blogspot.com/">blogspot.com</a></li>
</ul>
</li>
<li>Chiu-ki Chan
<ul>
<li>@chiuki -  <a href="http://twitter.com/chiuki">twitter.com</a></li>
</ul>
</li>
<li>Elliott Chenger (Under Armour)
<ul>
<li>@echenger -  <a href="https://twitter.com/echenger">twitter.com</a></li>
<li>blog -  <a href="http://omitneedlesscode.com/">omitneedlesscode.com</a></li>
</ul>
</li>
<li>Maria Neumayer (Citymapper)
<ul>
<li>@marianeum -  <a href="http://twitter.com/marianeum">twitter.com</a></li>
</ul>
</li>
<li>Danny Roa (Foursquare)
<ul>
<li>@dannyroa -  <a href="http://twitter.com/dannyroa">twitter.com</a></li>
</ul>
</li>
<li>Michael Bailey
<ul>
<li>@yogurtearl -  <a href="http://twitter.com/yogurtearl">twitter.com</a></li>
</ul>
</li>
<li>Donn Felker
<ul>
<li>@donnfelker -  <a href="http://twitter.com/donnfelker">twitter.com</a></li>
<li><a href="http://donnfelker.com/">donnfelker.com</a></li>
</ul>
</li>
<li>Kaushik Gopal
<ul>
<li>@kaushikgopal -  <a href="http://twitter.com/kaushikgopal">twitter.com</a></li>
<li><a href="http://kaush.co/">kaush.co</a></li>
</ul>
</li>
</ul>
]]></description>
      <pubDate>Wed, 3 Jun 2015 14:33:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>This is the special Google I/O 2015 episode. In this episode - Kaushik makes the trek to Google I/O and chats with various Android developers about their favorite part of Google IO. I was not able to make it but Kaushik was able to interview of top developers in the industry and I’ll tell you what - this is a great episode - I really wish I was there to join him. I know he had a great time chatting and interacting with everyone. We hope you enjoy the show as much as we enjoyed creating it.</p>
<h2>Show Notes</h2>
<ul>
<li>Dan Lew (Trello)
<ul>
<li>@danlew42 -  <a href="http://www.twitter.com/danlew42">twitter.com</a></li>
<li>Dan's Blog -  <a href="http://danlew.net/">danlew.net</a></li>
</ul>
</li>
<li>Ty Smith (Twitter)
<ul>
<li>@tsmith -  <a href="http://twitter.com/tsmith">twitter</a></li>
</ul>
</li>
<li>Eric Cochran (IFTTT)
<ul>
<li>NightlyNexus -  <a href="http://github.com/nightlynexus">github</a></li>
<li>+EricCochranNightlyNexus -  <a href="http://plus.google.com/+EricCochranNightlyNexus">plus.google.com</a></li>
</ul>
</li>
<li>Cyril Mottier (Capitaine Train)
<ul>
<li>@cyrilmottier -  <a href="http://twitter.com/cyrilmottier">twitter</a></li>
<li>About page -  <a href="http://cyrilmottier.com/about/">cyrilmottier.com</a></li>
</ul>
</li>
<li>Shifty Jelly Team
<ul>
<li>Pocket Casts -  <a href="http://www.pocketcasts.com/">pocketcasts.com</a></li>
<li>Philip Simpson</li>
<li>@geekygecko -  <a href="http://twitter.com/geekygecko">twitter.com</a></li>
<li>Russell Ivanovic</li>
<li>@rustyshelf -  <a href="http://twitter.com/rustyshelf">twitter.com</a></li>
</ul>
</li>
<li>Amanda Hill (Venmo)
<ul>
<li>@mandybess -  <a href="http://twitter.com/mandybess">twitter.com</a></li>
</ul>
</li>
<li>Dave Smith (New Circle)
<ul>
<li>@devunwired -  <a href="http://twitter.com/devunwired">twitter.com</a></li>
<li>+DaveSmithDev -  <a href="http://plus.google.com/+DaveSmithDev">plus.google.com</a></li>
</ul>
</li>
<li>Corey Latislaw (CapitalOne)
<ul>
<li>@corey_latislaw -  <a href="https://twitter.com/corey_latislaw">twitter.com</a></li>
<li><a href="http://coreylatislaw.com/">coreylatislaw.com</a></li>
</ul>
</li>
<li>Chet Haase
<ul>
<li>@chethaase -  <a href="http://twitter.com/chethaase">twitter.com</a></li>
<li>Android Backstaage -  <a href="http://androidbackstage.blogspot.com/">blogspot.com</a></li>
</ul>
</li>
<li>Chiu-ki Chan
<ul>
<li>@chiuki -  <a href="http://twitter.com/chiuki">twitter.com</a></li>
</ul>
</li>
<li>Elliott Chenger (Under Armour)
<ul>
<li>@echenger -  <a href="https://twitter.com/echenger">twitter.com</a></li>
<li>blog -  <a href="http://omitneedlesscode.com/">omitneedlesscode.com</a></li>
</ul>
</li>
<li>Maria Neumayer (Citymapper)
<ul>
<li>@marianeum -  <a href="http://twitter.com/marianeum">twitter.com</a></li>
</ul>
</li>
<li>Danny Roa (Foursquare)
<ul>
<li>@dannyroa -  <a href="http://twitter.com/dannyroa">twitter.com</a></li>
</ul>
</li>
<li>Michael Bailey
<ul>
<li>@yogurtearl -  <a href="http://twitter.com/yogurtearl">twitter.com</a></li>
</ul>
</li>
<li>Donn Felker
<ul>
<li>@donnfelker -  <a href="http://twitter.com/donnfelker">twitter.com</a></li>
<li><a href="http://donnfelker.com/">donnfelker.com</a></li>
</ul>
</li>
<li>Kaushik Gopal
<ul>
<li>@kaushikgopal -  <a href="http://twitter.com/kaushikgopal">twitter.com</a></li>
<li><a href="http://kaush.co/">kaush.co</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
      <enclosure length="43302997" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/8b5f4965-3d49-458b-89d6-d67164c93125/ep-9-fragmented_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>009: Google IO Special</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/8b5f4965-3d49-458b-89d6-d67164c93125/3000x3000/1454950659-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:29:40</itunes:duration>
      <itunes:summary>This is the special Google I/O 2015 episode. In this episode - Kaushik makes the trek to Google I/O and chats with various Android developers about their favorite part of Google IO. I was not able to make it but Kaushik was able to interview of top developers in the industry and I’ll tell you what - this is a great episode - I really wish I was there to join him. I know he had a great time chatting and interacting with everyone. We hope you enjoy the show as much as we enjoyed creating it.</itunes:summary>
      <itunes:subtitle>This is the special Google I/O 2015 episode. In this episode - Kaushik makes the trek to Google I/O and chats with various Android developers about their favorite part of Google IO. I was not able to make it but Kaushik was able to interview of top developers in the industry and I’ll tell you what - this is a great episode - I really wish I was there to join him. I know he had a great time chatting and interacting with everyone. We hope you enjoy the show as much as we enjoyed creating it.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>9</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">https://www.signalleaf.com/podcasts/Fragmented/555b39d328c34b0300b5bbb8</guid>
      <title>008: Pocket Casts Amazingness with Philip Simpson</title>
      <description><![CDATA[<p>In this episode, we talk to Philip Simpson, one of the rockstar developers of the amazing Pocket Casts Android Application. We learn about how Philip and his partner, Russell, started Shifty Jelly and how they grew their team from a two-person shop to a small staff all while creating one of top apps on Google Play, Pocket Casts. We also talk about some of the tools, tips and tricks that they've used to help them scale, grow and become more effective as indie app developers. We eventually hop into some deep talk about audio software and all kinds of tech in general. If you've always wondered what it takes to be an indie app developer then this is the episode for you - Philip does not let us down.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://play.google.com/store/apps/details?id=au.com.shiftyjelly.pocketcasts">Pocket Casts</a></li>
<li><a href="https://play.google.com/store/apps/details?id=au.com.shiftyjelly.android.pocketweatherau">Pocket Weather (for Australia)</a> [play.google.com]</li>
<li>Phil’s stuff
<ul>
<li><a href="http://www.amazon.com/LG-Electronics-34-Inch-LED-Lit-34UC97-S/dp/B00OKSEWL6/">LG 34” Ultrawide curved monitor (that Phil uses)</a> [amazon.com]</li>
<li><a href="https://twitter.com/geekygecko/status/557773181462007810">device test lab</a> [twitter.com]</li>
<li><a href="https://gist.github.com/geekygecko/0ea6358baed26636a08d">Android cheatsheet</a> [gist.github.com]</li>
<li><a href="http://blog.shiftyjelly.com/2015/03/05/its-finally-here/">Audio effects and features in Pocket Casts</a> [blog.shiftyjelly.com]</li>
</ul>
</li>
<li><a href="http://www.marco.org/">Marco Arment</a>
<ul>
<li><a href="http://atp.fm/episodes/101">Accidental Tech Podcast</a> [minute 1:10 he talks of using Go for podcast feed parsing] [atp.fm]</li>
<li><a href="http://5by5.tv/buildanalyze">Build and Analyze podcast</a> (now retired) [5by5.tv]</li>
</ul>
</li>
<li><a href="https://play.pocketcasts.com/web">Pocket Cast Web client</a> [play.pocketcasts.com]</li>
<li><a href="http://lifehacker.com/pocket-casts-gets-a-syncing-web-player-for-podcasts-1647665765">Pocket cast gets sync</a> [lifehacker.com]</li>
<li>Pocket Casts supporting service:
<ul>
<li><a href="https://www.pingdom.com/features/">Pingdom</a> (monitoring uptime)[pingdom.com]</li>
<li><a href="https://www.mysql.com/">MySql</a></li>
<li><a href="https://www.mongodb.org/">Mongo</a></li>
<li><a href="https://mariadb.org/">MariaDb</a></li>
<li><a href="http://hockeyapp.net/features/">HockeyApp</a></li>
</ul>
</li>
<li>Android latency:
<ul>
<li>Android latency problem [superpowered.com]</li>
</ul>
</li>
<li><a href="https://www.youtube.com/watch?v=cU-eAzNp5Hw">The Tonight show starring Jimmy Fallon</a> (with Billy Joel) [youtube.com]
<ul>
<li><a href="http://loopyapp.com/">Looper app</a> (iOS only :( )</li>
</ul>
</li>
<li>Pocket Casts 3rd party libs
<ul>
<li><a href="https://github.com/JakeWharton/butterknife">Butter Knife</a></li>
<li><a href="https://github.com/nostra13/Android-Universal-Image-Loader">Android Universal Image Loader</a> &gt;  <a href="http://square.github.io/picasso/">Picasso</a></li>
<li><a href="https://github.com/afollestad/material-dialogs">Material Dialog library</a> [github.com]</li>
<li><a href="https://github.com/MrEngineer13/SnackBar">SnackBar</a> [github.com]</li>
<li><a href="https://github.com/telly/MrVector">Mr.Vector</a> (now deprecated) [github.com]
<ul>
<li><a href="https://github.com/trello/victor">Victor by Trello</a> [github.com] (Friend of the show - Dan’s library that we also talked about)</li>
</ul>
</li>
</ul>
</li>
<li><a href="http://gimletmedia.com/show/startup/">StartUp podcast</a> (by Gimlet media) [gimletmedia.com]</li>
<li><a href="https://developer.android.com/about/dashboards/index.html">Android Device Dashboard</a> (showing OS breakup)</li>
</ul>
<h2>Awesome picks:</h2>
<p>Philip:</p>
<ul>
<li><a href="https://github.com/mortenjust/androidtool-mac">Android tool for mac</a> [github.com]
<ul>
<li>Makes it easy to take screenshots, videos, run scripts, bug reports..</li>
</ul>
</li>
<li><a href="https://gettingreal.37signals.com/">37 Signals - Getting Real</a> [37signals.com]
<ul>
<li>A book Phil read when we were starting Shifty Jelly</li>
</ul>
</li>
</ul>
<p>Donn:</p>
<ul>
<li><a href="http://www.getsidekick.com/">Sidekick By HubSpot</a> [getsidekick.com]
<ul>
<li>Allows you to see when someone has opened your email etc.</li>
</ul>
</li>
<li><a href="http://fourhourworkweek.com/2015/05/07/noah-kagan/">Tim Ferriss Show with Noah Kagan</a> [fourhourworkweek.com]
<ul>
<li>Great productivity hacks for everything and overall great show</li>
</ul>
</li>
<li><a href="https://chrome.google.com/webstore/detail/grammarly-spell-checker-g/kbfnbcaeplbcioakkpcpgfkobkghlhen?hl=en">Grammarly Chrome Extension</a> [chrome.google.com]
<ul>
<li>Fix your grammatical errors before the internet fixes them for you.</li>
</ul>
</li>
<li><a href="http://whenihavetime.com/2014/07/08/10-lessons-from-4-years-working-remotely/">10 Lessons from 4 Years Working Remotely</a> [whenihavetime.com]</li>
</ul>
<p>Kaushik:</p>
<ul>
<li><a href="https://sriramramani.wordpress.com/2015/05/06/custom-viewgroups/">Custom View Groups</a>- engineer at Facebook [wordpress.com]</li>
<li><a href="https://corner.squareup.com/2015/05/leak-canary.html%27">LeakCanary</a> by Square</li>
</ul>
<h2>Contact</h2>
<h3>Philip Simpson</h3>
<ul>
<li><a href="http://www.twitter.com/geekygecko">@geekygecko</a> [twitter.com]</li>
<li><a href="http://shiftyjelly.com/">shiftyjelly.com</a></li>
<li><a href="http://pocketcasts.com/">pocketcasts.com</a></li>
</ul>
<h3>Donn Felker</h3>
<ul>
<li><a href="http://www.twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="http://www.donnfelker.com/">donnfelker.com</a></li>
</ul>
<h3>Kaushik Gopal</h3>
<p> </p>
<ul>
<li><a href="http://www.twitter.com/kaushikgopal">@kaushikgopal</a> [twitter.com]</li>
<li><a href="http://kaush.co/">kaush.co</a></li>
</ul>
<p> </p>
<p> </p>
]]></description>
      <pubDate>Tue, 19 May 2015 11:24:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode, we talk to Philip Simpson, one of the rockstar developers of the amazing Pocket Casts Android Application. We learn about how Philip and his partner, Russell, started Shifty Jelly and how they grew their team from a two-person shop to a small staff all while creating one of top apps on Google Play, Pocket Casts. We also talk about some of the tools, tips and tricks that they've used to help them scale, grow and become more effective as indie app developers. We eventually hop into some deep talk about audio software and all kinds of tech in general. If you've always wondered what it takes to be an indie app developer then this is the episode for you - Philip does not let us down.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://play.google.com/store/apps/details?id=au.com.shiftyjelly.pocketcasts">Pocket Casts</a></li>
<li><a href="https://play.google.com/store/apps/details?id=au.com.shiftyjelly.android.pocketweatherau">Pocket Weather (for Australia)</a> [play.google.com]</li>
<li>Phil’s stuff
<ul>
<li><a href="http://www.amazon.com/LG-Electronics-34-Inch-LED-Lit-34UC97-S/dp/B00OKSEWL6/">LG 34” Ultrawide curved monitor (that Phil uses)</a> [amazon.com]</li>
<li><a href="https://twitter.com/geekygecko/status/557773181462007810">device test lab</a> [twitter.com]</li>
<li><a href="https://gist.github.com/geekygecko/0ea6358baed26636a08d">Android cheatsheet</a> [gist.github.com]</li>
<li><a href="http://blog.shiftyjelly.com/2015/03/05/its-finally-here/">Audio effects and features in Pocket Casts</a> [blog.shiftyjelly.com]</li>
</ul>
</li>
<li><a href="http://www.marco.org/">Marco Arment</a>
<ul>
<li><a href="http://atp.fm/episodes/101">Accidental Tech Podcast</a> [minute 1:10 he talks of using Go for podcast feed parsing] [atp.fm]</li>
<li><a href="http://5by5.tv/buildanalyze">Build and Analyze podcast</a> (now retired) [5by5.tv]</li>
</ul>
</li>
<li><a href="https://play.pocketcasts.com/web">Pocket Cast Web client</a> [play.pocketcasts.com]</li>
<li><a href="http://lifehacker.com/pocket-casts-gets-a-syncing-web-player-for-podcasts-1647665765">Pocket cast gets sync</a> [lifehacker.com]</li>
<li>Pocket Casts supporting service:
<ul>
<li><a href="https://www.pingdom.com/features/">Pingdom</a> (monitoring uptime)[pingdom.com]</li>
<li><a href="https://www.mysql.com/">MySql</a></li>
<li><a href="https://www.mongodb.org/">Mongo</a></li>
<li><a href="https://mariadb.org/">MariaDb</a></li>
<li><a href="http://hockeyapp.net/features/">HockeyApp</a></li>
</ul>
</li>
<li>Android latency:
<ul>
<li>Android latency problem [superpowered.com]</li>
</ul>
</li>
<li><a href="https://www.youtube.com/watch?v=cU-eAzNp5Hw">The Tonight show starring Jimmy Fallon</a> (with Billy Joel) [youtube.com]
<ul>
<li><a href="http://loopyapp.com/">Looper app</a> (iOS only :( )</li>
</ul>
</li>
<li>Pocket Casts 3rd party libs
<ul>
<li><a href="https://github.com/JakeWharton/butterknife">Butter Knife</a></li>
<li><a href="https://github.com/nostra13/Android-Universal-Image-Loader">Android Universal Image Loader</a> &gt;  <a href="http://square.github.io/picasso/">Picasso</a></li>
<li><a href="https://github.com/afollestad/material-dialogs">Material Dialog library</a> [github.com]</li>
<li><a href="https://github.com/MrEngineer13/SnackBar">SnackBar</a> [github.com]</li>
<li><a href="https://github.com/telly/MrVector">Mr.Vector</a> (now deprecated) [github.com]
<ul>
<li><a href="https://github.com/trello/victor">Victor by Trello</a> [github.com] (Friend of the show - Dan’s library that we also talked about)</li>
</ul>
</li>
</ul>
</li>
<li><a href="http://gimletmedia.com/show/startup/">StartUp podcast</a> (by Gimlet media) [gimletmedia.com]</li>
<li><a href="https://developer.android.com/about/dashboards/index.html">Android Device Dashboard</a> (showing OS breakup)</li>
</ul>
<h2>Awesome picks:</h2>
<p>Philip:</p>
<ul>
<li><a href="https://github.com/mortenjust/androidtool-mac">Android tool for mac</a> [github.com]
<ul>
<li>Makes it easy to take screenshots, videos, run scripts, bug reports..</li>
</ul>
</li>
<li><a href="https://gettingreal.37signals.com/">37 Signals - Getting Real</a> [37signals.com]
<ul>
<li>A book Phil read when we were starting Shifty Jelly</li>
</ul>
</li>
</ul>
<p>Donn:</p>
<ul>
<li><a href="http://www.getsidekick.com/">Sidekick By HubSpot</a> [getsidekick.com]
<ul>
<li>Allows you to see when someone has opened your email etc.</li>
</ul>
</li>
<li><a href="http://fourhourworkweek.com/2015/05/07/noah-kagan/">Tim Ferriss Show with Noah Kagan</a> [fourhourworkweek.com]
<ul>
<li>Great productivity hacks for everything and overall great show</li>
</ul>
</li>
<li><a href="https://chrome.google.com/webstore/detail/grammarly-spell-checker-g/kbfnbcaeplbcioakkpcpgfkobkghlhen?hl=en">Grammarly Chrome Extension</a> [chrome.google.com]
<ul>
<li>Fix your grammatical errors before the internet fixes them for you.</li>
</ul>
</li>
<li><a href="http://whenihavetime.com/2014/07/08/10-lessons-from-4-years-working-remotely/">10 Lessons from 4 Years Working Remotely</a> [whenihavetime.com]</li>
</ul>
<p>Kaushik:</p>
<ul>
<li><a href="https://sriramramani.wordpress.com/2015/05/06/custom-viewgroups/">Custom View Groups</a>- engineer at Facebook [wordpress.com]</li>
<li><a href="https://corner.squareup.com/2015/05/leak-canary.html%27">LeakCanary</a> by Square</li>
</ul>
<h2>Contact</h2>
<h3>Philip Simpson</h3>
<ul>
<li><a href="http://www.twitter.com/geekygecko">@geekygecko</a> [twitter.com]</li>
<li><a href="http://shiftyjelly.com/">shiftyjelly.com</a></li>
<li><a href="http://pocketcasts.com/">pocketcasts.com</a></li>
</ul>
<h3>Donn Felker</h3>
<ul>
<li><a href="http://www.twitter.com/donnfelker">@donnfelker</a> [twitter.com]</li>
<li><a href="http://www.donnfelker.com/">donnfelker.com</a></li>
</ul>
<h3>Kaushik Gopal</h3>
<p> </p>
<ul>
<li><a href="http://www.twitter.com/kaushikgopal">@kaushikgopal</a> [twitter.com]</li>
<li><a href="http://kaush.co/">kaush.co</a></li>
</ul>
<p> </p>
<p> </p>
]]></content:encoded>
      <enclosure length="40475030" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/45f23762-443d-4344-b49e-6dca74c09a22/ep-8-fragmented_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>008: Pocket Casts Amazingness with Philip Simpson</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/45f23762-443d-4344-b49e-6dca74c09a22/3000x3000/1454950657-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:24:16</itunes:duration>
      <itunes:summary>In this episode, we talk to Philip Simpson, one of the rockstar developers of the amazing Pocket Casts Android Application. We learn about how Philip and his partner, Russell, started Shifty Jelly and how they grew their team from a two-person shop to a small staff all while creating one of top apps on Google Play, Pocket Casts. We also talk about some of the tools, tips and tricks that they&apos;ve used to help them scale, grow and become more effective as indie app developers. We eventually hop into some deep talk about audio software and all kinds of tech in general. If you&apos;ve always wondered what it takes to be an indie app developer then this is the episode for you - Philip does not let us down.</itunes:summary>
      <itunes:subtitle>In this episode, we talk to Philip Simpson, one of the rockstar developers of the amazing Pocket Casts Android Application. We learn about how Philip and his partner, Russell, started Shifty Jelly and how they grew their team from a two-person shop to a small staff all while creating one of top apps on Google Play, Pocket Casts. We also talk about some of the tools, tips and tricks that they&apos;ve used to help them scale, grow and become more effective as indie app developers. We eventually hop into some deep talk about audio software and all kinds of tech in general. If you&apos;ve always wondered what it takes to be an indie app developer then this is the episode for you - Philip does not let us down.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>8</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">https://www.signalleaf.com/podcasts/Fragmented/554ae00f33b8570300079b47</guid>
      <title>007: Jake Wharton on Testing, SqlBrite, NotRxAndroid, RxJava and Much More</title>
      <description><![CDATA[<p>In the final part of this two-part segment, we continue our talk with Jake Wharton. We dive right into the topic of testing. Jake then talks about his approach to testing apps in Android and the different languages that he finds interesting. We then move on to RxJava, NotRxAndroid, SqlBrite and many other libraries and topics to round out this great second episode. Again, we'd love to thank Jake for joining us here on the Fragmented Podcast show; it has been an honor. We hope you enjoy it as much as we did.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://github.com/JakeWharton/u2020">u2020 Demo App by Jake</a> [github.com]
<ul>
<li><a href="https://github.com/JakeWharton/u2020/blob/master/src/main/java/com/jakewharton/u2020/data/IntentFactory.java">Real Intent Factory</a> [github.com]</li>
<li><a href="https://github.com/JakeWharton/u2020/blob/master/src/internalDebug/java/com/jakewharton/u2020/data/DebugIntentFactory.java">Fake Intent Factory</a> [github.com]</li>
<li><a href="https://speakerdeck.com/mattprecious/debug-builds-a-new-hope-droidcon-mtl-2015?slide=130">Slides on Real/Fake Intent Factory</a> [speakerdeck.com - DroidCon Presentation]</li>
</ul>
</li>
</ul>
<h2>Server side frameworks with Java</h2>
<ul>
<li><a href="https://jersey.java.net/">Jersey</a> [jersey.java.net]</li>
<li><a href="https://jax-rs-spec.java.net/">Jax-rs</a> [jax-rs-spec.java.net]</li>
<li><a href="https://golang.org/">Go</a> [golang.org]</li>
</ul>
<h2>Other languages</h2>
<ul>
<li><a href="https://plus.google.com/+JakeWharton/posts/WSCoqkJ5MBj">Jake on using Kotlin for Android</a> [plug.google.com]</li>
<li><a href="http://kotlinlang.org/">Kotlin</a> (by JetBrains) [kotlinlang.org]</li>
<li><a href="https://github.com/JetBrains/anko">Anko</a> [github.com]</li>
<li><a href="http://kotlinlang.org/docs/tutorials/android-plugin.html">Kotlin Android Extensions</a> [kotlinlang.org]</li>
<li><a href="https://gradle.org/docs/2.4-rc-1/release-notes#support-for-%E2%80%9Cannotation-processing%E2%80%9D-of-groovy-code">Annotation processing for Groovy code</a> [gradle.org]</li>
</ul>
<h2>Non-Square libraries that Jake uses</h2>
<ul>
<li><a href="https://github.com/ReactiveX/RxJava">RxJava</a> [github.com]</li>
<li><a href="https://github.com/frankiesardo/auto-parcel">AutoParcel</a> [github.com]</li>
<li></li>
</ul>
<p><a href="https://github.com/emilsjolander/StickyListHeaders">StickyListHeaders</a> [github.com]</p>
<ul>
<li></li>
</ul>
<p><a href="https://github.com/square/sqlbrite">SQLBrite</a> [github.com]</p>
<ul>
<li></li>
</ul>
<p><a href="https://github.com/JakeWharton/NotRxAndroid">NotRxAndroid</a> [github.com]</p>
<h2>Awesome picks:</h2>
<p>Donn:</p>
<ul>
<li>Android Testing is ten years behind <a href="http://philosophicalhacker.com/2015/04/17/why-android-unit-testing-is-so-hard-pt-1/">http://philosophicalhacker.com/2015/04/17/why-android-unit-testing-is-so-hard-pt-1/</a></li>
<li>SquiDB is Yahoo’s new SQLite layer for Android:   <a href="https://github.com/yahoo/squidb">https://github.com/yahoo/squidb</a></li>
</ul>
<p>Jake:</p>
<ul>
<li>Diversify Your Learning
<ul>
<li>Rust -  <a href="http://blog.rust-lang.org/2015/04/10/Fearless-Concurrency.html">http://blog.rust-lang.org/2015/04/10/Fearless-Concurrency.html</a></li>
<li>Internals of Git -  <a href="https://codewords.recurse.com/issues/two/git-from-the-inside-out">https://codewords.recurse.com/issues/two/git-from-the-inside-out</a></li>
<li>GZip Encoding -  <a href="http://jvns.ca/blog/2015/02/22/how-gzip-uses-huffman-coding/">http://jvns.ca/blog/2015/02/22/how-gzip-uses-huffman-coding/</a></li>
<li>Java 10 value objects - <a href="http://cr.openjdk.java.net/%7Ebriangoetz/valhalla/specialization.html">http://cr.openjdk.java.net/~briangoetz/valhalla/specialization.html</a></li>
</ul>
</li>
</ul>
<p>Kaushik:</p>
<ul>
<li><a href="http://blog.codinghorror.com/the-ips-lcd-revolution/">27” IPS LCD Monitors for Korean eBay vendors</a></li>
<li><a href="http://www.ebay.com/itm/First-FSM-270YG-LED-LG-S-IPS-WIDE-2560x1440-WQHD-27inch-Computer-Monitor-/320933726714?pt=LH_DefaultDomain_0&amp;hash=item4ab92409fa">New FIRST FSM-270YG 27&quot; LED 2560x1440</a></li>
<li><a href="http://www.netflix.com/WiMovie/80018294">The new DareDevil show on Netflix!</a></li>
</ul>
<h2>Contact</h2>
<h3>Jake Wharton</h3>
<ul>
<li>@jakewharton [<a href="http://twitter.com/JakeWharton">twitter.com</a>]</li>
<li><a href="http://jakewharton.com/">jakewharton.com</a></li>
</ul>
<h3>Donn Felker</h3>
<ul>
<li>@donnfelker [<a href="https://twitter.com/donnfelker">twitter.com</a>]</li>
<li><a href="http://www.donnfelker.com/">donnfelker.com</a></li>
</ul>
<h3>Kaushik Gopal</h3>
<ul>
<li>@kaushikgopal [<a href="https://twitter.com/kaushikgopal/">twitter.com</a>]</li>
<li><a href="http://kaush.co/">kaush.co</a></li>
</ul>
]]></description>
      <pubDate>Wed, 6 May 2015 13:44:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In the final part of this two-part segment, we continue our talk with Jake Wharton. We dive right into the topic of testing. Jake then talks about his approach to testing apps in Android and the different languages that he finds interesting. We then move on to RxJava, NotRxAndroid, SqlBrite and many other libraries and topics to round out this great second episode. Again, we'd love to thank Jake for joining us here on the Fragmented Podcast show; it has been an honor. We hope you enjoy it as much as we did.</p>
<h2>Show Notes</h2>
<ul>
<li><a href="https://github.com/JakeWharton/u2020">u2020 Demo App by Jake</a> [github.com]
<ul>
<li><a href="https://github.com/JakeWharton/u2020/blob/master/src/main/java/com/jakewharton/u2020/data/IntentFactory.java">Real Intent Factory</a> [github.com]</li>
<li><a href="https://github.com/JakeWharton/u2020/blob/master/src/internalDebug/java/com/jakewharton/u2020/data/DebugIntentFactory.java">Fake Intent Factory</a> [github.com]</li>
<li><a href="https://speakerdeck.com/mattprecious/debug-builds-a-new-hope-droidcon-mtl-2015?slide=130">Slides on Real/Fake Intent Factory</a> [speakerdeck.com - DroidCon Presentation]</li>
</ul>
</li>
</ul>
<h2>Server side frameworks with Java</h2>
<ul>
<li><a href="https://jersey.java.net/">Jersey</a> [jersey.java.net]</li>
<li><a href="https://jax-rs-spec.java.net/">Jax-rs</a> [jax-rs-spec.java.net]</li>
<li><a href="https://golang.org/">Go</a> [golang.org]</li>
</ul>
<h2>Other languages</h2>
<ul>
<li><a href="https://plus.google.com/+JakeWharton/posts/WSCoqkJ5MBj">Jake on using Kotlin for Android</a> [plug.google.com]</li>
<li><a href="http://kotlinlang.org/">Kotlin</a> (by JetBrains) [kotlinlang.org]</li>
<li><a href="https://github.com/JetBrains/anko">Anko</a> [github.com]</li>
<li><a href="http://kotlinlang.org/docs/tutorials/android-plugin.html">Kotlin Android Extensions</a> [kotlinlang.org]</li>
<li><a href="https://gradle.org/docs/2.4-rc-1/release-notes#support-for-%E2%80%9Cannotation-processing%E2%80%9D-of-groovy-code">Annotation processing for Groovy code</a> [gradle.org]</li>
</ul>
<h2>Non-Square libraries that Jake uses</h2>
<ul>
<li><a href="https://github.com/ReactiveX/RxJava">RxJava</a> [github.com]</li>
<li><a href="https://github.com/frankiesardo/auto-parcel">AutoParcel</a> [github.com]</li>
<li></li>
</ul>
<p><a href="https://github.com/emilsjolander/StickyListHeaders">StickyListHeaders</a> [github.com]</p>
<ul>
<li></li>
</ul>
<p><a href="https://github.com/square/sqlbrite">SQLBrite</a> [github.com]</p>
<ul>
<li></li>
</ul>
<p><a href="https://github.com/JakeWharton/NotRxAndroid">NotRxAndroid</a> [github.com]</p>
<h2>Awesome picks:</h2>
<p>Donn:</p>
<ul>
<li>Android Testing is ten years behind <a href="http://philosophicalhacker.com/2015/04/17/why-android-unit-testing-is-so-hard-pt-1/">http://philosophicalhacker.com/2015/04/17/why-android-unit-testing-is-so-hard-pt-1/</a></li>
<li>SquiDB is Yahoo’s new SQLite layer for Android:   <a href="https://github.com/yahoo/squidb">https://github.com/yahoo/squidb</a></li>
</ul>
<p>Jake:</p>
<ul>
<li>Diversify Your Learning
<ul>
<li>Rust -  <a href="http://blog.rust-lang.org/2015/04/10/Fearless-Concurrency.html">http://blog.rust-lang.org/2015/04/10/Fearless-Concurrency.html</a></li>
<li>Internals of Git -  <a href="https://codewords.recurse.com/issues/two/git-from-the-inside-out">https://codewords.recurse.com/issues/two/git-from-the-inside-out</a></li>
<li>GZip Encoding -  <a href="http://jvns.ca/blog/2015/02/22/how-gzip-uses-huffman-coding/">http://jvns.ca/blog/2015/02/22/how-gzip-uses-huffman-coding/</a></li>
<li>Java 10 value objects - <a href="http://cr.openjdk.java.net/%7Ebriangoetz/valhalla/specialization.html">http://cr.openjdk.java.net/~briangoetz/valhalla/specialization.html</a></li>
</ul>
</li>
</ul>
<p>Kaushik:</p>
<ul>
<li><a href="http://blog.codinghorror.com/the-ips-lcd-revolution/">27” IPS LCD Monitors for Korean eBay vendors</a></li>
<li><a href="http://www.ebay.com/itm/First-FSM-270YG-LED-LG-S-IPS-WIDE-2560x1440-WQHD-27inch-Computer-Monitor-/320933726714?pt=LH_DefaultDomain_0&amp;hash=item4ab92409fa">New FIRST FSM-270YG 27&quot; LED 2560x1440</a></li>
<li><a href="http://www.netflix.com/WiMovie/80018294">The new DareDevil show on Netflix!</a></li>
</ul>
<h2>Contact</h2>
<h3>Jake Wharton</h3>
<ul>
<li>@jakewharton [<a href="http://twitter.com/JakeWharton">twitter.com</a>]</li>
<li><a href="http://jakewharton.com/">jakewharton.com</a></li>
</ul>
<h3>Donn Felker</h3>
<ul>
<li>@donnfelker [<a href="https://twitter.com/donnfelker">twitter.com</a>]</li>
<li><a href="http://www.donnfelker.com/">donnfelker.com</a></li>
</ul>
<h3>Kaushik Gopal</h3>
<ul>
<li>@kaushikgopal [<a href="https://twitter.com/kaushikgopal/">twitter.com</a>]</li>
<li><a href="http://kaush.co/">kaush.co</a></li>
</ul>
]]></content:encoded>
      <enclosure length="38152578" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/295b0f6b-f165-4b82-9502-8d7b510e888f/ep-7-fragmented_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>007: Jake Wharton on Testing, SqlBrite, NotRxAndroid, RxJava and Much More</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/295b0f6b-f165-4b82-9502-8d7b510e888f/3000x3000/1454950656-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:19:26</itunes:duration>
      <itunes:summary>In the final part of this two-part segment, we continue our talk with Jake Wharton. We dive right into the topic of testing. Jake then talks about his approach to testing apps in Android and the different languages that he finds interesting. We then move on to RxJava, NotRxAndroid, SqlBrite and many other libraries and topics to round out this great second episode. Again, we&apos;d love to thank Jake for joining us here on the Fragmented Podcast show; it has been an honor. We hope you enjoy it as much as we did.</itunes:summary>
      <itunes:subtitle>In the final part of this two-part segment, we continue our talk with Jake Wharton. We dive right into the topic of testing. Jake then talks about his approach to testing apps in Android and the different languages that he finds interesting. We then move on to RxJava, NotRxAndroid, SqlBrite and many other libraries and topics to round out this great second episode. Again, we&apos;d love to thank Jake for joining us here on the Fragmented Podcast show; it has been an honor. We hope you enjoy it as much as we did.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>7</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">https://www.signalleaf.com/podcasts/Fragmented/5541ac620374a203003d7438</guid>
      <title>006: Jake Wharton on Becoming a Better Developer and Creating Successful Open Source Projects (Part 1)</title>
      <description><![CDATA[<p>In part one of this two-part segment, we talk to the one and only Jake Wharton. He gives us the scoop on how he operates day to day, what he looks for in a good Android developer and how to become a better Android developer. He also touches upon the various sources and non-Java platforms that he draws inspiration from. Finally, he talks about open source and gives tips on leading an open source project.</p>
<h2>Show Notes</h2>
<h2>Follow up:</h2>
<ul>
<li><a href="https://plus.google.com/105979641354189463768/posts/bahdgRWvMUD">Michel Panzer on UIL</a> [plus.google.com]</li>
</ul>
<h2>Episode topics:</h2>
<ul>
<li><a href="https://github.com/JakeWharton/ActionBarSherlock">ActionBar Sherlock</a> [github.com]</li>
<li>Jake’s working environment
<ul>
<li><a href="https://github.com/square/java-code-styles">Square Github Styles</a> [github.com]</li>
<li><a href="http://hadihariri.com/2014/06/24/no-tabs-in-intellij-idea/">No tabs in Intellij</a> [hadihariri.com]</li>
</ul>
</li>
<li>Android source code browsing:
<ul>
<li><a href="https://chrome.google.com/webstore/detail/android-sdk-search/hgcbffeicehlpmgmnhnkjbjoldkfhoin?hl=en">Android SDK Search by Roman Nurik</a> [chrome.google.com]</li>
<li><a href="https://source.android.com/source/downloading.html">Download the Android AOSP Source</a> [source.android.com]</li>
<li><a href="http://androidxref.com/">AndroidXref</a> [androidxref.com]</li>
<li><a href="http://grepcode.com/project/repository.grepcode.com/java/ext/com.google.android/android">Grepcode Android</a> [grepcode.com]</li>
</ul>
</li>
<li><a href="https://developer.android.com/about/dashboards/index.html">Device Platform Versions</a> [developer.android.com]</li>
<li>non-Java languages and platforms to draw inspiration from:
<ul>
<li><a href="https://golang.org/">Go</a> [golang.org]</li>
<li><a href="http://www.rust-lang.org/">Rust</a> [rust-lang.org]</li>
<li><a href="https://github.com/staltz/cycle">CycleJs</a> [github.com]</li>
</ul>
</li>
<li><a href="https://www.youtube.com/watch?v=PCxz2LEmuL4">Droidcon Montreal keynote by JW and JW</a> [youtube.com]</li>
</ul>
<h2>Contact</h2>
<h3>Jake Wharton</h3>
<ul>
<li>@jakewharton [<a href="http://twitter.com/JakeWharton">twitter.com</a>]</li>
<li><a href="http://jakewharton.com/">jakewharton.com</a></li>
</ul>
<h3>Donn Felker</h3>
<ul>
<li>@donnfelker [<a href="https://twitter.com/donnfelker">twitter.com</a>]</li>
<li><a href="http://www.donnfelker.com/">donnfelker.com</a></li>
</ul>
<h3>Kaushik Gopal</h3>
<ul>
<li>@kaushikgopal [<a href="https://twitter.com/kaushikgopal/">twitter.com</a>]</li>
<li><a href="http://kaush.co/">kaush.co</a></li>
</ul>
]]></description>
      <pubDate>Wed, 29 Apr 2015 14:13:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In part one of this two-part segment, we talk to the one and only Jake Wharton. He gives us the scoop on how he operates day to day, what he looks for in a good Android developer and how to become a better Android developer. He also touches upon the various sources and non-Java platforms that he draws inspiration from. Finally, he talks about open source and gives tips on leading an open source project.</p>
<h2>Show Notes</h2>
<h2>Follow up:</h2>
<ul>
<li><a href="https://plus.google.com/105979641354189463768/posts/bahdgRWvMUD">Michel Panzer on UIL</a> [plus.google.com]</li>
</ul>
<h2>Episode topics:</h2>
<ul>
<li><a href="https://github.com/JakeWharton/ActionBarSherlock">ActionBar Sherlock</a> [github.com]</li>
<li>Jake’s working environment
<ul>
<li><a href="https://github.com/square/java-code-styles">Square Github Styles</a> [github.com]</li>
<li><a href="http://hadihariri.com/2014/06/24/no-tabs-in-intellij-idea/">No tabs in Intellij</a> [hadihariri.com]</li>
</ul>
</li>
<li>Android source code browsing:
<ul>
<li><a href="https://chrome.google.com/webstore/detail/android-sdk-search/hgcbffeicehlpmgmnhnkjbjoldkfhoin?hl=en">Android SDK Search by Roman Nurik</a> [chrome.google.com]</li>
<li><a href="https://source.android.com/source/downloading.html">Download the Android AOSP Source</a> [source.android.com]</li>
<li><a href="http://androidxref.com/">AndroidXref</a> [androidxref.com]</li>
<li><a href="http://grepcode.com/project/repository.grepcode.com/java/ext/com.google.android/android">Grepcode Android</a> [grepcode.com]</li>
</ul>
</li>
<li><a href="https://developer.android.com/about/dashboards/index.html">Device Platform Versions</a> [developer.android.com]</li>
<li>non-Java languages and platforms to draw inspiration from:
<ul>
<li><a href="https://golang.org/">Go</a> [golang.org]</li>
<li><a href="http://www.rust-lang.org/">Rust</a> [rust-lang.org]</li>
<li><a href="https://github.com/staltz/cycle">CycleJs</a> [github.com]</li>
</ul>
</li>
<li><a href="https://www.youtube.com/watch?v=PCxz2LEmuL4">Droidcon Montreal keynote by JW and JW</a> [youtube.com]</li>
</ul>
<h2>Contact</h2>
<h3>Jake Wharton</h3>
<ul>
<li>@jakewharton [<a href="http://twitter.com/JakeWharton">twitter.com</a>]</li>
<li><a href="http://jakewharton.com/">jakewharton.com</a></li>
</ul>
<h3>Donn Felker</h3>
<ul>
<li>@donnfelker [<a href="https://twitter.com/donnfelker">twitter.com</a>]</li>
<li><a href="http://www.donnfelker.com/">donnfelker.com</a></li>
</ul>
<h3>Kaushik Gopal</h3>
<ul>
<li>@kaushikgopal [<a href="https://twitter.com/kaushikgopal/">twitter.com</a>]</li>
<li><a href="http://kaush.co/">kaush.co</a></li>
</ul>
]]></content:encoded>
      <enclosure length="26056910" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/6b0a0b0b-9dc5-4c24-a304-644411ffa5ae/ep-6-fragmented_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>006: Jake Wharton on Becoming a Better Developer and Creating Successful Open Source Projects (Part 1)</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/6b0a0b0b-9dc5-4c24-a304-644411ffa5ae/3000x3000/1454950652-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:54:14</itunes:duration>
      <itunes:summary>In part one of this two-part segment, we talk to the one and only Jake Wharton. He gives us the scoop on how he operates day to day, what he looks for in a good Android developer and how to become a better Android developer. He also touches upon the various sources and non-Java platforms that he draws inspiration from. Finally, he talks about open source and gives tips on leading an open source project.</itunes:summary>
      <itunes:subtitle>In part one of this two-part segment, we talk to the one and only Jake Wharton. He gives us the scoop on how he operates day to day, what he looks for in a good Android developer and how to become a better Android developer. He also touches upon the various sources and non-Java platforms that he draws inspiration from. Finally, he talks about open source and gives tips on leading an open source project.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>6</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">https://www.signalleaf.com/podcasts/Fragmented/55313300b4c0ea030021b4ba</guid>
      <title>005: Image libraries for Android</title>
      <description><![CDATA[<p>In this episode of Fragmented, Donn and Kaushik start off by discussing the tips and tricks available for efficiently loading images in an Android app. Good image libraries make use of these techniques and perform all the heavy lifting in the background. So they then discuss the different image library options available for Android developers.</p>
<h2>Show Notes</h2>
<h3>Techniques/tips on effective image rendering in Android:</h3>
<h3>Bitmap sizes and allocation:</h3>
<ul>
<li><a href="http://developer.android.com/training/displaying-bitmaps/index.html">Displaying bitmaps efficiently</a> [developer.android.com]</li>
<li><a href="http://developer.android.com/reference/android/graphics/Bitmap.Config.html">RGB_565, ARGB_888 and other different bitmap configurations</a>[developer.android.com]</li>
<li><a href="https://developer.android.com/reference/android/hardware/camera2/package-summary.html">Android Camera2 apis</a> [developer.android.com]</li>
<li><a href="https://www.youtube.com/watch?v=rsQet4nBVi8">Chet Haase DevByte : Bitmap allocation</a> [youtube.com] (bitmaps managed in Dalvik heap post 3.0; so large bitmaps implies large heap implies GC could happen more often)</li>
</ul>
<h3>Reuse bitmaps:</h3>
<ul>
<li><a href="https://developer.android.com/training/displaying-bitmaps/manage-memory.html#inBitmap">inBitmap option for Android 3.0 and later</a> [developer.android.com]</li>
<li><a href="http://developer.android.com/reference/android/graphics/BitmapFactory.Options.html#inBitmap">before Android 4.4 only equal sized bitmaps with inSampleSize 1 supported</a>[developer.android.com]</li>
<li><a href="http://developer.android.com/reference/android/graphics/BitmapFactory.Options.html#inBitmap">Reusing bitmap objects on Android</a>[booking.com]</li>
</ul>
<h3>Downsample bitmaps</h3>
<ul>
<li><a href="http://developer.android.com/training/displaying-bitmaps/load-bitmap.html#load-bitmap">Load a scaled down version into memory</a> [developer.android.com]
<ul>
<li>see code for calculateInSampleSize</li>
</ul>
</li>
</ul>
<h3>Caching</h3>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Cache_algorithms#Examples">Cache Algorithms - see LruCache</a> [wikipedia.org]</li>
<li><a href="http://developer.android.com/reference/android/util/LruCache.html">LruCache object in Android</a> [developer.android.com]</li>
<li><a href="https://github.com/JakeWharton/DiskLruCache">JakeWharton DiskLruCache</a> [github.com]</li>
<li><a href="http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html">Don’t use Soft or Weak References for your Caches</a> [developer.android.com]</li>
<li><a href="https://plus.google.com/+AndroidDevelopers/posts/QMoo7zV3dzP">Android Performance Pattern DevByte - why 60fps</a> [youtube.com]</li>
</ul>
<h2>Image libraries for Android:</h2>
<ul>
<li><a href="http://square.github.io/picasso/">Picasso</a> by Square [github.com]
<ul>
<li><a href="https://github.com/square/picasso/blob/master/CHANGELOG.md#version-250-2015-02-06">fetch introduced in V 2.5.0 (Changelog)</a> [github.com]</li>
<li><a href="https://github.com/square/picasso/issues/114">Picasso doesn’t</a> do bitmap recycling</li>
<li><a href="https://github.com/square/picasso/issues/672">Jake Wharton’s thoughts on Picasso not having a bitmap pool</a> [github.com]</li>
</ul>
</li>
<li><a href="https://github.com/bumptech/glide">Glide</a> [github.com]
<ul>
<li><a href="https://github.com/bumptech/glide/issues/73">github issue where author explains tags being used to store metadata</a>[github.com]</li>
<li>Glide  <a href="https://github.com/bumptech/glide/wiki/Resource-re-use-in-Glide">does bitmap recycling</a></li>
</ul>
</li>
<li><a href="https://github.com/koush/ion">Ion</a>
<ul>
<li><a href="https://www.youtube.com/watch?v=yIMltNEAKZY">DeepZoom with Ion</a> [youtube.com]</li>
<li><a href="http://developer.android.com/reference/android/graphics/BitmapRegionDecoder.html">Uses BitmapRegionDecoder to implement DeepZoom</a>[developer.android.com]</li>
</ul>
</li>
<li><a href="http://developer.android.com/training/volley/index.html">Volley</a>
<ul>
<li><a href="https://www.youtube.com/watch?v=yhv8l9F44qo">Ficus Kirkpatrick introduces Volley in Google.IO</a> [youtube.com]</li>
<li><a href="http://stackoverflow.com/questions/19396852/volley-image-caching">Doesn’t come with an image caching mechansim out of the box</a>[stackoverflow.com]</li>
</ul>
</li>
<li><a href="http://frescolib.org/">Fresco</a>
<ul>
<li><a href="https://code.facebook.com/posts/366199913563917/introducing-fresco-a-new-image-library-for-android/">Introducing Fresco</a> [code.facebook.com]</li>
<li><a href="https://twitter.com/romainguy/status/581241987656880128">Romain Guy concern over native api call</a> [twitter.com]</li>
</ul>
</li>
<li>Other noteworthies that we did not discuss:
<ul>
<li><a href="https://github.com/nostra13/Android-Universal-Image-Loader">Universal Image Loader</a> Library comparisons by others:</li>
</ul>
</li>
<li><a href="http://inthecheesefactory.com/blog/get-to-know-glide-recommended-by-google/en">Picasso vs Glide</a> [inthecheesefactory.com]</li>
</ul>
<h2>Image library comparisons:</h2>
<ul>
<li><a href="https://twitter.com/jessewilson/status/581235604740042752">JesseWilson on Picasso vs Fresco :P</a> [twitter.com]</li>
<li><a href="https://twitter.com/jessewilson/status/581422137463992320">JesseWilson Picasso:Glide :: Coke:Pepsi</a> [twitter.com]</li>
<li><a href="https://plus.google.com/103583939320326217147/posts/bfAFC5YZ3mq%20Bitmap%20reuse%20%28not%20done%20in%20Picasso%29">Image comparisons by Koushik Dutta</a> [plus.google.com]</li>
<li><a href="https://www.bignerdranch.com/blog/solving-the-android-image-loading-problem-volley-vs-picasso/">Volley vs Picasso </a>[bignerdranch.com]</li>
</ul>
<h2>Awesome picks:</h2>
<ul>
<li>Donn
<ul>
<li><a href="https://github.com/square/moshi">Moshi - A new modern JSON library for Android and Java from the Square guys</a></li>
<li><a href="http://www.jsonschema2pojo.org/">JsonSchemaToPojo: Take json or a json schema and turn it into POJOs.</a></li>
<li><a href="http://www.parcelabler.com/">Parcelabler: Generate Parcelable implementations with a click of a button</a></li>
<li><a href="https://github.com/johncarl81/parceler">Parceler: Android parcels created through Code generation</a></li>
</ul>
</li>
<li>KG:
<ul>
<li><a href="http://blog.paralleluniverse.co/2014/05/01/modern-java/">Not your father's Java: 3 part blog post series An opinionated guide to modern Java development</a></li>
<li><a href="https://www.youtube.com/watch?v=iyXpdkqBsG8">Stetho caster.io screencast: Debugging Android with Stetho - Donn’sscreencast</a></li>
<li><a href="http://cleartones.net/"><em>Cleartones</em></a> <a href="http://cleartones.net/"><em>: professional ringtones!</em></a></li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<h3>Donn Felker</h3>
<ul>
<li>@donnfelker [<a href="https://twitter.com/donnfelker">twitter.com</a>]</li>
<li><a href="http://www.donnfelker.com/">donnfelker.com</a></li>
</ul>
<h3>Kaushik Gopal</h3>
<ul>
<li>@kaushikgopal [<a href="https://twitter.com/kaushikgopal/">twitter.com</a>]</li>
<li><a href="http://kaush.co/">kaush.co</a></li>
</ul>
]]></description>
      <pubDate>Fri, 17 Apr 2015 14:20:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode of Fragmented, Donn and Kaushik start off by discussing the tips and tricks available for efficiently loading images in an Android app. Good image libraries make use of these techniques and perform all the heavy lifting in the background. So they then discuss the different image library options available for Android developers.</p>
<h2>Show Notes</h2>
<h3>Techniques/tips on effective image rendering in Android:</h3>
<h3>Bitmap sizes and allocation:</h3>
<ul>
<li><a href="http://developer.android.com/training/displaying-bitmaps/index.html">Displaying bitmaps efficiently</a> [developer.android.com]</li>
<li><a href="http://developer.android.com/reference/android/graphics/Bitmap.Config.html">RGB_565, ARGB_888 and other different bitmap configurations</a>[developer.android.com]</li>
<li><a href="https://developer.android.com/reference/android/hardware/camera2/package-summary.html">Android Camera2 apis</a> [developer.android.com]</li>
<li><a href="https://www.youtube.com/watch?v=rsQet4nBVi8">Chet Haase DevByte : Bitmap allocation</a> [youtube.com] (bitmaps managed in Dalvik heap post 3.0; so large bitmaps implies large heap implies GC could happen more often)</li>
</ul>
<h3>Reuse bitmaps:</h3>
<ul>
<li><a href="https://developer.android.com/training/displaying-bitmaps/manage-memory.html#inBitmap">inBitmap option for Android 3.0 and later</a> [developer.android.com]</li>
<li><a href="http://developer.android.com/reference/android/graphics/BitmapFactory.Options.html#inBitmap">before Android 4.4 only equal sized bitmaps with inSampleSize 1 supported</a>[developer.android.com]</li>
<li><a href="http://developer.android.com/reference/android/graphics/BitmapFactory.Options.html#inBitmap">Reusing bitmap objects on Android</a>[booking.com]</li>
</ul>
<h3>Downsample bitmaps</h3>
<ul>
<li><a href="http://developer.android.com/training/displaying-bitmaps/load-bitmap.html#load-bitmap">Load a scaled down version into memory</a> [developer.android.com]
<ul>
<li>see code for calculateInSampleSize</li>
</ul>
</li>
</ul>
<h3>Caching</h3>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Cache_algorithms#Examples">Cache Algorithms - see LruCache</a> [wikipedia.org]</li>
<li><a href="http://developer.android.com/reference/android/util/LruCache.html">LruCache object in Android</a> [developer.android.com]</li>
<li><a href="https://github.com/JakeWharton/DiskLruCache">JakeWharton DiskLruCache</a> [github.com]</li>
<li><a href="http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html">Don’t use Soft or Weak References for your Caches</a> [developer.android.com]</li>
<li><a href="https://plus.google.com/+AndroidDevelopers/posts/QMoo7zV3dzP">Android Performance Pattern DevByte - why 60fps</a> [youtube.com]</li>
</ul>
<h2>Image libraries for Android:</h2>
<ul>
<li><a href="http://square.github.io/picasso/">Picasso</a> by Square [github.com]
<ul>
<li><a href="https://github.com/square/picasso/blob/master/CHANGELOG.md#version-250-2015-02-06">fetch introduced in V 2.5.0 (Changelog)</a> [github.com]</li>
<li><a href="https://github.com/square/picasso/issues/114">Picasso doesn’t</a> do bitmap recycling</li>
<li><a href="https://github.com/square/picasso/issues/672">Jake Wharton’s thoughts on Picasso not having a bitmap pool</a> [github.com]</li>
</ul>
</li>
<li><a href="https://github.com/bumptech/glide">Glide</a> [github.com]
<ul>
<li><a href="https://github.com/bumptech/glide/issues/73">github issue where author explains tags being used to store metadata</a>[github.com]</li>
<li>Glide  <a href="https://github.com/bumptech/glide/wiki/Resource-re-use-in-Glide">does bitmap recycling</a></li>
</ul>
</li>
<li><a href="https://github.com/koush/ion">Ion</a>
<ul>
<li><a href="https://www.youtube.com/watch?v=yIMltNEAKZY">DeepZoom with Ion</a> [youtube.com]</li>
<li><a href="http://developer.android.com/reference/android/graphics/BitmapRegionDecoder.html">Uses BitmapRegionDecoder to implement DeepZoom</a>[developer.android.com]</li>
</ul>
</li>
<li><a href="http://developer.android.com/training/volley/index.html">Volley</a>
<ul>
<li><a href="https://www.youtube.com/watch?v=yhv8l9F44qo">Ficus Kirkpatrick introduces Volley in Google.IO</a> [youtube.com]</li>
<li><a href="http://stackoverflow.com/questions/19396852/volley-image-caching">Doesn’t come with an image caching mechansim out of the box</a>[stackoverflow.com]</li>
</ul>
</li>
<li><a href="http://frescolib.org/">Fresco</a>
<ul>
<li><a href="https://code.facebook.com/posts/366199913563917/introducing-fresco-a-new-image-library-for-android/">Introducing Fresco</a> [code.facebook.com]</li>
<li><a href="https://twitter.com/romainguy/status/581241987656880128">Romain Guy concern over native api call</a> [twitter.com]</li>
</ul>
</li>
<li>Other noteworthies that we did not discuss:
<ul>
<li><a href="https://github.com/nostra13/Android-Universal-Image-Loader">Universal Image Loader</a> Library comparisons by others:</li>
</ul>
</li>
<li><a href="http://inthecheesefactory.com/blog/get-to-know-glide-recommended-by-google/en">Picasso vs Glide</a> [inthecheesefactory.com]</li>
</ul>
<h2>Image library comparisons:</h2>
<ul>
<li><a href="https://twitter.com/jessewilson/status/581235604740042752">JesseWilson on Picasso vs Fresco :P</a> [twitter.com]</li>
<li><a href="https://twitter.com/jessewilson/status/581422137463992320">JesseWilson Picasso:Glide :: Coke:Pepsi</a> [twitter.com]</li>
<li><a href="https://plus.google.com/103583939320326217147/posts/bfAFC5YZ3mq%20Bitmap%20reuse%20%28not%20done%20in%20Picasso%29">Image comparisons by Koushik Dutta</a> [plus.google.com]</li>
<li><a href="https://www.bignerdranch.com/blog/solving-the-android-image-loading-problem-volley-vs-picasso/">Volley vs Picasso </a>[bignerdranch.com]</li>
</ul>
<h2>Awesome picks:</h2>
<ul>
<li>Donn
<ul>
<li><a href="https://github.com/square/moshi">Moshi - A new modern JSON library for Android and Java from the Square guys</a></li>
<li><a href="http://www.jsonschema2pojo.org/">JsonSchemaToPojo: Take json or a json schema and turn it into POJOs.</a></li>
<li><a href="http://www.parcelabler.com/">Parcelabler: Generate Parcelable implementations with a click of a button</a></li>
<li><a href="https://github.com/johncarl81/parceler">Parceler: Android parcels created through Code generation</a></li>
</ul>
</li>
<li>KG:
<ul>
<li><a href="http://blog.paralleluniverse.co/2014/05/01/modern-java/">Not your father's Java: 3 part blog post series An opinionated guide to modern Java development</a></li>
<li><a href="https://www.youtube.com/watch?v=iyXpdkqBsG8">Stetho caster.io screencast: Debugging Android with Stetho - Donn’sscreencast</a></li>
<li><a href="http://cleartones.net/"><em>Cleartones</em></a> <a href="http://cleartones.net/"><em>: professional ringtones!</em></a></li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<h3>Donn Felker</h3>
<ul>
<li>@donnfelker [<a href="https://twitter.com/donnfelker">twitter.com</a>]</li>
<li><a href="http://www.donnfelker.com/">donnfelker.com</a></li>
</ul>
<h3>Kaushik Gopal</h3>
<ul>
<li>@kaushikgopal [<a href="https://twitter.com/kaushikgopal/">twitter.com</a>]</li>
<li><a href="http://kaush.co/">kaush.co</a></li>
</ul>
]]></content:encoded>
      <enclosure length="45548991" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/15339bfa-0053-4a2d-8ffe-5d8235092ac3/ep-5-fragmented_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>005: Image libraries for Android</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/15339bfa-0053-4a2d-8ffe-5d8235092ac3/3000x3000/1454950649-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:34:21</itunes:duration>
      <itunes:summary>In this episode of Fragmented, Donn and Kaushik start off by discussing the tips and tricks available for efficiently loading images in an Android app. Good image libraries make use of these techniques and perform all the heavy lifting in the background. So they then discuss the different image library options available for Android developers.</itunes:summary>
      <itunes:subtitle>In this episode of Fragmented, Donn and Kaushik start off by discussing the tips and tricks available for efficiently loading images in an Android app. Good image libraries make use of these techniques and perform all the heavy lifting in the background. So they then discuss the different image library options available for Android developers.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>5</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">https://www.signalleaf.com/podcasts/Fragmented/551c0ee3bda901030028825e</guid>
      <title>004: The RxJava show with Dan Lew (Part 2)</title>
      <description><![CDATA[<p>In this episode of Fragmented, Donn and Kaushik continue their conversation with Dan Lew on RxJava. In the final part of this 2 part series, they talk about many useful RxJava operators and other intricacies of using RxJava in Android.</p>
<h2>Show Notes</h2>
<h3>RxJava Operators:</h3>
<ul>
<li>Observable.just [<a href="http://reactivex.io/documentation/operators/just.html">reactivex.io</a>]</li>
<li>Observable.from [<a href="http://reactivex.io/documentation/operators/from.html">reactivex.io</a>]</li>
<li>Observable.defer [<a href="http://reactivex.io/documentation/operators/defer.html">reactivex.io</a>]
<ul>
<li>Using defer to handle “Old, Slow Code” [<a href="http://blog.danlew.net/2014/10/08/grokking-rxjava-part-4/">blog.danlew.net</a>]</li>
</ul>
</li>
<li>Observable.map [<a href="http://reactivex.io/documentation/operators/map.html">reactivex.io</a>]</li>
<li>Observable.flatmap [<a href="http://reactivex.io/documentation/operators/flatmap.html">reactivex.io</a>]
<ul>
<li>map vs flatmap (alchemist and cheese shredding analogy [<a href="http://www.reddit.com/r/androiddev/comments/2y8exc/what_is_the_difference_between_map_and_flatmap_in/">reddit</a>])</li>
</ul>
</li>
<li>Observable.zip [<a href="http://reactivex.io/documentation/operators/zip.html">reactivex.io</a>]</li>
<li>Observable.combineLatest [<a href="http://reactivex.io/documentation/operators/combinelatest.html">reactivex.io</a>]</li>
<li>Observable. switchMap [<a href="http://reactivex.io/documentation/operators/images/switchMap.png">reactivex.io</a>]</li>
<li>Observable.distinctUntilChanged [<a href="http://rxmarbles.com/#distinctUntilChanged">reactivex.io</a>]</li>
<li>Observable.lift explanation [<a href="https://github.com/ReactiveX/RxJava/wiki/Implementing-Your-Own-Operators">reactivex.io</a>]</li>
<li>Observable.compose
<ul>
<li>Don’t break the chain (using compose) [<a href="http://blog.danlew.net/2015/03/02/dont-break-the-chain/">blog.danlew.net</a>]</li>
</ul>
</li>
<li>Observable.filter [<a href="http://reactivex.io/documentation/operators/filter.html">reactivex.io</a>]</li>
<li>Observable.take [<a href="https://github.com/ReactiveX/RxJava/wiki/Filtering-Observables#take">reactivex.io</a>]</li>
<li>subscribeOn vs observeOn [<a href="http://stackoverflow.com/questions/7579237/whats-the-difference-between-subscribeon-and-observeon">stackoverflow.com</a>]</li>
<li>Understanding debounce, buffer, debouncedBuffer [<a href="http://nerds.weddingpartyapp.com/tech/2015/01/05/debouncedbuffer-used-in-rxbus-example/">nerds.weddingpartyapp.com</a>]</li>
</ul>
<h3>RxJava Components:</h3>
<ul>
<li>Subjects: when is it appropriate to use [.net but still applies] [[davesexton.com] <a href="http://davesexton.com/blog/post/To-Use-Subject-Or-Not-To-Use-Subject.aspx">19</a>]</li>
<li>Implementing an event bus using RxJava [<a href="http://nerds.weddingpartyapp.com/tech/2014/12/24/implementing-an-event-bus-with-rxjava-rxbus/">nerds.weddingpartyapp.com</a>]</li>
<li>RxJava plugins [<a href="https://github.com/ReactiveX/RxJava/wiki/Plugins">github.com</a>]
<ul>
<li>RxJavaDebug plugin - for hooking to start/end/error [<a href="https://github.com/ReactiveX/RxJavaDebug">github.com</a>]</li>
</ul>
</li>
<li>.toBlocking() [<a href="http://reactivex.io/RxJava/javadoc/rx/Observable.html#toBlocking%28%29">reactivx.io</a>]</li>
<li>Composite Subscriptions [<a href="http://reactivex.io/RxJava/javadoc/rx/subscriptions/CompositeSubscription.html">reactivex.io</a>]</li>
</ul>
<h3>Retrolambda</h3>
<ul>
<li>Retrolambda library [<a href="https://github.com/orfjackal/retrolambda">github.com</a>]</li>
<li>Retrolambda gradle plugin [<a href="https://github.com/evant/gradle-retrolambda">github.com</a>]</li>
<li>Common Issue with Retrolambda (NoClassDefFoundError) [<a href="https://github.com/orfjackal/retrolambda/issues/37">github.com</a>]</li>
</ul>
<h3>Hot  vs Cold observables - From the RxJs wiki [<a href="https://github.com/Reactive-Extensions/RxJS/blob/master/doc/gettingstarted/creating.md#cold-vs-hot-observables">github.com</a>]</h3>
<ul>
<li>uses js instead of java, but concepts are the same and this is the best explanation I’ve found so far.</li>
</ul>
<h3>RxJava wiki on Backpressure [<a href="https://github.com/ReactiveX/RxJava/wiki/Backpressure">github.com</a>]:</h3>
<ul>
<li>Ring buffer size: <code>System.setProperty(&quot;rx.ring-buffer.size&quot;, &quot;128&quot;);</code></li>
<li>Issue with changing buffer ring size [<a href="https://github.com/ReactiveX/RxJava/issues/1820">github.com</a>]</li>
<li>It’s 16 on Android, down from 1024 originally. :P So it’s actually 64x smaller.</li>
</ul>
<h2>Awesome picks:</h2>
<p>Dan Lew:</p>
<ul>
<li>Simple Made Easy (talk by Rich Hickey creator of Clojure) [<a href="http://www.infoq.com/presentations/Simple-Made-Easy">infohq</a>]</li>
<li>Victor by Trello (SVG assets) [<a href="https://github.com/trello/victor">github.com</a>]</li>
</ul>
<p>Donn:</p>
<ul>
<li>Realm Object Database [<a href="http://realm.io/">realm.io</a>]</li>
</ul>
<p>Kaushik:</p>
<ul>
<li>Therapeutic Refactoring (talk by Katrina Owen) [<a href="https://www.youtube.com/watch?v=J4dlF0kcThQ">youtube.com</a>]</li>
</ul>
<h2>Contact</h2>
<h3>Dan Lew</h3>
<ul>
<li>@danlew42 [<a href="https://twitter.com/danlew42">twitter.com</a>]</li>
<li>Dan Lew’s blog [<a href="http://blog.danlew.net/">danlew.net</a>]</li>
</ul>
<h3>Donn Felker</h3>
<ul>
<li>@donnfelker [<a href="https://twitter.com/donnfelker">twitter.com</a>]</li>
<li><a href="http://www.donnfelker.com/">donnfelker.com</a></li>
</ul>
<h3>Kaushik Gopal</h3>
<ul>
<li>@kaushikgopal [<a href="https://twitter.com/kaushikgopal/">twitter.com</a>]</li>
<li><a href="http://kaush.co/">kaush.co</a></li>
</ul>
]]></description>
      <pubDate>Wed, 1 Apr 2015 13:29:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode of Fragmented, Donn and Kaushik continue their conversation with Dan Lew on RxJava. In the final part of this 2 part series, they talk about many useful RxJava operators and other intricacies of using RxJava in Android.</p>
<h2>Show Notes</h2>
<h3>RxJava Operators:</h3>
<ul>
<li>Observable.just [<a href="http://reactivex.io/documentation/operators/just.html">reactivex.io</a>]</li>
<li>Observable.from [<a href="http://reactivex.io/documentation/operators/from.html">reactivex.io</a>]</li>
<li>Observable.defer [<a href="http://reactivex.io/documentation/operators/defer.html">reactivex.io</a>]
<ul>
<li>Using defer to handle “Old, Slow Code” [<a href="http://blog.danlew.net/2014/10/08/grokking-rxjava-part-4/">blog.danlew.net</a>]</li>
</ul>
</li>
<li>Observable.map [<a href="http://reactivex.io/documentation/operators/map.html">reactivex.io</a>]</li>
<li>Observable.flatmap [<a href="http://reactivex.io/documentation/operators/flatmap.html">reactivex.io</a>]
<ul>
<li>map vs flatmap (alchemist and cheese shredding analogy [<a href="http://www.reddit.com/r/androiddev/comments/2y8exc/what_is_the_difference_between_map_and_flatmap_in/">reddit</a>])</li>
</ul>
</li>
<li>Observable.zip [<a href="http://reactivex.io/documentation/operators/zip.html">reactivex.io</a>]</li>
<li>Observable.combineLatest [<a href="http://reactivex.io/documentation/operators/combinelatest.html">reactivex.io</a>]</li>
<li>Observable. switchMap [<a href="http://reactivex.io/documentation/operators/images/switchMap.png">reactivex.io</a>]</li>
<li>Observable.distinctUntilChanged [<a href="http://rxmarbles.com/#distinctUntilChanged">reactivex.io</a>]</li>
<li>Observable.lift explanation [<a href="https://github.com/ReactiveX/RxJava/wiki/Implementing-Your-Own-Operators">reactivex.io</a>]</li>
<li>Observable.compose
<ul>
<li>Don’t break the chain (using compose) [<a href="http://blog.danlew.net/2015/03/02/dont-break-the-chain/">blog.danlew.net</a>]</li>
</ul>
</li>
<li>Observable.filter [<a href="http://reactivex.io/documentation/operators/filter.html">reactivex.io</a>]</li>
<li>Observable.take [<a href="https://github.com/ReactiveX/RxJava/wiki/Filtering-Observables#take">reactivex.io</a>]</li>
<li>subscribeOn vs observeOn [<a href="http://stackoverflow.com/questions/7579237/whats-the-difference-between-subscribeon-and-observeon">stackoverflow.com</a>]</li>
<li>Understanding debounce, buffer, debouncedBuffer [<a href="http://nerds.weddingpartyapp.com/tech/2015/01/05/debouncedbuffer-used-in-rxbus-example/">nerds.weddingpartyapp.com</a>]</li>
</ul>
<h3>RxJava Components:</h3>
<ul>
<li>Subjects: when is it appropriate to use [.net but still applies] [[davesexton.com] <a href="http://davesexton.com/blog/post/To-Use-Subject-Or-Not-To-Use-Subject.aspx">19</a>]</li>
<li>Implementing an event bus using RxJava [<a href="http://nerds.weddingpartyapp.com/tech/2014/12/24/implementing-an-event-bus-with-rxjava-rxbus/">nerds.weddingpartyapp.com</a>]</li>
<li>RxJava plugins [<a href="https://github.com/ReactiveX/RxJava/wiki/Plugins">github.com</a>]
<ul>
<li>RxJavaDebug plugin - for hooking to start/end/error [<a href="https://github.com/ReactiveX/RxJavaDebug">github.com</a>]</li>
</ul>
</li>
<li>.toBlocking() [<a href="http://reactivex.io/RxJava/javadoc/rx/Observable.html#toBlocking%28%29">reactivx.io</a>]</li>
<li>Composite Subscriptions [<a href="http://reactivex.io/RxJava/javadoc/rx/subscriptions/CompositeSubscription.html">reactivex.io</a>]</li>
</ul>
<h3>Retrolambda</h3>
<ul>
<li>Retrolambda library [<a href="https://github.com/orfjackal/retrolambda">github.com</a>]</li>
<li>Retrolambda gradle plugin [<a href="https://github.com/evant/gradle-retrolambda">github.com</a>]</li>
<li>Common Issue with Retrolambda (NoClassDefFoundError) [<a href="https://github.com/orfjackal/retrolambda/issues/37">github.com</a>]</li>
</ul>
<h3>Hot  vs Cold observables - From the RxJs wiki [<a href="https://github.com/Reactive-Extensions/RxJS/blob/master/doc/gettingstarted/creating.md#cold-vs-hot-observables">github.com</a>]</h3>
<ul>
<li>uses js instead of java, but concepts are the same and this is the best explanation I’ve found so far.</li>
</ul>
<h3>RxJava wiki on Backpressure [<a href="https://github.com/ReactiveX/RxJava/wiki/Backpressure">github.com</a>]:</h3>
<ul>
<li>Ring buffer size: <code>System.setProperty(&quot;rx.ring-buffer.size&quot;, &quot;128&quot;);</code></li>
<li>Issue with changing buffer ring size [<a href="https://github.com/ReactiveX/RxJava/issues/1820">github.com</a>]</li>
<li>It’s 16 on Android, down from 1024 originally. :P So it’s actually 64x smaller.</li>
</ul>
<h2>Awesome picks:</h2>
<p>Dan Lew:</p>
<ul>
<li>Simple Made Easy (talk by Rich Hickey creator of Clojure) [<a href="http://www.infoq.com/presentations/Simple-Made-Easy">infohq</a>]</li>
<li>Victor by Trello (SVG assets) [<a href="https://github.com/trello/victor">github.com</a>]</li>
</ul>
<p>Donn:</p>
<ul>
<li>Realm Object Database [<a href="http://realm.io/">realm.io</a>]</li>
</ul>
<p>Kaushik:</p>
<ul>
<li>Therapeutic Refactoring (talk by Katrina Owen) [<a href="https://www.youtube.com/watch?v=J4dlF0kcThQ">youtube.com</a>]</li>
</ul>
<h2>Contact</h2>
<h3>Dan Lew</h3>
<ul>
<li>@danlew42 [<a href="https://twitter.com/danlew42">twitter.com</a>]</li>
<li>Dan Lew’s blog [<a href="http://blog.danlew.net/">danlew.net</a>]</li>
</ul>
<h3>Donn Felker</h3>
<ul>
<li>@donnfelker [<a href="https://twitter.com/donnfelker">twitter.com</a>]</li>
<li><a href="http://www.donnfelker.com/">donnfelker.com</a></li>
</ul>
<h3>Kaushik Gopal</h3>
<ul>
<li>@kaushikgopal [<a href="https://twitter.com/kaushikgopal/">twitter.com</a>]</li>
<li><a href="http://kaush.co/">kaush.co</a></li>
</ul>
]]></content:encoded>
      <enclosure length="26280478" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/6069a8db-63b9-4032-a818-d6902fa118cd/ep-4-fragmented_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>004: The RxJava show with Dan Lew (Part 2)</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/6069a8db-63b9-4032-a818-d6902fa118cd/3000x3000/1454950648-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:54:42</itunes:duration>
      <itunes:summary>In this episode of Fragmented, Donn and Kaushik continue their conversation with Dan Lew on RxJava. In the final part of this 2 part series, they talk about many useful RxJava operators and other intricacies of using RxJava in Android.</itunes:summary>
      <itunes:subtitle>In this episode of Fragmented, Donn and Kaushik continue their conversation with Dan Lew on RxJava. In the final part of this 2 part series, they talk about many useful RxJava operators and other intricacies of using RxJava in Android.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>4</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">https://www.signalleaf.com/podcasts/Fragmented/5509d973ac097b0300105406</guid>
      <title>003: The RxJava show with Dan Lew (Part 1)</title>
      <description><![CDATA[<p>In this episode of Fragmented, Donn and Kaushik interview Dan Lew - druid of RxJava &amp; RxAndroid! In part 1 of this 2 part series, we find out more about the one they call Dan Lew. We ask Dan how he started off as a developer, how he stays on top of development, where he draws inspiration from for amazing Android development and much more. We then begin disarming the glorious beast that is RxJava touching upon it’s benefits and begin discussion of some common operators.</p>
<h2>Show Notes</h2>
<h3>Dan’s open source contributions:</h3>
<ul>
<li><a href="https://github.com/dlew/joda-time-android">Joda-Time Android</a> [github]
<ul>
<li><a href="https://www.youtube.com/watch?v=-5wpm-gesOY">Why developers hate Timezones [youtube]</a></li>
</ul>
</li>
<li><a href="https://github.com/dlew/android-gfycat">Gfycat</a> [github]</li>
<li><a href="https://github.com/trello/victor">Victor</a> by Trello  [github]</li>
</ul>
<h3>Staying on top of Android Development:</h3>
<ul>
<li><a href="http://androidweekly.net/">Android Weekly</a></li>
<li><a href="http://www.androiddevdigest.com/">Android Dev Digest</a></li>
<li>Google RSS reader app -  <a href="https://play.google.com/store/apps/details?id=com.noinnion.android.greader.reader&amp;hl=en">gReader</a></li>
<li><a href="http://www.reddit.com/r/androiddev/">androiddev</a> [reddit]</li>
<li>Best Book on learning Java  <a href="http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683?tag=httpkaushco-20">[Effective Java: Joshua Bloch]</a></li>
</ul>
<h3>Dan’s  favorite apps:</h3>
<ul>
<li><a href="https://play.google.com/store/apps/details?id=ch.bitspin.timely&amp;hl=en">Timely</a></li>
<li><a href="https://play.google.com/store/apps/details?id=au.com.shiftyjelly.pocketcasts&amp;hl=en">Pocket Casts</a></li>
<li><a href="https://play.google.com/store/apps/details?id=reddit.news&amp;hl=en">Reddit News</a></li>
<li><a href="https://play.google.com/store/apps/details?id=net.nurik.roman.muzei&amp;hl=en">Muzei</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.noinnion.android.greader.reader&amp;hl=en">gReader</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.linkbubble.playstore&amp;hl=en">Link Bubble</a></li>
<li>For more inspiration:  <a href="http://androidniceties.tumblr.com/">Android Niceties</a></li>
</ul>
<h3>Android Games that Dan plays</h3>
<ul>
<li><a href="https://play.google.com/store/apps/details?id=vo.threes.exclaim">Threes!</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.magmafortress.hoplite">Hoplite</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.concreterose.wordiest&amp;hl=en">Wordiest</a></li>
</ul>
<h3>Working Remotely:</h3>
<ul>
<li><a href="https://trello.com/">Trello</a></li>
<li><a href="https://slack.com/">Slack</a></li>
<li><a href="http://hueniverse.com/2015/02/23/notes-on-managing-remote-teams/">Notes by Eran Hammer [hueniverse.com]</a></li>
</ul>
<h3>Getting started with  RxJava:</h3>
<ul>
<li><a href="http://blog.danlew.net/2014/09/15/grokking-rxjava-part-1/">Dan Lews RxJava Series</a></li>
<li><a href="http://nerds.weddingpartyapp.com/tech/2014/09/15/learning-rxjava-with-android-by-example/">Learning RxJava with Android by example</a> [nerds.weddingpartyapp.com]</li>
<li><a href="https://github.com/kaushikgopal/Android-RxJava">Android-RxJava [github.com/kaushikgopal]</a></li>
<li><a href="https://gist.github.com/staltz/868e7e9bc2a7b8c1f754">Intro to Rx you’ve been missing </a>[gist]</li>
</ul>
<h3>Rx</h3>
<ul>
<li><a href="https://msdn.microsoft.com/en-us/data/gg577609.aspx">Rx - Reactive Extensions by Microsoft</a></li>
<li><a href="http://reactivex.io/">ReactiveX [official page for Reactive Extensions]</a></li>
<li><a href="https://github.com/ReactiveX/RxAndroid">RxAndroid</a></li>
</ul>
]]></description>
      <pubDate>Wed, 18 Mar 2015 08:26:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode of Fragmented, Donn and Kaushik interview Dan Lew - druid of RxJava &amp; RxAndroid! In part 1 of this 2 part series, we find out more about the one they call Dan Lew. We ask Dan how he started off as a developer, how he stays on top of development, where he draws inspiration from for amazing Android development and much more. We then begin disarming the glorious beast that is RxJava touching upon it’s benefits and begin discussion of some common operators.</p>
<h2>Show Notes</h2>
<h3>Dan’s open source contributions:</h3>
<ul>
<li><a href="https://github.com/dlew/joda-time-android">Joda-Time Android</a> [github]
<ul>
<li><a href="https://www.youtube.com/watch?v=-5wpm-gesOY">Why developers hate Timezones [youtube]</a></li>
</ul>
</li>
<li><a href="https://github.com/dlew/android-gfycat">Gfycat</a> [github]</li>
<li><a href="https://github.com/trello/victor">Victor</a> by Trello  [github]</li>
</ul>
<h3>Staying on top of Android Development:</h3>
<ul>
<li><a href="http://androidweekly.net/">Android Weekly</a></li>
<li><a href="http://www.androiddevdigest.com/">Android Dev Digest</a></li>
<li>Google RSS reader app -  <a href="https://play.google.com/store/apps/details?id=com.noinnion.android.greader.reader&amp;hl=en">gReader</a></li>
<li><a href="http://www.reddit.com/r/androiddev/">androiddev</a> [reddit]</li>
<li>Best Book on learning Java  <a href="http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683?tag=httpkaushco-20">[Effective Java: Joshua Bloch]</a></li>
</ul>
<h3>Dan’s  favorite apps:</h3>
<ul>
<li><a href="https://play.google.com/store/apps/details?id=ch.bitspin.timely&amp;hl=en">Timely</a></li>
<li><a href="https://play.google.com/store/apps/details?id=au.com.shiftyjelly.pocketcasts&amp;hl=en">Pocket Casts</a></li>
<li><a href="https://play.google.com/store/apps/details?id=reddit.news&amp;hl=en">Reddit News</a></li>
<li><a href="https://play.google.com/store/apps/details?id=net.nurik.roman.muzei&amp;hl=en">Muzei</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.noinnion.android.greader.reader&amp;hl=en">gReader</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.linkbubble.playstore&amp;hl=en">Link Bubble</a></li>
<li>For more inspiration:  <a href="http://androidniceties.tumblr.com/">Android Niceties</a></li>
</ul>
<h3>Android Games that Dan plays</h3>
<ul>
<li><a href="https://play.google.com/store/apps/details?id=vo.threes.exclaim">Threes!</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.magmafortress.hoplite">Hoplite</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.concreterose.wordiest&amp;hl=en">Wordiest</a></li>
</ul>
<h3>Working Remotely:</h3>
<ul>
<li><a href="https://trello.com/">Trello</a></li>
<li><a href="https://slack.com/">Slack</a></li>
<li><a href="http://hueniverse.com/2015/02/23/notes-on-managing-remote-teams/">Notes by Eran Hammer [hueniverse.com]</a></li>
</ul>
<h3>Getting started with  RxJava:</h3>
<ul>
<li><a href="http://blog.danlew.net/2014/09/15/grokking-rxjava-part-1/">Dan Lews RxJava Series</a></li>
<li><a href="http://nerds.weddingpartyapp.com/tech/2014/09/15/learning-rxjava-with-android-by-example/">Learning RxJava with Android by example</a> [nerds.weddingpartyapp.com]</li>
<li><a href="https://github.com/kaushikgopal/Android-RxJava">Android-RxJava [github.com/kaushikgopal]</a></li>
<li><a href="https://gist.github.com/staltz/868e7e9bc2a7b8c1f754">Intro to Rx you’ve been missing </a>[gist]</li>
</ul>
<h3>Rx</h3>
<ul>
<li><a href="https://msdn.microsoft.com/en-us/data/gg577609.aspx">Rx - Reactive Extensions by Microsoft</a></li>
<li><a href="http://reactivex.io/">ReactiveX [official page for Reactive Extensions]</a></li>
<li><a href="https://github.com/ReactiveX/RxAndroid">RxAndroid</a></li>
</ul>
]]></content:encoded>
      <enclosure length="26846236" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/f6b9015d-0cc4-4752-a085-13799c3fc887/ep-3-fragmented_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>003: The RxJava show with Dan Lew (Part 1)</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/f6b9015d-0cc4-4752-a085-13799c3fc887/3000x3000/1454950646-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:55:53</itunes:duration>
      <itunes:summary>In this episode of Fragmented, Donn and Kaushik interview Dan Lew - druid of RxJava &amp; RxAndroid! In part 1 of this 2 part series, we find out more about the one they call Dan Lew. We ask Dan how he started off as a developer, how he stays on top of development, where he draws inspiration from for amazing Android development and much more. We then begin disarming the glorious beast that is RxJava touching upon it’s benefits and begin discussion of some common operators.</itunes:summary>
      <itunes:subtitle>In this episode of Fragmented, Donn and Kaushik interview Dan Lew - druid of RxJava &amp; RxAndroid! In part 1 of this 2 part series, we find out more about the one they call Dan Lew. We ask Dan how he started off as a developer, how he stays on top of development, where he draws inspiration from for amazing Android development and much more. We then begin disarming the glorious beast that is RxJava touching upon it’s benefits and begin discussion of some common operators.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>3</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">https://www.signalleaf.com/podcasts/Fragmented/54f60eec1773e70300d38bfc</guid>
      <title>002: Android Studio</title>
      <description><![CDATA[<p>In this episode of Fragmented, Donn and Kaushik talk about the official IDE for Android development – “Android Studio”. Why should you care about your IDE? Is Android Studio really open source? What are some of the advantages of using Android Studio? How can you customize and tweak Android Studio so you take your android development game to the next level? Listen to this episode and find out. The awesome picks for this episode are particularly awesome too.</p>
<h2>Shownotes</h2>
<h3>Android Studio (official IDE):</h3>
<ul>
<li><a href="http://android-developers.blogspot.com/2013/05/android-studio-ide-built-for-android.html">Google announces Android Studio</a> [Google I/O 2013]</li>
<li><a href="http://developer.android.com/sdk/index.html">Developer frontpage – Android Studio is the official editor</a> [developer.android.com]</li>
</ul>
<h3>“Open source-ness” of Android Studio:</h3>
<ul>
<li><a href="http://www.jetbrains.org/pages/viewpage.action?pageId=983889">IntelliJ open source platform for building IDEs</a> [jetbrains.org]</li>
<li><a href="http://developer.android.com/tools/sdk/eclipse-adt.html">Eclipse plugin ADT</a> [developer.android.com]</li>
<li><a href="http://tools.android.com/build/studio">Build Android Studio from command line [tools.android.com]</a></li>
<li><a href="https://github.com/JakeWharton/u2020">Jake Wharton’s u2020 Demo App</a></li>
</ul>
<h3>Environment customizations:</h3>
<ul>
<li><a href="https://github.com/kaushikgopal/jetbrains_env">Kaushik’s Android studio environment</a> (codestyle, livetemplates, keymap etc) [github.com]</li>
<li><a href="http://chriskempson.github.io/base16/#ocean">Chris Kempson – original theme</a> [chriskempson.com]</li>
</ul>
<h3>Annotation Magic:</h3>
<ul>
<li><a href="http://anupcowkur.com/posts/a-look-at-android-support-annotations/">A look at Android support animations</a> [anupcowkur.com]</li>
<li><a href="http://tools.android.com/tech-docs/support-annotations">Support Annotations</a> [tools.android.com]</li>
<li><a href="http://blog.jetbrains.com/idea/2013/10/better-control-flow-analysis-with-contract-annotations-and-intellij-idea-13/">Contract Annotations</a> [blog.jetbrains.com]</li>
<li>Tools prefix:  <a href="https://medium.com/sebs-top-tips/tools-of-the-trade-part-2-b91271892d10">Tools of the trade by Sebastiano Poggi</a></li>
</ul>
<h3>Learning Android Studio resources:</h3>
<ul>
<li>Donn Felker Android Studio Tips:
<ul>
<li><a href="http://www.donnfelker.com/androidstudio/">Screencasts on Android Studio</a></li>
<li><a href="http://www.donnfelker.com/wp-content/uploads/AndroidDeveloperTools-Chapter6.pdf">Android Tools Book – Android Studio Chapter (FREE)</a></li>
</ul>
</li>
<li>Philippe Breault [developerphil.com]:
<ul>
<li><a href="http://www.developerphil.com/android-studio-tips-of-the-day-roundup-1/">Android studio tips roundup #1</a></li>
<li><a href="http://www.developerphil.com/android-studio-tips-of-the-day-roundup-2/">Android studio tips roundup #2</a></li>
<li><a href="http://www.developerphil.com/android-studio-tips-of-the-day-roundup-3/">Android studio tips roundup #3</a></li>
<li><a href="http://www.developerphil.com/android-studio-tips-of-the-day-roundup-4/">Android studio tips roundup #4</a></li>
<li><a href="http://www.developerphil.com/android-studio-tips-of-the-day-roundup-5/">Android studio tips roundup #5</a></li>
</ul>
</li>
</ul>
<h3>The most important things on the internet:</h3>
<ul>
<li><a href="http://www.washingtonpost.com/news/post-nation/wp/2015/02/26/breaking-two-llamas-are-on-the-run/">Llamas in Arizona</a></li>
<li><a href="http://www.nytimes.com/interactive/2015/02/28/science/white-or-blue-dress.html">Blue Black White Gold dresses</a></li>
</ul>
<h3>Awesome picks:</h3>
<ul>
<li><a href="https://code.facebook.com/posts/393927910787513/stetho-a-new-debugging-platform-for-android/">Stetho</a></li>
<li></li>
</ul>
<p><a href="http://blog.danlew.net/2014/09/15/grokking-rxjava-part-1/">Dan Lew’s RxJava Series</a></p>
<ul>
<li></li>
</ul>
<p>Rounded ImageView:</p>
<ul>
<li><a href="https://gist.github.com/kaushikgopal/6c25bc9470bbd11fcf7c">Rounded Bitmap drawable usage</a>[gist]</li>
<li><a href="http://evel.io/2013/07/21/rounded-avatars-in-android/">Evelio blog post</a> on different approaches to creating rounded image views</li>
<li><a href="https://chris.banes.me/">Chris Banes</a> For questions, comments or suggestions you can reach us at</li>
</ul>
<p><a href="http://www.twitter.com/donnfelker">@donnfelker</a> and  <a href="http://www.twitter.com/kaushikgopal">@kaushikgopal</a></p>
]]></description>
      <pubDate>Tue, 3 Mar 2015 18:41:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>In this episode of Fragmented, Donn and Kaushik talk about the official IDE for Android development – “Android Studio”. Why should you care about your IDE? Is Android Studio really open source? What are some of the advantages of using Android Studio? How can you customize and tweak Android Studio so you take your android development game to the next level? Listen to this episode and find out. The awesome picks for this episode are particularly awesome too.</p>
<h2>Shownotes</h2>
<h3>Android Studio (official IDE):</h3>
<ul>
<li><a href="http://android-developers.blogspot.com/2013/05/android-studio-ide-built-for-android.html">Google announces Android Studio</a> [Google I/O 2013]</li>
<li><a href="http://developer.android.com/sdk/index.html">Developer frontpage – Android Studio is the official editor</a> [developer.android.com]</li>
</ul>
<h3>“Open source-ness” of Android Studio:</h3>
<ul>
<li><a href="http://www.jetbrains.org/pages/viewpage.action?pageId=983889">IntelliJ open source platform for building IDEs</a> [jetbrains.org]</li>
<li><a href="http://developer.android.com/tools/sdk/eclipse-adt.html">Eclipse plugin ADT</a> [developer.android.com]</li>
<li><a href="http://tools.android.com/build/studio">Build Android Studio from command line [tools.android.com]</a></li>
<li><a href="https://github.com/JakeWharton/u2020">Jake Wharton’s u2020 Demo App</a></li>
</ul>
<h3>Environment customizations:</h3>
<ul>
<li><a href="https://github.com/kaushikgopal/jetbrains_env">Kaushik’s Android studio environment</a> (codestyle, livetemplates, keymap etc) [github.com]</li>
<li><a href="http://chriskempson.github.io/base16/#ocean">Chris Kempson – original theme</a> [chriskempson.com]</li>
</ul>
<h3>Annotation Magic:</h3>
<ul>
<li><a href="http://anupcowkur.com/posts/a-look-at-android-support-annotations/">A look at Android support animations</a> [anupcowkur.com]</li>
<li><a href="http://tools.android.com/tech-docs/support-annotations">Support Annotations</a> [tools.android.com]</li>
<li><a href="http://blog.jetbrains.com/idea/2013/10/better-control-flow-analysis-with-contract-annotations-and-intellij-idea-13/">Contract Annotations</a> [blog.jetbrains.com]</li>
<li>Tools prefix:  <a href="https://medium.com/sebs-top-tips/tools-of-the-trade-part-2-b91271892d10">Tools of the trade by Sebastiano Poggi</a></li>
</ul>
<h3>Learning Android Studio resources:</h3>
<ul>
<li>Donn Felker Android Studio Tips:
<ul>
<li><a href="http://www.donnfelker.com/androidstudio/">Screencasts on Android Studio</a></li>
<li><a href="http://www.donnfelker.com/wp-content/uploads/AndroidDeveloperTools-Chapter6.pdf">Android Tools Book – Android Studio Chapter (FREE)</a></li>
</ul>
</li>
<li>Philippe Breault [developerphil.com]:
<ul>
<li><a href="http://www.developerphil.com/android-studio-tips-of-the-day-roundup-1/">Android studio tips roundup #1</a></li>
<li><a href="http://www.developerphil.com/android-studio-tips-of-the-day-roundup-2/">Android studio tips roundup #2</a></li>
<li><a href="http://www.developerphil.com/android-studio-tips-of-the-day-roundup-3/">Android studio tips roundup #3</a></li>
<li><a href="http://www.developerphil.com/android-studio-tips-of-the-day-roundup-4/">Android studio tips roundup #4</a></li>
<li><a href="http://www.developerphil.com/android-studio-tips-of-the-day-roundup-5/">Android studio tips roundup #5</a></li>
</ul>
</li>
</ul>
<h3>The most important things on the internet:</h3>
<ul>
<li><a href="http://www.washingtonpost.com/news/post-nation/wp/2015/02/26/breaking-two-llamas-are-on-the-run/">Llamas in Arizona</a></li>
<li><a href="http://www.nytimes.com/interactive/2015/02/28/science/white-or-blue-dress.html">Blue Black White Gold dresses</a></li>
</ul>
<h3>Awesome picks:</h3>
<ul>
<li><a href="https://code.facebook.com/posts/393927910787513/stetho-a-new-debugging-platform-for-android/">Stetho</a></li>
<li></li>
</ul>
<p><a href="http://blog.danlew.net/2014/09/15/grokking-rxjava-part-1/">Dan Lew’s RxJava Series</a></p>
<ul>
<li></li>
</ul>
<p>Rounded ImageView:</p>
<ul>
<li><a href="https://gist.github.com/kaushikgopal/6c25bc9470bbd11fcf7c">Rounded Bitmap drawable usage</a>[gist]</li>
<li><a href="http://evel.io/2013/07/21/rounded-avatars-in-android/">Evelio blog post</a> on different approaches to creating rounded image views</li>
<li><a href="https://chris.banes.me/">Chris Banes</a> For questions, comments or suggestions you can reach us at</li>
</ul>
<p><a href="http://www.twitter.com/donnfelker">@donnfelker</a> and  <a href="http://www.twitter.com/kaushikgopal">@kaushikgopal</a></p>
]]></content:encoded>
      <enclosure length="54863903" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/351aa384-32e5-4a3e-a8a0-0a54d90279dd/ep-2-fragmented_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>002: Android Studio</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/351aa384-32e5-4a3e-a8a0-0a54d90279dd/3000x3000/1454950644-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>00:56:56</itunes:duration>
      <itunes:summary>In this episode of Fragmented, Donn and Kaushik talk about the official IDE for Android development – “Android Studio”. Why should you care about your IDE? Is Android Studio really open source? What are some of the advantages of using Android Studio? How can you customize and tweak Android Studio so you take your android development game to the next level? Listen to this episode and find out. The awesome picks for this episode are particularly awesome too.</itunes:summary>
      <itunes:subtitle>In this episode of Fragmented, Donn and Kaushik talk about the official IDE for Android development – “Android Studio”. Why should you care about your IDE? Is Android Studio really open source? What are some of the advantages of using Android Studio? How can you customize and tweak Android Studio so you take your android development game to the next level? Listen to this episode and find out. The awesome picks for this episode are particularly awesome too.</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>2</itunes:episode>
    </item>
    <item>
      <guid isPermaLink="false">https://www.signalleaf.com/podcasts/Fragmented/54e3a88ae73f2d0300d61c2e</guid>
      <title>001: Welcome &amp; Testing in Android</title>
      <description><![CDATA[<p>Welcome to the very first episode of Fragmented. Donn and Kaushik talk about why they started the podcast, the structure of the podcast and a little about who they are. The main topic for this episode is Testing! What are the benefits of testing, in general? Why does testing specifically help Android developers? What is the state of testing in Android and how does one test in Android?</p>
<h2>Shownotes</h2>
<ul>
<li><a href="http://caster.io/android/episode-1-android-testing-getting-started-with-espresso-2-0/?utm_source=fragmented&amp;utm_campaign=free">Free Getting Started with Espresso 2.0 Screencast</a></li>
<li><a href="http://tools.android.com/tech-docs/unit-testing-support">Unit testing support –  Android Tools site</a></li>
<li><a href="http://www.donnfelker.com/android-from-the-trenches/">Donn – Android from the trenches</a></li>
<li><a href="https://www.youtube.com/watch?v=-xQCNf_5NNM&amp;feature=youtu.be">Michael Bailey – (yogurtearl)</a> – espresso, spoon and wiremock</li>
<li><a href="http://mattlogan.me/decoupling-the-presenter">Matt Logan – decoupling the presenter</a></li>
<li><a href="http://blog.kaush.co/2015/01/11/interested-in-an-android-developer-focused-podcast/">KG – interested in an android developer podcast?</a></li>
<li><a href="http://everybodytests.blogspot.com/2012/11/uiautomatorjar-what-happened-when.html">UiAutomator – Junit and Monkeyrunner got drunk and hooked up</a></li>
<li><a href="http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052">Working Effectively With Legacy Code</a></li>
<li><a href="https://www.youtube.com/watch?v=z9quxZsLcfo#t=442">Kent Beck talking about TDD – [Youtube Is TDD Dead]</a></li>
<li><a href="https://code.google.com/p/android-test-kit/wiki/EspressoV2CheatSheet">Espresso 2.0 Cheat Sheet</a></li>
<li><a href="https://gist.github.com/JakeWharton/1c2f2cadab2ddd97f9fb">Jake Wharton – ActivityRule</a></li>
<li><a href="http://joel-costigliola.github.io/assertj/">AssertJ</a>  /  <a href="http://square.github.io/assertj-android/">AssertJ-Android</a></li>
<li><a href="http://xkcd.com/303/">XKCD – Compiling Comic</a></li>
<li><a href="http://martinfowler.com/articles/mocksArentStubs.html">Mocks Aren’t Stubs – Martin Fowler</a></li>
<li><a href="http://www.donnfelker.com/android-studio-espresso-2-0-classnotfoundexception/">ClassNotFoundExceptoin – Espresso 2.0 Dagger Issue</a></li>
</ul>
<h3>Testing Links</h3>
<ul>
<li><a href="http://developer.android.com/tools/testing/testing_android.html">Testing fundamentals</a></li>
<li><a href="https://code.google.com/p/android-test-kit/wiki/Espresso">Espresso</a></li>
<li><a href="http://www.robolectric.org/">Robolectric</a></li>
<li><a href="https://code.google.com/p/mockito/">Mockito</a></li>
<li><a href="http://square.github.io/spoon/">Spoon</a></li>
<li><a href="https://code.google.com/p/robotium/">Robotium</a></li>
<li><a href="http://www.androiddevdigest.com/">Android Dev Digest</a></li>
<li><a href="http://androidjobs.io/">AndroidJobs.IO</a>  </li>
</ul>
<p>Sample Android Testing Projects</p>
<ul>
<li><a href="https://github.com/googlesamples/android-testing">Google Samples</a></li>
</ul>
<h3>Awesome picks:</h3>
<ul>
<li><a href="http://devicelab.vanamco.com/">Device Lab</a></li>
<li><a href="http://www.google.com/fonts/specimen/Inconsolata">Inconsolata-</a>dz <a href="http://www.google.com/fonts/specimen/Inconsolata"> font for development</a></li>
<li><a href="http://www.fontpalace.com/font-details/Consolas/">Consolas font for development</a>   For questions, you can reach us at</li>
</ul>
<p><a href="http://www.twitter.com/donnfelker">@donnfelker</a> and  <a href="http://www.twitter.com/kaushikgopal">@kaushikgopal</a></p>
]]></description>
      <pubDate>Tue, 17 Feb 2015 10:38:00 +0000</pubDate>
      <author>contact@fragmentedpodcast.com (Spec)</author>
      <link>https://fragmentedpodcast.com/</link>
      <media:thumbnail height="720" url="https://image.simplecastcdn.com/images/ccc6d2cf-6189-418a-b3cd-e34585fdf7d3/2e927790-8a8e-44c8-a9d1-9764ad2990e3/banner-3000x1000-dark-social.jpg" width="1280"/>
      <content:encoded><![CDATA[<p>Welcome to the very first episode of Fragmented. Donn and Kaushik talk about why they started the podcast, the structure of the podcast and a little about who they are. The main topic for this episode is Testing! What are the benefits of testing, in general? Why does testing specifically help Android developers? What is the state of testing in Android and how does one test in Android?</p>
<h2>Shownotes</h2>
<ul>
<li><a href="http://caster.io/android/episode-1-android-testing-getting-started-with-espresso-2-0/?utm_source=fragmented&amp;utm_campaign=free">Free Getting Started with Espresso 2.0 Screencast</a></li>
<li><a href="http://tools.android.com/tech-docs/unit-testing-support">Unit testing support –  Android Tools site</a></li>
<li><a href="http://www.donnfelker.com/android-from-the-trenches/">Donn – Android from the trenches</a></li>
<li><a href="https://www.youtube.com/watch?v=-xQCNf_5NNM&amp;feature=youtu.be">Michael Bailey – (yogurtearl)</a> – espresso, spoon and wiremock</li>
<li><a href="http://mattlogan.me/decoupling-the-presenter">Matt Logan – decoupling the presenter</a></li>
<li><a href="http://blog.kaush.co/2015/01/11/interested-in-an-android-developer-focused-podcast/">KG – interested in an android developer podcast?</a></li>
<li><a href="http://everybodytests.blogspot.com/2012/11/uiautomatorjar-what-happened-when.html">UiAutomator – Junit and Monkeyrunner got drunk and hooked up</a></li>
<li><a href="http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052">Working Effectively With Legacy Code</a></li>
<li><a href="https://www.youtube.com/watch?v=z9quxZsLcfo#t=442">Kent Beck talking about TDD – [Youtube Is TDD Dead]</a></li>
<li><a href="https://code.google.com/p/android-test-kit/wiki/EspressoV2CheatSheet">Espresso 2.0 Cheat Sheet</a></li>
<li><a href="https://gist.github.com/JakeWharton/1c2f2cadab2ddd97f9fb">Jake Wharton – ActivityRule</a></li>
<li><a href="http://joel-costigliola.github.io/assertj/">AssertJ</a>  /  <a href="http://square.github.io/assertj-android/">AssertJ-Android</a></li>
<li><a href="http://xkcd.com/303/">XKCD – Compiling Comic</a></li>
<li><a href="http://martinfowler.com/articles/mocksArentStubs.html">Mocks Aren’t Stubs – Martin Fowler</a></li>
<li><a href="http://www.donnfelker.com/android-studio-espresso-2-0-classnotfoundexception/">ClassNotFoundExceptoin – Espresso 2.0 Dagger Issue</a></li>
</ul>
<h3>Testing Links</h3>
<ul>
<li><a href="http://developer.android.com/tools/testing/testing_android.html">Testing fundamentals</a></li>
<li><a href="https://code.google.com/p/android-test-kit/wiki/Espresso">Espresso</a></li>
<li><a href="http://www.robolectric.org/">Robolectric</a></li>
<li><a href="https://code.google.com/p/mockito/">Mockito</a></li>
<li><a href="http://square.github.io/spoon/">Spoon</a></li>
<li><a href="https://code.google.com/p/robotium/">Robotium</a></li>
<li><a href="http://www.androiddevdigest.com/">Android Dev Digest</a></li>
<li><a href="http://androidjobs.io/">AndroidJobs.IO</a>  </li>
</ul>
<p>Sample Android Testing Projects</p>
<ul>
<li><a href="https://github.com/googlesamples/android-testing">Google Samples</a></li>
</ul>
<h3>Awesome picks:</h3>
<ul>
<li><a href="http://devicelab.vanamco.com/">Device Lab</a></li>
<li><a href="http://www.google.com/fonts/specimen/Inconsolata">Inconsolata-</a>dz <a href="http://www.google.com/fonts/specimen/Inconsolata"> font for development</a></li>
<li><a href="http://www.fontpalace.com/font-details/Consolas/">Consolas font for development</a>   For questions, you can reach us at</li>
</ul>
<p><a href="http://www.twitter.com/donnfelker">@donnfelker</a> and  <a href="http://www.twitter.com/kaushikgopal">@kaushikgopal</a></p>
]]></content:encoded>
      <enclosure length="64401670" type="audio/mpeg" url="https://cdn.simplecast.com/audio/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/9d624e0d-8384-4422-8e11-036ccd394dde/ep-1-fragmented_tc.mp3?aid=rss_feed&amp;feed=LpAGSLnY"/>
      <itunes:title>001: Welcome &amp; Testing in Android</itunes:title>
      <itunes:author>Spec</itunes:author>
      <itunes:image href="https://image.simplecastcdn.com/images/20f350/20f35050-e836-44cd-8f7f-fd13e8cb2e44/9d624e0d-8384-4422-8e11-036ccd394dde/3000x3000/1454950642-artwork.jpg?aid=rss_feed"/>
      <itunes:duration>01:07:03</itunes:duration>
      <itunes:summary>Welcome to the very first episode of Fragmented. Donn and Kaushik talk about why they started the podcast, the structure of the podcast and a little about who they are. The main topic for this episode is Testing! What are the benefits of testing, in general? Why does testing specifically help Android developers? What is the state of testing in Android and how does one test in Android?</itunes:summary>
      <itunes:subtitle>Welcome to the very first episode of Fragmented. Donn and Kaushik talk about why they started the podcast, the structure of the podcast and a little about who they are. The main topic for this episode is Testing! What are the benefits of testing, in general? Why does testing specifically help Android developers? What is the state of testing in Android and how does one test in Android?</itunes:subtitle>
      <itunes:explicit>false</itunes:explicit>
      <itunes:episodeType>full</itunes:episodeType>
      <itunes:episode>1</itunes:episode>
    </item>
  </channel>
</rss>