
Fragmented - AI Developer Podcast
269 episodes — Page 5 of 6

Ep 69069: Talking Buck with Uber engineer Gautam Korlam (part 2)
We're back with part 2 of our Buck episode. We continue our chat with Uber Engineer, Gautam. We dive into the details of how buck is used, how you can use it and how it can help you and your team. Learn about how to use it with Gradle and more with OkBuck. 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

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

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

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

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

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

Ep 63063: 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]

Ep 62062: 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]

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

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

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

Ep 58058: Effective Java for Android Developers – Item #11: Override clone Judiciously
In this mini-Fragment, Donn talks about Item #11 of the Effective Java series - Override clone Judiciously. You'll learn about the extralinguistic behavior of clone and the Cloneable interface. Clone and Cloneable are very special, and this episode helps explain the nuances. Show Notes Object#clone Effective Java Book Sponsor Hired - special offer: double the signing bonus! Contact @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 57057: Data Binding with GDE Lisa Wray
In this episode we talk with, Lisa Wray, first of her job title, mother of the Genius Android app and sorceress of Data Binding. What is Data Binding? How does it work? What can you do with it? ... and what you can really do with it ! Listen on and find out more. Lisa walks us through the basics and then talks to us about how we can really push the envelope with Data Binding and do some really cool things. Show Notes About Lisa Wray xwray.com Genius [genius.com] Fragmented Ep 042 - Google IO 2016 special [fragmentedpodcast.com] Data Binding Resources Data Binding Library [developer.android.com] Data Binding - Writing Apps Faster (Android Dev Summit 2015) [youtube.com] Data Binding Techniques - Jacob Tabak's Droidcon NYC 2015 talk [youtube.com] talk:title="@{dataBinding}" - Lisa's lightning talk at Square Android Spring Cleaning [youtube.com] Descent into Data Binding - Bill Phillips at Big Nerd Ranch [bignerdranch.com] Advanced Data Binding - Google I/O 2016 [youtube.com] ADB Ep 35 - Data Bound [androidbackstage.com] Sponsor Hired - special offer: double the signing bonus! Contact @fragmentedcast [twitter.com] @lisawrayz and +LisaWrayZeitouni @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Ep 56056: GDE Philippe Breault on tinkering with Android Studio (Part II)
We wind this two part series down with GDE Philippe by chatting about postfix completion, live templates, structural search/replace, integrating with external tools, cool configurations and much more. Prepare to be mind blown. Show Notes Ep 55 - Fragmented: Part 1 of this series Phil's talk at 360Andev talk (coming soon): Android Studio like a boss [twitter.com] Phil's Android Studio Tip of the day series [plus.google.com] Timber logging : courtesy JakeWharton [github.com] ADB Idea plugin by Phil [github.com] Caster.io AS stuff: Lesson 3: Android Studio Productivity – Custom Shortcuts Lesson 47: Integrating Robolectric 3 with Android Studio 2 Lesson 66: Android Studio – Applying Logcat Filters Contact @fragmentedcast [twitter.com] @pbreault and developerphil.com @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Ep 55055: GDE Philippe discusses Tinkering with Android Studio - Part I
In this 2 part series, we talk to the illustrious Philippe of Android Studio tinkering fame. He starts off by discussing the intermediate basics that everyone should know about using Android Studio: window configuration, keyboard shortcuts, navigating the code smoothly, debugging etc. Gradually he moves into ninja mode and starts blowing DF & KG's minds with cool tips and configurations. Show Notes JetBrains Toolbox subscription Phil's Android Studio Tip of the day series [plus.google.com] DroidCon Montreal 2015 [droidcon.ca] No tabs in IntelliJ - Hadi Hariri [hadihariri.com] Ep 20 - Fragmented : One with Hadi Hariri Facebook Stetho [github.io] Sponsor Hired - special offer: double the signing bonus! Contact @fragmentedcast [twitter.com] @pbreault and developerphil.com @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Ep 54054: Git Development Workflow and Branch Versioning for App Devs
Donn and Kaushik discuss how they use git for their development workflow. They also touch on semantic versioning and how they rollout new versions of their app in a controlled fashion. Show Notes Follow up Ep 052: Junit tricks with Parameterized and Enclosing tests Jose Alcerecca showing some Stephan Linzer love Burst : Better Parameterized testing by Square Misc TortoiseSVN A successful git branching model DiffMerge by SourceGear realm-java open source repo (shows branch naming convention) Semantic versioning spec Sponsor Hired - special offer: double the signing bonus! Contact @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Ep 53053: Jake Wharton on RxJava (2)
We have Jake Wharton and RxJava in one episode 💥. In this power-packed episode we talk to Jake about the advances in RxJava 1.x since the last time he was on the show and also looking ahead at the advancements coming down with RxJava 2. If you're interested in RxJava, this episode will definitely be a treat! Watch out for a special guest cameo by the adorable Olive. Show Notes Fragmented Episode 6: with Jake [fragmentedpodcast.com] Fragmented Episode 7: with Jake [fragmentedpodcast.com] Looking ahead to RxJava 2 [droidcon.nyc] - Jake’s upcoming talk at DroidCon 2016 Retrolambda usage [github.com] Single Documentation [reactivex.io] Origin github issue discussion [github.com] Libraries used: RxRelay [github.com/JakeWharton] RxReplayingShare [github.com/JakeWharton] SqlBrite [github.com] RxBindings [github.com] Note about the warmth of the share operator [blog.kaush.co] Looking ahead Reactive Streams specification [reactive-streams.org] Using Observable fromAsync [stackoverflow.com/documentation] (released with 1.1.7) RxJava2 release schedule [github.com] Completable RxJava 2.0 Design: Naming [github.com] Backpressure types - buffer, latest, drop Sponsors BuddyBuild Contact @JakeWharton and jakewharton.com @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Ep 52052: Junit4 tricks with @Parameterized @Enclosing tests
In this mini fragment Kaushik talks about some cool Junit 4 tricks using Parameterize, Enclosing test runners. 🤘 #AlwaysBeTesting Show Notes Junit4 introduced with Android Studio 1.1 [tools.android.com] Junit4 Parameterized tests [github.com] Calculator example from googlesamples [github.com] Sample template code for Enclosed.class [gist.github.com] Sponsors BuddyBuild Contact @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Ep 51051: Annotation processing Q&A with GDE Mike Evans
We've always wanted to know more about annotation processing, so in this episode we pick GDE Mike Evans' brains on the topic and ask him a whole bunch of questions. If you've thought about diving into Annotation processing but never quite grappled with what it's all about, this is a good episode to listen to. Show Notes Mike's DroidCon NYC 2015 [youtube.com] AirBnB's deep link dispatch [github.com] ButterKnife from Jake Wharton [github.io] Improving your code with Android Support Annotations [michaelevans.org] Jake Wharton and Jesse Wilson - Annotation Processing Boilerplate Destruction [youtube.com] 021: Fragmented - Jesse Wilson on Linker [fragmentedpodcast.com] @Target Element Types [docs.oracle.com] JavaPoet by Square [github.com] AutoService library by Google kapt - Annotation processing for Kotlin [blog.jetbrains.com] Annotation processing 101 [hannesdorfmann.com] Aftermath by Michael Evans [github.com] Sponsors BuddyBuild Contact @m_evans10 and +MichaelEvans @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Ep 50050: GDE gentleman Mark Allison dissects Constraint Layouts
Friend of the show -and one of the finest gentlemen we know- Mark Allison chats with us about Constraint Layouts, what they are, why you need them, what to watch out for and how you can start using them in your application. Show Notes Styling Android - Mark's blog [stylingandroid.com] Marks' Constraint Layout Series: [stylingandroid.com] Part 1 Part 2 Part 3 Part 4 Part 5 Part 6 Part 7 Part 8 Introducing Constraint Layout [tools.android.com] Wolfram's post: Some thoughts on Android's new Constraint Layout and Android Studio's new Design Editor [grokkingandroid.com] ADB episode-50 [androidbackstage.blogspot.com] Sponsor Hired - special offer: double the signing bonus! Contact @MarkIAllison and Styling Android @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Ep 49049: Translating an app for different languages with Dan Lew
Friend of the show Dan Lew makes a return! In this show Kaushik talks to Dan about translating an app for other languages. Show Notes Ep 39: Elliot Chenger [fragmentedpodcast.com] AutoFitting TextViews [github.com] Transifex - service for helping with translations Pseudo localization [danlew.net] Xliff [wikipedia.org] Phrase lib by Square [github.com] Ahmed's Droidcon SF talk: From Right to Left and Back [youtube.com] Internationalis(z)ing Code - Computerphile [youtube.com] What your emojis actually look like [youtube.com] Sponsor Hired - special offer: double the signing bonus! Contact @fragmentedcast [twitter.com] @danlew42 [twitter.com] and Dan's website [danlew.net] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Ep 48048: Tips and tricks we picked in 2016 (I)
2016's first installment of a grand bonanza of tips and tricks for #AndroidDev! Donn and Kaushik talk about all the tips and tricks they've picked up over the first part of this year. Show Notes [Orthogonal podcast](http://spec.fm/podcasts/orthogonal GDG - Google Developer Groups [developers.google.com] Ep 028: Fragmented - tips and tricks from 2015 [fragmentedpodcast.com] DF: Developer happiness is a real thing; Learn Kotlin. KG: Prevent logcat clearing on app crash link 1 [stackoverflow.com] link 2 [stackoverflow.com] KG: IntelliJ command line launcher: git diffing [pontarelli.com] regular diffing [jetbrains.com] IO 2016 session: Expert guide to Android Studio [youtube.com] DF: KeyPromoter plugin [jetbrains.com] Philippe Breault [developerphil.com] DF: Window management tool Divvy [mizage.com] Moom [manytricks.com] Slant article comparing window management tools (for the Mac) [slant.com] Phoenix - lightweight open source js configurable tool [github.com] Annyce' caster.io videos [caster.io] DF: Postman chrome extension [chrome.google.com] Runscope [blog.runscope.com] Donn's git alias (un)watch [gist.github.com] git config: Donn [gist.github.com] KG [gist.github.com] KG: LogExOnlySubscriber.java - log exceptions only subscriber [gist.github.com] KG: RxSchedulerHook.java - Lazy man's RxJava Espresso scheduler hooks [gist.github.com] DF: Shush [mizage.com] KG: Intellij plugins String Manipulation [plugins.jetbrains.com] Lines Sorter [plugins.jetbrains.com] Open on Github - see last line in blog post [blog.jetbrains.com] DF: 8 steps to a pain free back [amazon.com] IKEA - Bekant standup desk [ikea.com] Autonomous - SmartDesk [autonomous.ai] Sponsor Hired - special offer: double the signing bonus! Contact @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Ep 47047: Interview with Huyen Dao
In this episode we talk to Trello Engineer, GDE, Youtuber, Caster IO instructor and View magician Huyen about all things custom View/ViewGroups. Show Notes Android Dialogs [youtube.com] Huyen's Custom Views/View Groups Part 1 [caster.io] How Android draws views [developer.android.com] Resources Huyen's caster.io series [caster.io] New Circle - Enhancing Android UI with Custom Views [youtube.com] Loving Lean Layouts - DroidCon SF 2016 [youtube.com] Custom Layouts on Android - Lucas Rocha [lucasr.org] Taming Android UI's - Erik Burke - Square [youtube.com] Android Performance Patterns - Custom Views and Performance [youtube.com] Contact @queencodemonkey or randomlytyping.com @fragmentedcast or Contact form @donnfelker or +DonnFelker @kaushikgopal or +KaushikGopalIsMe

Ep 46046: okJesse - A deep discussion on okHttp, okio and Retrofit
Everyone loves Retrofit & okHttp. But how did they come about? Why ok? What was the need for such libraries? We went knocking on the doors of Square trying to find the answers to these question. We were lucky cause we found probably the nicest most brilliant Android/Java developer of our times - our good friend Jesse Wilson and without surprise, he crushes it! He gives us the scoop on the origin stories of these amazing libraries and also gives us insight into okio and why it's such a game changer today. Show Notes Guice - DI lib [github.com] Fragmented 21 : Diving Deep with Dagger (Cameo by Jesse Wilson) [fragmentedpodcast.com] Android's HTTP Clients Apache Http Client [developer.android.com] Http URL Connection [developer.android.com] Jesse's blog post on the subject [android-developers.blogspot.com] Okio Announcing okio [squareup.com] okio source [okio.com] Retrofit github throwback Retrofit very first commit - crazybob [github.com] ShakeDetector in Retrofit [github.com] Moshi Moshi - json parsing [github.com] Gson [github.com] Sponsors Rollbar - special offer: Bootstrap plan free for 90 days Contact @fragmentedcast [twitter.com] @jessewilson and +JesseWilson @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Ep 45045: Bluetooth (LE) with Dave (devunwired) Smith
We've always been curious about technology and the software surrounding embedded devices and the like. One such technology that's ubiquitous these days is Bluetooth (LE). In this show we talk with embedded technology expert and all round super smart AndroidDev Dave Smith a.k.a the wonderful devunwired. We try to get a high level understanding of how Bluetooth works. From a developer's perspective, how does this tech work? Why should we as AndroidDevs be interested in this technology. What boundaries can we push? How can we effectively use this technology? In this episode we pick Dave's brain and try to answer some of these questions. Show Notes Dave's talks on Bluetooth Android Lollipop: Bluetooth LE Matures [youtube.com] Developing Bluetooth Smart Applications for Android Tutorial [youtube.com] Dave's talk: Google Beacons - AnDevCon [youtube.com] Other resources: Bluetooth Classic [developer.android.com] Bluetooth LE [developer.android.com] Apple docs - Bluetooth for Developers [developer.apple.com] Bluetooth specification [bluetooth.org] check Advertisements: Volume 3, Part C, Section 11 check GATT: Volume 3, Part G 360|Andev Use special code "Fragmented" if you're registering for the 360|Andev conference to get a 10% discount on registration. Sponsors Rollbar - special offer: Bootstrap plan free for 90 days Contact @fragmentedcast [twitter.com] @devunwired and +DaveSmithDev @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe

Ep 44044 – Effective Java for Android Developers – Item #10
In this mini-Fragment, Donn talks about Item #10 of the Effective Java series - Always Override toString. You'll learn why it's important for your own sanity, future developers, and overall developer happiness. This episode is sponsored by Hired.com Show Notes Object#toString Effective Java Book Sponsor Hired.com Contact @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 43043: Google IO (Part 2)
In Part 2 of our Google IO special we continue asking some simple questions to the best AndroidDev today. This concludes our IO special for this year. Hope you enjoyed it as much as we did. By popular demand we added some extra specials at the very end, so make sure to listen all the way through :) Show Notes Pierre-Yves Ricau (Square) @Piwai Fragnums Penny - Conversational Finance app Israel @rallat Ferrer Camacho (Square) @rallat Fragmented 026: the show with Israel Pocket Casts Tor Norbye @tornorbye The Java Posse Android Developers Backstage Kelly Shushter @kellyshuster Fragmented 40: Episode with Kelly Clue Eugenio Marletti (Clue) @workingkills Life without fragments Sebastiano Poggi (Novoda) @seebrock3r What the Fragment - Google IO session Google Photos Fragmented 20: Episode with Hadi Harriri Mike Evans @m_evans10 Robinhood Zarah Dominguez @zarahjutz Pocket Casts Contact us: @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 42042: Google IO 2016 (Part 1)
In Part 1 of our Google IO special we talk to a whole bunch of amazing AndroidDev. We go around asking them a few simple questions. Questions, that you probably thought to ask when you saw them in person, but just forgot to. Oh and you really should listen all the way to the end :) Show Notes Annyce Davis (Offgrid Electric) @brwngrldev Fragmented episode 33 : talking Gradle with GDE Annyce Davis Fitbit Android app Mark Allison (Freelancer currently contracting for AMEX) @MarkIAllison Styling Android Wiebe Elsinga @welsinga Jake Wharton (Square) @JakeWharton Kotlin Night in SF Ryan Harter @rharter Pocket Casts Lisa Wray (Genius) @lisawrayz Rebecca @riggaroo 22Seven Erik Hellman @ErikHellman Fabulous - Motivate Me Contact us: Contact form @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com] Stay tuned for Part 2 where we talk to another list of top notch Android developers and get their answers for these questions.

