Fragmented - Android Developer Podcast

  • Autor: Vários
  • Narrador: Vários
  • Editora: Podcast
  • Duração: 181:06:30
  • Mais informações

Informações:

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

  • 162: Catching up on Google IO 2019

    27/05/2019 Duração: 52min

    Shownotes Digital trends: Comparing Pixel 2, 3 and 3A Google Activity tracking Google Activity tracking Controls Flutter for Web New navigation paradigm in Android Q What's new in Android Deveopment Tools - Torr's IO talk Contact Discord chat or @fragmentedcast or our Youtube channel @donnfelker and donnfelker (on Instagram) @kaushikgopal and kaushikgopal (on Instagram) Sponsors

  • 161: Machine Learning on Android with ML Kit and TensorFlow with Dan Jarvis

    20/05/2019 Duração: 59min

    In this show, Donn talks with Dan Jarvis about Machine Learning on Android with ML Kit and Tensor flow. 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. 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. They wrap up the show with some examples of what you could build and some great resources to get you started. Enjoy Shownotes What Can Machine Learning Do? ML Kit ML Kit Demo Video ML Kit Quickstart Image Labeling Example Custom Models How Does Prisma Work? Cucumber Example Tensorflow Demo Apps Inside AI Newsletter TensorFlow Lite TensorFlow Lite (TF Dev Summit '19) - [VIDEO] Custom On-Device ML Models with Learn2Compress Microcontoller Support Face Generation DroidCon NYC Applied Tensorflow iN Andr

  • 160: Increase App Engagement with Android Q

    13/05/2019 Duração: 11min

    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. Why? 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. Enjoy. Shownotes Android Q Features Sponsors

  • 159: Improve Your App with the Android Material Components (feat. Cameron Ketcham & Connie Shi)

    06/05/2019 Duração: 52min

    In this show, Donn and Kaushik talk to Cameron Ketcham and Connie Shi from the Android Material Components team at Google. 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. Donn and Kaushik talk to Cameraon and Connie about the components and how to use them in this episode. Enjoy Shownotes Material.io Website Android Material Components Material Components GitHub Tasks App Developer Tutorials AndroidDev Summit Talk Material Theme Editor Sponsors

  • 158: Building High Performance Audio on Android

    29/04/2019 Duração: 01h03min

    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. Shownotes Android Midi Oboe Intro to Oboe (Video) Google IO 2019 Talk Sponsors

  • 157: Effective Java Item# 20 - Prefer interfaces to abstract classes

    01/04/2019 Duração: 25min

    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. Enjoy. Sponsors

  • 156: Increase App Engagement with Android Q

    18/03/2019 Duração: 11min

    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. Why? 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. Enjoy. Shownotes Android Q Features Sponsors

  • 155: Naming conventions for RxJava Observables

    11/03/2019 Duração: 21min

    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. 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. Shownotes yak-shaving Upday's convention: Florina's tweet Upday's blog post - Reactive Frustrations 1 Options // 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 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 poss

  • 154: Developer Growth: Start Writing

    05/03/2019 Duração: 18min

    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. 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. 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. Enjoy. Sponsors

  • 153: How to be an indie Android developer with Chris Lacy

    19/02/2019 Duração: 01h13min

    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 - ActionDash. Enjoy. Shownotes TweetLanes Action Launcher On selling Link Bubble Brave browser ActionDash Introducing ActionDash Download on the play store Slick graph library MPAndroidChart Action Launcher is hiring! Sponsors

  • 152: Should I Rewrite My App? with Jeroen Mols

    11/02/2019 Duração: 58min

    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. Shownotes The big Rewrite - Jeroen's talk Droidcon Italy Slides for the talk with notes Philips Hue Philips Hue API Resources The big rewrite - Chad Fowler The big rewrite - Jo Van Eyck Paying technical depth - Jeroen Moons Things you should never do - Joel Spolsky Write awesome unit tests - Jeroen Mols Pro Android Studio - refactoring - Jeroen Mols Why We Decided to Rewrite Uber’s Driver App - Nandhini Ramaswamy and Adam Gluck How to Ship an App Rewrite Without Risking Your Entire Business - James Barr, and Zeyu Li Sponsors

  • 151: Evolving Android architectures (Part 2)

    04/02/2019 Duração: 57min

    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. Shownotes Listen to the recap in episode 148 LCE: Modeling Data Loading in RxJava Rx example pull from db then network (from KG's presentation) Donn's caster.io episode on the amb operator Akshay's episode on Arch components (specifically Live Data) Jose's cheatseet on Activity lifecycle KG's example of using this architecture Sponsors

  • 150: Learning Kotlin - Returns, Jumps & Labels

    21/01/2019 Duração: 19min

    Shownotes Kotlin Returns and Jumps Documentation Code data class Customer(val isPlatinum: Boolean) fun main() { val customer = Customer(false) println("Number of points customer has: ${calculatePoints(customer)}") // Break out of the loop once we're over 25 for (i in 1..100) { if (i > 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 > 150) break@donn // This will break out of the inner loop and outer loop else println("i: $i, j: $j") } } // Continue processing the next outer loop value when a condition is met. donn@ for (i in 1..100) { for (j in 100..200) {

  • 149: Learning Kotlin: inline classes and Type driven design

    15/01/2019 Duração: 24min

    In this quick fragment, Kaushik talks about the new Kotlin 1.3 experimental feature "inline classes" and how it helps with Type driven design. Shownotes Kotlin releases 1.3 Fragmented episode #116 - inline, noinline & crossinline Think strong types and simple values typealias.com blog Type driven design resources Type drive approach to Functional design - Michael Feathers Type driven design in Elm blog.ploeh - Type driven design Kotlin KEEP KEEP proposal - inline classes KEEP discussion vs typealias Fragmented Ep #122 - typealiases inline classes vs typealiases How to represent money in programming Kotlin experimental Jake Wharton - inline classes make great database ids Sponsors

  • 148: Evolving Android architectures (Part 1)

    07/01/2019 Duração: 58min

    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. 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 Discord #fragmented-podcast channel with your thoughts and we'll make sure to address them in future parts! Shownotes MBLT-Dev talk by KG : Unidirectional state flow patterns - a refactoring story github sample repo with this pattern Salient features of the pattern: I. Screens are driven by a single ViewModel II. Screens listen to a single Observable exposed from the ViewModel III. Screens listen to a single Observable exposed from the ViewModel IV. Events are sent into the VM through a single function processInputs V. Break(ing) the Chain VI. Testing strategy Inspiration The state of m

  • 147: Disposing RxJava 2 Streams with AutoDispose

    31/12/2018 Duração: 15min

    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. Shownotes AutoDispose Library Tool to help migrate to RxJava 2 CatchUp Library Code Samples Java myObservable .map(...) .as(AutoDispose.autoDisposable(AndroidLifecycleScopeProvider.from(this))) .subscribe(...) Kotlin myObservable .map(...) .autoDisposable(AndroidLifcycleScopeProvider.from(this)) .subscribe(...) With Scope Event Provided myObservable .map(...) .autoDisposable(AndroidLifcycleScopeProvider.from(this, Lifecycle.Event.ON_DESTROY)) .subscribe(...) Testing // 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()

  • 146: 3 Things Every Android Developer Needs to Know

    24/12/2018 Duração: 27min

    Dependency Injection Constructor_setter_method injection Service Locators or other DI frameworks Common Frameworks 1. Dagger 2. Koin 3. Kodein 4. ToothPick How to test Functional / System Integration Unit Tools: jUnit Espresso Spek Keep it simple simple KISS principle KISS principle - Wikipedia Examples Code Duplication “Extract this into a method” Lets create a framework for this Kaushik’s - 3x rule if something is duplicated 3 or more times, think about extracting it 3/6 Rule - In 6 months, will I be able to understand this in under 3 minutes? Contact @fragmentedcast or our Youtube channel @donnfelker and donnfelker (on Instagram) @kaushikgopal and kaushikgopal (on Instagram)

  • 145: Tracking Network Requests With x-Request-ID

    18/12/2018 Duração: 11min

    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. Shownotes What is the X-Request-ID HTTP Request IDs improve visibility across the application stack How HTTP headers work Where does the X- come from? Sponsors

  • 144: Developer Productivity Tools

    10/12/2018 Duração: 01h20min

    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 Fragmented Discord Chat Server Productivity tools Keyboard Maestro Keyboard Maestro - Mac (Referral code with 20% discount) Sample macros: Demo: Better auto pairing with BBEdit and Keyboard Maestro Demo: Autocopy text from one program to another AutoHotkey - Windows (Windows equivalent of sorts) DuckDuckGo Bang Syntax Muzzle App Window management tools: Divvy Spectacle Magnet Moom Phoenix VSCode Night owl theme OhMyZsh Spaceship prompt Auto Suggestions Fish Shell Kap - Screen recording tools Sip - Color Management Sponsors

  • 143: Real world testing thoughts

    03/12/2018 Duração: 27min

    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'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's role in today's world. Shownotes Espresso Testing lists (onData) Espress test swipe action What is the fold Hermetic Servers testing MockWebServer WireMock Sponsors

página 6 de 14