Fragmented - Android Developer Podcast

Donn Felker, Kaushik Gopal
undefined
Jan 2, 2017 • 30min

068: Talking Buck with Uber engineer Gautam Korlam

We kick off 2017 talking to Uber Engineer Gautam. In first part of this 2 part series, Gautam talks to us about the Uber Android app, the complexity in the architecture, the scaling challenges, the pain points Android developers faced working on such a massive app. He then goes on to explain how his team (Android Developer Experience) at Uber have approached these challenges and come up with elegant solutions. We then dive head deep into Buck - the build system for Android development, it's advantages and the benefits that the folks at Uber have observed having migrated. Show Notes Build systems Buck overview (Facebook/Uber) Bazel (Google) Pants (Twitter) Android test app comparing different build systems [github.com] Misc okBuck (adopting Buck easily) [github.com] Buck - Exopackage Watchman Resources What makes Buck so fast Gautam's talk on okBuck at Droidcon NYC [youtube.com] (Slides) Contact @kageiit [twitter.com] @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe
undefined
Dec 19, 2016 • 51min

067: Cross platform development with Xamarin cofounder Joseph Hill

In this episode, Donn talks with Xamarin cofounder on how one can use Xamarin for Android development. They start off chatting about using Xamarin just for business logic sharing. This Joseph tells us was the original intention for use. They also touch on Xamarin forms which allows you to additionally build UI elements cross platform. Even if you don't use Xamarin or plan to use Xamarin right away, this was a fantastic insight into the platform, from the creators directly. They touch on advantages, how to really leverage the platform and potential downsides. Show Notes Xamarin Developer guides (Joseph mentioned they're particularly proud of this one) Xamarin University Download Visual Studio Xamarin Forms Apps using Xamarin for Code sharing Alaska Airlines Outback steakhouse Notable alternatives: Cordova React Native Contact @josephhill and jhill@microsoft @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe
undefined
Dec 12, 2016 • 43min

066: Let's talk Immutability, Value Types and AutoValue with Ryan Harter

In this episode, we talk to our good friend and immutability champ Ryan Harter. We start off talking about the benefits and disadvantages of immutability, then we dive into Value types and the subtle difference with Value types. Finally we close out by talking about AutoValue and how you can extend it using the super nifty auto-value extension system for functionality like Parcelability, Json parsing etc. Show Notes About Ryan Pigment (coloring for adults) Fragment (prismatic photography art) (His blog post on the same) Fragmented: Google IO special (Ryan was one of our guests) References Martin Fowler's updated article on ValueObjects Effective Java Fragments: Ep 14: Consider providing static factory methods instead of constructors Ep 31: Obey the general contract when overriding equals Ep 34: Always Override hashcode when overriding equals Methods Count (check number of methods for a library) AutoValue AutoValue AutoValue Builders AutoValue Factory (different from AutoValue Builders) Difference between Builder and Factory patterns [stackoverflow.com] AutoValue extensions Ryan's blog post AutoValue Parcel [github.com/rharter] AutoValue Cursor [github.com/gabrielittner] AutoValue Redacted [github.com/square] AutoValue Moshi [github.com/rharter] AutoValue Gson [github.com/rharter] AutoValue Firebase [github.com/mattlogan] Misc Project Lombok Google's Auto Libraries (code generating helpers) Ryan's Blog Ryan's Caster.io series [caster.io] Chicago Roboto 2017 Contact @rharter [twitter.com] @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe
undefined
Dec 5, 2016 • 46min

065: Developer Platform engineering with Ty Smith

In this episode we talk to Ty Smith about all things Developer Platform. Currently a tech lead at Uber, Ty has quite the illustrious career having worked on some of the biggest names you've heard like Uber, Twitter(Fabric), Evernote, Zagat etc. Unlike regular client app development, Developer Platform spans a variety of interesting topics like building consumable SDKs, building libraries with good APIs, creating Android integrations and App to app communication via components like Content Providers, AIDL Integrations, Intent APIS and deep links. We ask Ty how he got started in this field, how one should go about thinking about it and the interesting challenges that one would run across in this intriguing field. Show Notes Ty's all star Dallas crew Chris Banes [@chrisbanes] previously on FriendCaster Chris Arvin [@ChrisArvinSF] previously on BaconReader Dan Lew [@danlew42] previously on Expedia Matt Wear [parallelcross.com] prevoiusly on Evernote Juan Gomez [@_juandg] on Netflix Developer Platform Tests? Ain't Nobody Got Time For That! by Ty Smith [youtube.com] Content providers [developer.android.com] AIDL (Andorid Interface Definition Language) [developer.android.com] TransactionTooLargeException [developer.android.com] Contact @tsmith [twitter.com] @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe
undefined
Nov 21, 2016 • 24min

064: Garbage Collection (Android) vs Reference Counting (iOS)

In this mini-Fragment episode, Kaushik talks about the process of Garbage collection and how it compares to Reference counting (which is the equivalent process in iOS). How does each work? What are the differences? Which is better 😁 ? Listen on for all the juicy details... Show Notes Garbage collection (Android) Garbage collection [wikipedia.org] How GC works in Dalvik [medium.com] How GC works with circular references [stackoverflow.com] Reference counting (iOS) Reference counting [wikipedia.org] An in-depth look at manual memory management in Objective C [tomdalling.com] Memory management in Objective C [rypress.com] Weak, strong, unowned, oh my! (references in Swift) [krakendev.io] Contact @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe
undefined
Nov 14, 2016 • 23min

