Fragmented - Android Developer Podcast

About this podcast
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.
In this podcast

Podcasts like "Fragmented - Android Developer Podcast"   · View all

By Dave Rael
By Jacob Bennett and Michael Dyrynda
By Legacy Coder Podcast
Latest episodes
yesterday
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. Also, view the show notes at http://fragmentedpodcast.com/episodes/114/ Show Notes VSTS: https://www.visualstudio.com/team-services/ Microsoft on GitHub: https://github.com/Microsoft The App Center CLI: https://github.com/Microsoft/appcenter-cli Azure function that automatically creates branch configurations for PR's and communicates status back to Github.: https://github.com/pniko/function-appcenter-build- App Center API: https://docs.microsoft.com/en-us/appcenter/api-docs/ & https://openapi.appcenter.ms/ Detox fo React Native Native: https://github.com/wix/detox Azure Server Functions: https://azure.microsoft.com/en-us/services/functions/ 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. Contact @lbcpat [twitter.com] @fragmentedcast [twitter.com] @donnfelker and 📷 donnfelker @kaushikgopal and 📷 kaushikgopal
Feb. 12, 2018
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. Show Notes Google IO episode (#84) for Christina's running story Pinterest app Calligraphy by Chris Jenkins Android 8.0 Custom fonts Material design guidelines Brio design system by Pinterest's Lin Wang and Thorben Primke Pinterest stars you should follow on Twitter -> Mallika & Alice Christina's code from Kotlintown talk Christina & Huyen presentation from KotlinConf 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. Show Notes Google IO episode (#84) for Christina's running story Pinterest app Calligraphy by Chris Jenkins Android 8.0 Custom fonts Material design guidelines Brio design system by Pinterest's Lin Wang and Thorben Primke Pinterest stars you should follow on Twitter -> Mallika & Alice Christina's code from Kotlintown talk Christina & Huyen presentation from KotlinConf 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. Contact @runChristinaRun [twitter.com] @fragmentedcast [twitter.com] @donnfelker and 📷 donnfelker @kaushikgopal and 📷 kaushikgopal
Feb. 8, 2018
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
Jan. 29, 2018
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
Jan. 22, 2018
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 Contact @fragmentedcast [twitter.com] @ryanjsalva @donnfelker and 📷 donnfelker @kaushikgopal and 📷 kaushikgopal
Jan. 16, 2018
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<Int> = 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<Int> = seq.map { print("$it "); it * it } print("before sum ") val sum = seqMapped.sum() // prints "before sum 1 2" Source stackoverflow.com answer Intermediate, 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<String>) { 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 operations, 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 Contact @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe
Jan. 8, 2018
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
Dec. 18, 2017
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
Dec. 13, 2017
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
Dec. 4, 2017
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