Ep 41041: YAGNI
In this mini Fragment, Donn talks about one of his favorite topics, YAGNI. YAGNI is an acronym that stands for "You Arent Going To Need It". Donn explains what it is, why its useful and shares a personal story of how he was introduced to the YAGNI concept back in 2008. Show Notes YAGNI YAGNI on Wikipedia MarketWatch Sponsor Caster.IO Use the coupon code "fragmented" to receive 15% off any monthly subscription. Contact @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 40040: Internal Library Dependency Management with GDE Kelly Shuster
In this mini episode, we talk with the lovely Kelly Shushter about Internal Library Dependency Management. Kelly is a GDE, the Director of Women Who Code (Denver chapter), a developer at Thoughtbot, a mind blowingly good AndroidDev and just an all round boss of everything. She gives us the rundown explaining different strategies for maintaining and managing internal libraries in your organization/company. Show Notes Women Who Code [womenwhocode.com] Droidcon SF 2015 - Android Internal Library Dependency Management [youtube.com] Fixing a bug later is costly? [programmers.stackexchange.com] Solutions Git submodules [git-scm.com] Repo by Google [source.android.com] Artifactory - Jfrog [jfrog.com] Jitpack [jitpack.io] Kelly's hack to toggle between maven lib dependency and local source [github.com] Sponsors Caster.io [Coupon code: Fragmented] Contact @kellyshuster [twitter.com] kiodev.com @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 39039: Talking TextView with Elliott Chenger
In this episode we chat with our friend an all round amazing AndroidDev Elliott Chenger. Elliot does Android development for Under Armour and knows a thing or two about TextViews. We talk TextViews, font rendering complications in Android, performance optimizations, localization (vs internationalization), ECDC (it's a thing!) and wind the discussion off with some design software tools out there. Show Notes Under Armour : Health box [underarmour.com] Droidcon NYC 2015 - TextView how to turn design into reality for multiple languages [youtube.com] Android’s Font Renderer : Efficient text rendering with OpenGL ES Romain Guy [medium.com] DÖnn Fëlker TextView packages : Slide from Elliott's talk [speakerdeck.com] Static Layout [developer.android.com] Boring Layout [developer.android.com] Performance Traceview in Android Studio [tools.android.com] Profile GPU rendering Static Layout : for text that will not be edited after it is laid out Dynamic Layout : text layout that updates itself as the text is edited Improving comment rendering on Android [instagram-engineering.tumblr.com] Sample implementation of technique Instagram describes [stackoverflow.com] Simple trick explaining TextView wrap_content vs fixed height Energy glitches with Apple music app Google Localization Checklist [developer.android.com] Design tools Zeplin Red Pen Sketch 3 For Android Developers (Big Android BBQ 2015) [youtube.com] Sketch app Sponsor The Nerdery [nrdryjobs.com/fragmented] Contact @Echenger [twitter.com] @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 38038: What Android Devs Need to know about N
In this episode, Donn and Kaushik look at the Android N developer preview. They highlight the biggest changes that you as an Android Developer should keep an eye out for. There are tonne of features in N, so listen to this episode to get the highlights. Show Notes First preview of Android N: Developer API & Tools [android-developers.blogspot.com] Instruction for setting up your dev environment for the N preview (~=> Lambda support) [developer.android.com] Java 8 Language features [developer.android.com] ADB episode : 45 State of the Art Lambdas do not retain enclosing reference (unless really needed) commit note on Jack toolchain [android.googlesource.com] JacklrBuilder source createMethodInfoforLambda [android.googlesource.com] RxJava Android Samples using lambdas [github.com] javap - The Java class file Disassembler [docs.oracle.com] Issue tracking Annotation processing options in Jack [code.google.com] Other Java 8 language features for N [developer.android.com] Android MultiWindow features [developer.android.com] GCM Network Manager a.k.a Job Scheduler [developers.google.com] Android Notification styles [developer.android.com] Resources What’s new in Android N: Ian Lake + Joanna smith [youtube.com] 5 tips for preparing for multi window in Android N: Ian Lake [medium.com] DroidCon SF keynote: Chet and Romain [youtube.com] Random musing on the N developer preview [commonsware.com] Sponsor Hired - special offer: double your accepting bonus $2000 Contact @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 37037: Decompress 1 : Xcode, Fonts sizes, Testing and yes Agera!
In this very first edition of our Decompress episode we talk about life being code as an Android developer, some Xcode hating, Testing woes and the intensly discussed library that Google recently released Agera! Shownotes: Agera Sponsor Hired - special offer: double your accepting bonus $2000

Ep 36036: Working Remotely
In this mini Fragment we touch on a highly requested topic - working remotely. Donn talks about how to ease into remote working, tools for working remotely, tips and tricks for staying sane and productive while remote and he wraps it up by discussing the benefits employers have when hiring a remote workforce. Show Notes Remote work is best suited for information workers (programmers, designers, engineers, etc) Read Remote by DHH and Jason Fried Great book that echoes what I feel about working remote. Tip: Listen to it on Audible, it's faster to consume. How to ease into remote work at your current job Convince manager to allow a 1 day trial for one - three months. Remote day should be on Friday (fewer critical things happen on Friday, on average) After trial, if success, aim for 2-3 days of remote work. (Again, do this at the end of the week. Wed,Thu, Fri) Once successful, rally for full week of remote with an occasional in office visit (a day every week work two) Staying sane while working remote Donn's blog post on this topic Create a work day schedule (5am-2pm, 8am-5pm, 10am-7pm, etc) When you're done, you're done. Leave work (your office/etc). Schedule. Schedule. Schedule. Stick to a schedule. Get up at the same time Get dressed for work (no PJ's etc) Do your hair. Be presentable This is all mental Prepare for the day Get coffee/tea/water and snacks Try to limit the opportunity of distractions During the day Take a lunch, away from your desk. Go out for lunch with someone (significant other, friend, etc) at one to two times a week. Work out of the house a couple times a week, this increases our creativity. Outside of Work You need social interaction, Cabin Fever is a real thing. Exercise 3-4 times a week if possible. Group classes are perfect for this. CrossFit Martial Arts Yoga Pilates etc Communication When Remote Put 3x-4x more effort into communicating than previous. You're not visible seen so you need to be more vocal. Call SMS Blow up the Slack/Hipchat channel/etc Objective - Clear your own path Tools For remote to work effectively, everything should be considered remote. If one employee is remote, then all meetings should occur as if the team is remote. This ensures that everyone can work effectively without missing anything. Communication Group Chat Slack HipChat Video Chat Google Hangouts Skype Join.me Zoom.us Task Management Trello Jira Asana GitHub Remote for Employers Benefits from Remote workforce Much larger talent pool than the exhausted pool (or non-existent one that local). Higher quality employees/contractors/consultants for the same overhead. Remote creates much more loyal employees. You're giving them their life back and this is reciprocated. Your company becomes anti-fragile as you're able to adapt with the industry faster. You can hire in areas others cannot. On average, remote employees work harder and are more productive than their office counterparts. Less overhead! No need to pay for additional office space. Sponsor Rollbar - special offer: Bootstrap plan free for 90 days Contact @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 35035: Vector drawables for Android
In this mini Fragment we touch base on all the things you need to know about Vector drawables for Android development. How one can use it today, the recommended usage for vector drawable and formats, the limitations and everything else you need to know as an Android developer. Show Notes Vector Drawable [developer.android.com] Trello's Victor [github.com] What's our Vector Victor [youtube.com] Android Studio 1.4 release (with Vector Asset Studio announcement) [android-developers.blogspot.com] Support library announcements Android Support Library v23.2 [android-developers.blogspot.com] Vector Drawable backported Ian Lake also gives us the instructions in this post 9% of AAR saved on AppCompat [chris.banes.me] Android Support v23.3.1 announced [plus.google.com] Vector Asset Studio [developer.android.com] Animated Vector Drawable AnimatedVectorDrawable [developer.android.com] Chiuki on Animated Vector Drawables [sqisland.com] Road Runner library [github.com] see youtube demo [youtube.com] Problems: Dan Lew's SVG test project [github.com] bug report on no gradient support for vectors [code.google.com] Vector format restrictions : Vector Asset Studio [developer.android.com] Better conversation tool svg2android - Juraj Novák [inloop.github.io] Other references: Mark Allison - Vector Drawable Part 1 [stylingandroid.com] Mark Allison - Vectors for all (Almost) [stylingandroid.com] Using Android Vector Drawable [code.tutsplus] Sponsor Rollbar - special offer: Bootstrap plan free for 90 days Contact @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 34034: Effective Java - Item 9

Ep 33033: Talking Gradle with GDE Annyce Davis
In this episode we talk Gradle with the amazing and awesome Annyce Davis. We deal with the basics of Android's build system and dabble with some tips on improving your build times. Also we released our first ever Fragmented T-shirt in collaboration with another amazing GDE Taylor Ling of AndroidTee fame. Show Notes Annyce's talk where she mentions Cyclomatic complexity [youtube.com] OffGrid Electric Corey Latislaw on TDD and Testing [fragmentedpodcast.com] Annyce Davis' Caster.io videos DAG: Directed Acyclic Graph [wikipedia.org] DAG discussion on Fragmented - Seek to 18:35 What commands does Andorid Studio's gradle aware make perform? [stackoverflow.com] MakeBeforeRunTaskProvider source [android.googlesource.com] Creating a Gradle Plugin Use apply from in gradle to include external files Learn Groovy Gradle dry run flag [docs.gradle.org] Madis Pink - Optimizing gradle build time : Droidcon Paris [youtube.com] Annyce's talks & videos: Be a good citizen: Develop Maintainable apps [youtube.com] Caster.io videos Fragmented T-shirt Blog post Purchase here Contact Annyce @brwngrldev [twitter.com] @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 32032: Making sense of Android Support Library version numbers
The Android Support library framework is the biggest boon to Android developers. But how does one makes sense of the different versions and revisions available? In this fragment we try to address that question. Show Notes Introducing AppCompat V21 [android-developers.blogspot.com] [android-developers.blogspot.com] Prev episode with Mike Wolfson [fragmentedpodcast.com] Android Support Library - "Revision" changelog [developer.android.com] Revision vs Version [stackoverflow.com] Introducing Design Support Library Command to see dependency graph: ./gradlew -q app:dependencies Seinfeld Auditions Contact Fragmented Spec channel (sign up at the bottom) @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com] Contact email form

Ep 31031: Effective Java - Item 8
In this mini Fragment, we introduce Joshua's eighth Item. This one is a doozy, probably one of the longest items in the group of the effective Java series, but most definitely quite important. This episode is brought to you by Rollbar. Go to rollbar.com/fragmented to get their Bootstrap plan for free for 90 days. Stay tuned for more items from our "Effective Java for Android developers" Fragment series. Show Notes Effective Java (2nd Edition) - Joshua Bloch Obey the general contract when overriding equals When to not override equals: Each instance of the class is inherently unique. You don't care whether the class provides a "logical equality" test. A superclass has already overridden equals, and the superclass behavior is appropriate for this class. The equals method implement an equivalence relation which states it must be: Reflexive Symmetric Transitive Consistent For any non-null reference x, x.equals(null) must return false. A recipe for a high-quality equals method is as such: Use the == operator to check for references to this object. Use the instanceof operator to check if the argument has the correct type Cast to the correct type. Check all field types and corresponding field types. Finally, when done, ask yourself - is this method symmetric, transitive and consistent? Caveats Always override hashcode when you override equals Don't be too clever! Don't substitute another type for Object in the equals declaration. Contact @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 30030: Material Design for developers with GDE Mike Wolfson
In this episode we talk to Material Design Master and Google Developer Expert Mike Wolfson. What does Material design mean to us developers? How does one use the numerous support libraries to help with this? What widgets should and shouldn't we be using? Listen to the show and find out. Show Notes Material Design - Official site Material Design - The Specification Google Color Palette - list of "approved" colors Google Color Palette Library - picking colors from an image Android Support Lib 23.2 video [twitter.com] Resource for getting better at Material Design: Materialdoc.com - curated blog post for developers Android Historian - Mike's Material Design demo PSD resources - Up Labs [materialup.com] Official PSD layout templates Official Material Design Icons DroidconNYC 2015: Material design everywhere using the Android Support Libraries - Mike's talk Sponsors Rollbar - special offer: Bootstrap plan free for 90 days [rollbar.com/fragmented] Contact Mike Wolfson: Twitter Google+ mikewolfson.com @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 29029: All about the infamous 65,536 dex method count
If you've been an Android developer in the last 2 years, you must have seen this dreaded exception: dex: method ID not in [0, 0xffff]: 65536 Quick googling would immediately bring up the phrase "65K method count" and the recommended solution "multi-dexing". But if you want to really understand this mysterious number and the reason behind its existence, listen on! Show Notes Official Dalvik specification [source.android.com] (look for invoke- prefix methods) Android and the Dex limit (great post) ADB Ep 11 : ART, pART 2 (Trash Talk) (discussion on ART) MultiDexing [developer.android.com] (solution to your 65K method count woes) Contact @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 28028: Tips & Tricks for Android developers
Feast yourselves to a grand bonanza of tips and tricks with this episode! Donn and Kaushik talk about the tips and tricks they've picked up over the course of 2015. Android Dev Summit demo - Structural replace [youtube.com] Software Design patterns [wikipedia.org] Reformatting code: Reformatting Source code [jetbrains.com] Reformat dialog [jetbrains.com] (only VCS changed text) Library dependency management: JitPack (publishing jvm and android libraries) Internal library dependency managment - Kelly Shushter Hadi Hariri on Fragmented Ep 20 talking Intellij shortcuts Using UiAutomatorViewer to help write espresso tests - Ep. 23: Caster.io [caster.io] git pre-commit hook [gist] Intellij - work with embedded Terminal [jetbrains.com] (yes, you can customize btw zsh/bash) KG's Update script - morning ritual [gist] Cyril on Grid Spacing on Android [cyrilmottier.com] (showdividers/divider) Tor's issue on maven vs jcenter [code.google.com] Contact @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 27027: Talking Realm with Christian Melchior
Realm pro and overall genius Christian Melchior joins us in this episode to talk about all things Realm. Show Notes Realm.io for Java/Android Martin fowler on schema-less github issue on extending Realm Object Caster.io video tutorial - Intro to Realm for Android Devs Christian's talk at Droidcon NYC 2015 [youtube.com] Contact @chrmelchior [twitter.com] @realm [twitter.com] @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 26026: LetMeExplainYou AndroidDev like a pro
In this episode Donn and Kaushik chat with the one and only Israel Ferrer Camacho (@rallat). They discuss a talk Israel gave sometime back on "Android development like a pro", exchanging war stories on patterns like MVP, MVVP clean architecture etc. Show Notes Rallat's slides [pdf] Rallat's sample repo using different patterns [github] Burrito Design Pattern [twitter.com] Working Effectively with Legacy Code [amazon.com] The Clean architecture [blog.8thlight.com] Uncle Bob's talk on Vimeo Awesome Picks: Rallat: Rallat's tweet on Dagger 2 & Scope Provider Music for the week! The Weeknd Cmd Shift A - one shortcut to rule them all Donn: Philly ETE (April 11/12) (Donn's giving a talk) Life is Short [paulgraham.com] 7 videos on UI Testing and TDD with Espresso : Caster.IO Kaushik: Create a pared-down "lite" version of the app Pancakes library - alternative to Fragment Manager for views Contact @rallat [twitter.com] @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 25025: Effective Java for Android developers : Item 7
In this mini Fragment, we introduce Joshua's seventh Item and a momentous end to the first chapter: Avoid finalizers Stay tuned for more items from our "Effective Java for Android developers" Fragment series. Show Notes Effective Java (2nd Edition) - Joshua Bloch Avoid finalizers If you don't know what they are, ignorance is bliss. If you know what they are, avoid them! Finalizers in Java != destructors in C++ (C++ counterparts to constructors). In C++ destructors you reclaim resources here (Java has GC) you also reclaim non-memory resources (use the try-finally block in Java) (unpredicatable amt of time between object becoming unreachable and finalizer being executed) Never do anything time critical in finalizer! System.gc + System.runFinalization increase chances - no guarantee System.runFinalizersOnExit + Runtime.runFinalizersOnExit are the ones that do - but they are fatally flawed Java 7 has try with resources, which is also interesting and auto-closeables. [Android] devs can only dream of these. If an uncaught exception is thrown in a finalizer, it is ignored, and the finalization abruptly terminates. Severe performance penalty for using finalizers - (one e.g.) time to create and destroy simple object goes from 5.6ns -> 2400ns Only valid use: as a safety net or to terminate noncritical native resources. [Android] you're probably better off using Android's lifecycle methods. Contact @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 24024: Effective Java for Android developers : Item 6
Joshua's sixth Item: Eliminate obsolete object references , in a distinctively croaky voice. Stay tuned for more items from our "Effective Java for Android developers" Fragment series. Show Notes Effective Java (2nd Edition) - Joshua Bloch Eliminate obsolete object references Supplemental reading (for the diligent ones that follow shownotes) Do click listeners leak memory? [stackoverflow.com] Square's LeakCanary How to leak a context - Handlers and inner classes [androiddesignpatterns.com] Avoiding Memory leaks [android-developers.blogspot.com] Contact: @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 23023: Android Dev Summit Recap
Donn and Kaushik cover the happenings of Google's very first Android Developer conference - "Android Dev Summit". Together, they attended the conference both virtually and physically! Listen on for the highlights. Android Dev Summit Schedule AndroidDev Twitter account Sessions Android Dev Summit 2015 Keynote [youtube] Android Studio for Experts [youtube] Android Testing [youtube] Firechat - Framework team [youtube] Firechat - Android Tools and Testing team [youtube] Sample projects Android Topeka [github] Android Bootstrap [github] u2020 [github] Google code labs + github link Contact us: @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 22022: Effective Java for Android developers : Item 5
In this mini Fragment, we introduce Joshua's fifth Item: Avoid creating unnecessary objects. Stay tuned for more items from our "Effective Java for Android developers" Fragment series. Show Notes Effective Java (2nd Edition) - Joshua Bloch Avoid creating unnecessary objects Google says - Avoiding creating unnecessary objects too Episode 10 with Michael Bailey - String optimization Snippet to demonstrate AutoBoxing problems // sum of all positive values Long sum = 0L; for (long i=0; i Integer.MAX_VALUE; i++) { sum+=i; } Contact: @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 21021: Diving Deep with Dagger
In this episode, Kaushik and Donn dive deep into the Dependency Injection library - Dagger. We have a cameo by Dagger creator Jesse! Show Notes In other news Donn in a Banana Suit KG as a Storm Trooper AndoridTO 020 – Talking Kotlin with Hadi Hariri Google entering podcast scene and we're on it Dagger Topological Sort Jesse Wilson Cameo Dagger Linker class Jesse's MiniGuice proof of concept Avoiding injects with library Assisted Injection for Dagger AutoFactory caster.io Activity Test Rule Other great references Jake Wharton - Architecting Android Applications with Dagger Awesome picks: Donn's picks: Dagger 1 [caster.io] Intro to RxJava for Android Developers [caster.io] Intro to Realm for Android Developers [caster.io] Custom Silicone earbuds [howtogeek.com] DHH - Reconsider [medium.com] KG's picks: Cold start illusion [github.com] Song Exploder - House of Cards [songexploder.net] Song Exploder - Game of Thrones [songexploder.net] Contact us: @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 20020: Talking Kotlin with Hadi Hariri
A tonne of folks have been asking for a show on Kotlin. We got the best person in the business to take us through what could possibly be our new hope. Show Notes No tabs in Intellij [hadihariri.com] Jetbrains products Java - IntelliJ .Net - ReSharper CI server - TeamCity Issue tracking - YouTrack Smaller IDES Web/Node.js - WebStorm Python/Django - PyCharm Ruby/Rails - RubyMine C++ - CLion ObjectiveC - AppCode Hadi's 3 tips for Intellij Don't use the Mouse! Mouseless driven development [vimeo.com] Cmd Shift A - look up other commands Don't use the Find box to find things: Prefer shortcuts like Cmd O/Cmd Shift O Kotlin Kotlin - An open source JVM targeted language Jake's doc on Using Project Kotlin for Android [docs.google.com] Execution in the kingdom of nouns [blogspot.com] Kotlin : a new hope - talk by Michael Pardo [realm.io] Tony Hoare saying Null is his Billion dollar mistake [wikipedia.org] Getting started with Kotlin Kotlin Tutorials [kotlinlang.org] Kotlin Koans [kotlinlang.org] Try Kotlin online : online & interactive [kotlinlang.org] Kotlin in two minutes [youtube.com] Kotlin Slack channel [slack.com] Books: Antonio's book on Kotlin [leanpub.com] Kotlin in Action [manning.com] Kotlin tools Anko [github.com] Kotlin Android extensions [kotlinlang.org] Sample projects with Kotlin Palette Helper [github.com] Cinesapp Android Kotlin [github.com] Kotlin demo [github.com] Misc Killing off Wasabi: Part 1 [fogcreek.com] Killing off Wasabi: Part 2 [fogcreek.com] Awesome picks: Hadi Hariri The collapse of the US-EU Safe Harbor: Solving the new privacy Rubik’s Cube [http://blogs.microsoft.com/] JavaOne Conference [oracle.com] Kaushik Gopal When looking for solutions to a problem, search the source code first before StackOverflow When working on a feature, change your launcher activity (temporarily) to the one you're working on Donn Felker git - assume unchanged [stackoverflow.com] The Martian Audio Book [amazon.com] Antonio's book on Kotlin [leanpub.com] Also check out his blog [antonioleiva.com] Contact us: @hhariri [twitter.com] @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]