063: Effective Java for Android Developers – Item #13: Minimize the accessibility of classes and members

In this mini-Fragment episode, Donn talks about Item #13 of the Effective Java series - Minimize the accessibility of classes and members. You'll learn why it's important to limit the access on your public API, how it can help you with development and performance. You'll also learn how changing a public API can affect the consumers of your API, for good and bad. Show Notes Java Access Control Effective Java Book Sponsor BuddyBuild Contact @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]
undefined
Nov 7, 2016 • 17min

062: Effective Java for Android Developers – Item #12: Consider Implementing Comparable

In this mini-Fragment episode, Donn talks about Item #12 of the Effective Java series - Consider Implementing Comparable. You'll learn about how you can use the Comparable interface to give your code the extra sorting boost it needs. Work with Arrays.sort(), Collections utilities and even sorted data structures. Donn breaks down what it takes to implement the compareTo method of the Comparable interface. Show Notes Comparable Interface Effective Java Book Sponsor BuddyBuild Contact @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]
undefined
Oct 24, 2016 • 42min

061: The state of event bus(es) today

The age old question: should I be using an event bus today? What is an event bus? what are still some good use cases for an event bus? Can i replace an event bus with RxJava? Donn and Kaushik have at it and try to answer this question that gets asked constantly in the AndroidDev circles. Listen on for our take. Show Notes What's an event bus Donn's blog post on event aggregators (event buses) [donnfelker.com] KG's blog post on implementing an event bus with Rx [blog.kaush.co] Libraries Otto - Square's Event Bus library [github.com] EventBus - greenrobot [github.com] Misc Handling GCM messages in the foreground and background by Mark Hudnall [markhudnall.comm] KISS [wikipedia.org] Ep 53: Jake on RxJava 2 [fragmentedpodcast.com] RxRelays [github.com/JakeWharton] Diff change set for converting RxBus to an RxRelay [github.com/kaushikgopal] Caster.io EventBus course - Annyce Davis [caster.io] Sponsors BuddyBuild Contact @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe
undefined
Oct 17, 2016 • 45min

060: Smoke and Mirror Android UI tricks with Israel

We talk with Android UI magician Israel. In this episode, Israel does what magicians are never supposed to do, reveal those exciting magic tricks. He talks about tricks you can use in your Android apps to create a super slick UI, citing examples from Google Photos, Twitter and other apps. Dazzle your Android users with these UI tricks. Show Notes Israel's last appearance on Fragmented (Ep 26) [fragmentedpodcast.com] Smoke and Mirros Israel's sample app [github.com] Slides (with animation demos) [photos.google.com] Google Photos Recycler View pinch to expand/shrink [photos.google.com] ClipChildren demo [photos.google.com] Utils method - traverse hierarchy and clip [photos.google.com] Tap image to show full screen [photos.google.com] Misc Nick Butcher's Plaid app [github.com] Android-Job library by Evernote [github.com] Contact @fragmentedcast [twitter.com] @rallat [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe
undefined
Oct 10, 2016 • 52min

059: Interview with Chiu-Ki

We talk with the all-star multi-talented GDE Chiu-Ki Chan about testing. Specifically, we dive into leveraging Mockito for your testing needs. What is Mocking, what is Stubbing, what are the different test doubles, how does mockito help with this? Listen on to find about that and some more interesting stuff on testing! Show Notes Introducing Pixel [blog.google] Static Gateway Pattern [codebetter.com] About Chiu-Ki: Android Dialogs | youtube [youtube.com] 360|AnDev co-organizer | conference [360andev.com] Technically Speaking| newsletter [tinyletter.com] fake SharedPreferences implementations from AOSP FakeSharedPreferences | fake in-memory SharedPreferences implementation [github.com] BridgeSharedPreferences | empty SharedPreferences that does nothing implementation [github.com] Testing SharedPreferences [gumroad.com] Different kinds of Test doubles Know your test doubles [testing.googleblog.com] [Test Doubles: Mocks, Stubs, and More](https://www.objc.io/issues/15-testing/mocking-stubbing/ http://www.javaworld.com/article/2074508/core-java/mocks-and-stubs---understanding-test-doubles-with-mockito.html) [objc.io] Mocks aren't Stubs [martinfowler.com] Mockito Mockito library [github.com] Stubbing consecutive calls [mockito.org] Argument Captor [mockito.org] PowerMock [github.com] Resources friendspell | Chiu-Ki’s example project with a variety of testing strategies [github.com] Mock Application in Espresso for Dependency Injection [sqisland.com] Chiu-Ki's caster.io courses on Testing | MockWebServer Contact @fragmentedcast [twitter.com] @chiuki and +ChiuKiChan @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

The AI-powered Podcast Player

Save insights by tapping your headphones, chat with episodes, discover the best highlights - and more!
App store bannerPlay store banner
Get the app