Fragmented - AI Developer Podcast

Fragmented - AI Developer Podcast

By Kaushik Gopal, Iury SouzaScienceTechnologyEducation
Download on the App Store

Fragmented - AI Developer Podcast episodes

  • 112: Effective Java v3 - Item #9 - Prefer try with resources to try finally

    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.

    Links
    • Effective Java (3rd Edition) Book
    • Sponsors
      • Mapbox - 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.
      • Check them out today at mapbox.com/android

        Contact
        • @fragmentedcast [twitter.com]
        • @donnfelker and 📷 donnfelker
        • @kaushikgopal and 📷 kaushikgopal
        • 17 min
        • 111: Effective Java v3 - Item #5 - Prefer Dependency Injection to Hardwiring Resources

          In this mini-fragment episode, Donn talks about Item #5 of the Effective Java (Third Edition) book - Prefer Dependency Injection to Hardwiring Resources.

          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).

          TLDR; Item #5 is new in the third edition of the Effective Java book. So listen closely. :)

          Links
          • Effective Java (3rd Edition) Book
          • Sponsors
            • Mapbox - 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.
            • Check them out today at mapbox.com/android

              Contact
              • @fragmentedcast [twitter.com]
              • @donnfelker and 📷 donnfelker
              • @kaushikgopal and 📷 kaushikgopal
              • 14 min
              • 110: BuddyBuild and CI/CD services

                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.

                Listen on:

                Download directly

                Show Notes
                • BuddyBuild is now part of Apple
                • Google buys Sparrow
                • Differences between CI/CDs services
                  • Good article on CI
                  • Nice infomatic explaining CD vs CD
                  • Options for CI Services
                    • Jenkins
                    • CloudBees - enterprise Jenkins
                    • Bitrise
                      • Bitrise and Firebase test lab
                      • NeverCode
                        • Welcoming Android developers blog post by NeverCode
                        • Microsoft AppCenter
                          • Ep 104 - Donn talks to the Samina from AppCenter
                          • Circle CI
                            • 2.0 docs
                            • Testing with Firebase test lab
                            • Team City - Jetbrains
                            • Code Ship
                            • Sponsors
                              • Mapbox - - 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.
                              • Check them out today at mapbox.com/android

                                Contact
                                • @fragmentedcast [twitter.com]
                                • @ryanjsalva
                                • @donnfelker and 📷 donnfelker
                                • @kaushikgopal and 📷 kaushikgopal
                                • 42 min
                                • 109: Learning Kotlin - Sequences the new Iterables

                                  In this episode of Fragmented, we go back to learning some Kotlin and look at the Iterable like data structure introduced called "Sequences". What is a sequence? How is it different from Iterable? When should I use it?

                                  Show Notes
                                  • Kotlin Sequence
                                  • Java Iterable vs Iterator - stackoverflow.com
                                  • Eager/Lazy

                                    Eager evaluation:

                                    val lst = listOf(1, 2)
                                    val lstMapped: List = lst.map { print("$it "); it * it }
                                    print("before sum ")
                                    val sum = lstMapped.sum()
                                    // prints "1 2 before sum"

                                    Lazy evaluation:

                                    val seq = sequenceOf(1, 2)
                                    val seqMapped: Sequence = seq.map { print("$it "); it * it }
                                    print("before sum ")
                                    val sum = seqMapped.sum()
                                    // prints "before sum 1 2"

                                    Source stackoverflow.com answer

                                    Intermediate and terminal operations

                                    Notice that at each chain operation, a new temporary list is created:

                                    data class Person(val name: String, val age: Int)
                                    fun main(args: Array) {
                                    val people =
                                    listOf(Person("Chris Martin", 31),
                                    Person("Will Champion", 32),
                                    Person("Jonny Buckland", 33),
                                    Person("Guy Berryman", 34),
                                    Person("Mhris Cartin", 30))
                                    println(people
                                    .filter { it.age > 30 } // new temp. list
                                    .map {
                                    it.name.split(" ").map {it[0]}.joinToString("")
                                    } // new temp. list
                                    .map { it.toUpperCase() }) // new temp. list
                                    }

                                    Using a sequence:

                                    println(people
                                    .asSequence() // convert to sequence
                                    .filter { it.age > 30 } // lazy eval (intermediate op)
                                    .map {
                                    it.name.split(" ").map {it[0]}.joinToString("")
                                    } // lazy eval (intermediate op)
                                    .map { it.toUpperCase() } // lazy eval (intermediate op)
                                    .toList() // terminal operation
                                    )

                                    Without a terminal operation, Sequences won't print anything:

                                    val seq = sequenceOf(1, 2, 3)
                                    println(seq) // prints address
                                    println(seq.toList()) // [1, 2, 3]

                                    You can't pick an index from a sequence:

                                    println(seq[0]) // throws ERROR "No get method providing array access"
                                    println(seq.toList()[0]) // 1
                                    Sponsors
                                    • Mapbox - 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.
                                    • Check them out today at mapbox.com/android
                                      Contact
                                      • @fragmentedcast [twitter.com]
                                      • @donnfelker and +DonnFelker
                                      • @kaushikgopal and +KaushikGopalIsMe
                                      • 23 min
                                      • 108: State of React Native for Android with Ryan Salva

                                        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.

                                        Listen on!

                                        Show Notes
                                        • (Apache) Cordova
                                        • React Native
                                        • CodePush
                                        • CodePush moving to App Center
                                        • App Center
                                        • Service workers: an Introduction
                                        • Misc
                                          • Expo JS
                                          • nvm
                                          • npm
                                          • Noteworthy quotes from this episode:
                                            • As developers, we are empowered to break things; it's our god given right!
                                            • Javascript is a beautiful disaster
                                            • Sponsors
                                              • Mapbox 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.
                                              • Check them out today at mapbox.com/android

                                                Contact
                                                • @fragmentedcast [twitter.com]
                                                • @ryanjsalva
                                                • @donnfelker and +DonnFelker
                                                • @kaushikgopal and +KaushikGopalIsMe
                                                • 55 min
                                                • 107: Shape shifting SVGs with Alex Lockwood

                                                  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
                                                  Abt Alex Lockwood
                                                  • Alex's blog - androiddesignpatterns.com
                                                  • How to Leak a Context: Handlers & Inner Classes
                                                  • Handling configuration changes with Fragments
                                                  • Shape Shifter
                                                    • shapeshifter.design
                                                    • Blog post on icon animations
                                                    • An Introduction to Icon Animation Techniques
                                                    • SVGO
                                                      • SVGo - optimizer
                                                      • SVG-OMG - webapp that runs svgo on web by Jake Archibald
                                                      • Shape Shifting & Icon animations
                                                        • Alex Lockwood Droidcon SF 2017 Talk - In-depth parth morphing w/Shape Shifter
                                                        • Building play to pause animation with ShapeShifter [slides]
                                                        • Animal morph animation
                                                        • Nick Butcher talk - Learn some new moves
                                                        • Needleman-Wunsch algorithm
                                                        • AVDO
                                                        • github issue: AVDO -> 🥑
                                                        • Lottie
                                                        • Sponsors

                                                          Thanks to Buddybuild for sponsoring this episode of Fragmented! Ship apps faster with BuddyBuild 🚀 Give them a try for free at fragmentedpodcast.com/buddybuild.

                                                          Contact
                                                          • @alexjlockwood [twitter.com]
                                                          • @fragmentedcast [twitter.com]
                                                          • @donnfelker and +DonnFelker
                                                          • @kaushikgopal and +KaushikGopalIsMe
                                                          • 47 min
                                                          • 106: The Reactive Workflow Pattern with Ray Ryan

                                                            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.

                                                            Show Notes
                                                            • Ray’s “The Rx Workflow Pattern” talk at Droidcon NYC: droidcon NYC 2017 - The Rx Workflow Pattern - YouTube
                                                            • Flow Navigation -GitHub - square/flow: Name UI states, navigate between them, remember where you’ve been.
                                                            • Square Coordinator Library - GitHub - square/coordinators: Simple MVWhatever for Android
                                                            • Composable State Machine Pattern - A composable pattern for pure state machines with effects (draft v3) · GitHub
                                                            • Sponsors
                                                              • Rollbar - special offer: Bootstrap plan free for 90 days
                                                              • Contact
                                                                • @rjrjr [twitter.com]
                                                                • @fragmentedcast [twitter.com]
                                                                • @donnfelker and +DonnFelker
                                                                • @kaushikgopal and +KaushikGopalIsMe
                                                                • 59 min
                                                                • 105: Jake Wharton on the Android Kotlin Guides

                                                                  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's one of the best out there and it's always such a pleasure to have him on the show. Listen on:

                                                                  Show Notes
                                                                  The style guides
                                                                  • Android Kotlin Guides
                                                                  • official github repo for Android Kotlin guides
                                                                  • Google Java Style Guide
                                                                  • Jetbrains Coding conventions
                                                                  • Jetbrains collection of Kotlin idioms (also very useful)
                                                                  • Building the style guide
                                                                    • Jekyll
                                                                    • Android Testing support library website (inspiration for how to set it up) (github)
                                                                    • Android Kotlin Guides
                                                                      • Annotation use-site targets with Kotlin
                                                                      • guide on interop and file-names for use-site targets
                                                                      • logical ordering explanation for ordering companion object
                                                                      • I am the reason for Hungarian notation - Cedric Beust blog post
                                                                      • Mockito when problems:
                                                                        • Kotlin reserved keywords
                                                                        • Mockito Kotlin library (aliases when -> whenever)
                                                                        • Misc
                                                                          • Where to break lines
                                                                          • Immutable collection prototypes for Kotlin
                                                                          • @Kotlin tweet on immutable collections
                                                                          • @JvmOverloads (we love this!)
                                                                          • Contributing
                                                                            • Contribute to github issues on Android Kotlin Guides
                                                                            • Sponsors
                                                                              • Rollbar - special offer: Bootstrap plan free for 90 days
                                                                              • Contact
                                                                                • @JakeWharton [twitter.com]
                                                                                • @fragmentedcast [twitter.com]
                                                                                • @donnfelker and +DonnFelker
                                                                                • @kaushikgopal and +KaushikGopalIsMe
                                                                                • 1 hr 12 min
                                                                                • 104: Conversations with GNOME Mono Xamarin creator Miguel and VS App Center PM Simina

                                                                                  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.

                                                                                  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!

                                                                                  Show notes
                                                                                  • Microsoft Connect
                                                                                  • Miguel
                                                                                    • MiguelDeIcaza (Wikipedia)
                                                                                    • Wine
                                                                                    • Midnight Commander
                                                                                    • Gnumeric speedsheet
                                                                                    • Evolution - Outlook clone for linux
                                                                                    • Cross platform development
                                                                                      • Mono project
                                                                                      • Xamarin
                                                                                      • Xamarin Live Player
                                                                                      • Xamarin Workbooks
                                                                                      • Misc
                                                                                        • Scott Hanselman on using Visual Studio
                                                                                        • Download Visual Studio
                                                                                        • F# (programming language)
                                                                                        • Bret Victor - The Future of Programming (youtube)
                                                                                        • Simina Pasat
                                                                                          • HockeyApp platform
                                                                                          • Visual Studio App Center
                                                                                          • Introducing App Center: Build, Test, Distribute and Monitor Apps in the Cloud
                                                                                          • How to upload an Espresso Test to Visual Studio App Center
                                                                                          • @vsappcenter
                                                                                          • Contact
                                                                                            • @MiguelDeIcaza
                                                                                            • @SiminaPasat
                                                                                            • @fragmentedcast [twitter.com]
                                                                                            • @donnfelker and +DonnFelker
                                                                                            • @kaushikgopal and +KaushikGopalIsMe
                                                                                            • 54 min
                                                                                            • 103: MVI pattern with Hannes Mosby Dorfmann

                                                                                              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
                                                                                              About Hannes
                                                                                              • hannesdorfmann.com blog
                                                                                              • Mosby
                                                                                              • Tickaroo
                                                                                              • Freeletics
                                                                                              • The Context podcast
                                                                                              • MV* patterns
                                                                                                • cyclejs
                                                                                                • André "Staltz" Medeiros
                                                                                                • MVVM pattern
                                                                                                • MVP pattern
                                                                                                • KG - What i learnt using Presenter patterns
                                                                                                • MVC by Trygve Reenskaug
                                                                                                • MVI like patterns

                                                                                                  Hannes series on MVI for Android (must read!) :

                                                                                                  • Reactive apps with MVI Part 1 - Model
                                                                                                  • Reactive apps with MVI Part 2 - View and Intent
                                                                                                  • Reactive apps with MVI Part 3 - State Reducer
                                                                                                  • Reactive apps with MVI Part 4 - Independent UI components
                                                                                                  • Reactive apps with MVI Part 5 - Debugging with Ease
                                                                                                  • Reactive apps with MVI Part 6 - Restoring state
                                                                                                  • Reactive apps with MVI Part 7 - Timing (Single live event problem)
                                                                                                  • Misc
                                                                                                    • Kategory - (Jorge)
                                                                                                    • Redux
                                                                                                    • Redux Saga - alternative side effect model for Redux apps
                                                                                                    • Redux Observable - AirBnB
                                                                                                    • Groupon Grux
                                                                                                    • Instacart LCE
                                                                                                    • The Journey of Android Engineers: Redux-ing UI Bugs by Christina Lee
                                                                                                    • Managing State with RxJava by Jake Wharton
                                                                                                    • Sponsors
                                                                                                      • Rollbar - special offer: Bootstrap plan free for 90 days
                                                                                                      • Rollbar open source library (alpha)
                                                                                                      • Contact
                                                                                                        • @sockeqwe [twitter.com]
                                                                                                        • @fragmentedcast [twitter.com]
                                                                                                        • @donnfelker and +DonnFelker
                                                                                                        • @kaushikgopal and +KaushikGopalIsMe
                                                                                                        • 1 hr 7 min

                                                                                                        About Fragmented - AI Developer Podcast

                                                                                                        From the publisher's feed

                                                                                                        Fragmented is an AI developer podcast for engineers who want to go beyond vibe coding and ship real software.

                                                                                                        More shows like Fragmented - AI Developer Podcast

                                                                                                        Design Details by Brian Lovin, Marshall Bock

                                                                                                        Design Details

                                                                                                        360 Listeners

                                                                                                        Developer Tea by Jonathan Cutrell

                                                                                                        Developer Tea

                                                                                                        403 Listeners

                                                                                                        Does Not Compute by Sean Washington, Rockwell Schrock

                                                                                                        Does Not Compute

                                                                                                        53 Listeners

                                                                                                        Toolsday by Una Kravets, Chris Dhanaraj

                                                                                                        Toolsday

                                                                                                        48 Listeners

                                                                                                        Swift Unwrapped by JP Simard, Jesse Squires, Spec Network, Inc.

                                                                                                        Swift Unwrapped

                                                                                                        90 Listeners