PLAY PODCASTS
Fragmented - AI Developer Podcast

Fragmented - AI Developer Podcast

269 episodes — Page 4 of 6

Ep 119119: Flutter with GDE Eugenio Marletti - Part 2

In part 2 of this series, 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 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. 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: 118: Flutter and cross platform development with GDE Eugenio Marletti - Part 1) Show Notes RxDart Dart 2 Flutter Weekly Flutter on Gitter Flutter on Codelab Flutter on Github https://play.google.com/store/apps/details?id=io.flutter.gallery&hl=en Sponsors Microsoft AppCenter – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding. Contact @workingkills [twitter.com] @fragmentedcast [twitter.com] @donnfelker and 📷 donnfelker @kaushikgopal and 📷 kaushikgopal

Apr 2, 201852 min

Ep 118118: Flutter and cross platform development with GDE Eugenio Marletti - Part 1

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'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. 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 Clue app Announcing Flutter beta 1 Embedding Flutter into an existing app (examples flutter_view & platform_view) Stepper widget Getting started on Flutter (docs) Compiled vs Interpreted languages Sponsors Microsoft AppCenter – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding. Contact @workingkills [twitter.com] @fragmentedcast [twitter.com] @donnfelker and 📷 donnfelker @kaushikgopal and 📷 kaushikgopal

Mar 19, 201831 min

Ep 117117: Multi-Module Builds in Gradle

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. Show Notes Instant Apps Episode Android Library Module vs Feature Module Implementation vs Compile - A Visual Guide Writing a Modular app in Android ButterKnife Woes Android Studio and Pure Java Modules Sam Edwards buildSrc and build.gradle Autocomplete Post Sam Edwards Gradle Ext Video Sam Edwards Gradle AutoComplete Phil Breault Renaming Gradle Build Files Google Arch Samples - versions.gradle Sponsors Microsoft AppCenter – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding. Contact @fragmentedcast [twitter.com] @donnfelker and 📷 donnfelker @kaushikgopal and 📷 kaushikgopal

Mar 12, 201855 min

Ep 116116: Learning Kotlin - inline, noinline, crossinline

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. Show Notes Kotlin Inline functions Code Snippets: Look at the official shownotes page for some code snippets Misc: PublishedApi annotation Matt Logan's post on inline keyword Ben Daniel Medium post - inline, noinline, crossinline — What do they mean? Sponsors Microsoft AppCenter – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding. Contact @fragmentedcast [twitter.com] @donnfelker and 📷 donnfelker @kaushikgopal and 📷 kaushikgopal

Mar 5, 201826 min

Ep 115115: Architecture Components with Akshay Chordiya

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 & Observers, ViewModels, and LiveData. Akshay Chordiya helps break it down. Listen on! Show Notes Android Architecture Components Lifecycle Handling lifecycles with Lifecycle-Aware Components Lifecycle Owner Lifecycle Observer Best practices for lifecycle-aware components Caveat: handling onStop events ViewModels Architecture Guide: ViewModels View Model Code snippet for a ViewModelFactory: class UserVMFactory( val user: MyUser ) : ViewModelProvider.Factory { override fun create(modelClass: Class): T { return when { modelClass.isAssignableFrom(UserVM::class.java) -> UserVM(user) as T else -> throw IllegalArgumentException("Unknown ViewModel class") } } } LiveData Live Data MediatorLiveData Misc Android Architecture Components Deep Dive Course on Caster.IO Fragmented - Room episode with Florina Fragmented - AAC Paging library with Florina Sponsors Microsoft AppCenter - Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding. Contact @Akshay_Chordiya [twitter.com] @fragmentedcast [twitter.com] @donnfelker and 📷 donnfelker @kaushikgopal and 📷 kaushikgopal

Feb 26, 20181h 4m

Ep 114114: All About CI & CD on App Center w/ Patrick Nikoletich

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 19, 20181h 5m

Ep 113113: Chatting with Pinterest's Christina Lee

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 12, 201844 min

Ep 112112: 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

Feb 8, 201816 min

Ep 111111: 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

Jan 29, 201813 min

Ep 110110: 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

Jan 22, 201841 min

Ep 109109: 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

Jan 16, 201822 min

Ep 108108: 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

Jan 8, 201854 min

Ep 107107: 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

Dec 18, 201746 min

Ep 106106: 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

Dec 13, 201758 min

Ep 105105: 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

Dec 4, 20171h 11m

Ep 104104: 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

Nov 27, 201753 min

Ep 103103: 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

Nov 13, 20171h 6m

Ep 102102: All Things Kotlin and notes from KotinConf

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 Pixel 2 Google Store - Pixel 2 dbrand skins Amanda's tweet on Samsung being annoying KotlinConf KotlinConf 2017 page Pier 27 photo Meeting folks Erik Meijer Talking Kotlin podcast - Hadi Harriri Talks at KotlinConf Amanda Hill - View state machine for network calls on Android (slides) Roman Elizarov - Introduction to Coroutines (slides from another conference) Jorge Costillo: Architectures Using Functional Programming Concepts (slides) Jorge's medium blog Coroutine introduction Antonio Levia's post - A first walk into Kotlin coroutines on Android Book - Kotlin for Android developers Other interesting stuff Kotlin Style Guide - courtesy Jake Wharton Google Java Style Guide google-java-format now for google-kotlin-format github isse (+1 this :D) @JvmOverloads overloads generation 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 @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Nov 6, 201741 min

Ep 101101: Learning Kotlin - visibility modifiers, internal modifier, modules

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: Visibility modifiers Effective Java Item #13 - Ep 63 discussion: Why the default should be internal Scopes in programming language (white paper) Scopes in programming language (wikipedia) Image visualizing differences between the protected modifier in Java and Kotli Excellent resource explaining visibility modifiers in Kotlin Detailed shownotes at fragmentedpodcast.com #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

Oct 30, 201723 min

Ep 100100: Episode 100 - Listener questions

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 (?!). Thank you so much for being a listener. We cannot express how grateful we are to have you. Shownotes Android from the trenches (first talk KG saw of Donn's) No “yes.” Either “HELL YEAH!” or “no.” Google Pixel 2 store Setup KG Shure Beta 87A USB Pre 2 LG 34UC87C 34 ultra wide display Headphones (KG has too many - ping em if you're curious) Donn Shure Beta 87A Heil PR 40 Focusrite Scarlett 2i2 Mackie Onyx Blackjack Dell E2715H monitor Android Resources Android Weekly Android dev digest Android resources (curated) one where we point people to Awesome android github .. and many many more Android View class Android Canvas class RxJava Dagger Roboguice Donn Felker - make the most of your time Robinhood Square Cash app Google Play music app Android niceties Caster io - MVP series RxJava Android samples TrueTime Android Sponsors Rollbar - special offer: Bootstrap plan free for 90 days Rollbar open source library (alpha) Contact @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Oct 23, 20171h 18m

Ep 99099: Effective Java - Item #17: Design and Document for Inheritance or Else Prohibit It

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. Show Links Fragmented - Effective Java Fragments Contact @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Oct 9, 201710 min

Ep 98098: Droidcon NYC - Kotlin, React Native, Android Security, Design Patterns and Doppl

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. 2:07 - Dan Kim (Kotlin) 10:07 - Gabriel Peal (React Native) 23:43 - Scott Alexander-Bown (Android Security) 33:32 - Jose Alcérreca (Android Architecture Blueprints) 43:09 - Kevin Galligan (Droidcon & Doppl) Show Links 082: Airbnb’s Gabriel tells us how to animate with Lottie – Fragmented 085: Casual Kotlin conversation with Dan Kim – Fragmented GitHub - googlesamples/android-architecture: A collection of samples to discuss and showcase different architectural tools and patterns for Android apps. doppl by touchlab — touchlab Sponsors BuddyBuild - fragmentedpodcast.com/buddybuild Contact Dan Kim (@dankim) | Twitter Gabriel Peal (@gpeal8) | Twitter Scott Alexander-Bown (@scottyab) | Twitter Jose Alcérreca (@ppvi) | Twitter Kevin Galligan (@kpgalligan) | Twitter @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Oct 2, 201756 min

Ep 97097 : Android Architecture Paging Library with Florina Muntenescu

In this episode Florina returns to talk to us about Google'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 "Tiled" or "Keyed" 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'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. Show Notes Google Developer Days - Florina's segment on paging Paging library - developer docs DataSources PagedList PagedListAdapter LivePagedListProvider Sponsors Kobiton - 15-day Free trial with no credit card required 🙌 Contact @fmuntenescu [twitter.com] @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Sep 18, 201735 min

Ep 96096 : Romain Guy on Displays, CPU's, GPU's and Color

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! Show Notes Photography Romain on Instagram Romain on Flicker Leica M10 Canon EOS 5DS R Screens, refreshing/rednering Color Fragmented 91 - Reddit AMA Romain on Reddit being spoiled by 120Hz What is V-Sync (pcworld.com) and Screen tearing (Wikipedia) Three-two pull down technique (filmaking) (wikipedia) OLED vs AMOLED (quora.com) OLED vs LCD (quora.com) Romain Guy's 2017 IO Talk on Colors fundamentals YOU OWE IT TO YOURSELF TO WATCH THIS!! Sponsors Kobiton - 15-day Free trial with no credit card required 🙌 Contact @romainguy [twitter.com] @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Sep 11, 201757 min

Ep 95095 : Room Databases with Florina Muntenescu

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! 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 off for lack of time) Q: Does Room use reflection? 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!). Q: Does Room provide compile-time SQL checks A: Yes, Room was designed to provide compile-time checks. Q: Does Room handle SQL injection attacks (security) Yes ... for all practical purposes. See this post for times when it doesn't. Q: Do we have tools to access the sqlite database file directly? Nope, at the moment, adb is your friend. Use that to download the file manually from your device. Sponsors Rollbar - special offer: Bootstrap plan free for 90 days Contact @fmuntenescu [twitter.com] @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Sep 5, 201756 min

Ep 94094: Design Patternitis - 5 Tips to Help You

In 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! 🙌 Give them a try at Kobiton.com/fragmented and let them know we sent you. Contact @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Aug 28, 201716 min

Ep 93093: RxJava intervention with Dan Lew

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'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 Programming Sponsors This episode is made possible by Kobiton - Fragmented. They're giving listeners a 15 day FREE trial with no credit card required! 🙌 Give them a try at Kobiton.com/fragmented and let them know we sent you. Contact @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Aug 14, 201752 min

Ep 92092: Learning Kotlin - dealing with static-ness and (companion) objects costs

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! 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 @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Aug 7, 201735 min

Ep 91091 : Decompress - Reddit AMA highlights, package by feature not layer and testing!

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: 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 rate- reddit thread iPad demo 1 iPad demo 2 Sharp Aquos 120Hz Android phone Package by feature not layer Alt F1 keyboard shortcut - Select in... Project View 068: Talking Buck with Uber engineer Gautam Korlam 090: Make your apps instant with Zarah Dominguez Instrumentation Testing Robots - Jake Wharton talk okHttp Mock WebServer Wiremock Sponsors Kobiton - start your 15 day free trial Contact @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Jul 24, 201754 min

Ep 90090: Make your apps instant with Zarah Dominguez

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 "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

Jul 17, 20171h 1m

Ep 89089: Learning Kotlin - Properties a first class language feature

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

Jul 10, 201723 min

Ep 88088: Offensive programming

In 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

Jul 3, 201758 min

Ep 87087: Effective Java - Item #16: Favor Composition over Inheritance

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. Show Notes Effective Java Book Contact @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Jun 19, 201719 min

Ep 86086: Working Effectively With Legacy Code

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. Show Notes Working Effectively with Legacy Code Book Sponsor Rollbar Contact @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Jun 12, 201727 min

Ep 85085: Casual Kotlin conversation with Dan Kim

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. 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 Resources Jake's youtube video Dan's blog posts: How we made Basecamp 3’s Android app 100% Kotlin Some of my favorite Kotlin features Android development with Kotlin - Jake Wharton (video) Introduction to Kotlin - Google I/O 17 (video) Contact @fragmentedcast [twitter.com] @dankim or [email Dan](mailto: [email protected]) @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Jun 5, 20171h 2m

Ep 84084: Kaush and Donn go to Google IO 2017

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. 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 Raveesh Bhalla @raveeshbhalla Enki app Etienne Caron (Shopify) @kanawish Safari Queue app Chris Jenkins (Owlr) @chrisjenx Calligraphy font lib by Chris Waze app Brenda Cook (Seesaw) @kenodoggy Mint app Memrise app Joaquim (Twitch) @joenrv The Making of Falcon Pro 3 Falcon Pro (Joaquim's app) Strafe Esports app Previous Google IO Episodes Ep 43 - Google IO 2016 (part 2) Ep 42 - Google IO 2016 (part 1) Ep 9 - Google IO 2015 Sponsors Rollbar - special offer: Bootstrap plan free for 90 days Contact @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

May 22, 20171h 31m

Ep 83083: Learning the basics of functional programing with Anup Cowkur

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 "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] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

May 15, 201753 min

Ep 82082: Airbnb's Gabriel tells us how to animate with Lottie

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

May 8, 20171h 2m

Ep 81081: Talking Android Things with Rebecca Franks

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

May 1, 201754 min

Ep 80080: 10 Books Android developers should read

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. 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 Soft Skills - John Sonmez Deskbound - Kelly Starett 8 steps to a pain free back - Esther Gokhale Contact @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Apr 17, 201754 min

Ep 79079: Interview with Etienne Caron

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

Apr 10, 201755 min

Ep 78078: Ten Testing Strategies with Michael Bailey

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. 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 based testing Don't let flaky tests linger Show Notes Espresso Wiremock MockWebServer MockWebServer Course on Caster.IO Git Branching Strategies Fragmented Episode Firebase Test Lab Xamarin Test Cloud Amazon Device Farm Genymotion Cloud Mutation Testing Pit Mutation Library Michaels Podcast - Native Wheel House Contact @yogurtearl [twitter.com] @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Apr 3, 201743 min

Ep 77077: Chatting ADB with Genymotion's Eyal Lezmy

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. 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 +KaushikGopalIsMe

Mar 20, 201754 min

Ep 76076: Taming the activity lifecycle with Kristin Marsicano

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

Mar 13, 201752 min

Ep 75075: Effective Java - Item #15

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. Show Notes Ryan Harter's Intro to AutoValue Caster.IO Course on AutoValue Effective Java Book Sponsor Rollbar Contact @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Mar 6, 201725 min

Ep 74074: Ben Oberkfell talks Fingerprint API

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! Show Notes NY Times Crossword app Chicken Wing test - ADB Ep 38 Android CDD - Compatibility Definition Document Explaining public/private encryptino Android vs iOS fingerprint Ben's fingerprint demo app Ben's Droidcon NYC 2016 presentation Android hardware keystore Apple's security whitepaper Whorlwind - Reactive fingerprint library courtesy Square Sponsors Rollbar - special offer: Bootstrap plan free for 90 days Contact @benlikestocode [twitter.com] @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Feb 20, 201750 min

Ep 73073: Effective Java - Item #14

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. 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... Show Notes Java Access Control Effective Java Book Sponsor Rollbar Contact @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Feb 13, 201712 min

Ep 72072: App Shortcuts with Andrew Orobator

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 [email protected]. Download directly Show Notes Andrew's Medium posts Introducing Auracle: A queue based music player: Andrew's new music player Implementing Android App shortcuts Andrew's medium posts Best productivity tools for Android developers (another article Andrew wrote) Misc App shortcuts design guidelines Konstellation (Kotlin demo app using App Shortcuts) Sponsors Rollbar - special offer: Bootstrap plan free Contact @fragmentedcast [twitter.com] @aorobator [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Feb 6, 201739 min

Ep 71071: Interview with Raveesh Bhalla

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 Apps with interesting designs Todoist (Karma points) Swarm Enki Fastfilmz Misc Facebook research medium post: Embarking on international research Rocket Surgery Made Easy: The Do-It-Yourself Guide to Finding and Fixing Usability Problems UC Mobile browser app Google Ventures : The design sprint Sponsor BuddyBuild 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 buddybuild.com Contact @raveeshbhalla [twitter.com] @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Jan 23, 201749 min

Ep 70070: An honest discussion about Realm

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. 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. Show Notes Fragmented episode with Realm Android developer Christian Melchior Sqlbrite by Square (Reactive SQLiteOpenHelper wrapper) StorIO: wrapper for SQLite or ContentResolver ###Sponsor BuddyBuild 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 BuddyBuild.com Misc Feature: auto updating objects Fragmented episode on GC vs Reference counting Realm RxExample The problem with Threads - Edward Lee Sync stuff Realm Mobile platform Building a sync engine (Vesper Sync diary) Github issues tracked on Realm Request: Compound primary key support Request: Value object support Request: Custom column names Feature: Copy from Realm Resources Latest Realm docs Caster.io series for Realm Contact @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Jan 16, 20171h 18m