Sinopse
The Fragmented Podcast is a podcast for Android Developers hosted by Donn Felker and Kaushik Gopal. Our goal is to help you become a better Android Developer. We chat about topics such as Testing, Dependency Injection, Android Patterns and Practices, useful libraries and much more. We will also be interviewing some of the top Android Developers out there. Subscribe now and join us on the journey of being an Android Developer.
Episódios
-
095 : Room Databases with Florina Muntenescu
05/09/2017 Duração: 56minIn 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! Show Notes Official docs Android Architecture Components Room migration docs runInTransaction api (which Florina recommended if you're executing more than one SQL statement and don't want multiple event fired) Google Samples - Android Architecutre Components Florina's posts Florina's Medium blog posts Room & RxJava 7 steps to Room Understanding migrations with Room Testing Room migrations 360|AnDev talks Room - Behind the scenes (Yigit Boyar) Data Persistence in Android: Room for Improvement Micellaneous questions about Room (that we chopped
-
094: Design Patternitis - 5 Tips to Help You
28/08/2017 Duração: 16minIn this episode of Fragmented, Donn talks about a common problem almost all software engineers face in their career - Design Patternitis. 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. Show Notes Head First Design Patterns Design Patterns - GoF Book Patterns of Enterprise Application Archicture - Fowloer Code Review StackExchange Code Mentor Sponsors This episode is made possible by Kobiton - Fragmented. They're giving listeners a 15-day FREE trial with no credit card required!
-
093: RxJava intervention with Dan Lew
14/08/2017 Duração: 52minIn this episode of Fragmented, our friend and RxJava paragon of the Android - Dan Lew, returns for a record 3 and 1/2 time. We'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 "shouldn't" 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? Show Notes Fragmented Ep.3 Dan Lew - The RxJava show (Part 1) Fragmented Ep.4 Dan Lew - The RxJava show (Part 2) Futures in Java (7) SqlBrite - lighteweight Rx wrapper for SQLiteOpenHelper Error handling with RxJava - Dan Lew OrmLite - Android Why not RxLifecycle Tweet quote - boilerplate is ok Introduction to Functional Reactive Programmin
-
092: Learning Kotlin - dealing with static-ness and (companion) objects costs
07/08/2017 Duração: 35minIn 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! Show Notes Static alternatives Package level functions (Kotlin docs) Static constants in Kotlin Object declarations Objects vs companion objects Cost of approaches Where do i put my constants in Kotlin Exploring Kotlin's hidden costs - Part 1 Kotlin discussion - best practices for top level declarations Look at the fragmentedpodcast.com for some code snippets Misc: Ep.89 - Learning Kotlin: Properties a first class language feature Kotlin in Action – Manning Publications Sponsors Rollbar - special offer: Bootstrap plan free for 90 days Contact @fragmente
-
091 : Decompress - Reddit AMA highlights, package by feature not layer and testing!
24/07/2017 Duração: 54minIn 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: Show Notes 360 | AnDev 360|AnDev 045: Bluetooth (LE) with Dave (devunwired) Smith 059: Chiu-Ki Chan explains Mocking and Stubbing with Mockito AMA Reddit AMA - complete reddit thread Alarm Manager or JobScheduler thread - reddit thread Android Priority Job Queue - Yigit Android Job (Evernote) JobScheduler - Android Fragment backstack manager thread - reddit thread DF Tweet thread on using Fragments Soft keyboard API shortcomings - reddit thread SO question 1 SO question 2 SO question 3 SO question 4 Night light on Nexus 6P - reddit thread Flux software Sharp device: 120hz refresh rat
-
090: Make your apps instant with Zarah Dominguez
17/07/2017 Duração: 01h01minAt 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 "Domain" 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! Show Notes Instant apps - official page Domain (Zarah's company) Making the Domain Android app "Instant" Android Instant Apps, step-by-step: how Vimeo went about it IO'17 Fireside chat with 3rd party partner who implemented Instant Apps Google samples repository Sponsors Rollbar - special offer: Bootstrap plan free for 90 days Contact @zarahjutz [twitter.com] @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe
-
089: Learning Kotlin - Properties a first class language feature
10/07/2017 Duração: 23minIn 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). "Properties" 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: Direct download Shownotes: Kotlin docs - Properties and Fields Kotlin in Action - Manning Publications java.util.Calendar Mutable vals in Kotlin - Dan Lew Contact @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe
-
088: Offensive programming
03/07/2017 Duração: 58minIn this episode of Fragmented we talk to our friend Piwai from Square. 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 "offensive programming" which has helped him a lot with his Android development. It's good stuff and we hope you enjoy the show. Show Notes Defensive programming Py's libraries: AndroidAnnotations LeakCanary Misc resources: Luhn check - algorithm Debouncing in general Debounce operator in RxJava Advocating against Android Fragments Pending touches and UI event: Cancel pending touches DebouncingOnClickListener (RxBindings) Py's talk - All apps shall crash Contact @piwai [twitter.com] @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe
-
087: Effective Java - Item #16: Favor Composition over Inheritance
19/06/2017 Duração: 19minIn 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. Show Notes Effective Java Book Contact @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]
-
086: Working Effectively With Legacy Code
12/06/2017 Duração: 27minIn 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. Show Notes Working Effectively with Legacy Code Book Sponsor Rollbar Contact @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]
-
085: Casual Kotlin conversation with Dan Kim
05/06/2017 Duração: 01h02minIn 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. 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! Show Notes Basecamp blog - Signal vs. Noise Jake Wharton - Using project Kotlin for Android Fragmented - Ep 20 with Hadi (spl. mention shownotes) Dan Lew - Mutable vals in Kotlin Kotlin idioms Kotlin - coding conventions kapt - Annotation processing for Kotlin Kotlin website Kotlin website (source) Kotlin view (binding) libs Kotlin Android extensions Kotterknife Anko Synthetic properties Resour
-
084: Kaush and Donn go to Google IO 2017
22/05/2017 Duração: 01h31minThis 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. Show Notes Dan Kim (Basecamp) @dankim or [email protected] Vysor app Mark Allison - being brave with the O preview Patryk Poborca (Kozio Digital) @patrykpoborca Trello app Jerrell Mardis (Salesforce) @jerrellmardis Robinhood app Android architecture components talk Annyce Davis (Offgrid Electric) @brwngrldev Forest app React Native: Building Mobile apps Zac Sweers (Uber) @pandanomic YouTube TV app Slack app Matt Kranzler (Salesforce) @mattkranzler Flamingo app Roberto Orgiu (Caster) @_tiwiz Christina Lee (Pinterest) @RunChristinaRun Christina's Fundraiser - Running across America Robinhood app Talk at IO - Life is Great and Everything Will Be Ok, Kotlin is Here Hugo Visser (Little Robots) @botteaap or +HugoVisser Android APT Ra
-
083: Learning the basics of functional programing with Anup Cowkur
15/05/2017 Duração: 53minRxJava 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 "pure" functional languages. He breaks down some of the basic concepts, explaining the different terms along the way. Download directly Show Notes Gordon Moore & Moore's law Rich Hickey on Clojure's Features and Implementation PCollections - persistent Java collections library Functional languages: Elixir Elm Scala Lisp Haskell Erlang Resources Anup's multi part series on functional programming The Context podcast - Functional programming with Paco Estevez Anjana Vakil: Learning Functional Programming with JavaScript - JSUnconf 2016 Learning functional programming and compositional software techniques in JavaScript - Eric Elliot Sponsors Rollbar - special offer: Bootstrap plan free for 90 days Contact @anupcowkur [twitter.com] @fragmentedcast [twitter.com]
-
082: Airbnb's Gabriel tells us how to animate with Lottie
08/05/2017 Duração: 01h02minIt'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. Show Notes Lottie for Android (github) Bodymovin (github) Install via Adobe cloud extensions lottiefiles.com - sample Lottie animations Using lottie - example snippets Lotte Reiniger- the animator Sponsors Rollbar - special offer: Bootstrap plan free for 90 days Contact @gpeal8 or lottie@airbnb @fragmentedcast @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe
-
081: Talking Android Things with Rebecca Franks
01/05/2017 Duração: 54minIt 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. Show Notes Ep 42 - Google IO episode Rebecca's blog posts: Distributed Piano with Android Things Electricity Monitoring app with Android Things Hardware basics for the Software Engineer Android Things Developer Kits Arduino Starter Kit (includes the h/w book she recommends) Android Things - official github repo Android things Contrib drivers - (e.g. button gradle dependency) Sponsors Kobiton Contact @riggaroo and riggaroo.co.za @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe
-
080: 10 Books Android developers should read
17/04/2017 Duração: 54minIn 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. Show Notes Effective Java - Joshua Bloch Effective Java Items (Fragmented fragments) Working effectively with legacy code - Michael Feathers Head first Design Patterns Don't make me think - Steve Krug, 3rd edition Java Concurrency in Practice XUnit testing patterns Website xunitpatterns.com Patterns of Enterprise Application Architecture - Martin Fowler Javascript the good parts - Douglas Crockford Gary Bernhardt - WAT Clean Code - Robert.C.Martin Clean Code: Writing code for humans (Puralsight) Coders at Work - Peter Seibel Honorable mentions Release it Design Patterns: Elements of Reusable Object-Oriented Software (Gang of Four) Pragmatic Programmer CODE - The Hidden Language of Computer Hardware and Software
-
079: Interview with Etienne Caron
10/04/2017 Duração: 55minHave 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. Show Notes Shopify Engineering Blog (VR) Demoscene Save a cat from a skyscraper (VR game) Rajawali - Android OpenGL engine Build your first Google VR app in 10 minutes : caster.io course developer docs on Google VR Unity game engine Vulkan API (open GL) Project Rider - C# IDE Shadertoy.com OpenGL ES Apple docs Learn OpenGL ES.com Contact @kanawish [twitter.com] @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe
-
078: Ten Testing Strategies with Michael Bailey
03/04/2017 Duração: 43minIn 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. The Ten Tips Use Espresso for functional/integration testing Mock data and API endpoints to keep tests hermetic Utilize JUnit JVM Tests and patterns for a fast dev cycle Utilize a git branching strategy and utilize pull requests (PR's) for code reviews Use CI to run the tests and provide constant feedback Speed up testing and ease of testing with shell helpers and helper classes for testing Cloud Testing Services Mutation Testing Thoughts on code coverage & value ba
-
077: Chatting ADB with Genymotion's Eyal Lezmy
20/03/2017 Duração: 54minToday 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. Show Notes Genymotion ADB - Android Debug Bridge Droidcon NYC - ADB, Break On Through To the Other Side HTC Sooner (juicy non-developer article alert) pidcat (adb logcat tool) Phillipe's ADB IDEA plugin Caster IO - Enabling Fingerprint on the Android emulator helpful commands adb shell input text "keyboard text" adb exec-out run-as package.name cat databases/file > file adb shell "run-as package.name chmod 666 /data/data/package.name/databases/file" Sponsors Rollbar - special offer: Bootstrap plan free for 90 days Contact @eyal_lezmy [twitter.com] @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIs
-
076: Taming the activity lifecycle with Kristin Marsicano
13/03/2017 Duração: 52minIn 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. Show Notes Android programming : The Big Nerd Ranch Guide Activities in the Wild: Kristin at 360AnDev Kristin's Lifecycle diagram (and slides) Notes on opportune moments to do "stuff" in the Android lifecycle Kristin's follow up blog post to the Activity lifecycle Sponsors Rollbar - special offer: Bootstrap plan free for 90 days Contact @kristinmars [twitter.com] @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe