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

Ep 19019: Effective Java for Android developers : Item 4
Singer and Android developer Donn Felker explores Joshua Bloch's fourth Item: Enforce noninstantiability with a private constructor. Stay tuned, cause we got more of these quick ones coming. Effective Java (2nd Edition) - Joshua Bloch Enforce noninstantiability with a private constructor. Examples where you don't want class to be instantiated class that groups static methods and static fields (Util like classes think java.lang.Math/java.util.Arrays) class that groups static methods (including factory methods) for objects implementing specific interfaces (think java.util.Collections) class that group methods on a final class (vs. extending the class) Considerations Makes no sense to instantiate such "Util" classes Private constructors prevent instantiation Important side effect: prevents subclassing Contact us: @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 18018: Effective Java for Android developers : Item 3
In this mini Fragment, we introduce Joshua's third Item: Enforce the Singleton property with a private constructor or an enum type. Stay tuned for more items from our "Effective Java for Android developers" Fragment series. Show Notes Effective Java (2nd Edition) - Joshua Bloch Enforce the Singleton property with a private constructor or an enum type Approaches Create a public static final INSTANCE variable and privatize constructor Same as 1 but privatize variable and expose access with provide factory method getInstance Single element Enums Considerations First two approaches are open to Serialization attacks (deserializing creates new instance) To protect from those declare the fields transient + provide readResolve method Enums are concise, provide free serialization and ironclad Singleton guarantees and are functionally equivalent to first approach Supplemental reading (for the diligent ones that follow shownotes) Dianne Hackborn regretting exposing the base Application class DH again saying Application is a Singleton with crappier semantics Elvis sightings Contact us: @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 17017: Getting Close with Android Nearby
In this power packed episode, Donn returns... If that wasn't amazing enough, Andrew and Akshay from Google join us to talk about Nearby. Show Notes Follow up Fragmented is on SoundCloud [soundcloud.com] ViewPropertyAnimator has better performance [twitter.com] Droid Inspector [sriramramani.com] Jake Wharton's Scalpel [github.com] Nearby 100 days of Google Dev, Episode 47/100 - Andrew on Nearby [plus.google.com] Chromecast Guest mode when Nearby [support.google.com] Examples/Documentation google sample for Nearby [github.com] Nearby official docs [developers.google.com] Awesome picks for the week: Andrew: svg-android [github] and its various forks inkscape tutorials by Derek Banas [youtube.com] Akshay Xiaomi mi band [engadget.com] DF: Karma Wifi (donnfelker.com) Working Remote (modess.io) KG: Google Tone - Chrome extension (chrome.google.com) Contact Fragmented @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com] @andrewbunner [twitter.com] Akshay's email Soundcloud shownotes: http://fragmentedpodcast.com/episodes/17 Contact: Fragmented: https://twitter.com/fragmentedcast Donn Felker : https://twitter.com/donnfelker Kaushik Gopal : https://twitter.com/kaushikgopal Andrew : https://twitter.com/andrewbunner Akshay: [email protected]

Ep 16016: Effective Java for Android developers : Item 2
In our third Fragment installment, we introduce Josh's second Item: Consider a builder when faced with many constructor parameters. Stay tuned for more items from our "Effective Java for Android developers" Fragment series. [audio src="http://traffic.libsyn.com/fragmented/ep_14_fragmented.mp3" preload="none" autoplay="false"] [Download][1] Show Notes Effective Java (2nd Edition) - Joshua Bloch Consider a builder when faced with many constructor parameters Patterns available for constructing object with parameters: Telescoping Constructor Pattern - Provideconstructor with only required parameters, another with a single optional param, a third with 2 optional params... and so on. Advantage: Works well for small number of parameters Disadvantage: Does NOT scale well JavaBeans Pattern - Callparameterless constructor to create the object; then call setter methods to set required parameter and each optional param of interest. Advantage: Scales well, easy (but wordy) to read resulting code Disadvantage: Allows inconsistency (if all required params not called); impossible to make classes immutable if using this pattern. Builder pattern - winner! Advantage: Simulates named optional parameters; allows immutable objects to be constructed; flexible Disadvantage: more ceremony to actually construct the Builder Class and finally use. Example usage from Android source: AlertDialog Builder [androidxref.com] Tip: Use IntelliJ to generate your Builders easily Contact us: @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 15015: Amanimations - Animations with Amanda
In this episode we talk to Amanda about how she got started as an Android developer, working at Venmo, her path to mastering Java and Android, dabbling with the dark side and Animations in Android! Show Notes Learning Java and Android Java for Dummies [amazon.com] Effective Java (2nd Edition) - Joshua Bloch [amazon.com] Android programming: The Big Nerd Ranch Guide [bignerdranch.com] Computer Science CS50 by Harvard University: David Malan [youtube.com] CS61B by UCBerkely: Jonathan Shewchuk [youtube.com] MIT 6.00 by MIT Opencourseware [youtube.com] Venmo Venmo: The Musical 2015 (lip dub) Hack Week at Venmo [venmo.com] Swift/iOS and other languages Kotlin [kotlinlang.org] Animations Snowdream github repo [github.com] DevBytes youtube playlist Chet Haase on Animations in Honeycomb [blogspot.com] Droid Inspector [sriramramani.com] Android ObservableScrollView [github.com] Awesome picks for the week: Amanda On being a senior engineer [kitchensoap.com] KG: Guillotine animation how we developed the guillotine menu animation for Android [yalantis.com] how we developed the guillotine menu animation for iOS [yalantis.com] Timely like Animations Visualizing the Timely number tweening animation [youtube.com] Implementing Timely's tweening animation [sriramramani.wordpress.com] Contact Amanda @mandybess [twitter.com] Fragmented @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 14014: Effective Java for Android developers : Item 1
We've mentioned the book "Effective Java" by Joshua Bloch quite a few times on previous episodes. At this point, everyone knows they should have read this book (quadruple times). But it's a dense read and everyone could use a reading buddy. Also, what does Effective Java look like through the eyes of an Android developer? In this second installment of our Fragment (a.k.a mini-episode), we thought we'll do our listeners a favor and help with that reading. We introduce the very first of these venerable "Items": Consider providing static factory methods instead of constructors. Stay tuned for more items from our "Effective Java for Android developers" Fragment series. Show Notes: Effective Java (2nd Edition) - Joshua Bloch Consider providing static factory methods instead of constructors static factory method makeText for Toast class [androidxref.com] ObjectAnimator [androidxref.com]: .ofInt [androidxref.com] .ofArgb [androidxref.com] .ofFloat [androidxref.com] Advantages: You can control the name and thus give it much more meaningful names You are not required to create a "new" object each time they are invoked You can even return an object that's a subtype of the return type (unlike constructors which only return class type) e.g. Java Collections framework [grepcode.com] Disadvantages: Classes without public or protected constructors cannot be subclassed Static factory methods are not readily distinguishable from other static methods Takeaways "Consider" using static factory methods (not always) Use newInstance when creating Fragments [androiddesignpatterns.com] Use newIntent static factory method for creating intents inside the target activity. Contact us: @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 13013: Corey Latislaw on TDD and Testing
In this episode we revisit the topic of Testing, looking at it from a TDD perspective. Globetrotter, Kata Queen, TDD practitioner and overall boss of Android development - Corey Latislaw, joins us in this episode with thoughts, tips and tricks on pulling off TDD. She also shares some of her wicked sketchnoting tips and made a very special Sketchnote just for this episode! Have a look at the sketchnote here. Show Notes GDG [developers.google.com] GDE [developers.google.com] GDE Android - Ms.Latislaw [developers.google.com] GDE Android - Mr.Felker [developers.google.com] Sketchnoting The Sketchnote Handbook - Mike Rohde [amazon.com] Sketchnoting for Techies [coreylatislaw.com] Corey's Google I/O Sketchnotes [coreylatislaw.com] Corey's live sketchnoting (with videos) [coreylatislaw.com] Kids on Computers [kidsoncomputers.org] Corey's books Android Activity Book [gumroad.com] (coupon “fragmented” for $5 off) Android Theory Book [gumroad.com] (coupon “fragmented” for $5 off) Running Code Coverage in Android Studio [stackoverflow.com] Katas Video workshop [gum.co] (coupon “fragmented” for $5 off) Simple Android app [coreylatistlaw.com] Robolectric Integration [coreylatistlaw.com] Awesome picks for the week: DF: Stop Using General CTA’s Text - be specific Founder’s Journey Podcast Baremetrics - Episode - Build vs. Buy: How to blow $100,000 saving money [soundcloud.com] KG: ANTI PATTERNS every programmer should be aware of [sahandsaba.com] Contact Corey @corey_latislaw [twitter.com] coreylatislaw.com Fragmented @fragmentedcast [twitter.com] @donnfelker [twitter.com] @kaushikgopal [twitter.com]

Ep 12012: Continous Integration and Collective Code Ownership
In this episode we're trying something new. Everyone has requested more episodes of the podcast. In short, everyone wants a weekly show. So this week, we're introducing what we call a mini-episode ... or as we like to call them a "Fragment". Fragment episodes will be shorter in length but still packed with goodness. They will range from ~7-25 minutes in length and will showcase either Kaushik, myself (Donn) or both of us. In the first "Fragment" installment we're going to talk about Continuous Integration (CI) and Collective Code Ownership (CCO). Donn talks about what CI is, why its important and how it benefits you and your team. He then dives right into CCO and how it can be facilitated through testing. We hope you enjoy these new mini-episodes ... aptly named ... Fragments. :) Show Notes Thoughtworks - Continuous Integration [thoughtworks.com] Working Effectively with Legacy Code - Michael Feathers [amazon.com] Continuous Integration solutions: Jenkins CI [jenkins-ci.org] Cloud solution- Cloudbees [cloudbees.com] TeamCity [jetbrains.com] CircleCI [circleci.com] Setting up CI for Android [caster.io] Ship.IO [ship.io] TravisCI (open source) Travis CI org [travis-ci.org] (commercial) Travis CI com [travis-ci.com] Continuous Delivery: Deploybot (previously) Dploy.io [deploybot.com] Codeship [codeship.com] Contact Donn Felker @donnfelker [twitter.com] donnfelker.com Kaushik Gopal @kaushikgopal [twitter.com] kaush.co

Ep 11011: The Fowler Road to a Clean Architecture
In this episode - Donn and Kaushik dive into a topic that is very near and dear their hearts - application architecture. They talk about how Martin Fowler has inspired a lot of their architectural decisions and how they're moving towards defining what a clean architecture means to them and other developers. They talk about Model View Presenter, Model View Controller and many other topics that surround these two common patterns. Take a listen and go for the ride on architecture train ... all aboard! Show Notes Chit-chat: Exponential backoff with RxJava [github.com] RxJs - ReactiveExtensions for Javascript [github.com] Follow up: Moving GC only applicable when app goes into background: A closer look at ART in Android L (see last paragraph) [anandtech.com] Google I/O 2014: The ART Runtime [youtube.com] The road to a clean architecture: Bad practices: Cargo cult programming [wikipedia.org] God objects [wikipedia.org] Martin Fowler’s articles on Patterns of Enterprise Application Architecture: Supervising Controller [martinfowler.com] Presentation Model [martinfowler.com] Passive View [martinfowler.com] Martin Fowler’s Book P of EAA [amazon.com] Decoupling the presenter [mattlogan.me] Other approaches to clean architectures: MVVM on Android - what you need to know [willowtreeapps.com] Model View ViewModel for iOS [teehanlax.com] VIPER architecture on iOS [objc.io] VIPER inspired Clean Android architecture [speakerdeck] Architecting Android the clean way [fernandocejas.com] MVP Android [antonioleiva.com] Awesome picks: Donn: Learning RxJava for Android by example - Kaushik’s talk [youtube.com] Loading data from multiple source [danlew.net] StorIO [engineering.pushtoreresh.com] Mocks aren’t Stubs [martinfowler.com] Kaushik: Rebound animation library [facebook.github.io] Will Bailey (creator of Rebound): OrigamiActivity.java [gist.github.com] Under the hood [code.facebook.com] Example 1 [youtube.com] Example 2 [youtube.com] Example 3 [youtube.com] Example 4 [youtube.com] Springy animations with Rebound [parallelcross.com] Contact Donn Felker @donnfelker [twitter.com] donnfelker.com Kaushik Gopal @kaushikgopal [twitter.com] kaush.co

Ep 10010: Boning Up on Core Java with Michael Bailey
In this episode Donn and Kaushik talk to the very talented Michael Bailey about core Java principles and practices. Michael has quite the deep and passionate understanding of Java and we thought it would only be perfect to share this episode with a very passionate Java crowd - Android developers. We talk about IntelliJ, Testing, Inheritance, Static Code analysis, Garbage Collection, Data Structures and much more in this episode. If you're looking to learn a thing or two about Java, then this is your episode. We hope you enjoy. Show Notes elapsedRealtimeNanos for getting wall time [developer.android.com] Android Pay announcement [officialandroid.blogpost.co.uk] Intellij information: Curated list of IDE plugings by Jetbrains [blog.jetbrains.com] Key promoter plugin [plugins.jetbrains.com] Productivity Guide [jetbrains.com/help] Extending + Shrinking selection [jetbrains.com/help] Testing talk: Google acquires Appurify [techcrunch.com] Cloud Test Lab (erstwhile Appurify) [developers.google.com/cloud-test-lab] Great books on improving your Java skills: Gang of Four [amazon.com] Effective Java (2nd Edition)- Joshua Bloch [amazon.com] Effective code review technique (WTFs a minute) [cryhavok.org] On inheritance: Item 15 : Design and document for inheritance or else prohibit it Item 16 : Favor composition over inheritance Chris Banes on using AppCompatDelegate [twitter.com] Static code analyzers: Checkstyle, PMD, Findbugs [github.com] Android Lint [developer.android.com] Findbugs [sourceforge.net] PMD [sourceforge.net] blog post setup static code analysis tools [vincentbrison.com] Infer by Facebook [code.facebook.com] John Carmack In-Depth: static code analysis [gamasutra.com] Garbage collection: Google IO 2011 talk [youtube.com] Medium article - Garbage Collection[medium.com] LeakCanary by Square [github.com] What is meant by immutable [stackoverflow.com] Data structures for Android ArrayMap (Android alt. to HashMap) [developer.android.com] SimpleArrayMap [developer.android.com] SparseArray (Android alt. to mapping int -> Objects) [developer.android.com] Benchmarking DS: Caliper [github.com] Vogar examples [code.google.com] ADB Ep. 27 (forEach quirks) ( minute 9:07) [androidbackstage.blogpost.com] Coding for performance blog post [devahead.com] See Item 21 in Effective Java (Ed. 1) about typesafe enum patterns (this was before enums existed) Null safety in Kotlin [kotlinlang.org] Mondegreen [wikipedia.org] Mad Gab Awesome picks: Michael: Learn how to file high quality bug report for Android tools [tools.android.com] List of Android conferences [androidstudygroup.github.io] GTAC 2015 conference [googletesting.blogpost.com] Developing for Android - blog post series by Google developers [medium.com] Kaushik: library: Android-ReactiveLocation [github.com] Google App for Donation OneToday [onetoday.google.com] An article discussing the case between Oracle vs Google [techdirt.com] Donn: Vote for my android talks at DroidCon NYC! :) Anker Charging Station [amazon.com] 22$ Standing Desk [iamnotaprogrammer.com] Contact Michael Bailey @yogurtearl [twitter.com] Donn Felker @donnfelker [twitter.com] donnfelker.com Kaushik Gopal @kaushikgopal [twitter.com] kaush.co

Ep 9009: Google IO Special
This is the special Google I/O 2015 episode. In this episode - Kaushik makes the trek to Google I/O and chats with various Android developers about their favorite part of Google IO. I was not able to make it but Kaushik was able to interview of top developers in the industry and I’ll tell you what - this is a great episode - I really wish I was there to join him. I know he had a great time chatting and interacting with everyone. We hope you enjoy the show as much as we enjoyed creating it. Show Notes Dan Lew (Trello) @danlew42 - twitter.com Dan's Blog - danlew.net Ty Smith (Twitter) @tsmith - twitter Eric Cochran (IFTTT) NightlyNexus - github +EricCochranNightlyNexus - plus.google.com Cyril Mottier (Capitaine Train) @cyrilmottier - twitter About page - cyrilmottier.com Shifty Jelly Team Pocket Casts - pocketcasts.com Philip Simpson @geekygecko - twitter.com Russell Ivanovic @rustyshelf - twitter.com Amanda Hill (Venmo) @mandybess - twitter.com Dave Smith (New Circle) @devunwired - twitter.com +DaveSmithDev - plus.google.com Corey Latislaw (CapitalOne) @corey_latislaw - twitter.com coreylatislaw.com Chet Haase @chethaase - twitter.com Android Backstaage - blogspot.com Chiu-ki Chan @chiuki - twitter.com Elliott Chenger (Under Armour) @echenger - twitter.com blog - omitneedlesscode.com Maria Neumayer (Citymapper) @marianeum - twitter.com Danny Roa (Foursquare) @dannyroa - twitter.com Michael Bailey @yogurtearl - twitter.com Donn Felker @donnfelker - twitter.com donnfelker.com Kaushik Gopal @kaushikgopal - twitter.com kaush.co

Ep 8008: Pocket Casts Amazingness with Philip Simpson
In this episode, we talk to Philip Simpson, one of the rockstar developers of the amazing Pocket Casts Android Application. We learn about how Philip and his partner, Russell, started Shifty Jelly and how they grew their team from a two-person shop to a small staff all while creating one of top apps on Google Play, Pocket Casts. We also talk about some of the tools, tips and tricks that they've used to help them scale, grow and become more effective as indie app developers. We eventually hop into some deep talk about audio software and all kinds of tech in general. If you've always wondered what it takes to be an indie app developer then this is the episode for you - Philip does not let us down. Show Notes Pocket Casts Pocket Weather (for Australia) [play.google.com] Phil’s stuff LG 34” Ultrawide curved monitor (that Phil uses) [amazon.com] device test lab [twitter.com] Android cheatsheet [gist.github.com] Audio effects and features in Pocket Casts [blog.shiftyjelly.com] Marco Arment Accidental Tech Podcast [minute 1:10 he talks of using Go for podcast feed parsing] [atp.fm] Build and Analyze podcast (now retired) [5by5.tv] Pocket Cast Web client [play.pocketcasts.com] Pocket cast gets sync [lifehacker.com] Pocket Casts supporting service: Pingdom (monitoring uptime)[pingdom.com] MySql Mongo MariaDb HockeyApp Android latency: Android latency problem [superpowered.com] The Tonight show starring Jimmy Fallon (with Billy Joel) [youtube.com] Looper app (iOS only :( ) Pocket Casts 3rd party libs Butter Knife Android Universal Image Loader > Picasso Material Dialog library [github.com] SnackBar [github.com] Mr.Vector (now deprecated) [github.com] Victor by Trello [github.com] (Friend of the show - Dan’s library that we also talked about) StartUp podcast (by Gimlet media) [gimletmedia.com] Android Device Dashboard (showing OS breakup) Awesome picks: Philip: Android tool for mac [github.com] Makes it easy to take screenshots, videos, run scripts, bug reports.. 37 Signals - Getting Real [37signals.com] A book Phil read when we were starting Shifty Jelly Donn: Sidekick By HubSpot [getsidekick.com] Allows you to see when someone has opened your email etc. Tim Ferriss Show with Noah Kagan [fourhourworkweek.com] Great productivity hacks for everything and overall great show Grammarly Chrome Extension [chrome.google.com] Fix your grammatical errors before the internet fixes them for you. 10 Lessons from 4 Years Working Remotely [whenihavetime.com] Kaushik: Custom View Groups- engineer at Facebook [wordpress.com] LeakCanary by Square Contact Philip Simpson @geekygecko [twitter.com] shiftyjelly.com pocketcasts.com Donn Felker @donnfelker [twitter.com] donnfelker.com Kaushik Gopal @kaushikgopal [twitter.com] kaush.co

Ep 7007: Jake Wharton on Testing, SqlBrite, NotRxAndroid, RxJava and Much More
In the final part of this two-part segment, we continue our talk with Jake Wharton. We dive right into the topic of testing. Jake then talks about his approach to testing apps in Android and the different languages that he finds interesting. We then move on to RxJava, NotRxAndroid, SqlBrite and many other libraries and topics to round out this great second episode. Again, we'd love to thank Jake for joining us here on the Fragmented Podcast show; it has been an honor. We hope you enjoy it as much as we did. Show Notes u2020 Demo App by Jake [github.com] Real Intent Factory [github.com] Fake Intent Factory [github.com] Slides on Real/Fake Intent Factory [speakerdeck.com - DroidCon Presentation] Server side frameworks with Java Jersey [jersey.java.net] Jax-rs [jax-rs-spec.java.net] Go [golang.org] Other languages Jake on using Kotlin for Android [plug.google.com] Kotlin (by JetBrains) [kotlinlang.org] Anko [github.com] Kotlin Android Extensions [kotlinlang.org] Annotation processing for Groovy code [gradle.org] Non-Square libraries that Jake uses RxJava [github.com] AutoParcel [github.com] StickyListHeaders [github.com] SQLBrite [github.com] NotRxAndroid [github.com] Awesome picks: Donn: Android Testing is ten years behind http://philosophicalhacker.com/2015/04/17/why-android-unit-testing-is-so-hard-pt-1/ SquiDB is Yahoo’s new SQLite layer for Android: https://github.com/yahoo/squidb Jake: Diversify Your Learning Rust - http://blog.rust-lang.org/2015/04/10/Fearless-Concurrency.html Internals of Git - https://codewords.recurse.com/issues/two/git-from-the-inside-out GZip Encoding - http://jvns.ca/blog/2015/02/22/how-gzip-uses-huffman-coding/ Java 10 value objects - http://cr.openjdk.java.net/~briangoetz/valhalla/specialization.html Kaushik: 27” IPS LCD Monitors for Korean eBay vendors New FIRST FSM-270YG 27" LED 2560x1440 The new DareDevil show on Netflix! Contact Jake Wharton @jakewharton [twitter.com] jakewharton.com Donn Felker @donnfelker [twitter.com] donnfelker.com Kaushik Gopal @kaushikgopal [twitter.com] kaush.co

Ep 6006: Jake Wharton on Becoming a Better Developer and Creating Successful Open Source Projects (Part 1)
In part one of this two-part segment, we talk to the one and only Jake Wharton. He gives us the scoop on how he operates day to day, what he looks for in a good Android developer and how to become a better Android developer. He also touches upon the various sources and non-Java platforms that he draws inspiration from. Finally, he talks about open source and gives tips on leading an open source project. Show Notes Follow up: Michel Panzer on UIL [plus.google.com] Episode topics: ActionBar Sherlock [github.com] Jake’s working environment Square Github Styles [github.com] No tabs in Intellij [hadihariri.com] Android source code browsing: Android SDK Search by Roman Nurik [chrome.google.com] Download the Android AOSP Source [source.android.com] AndroidXref [androidxref.com] Grepcode Android [grepcode.com] Device Platform Versions [developer.android.com] non-Java languages and platforms to draw inspiration from: Go [golang.org] Rust [rust-lang.org] CycleJs [github.com] Droidcon Montreal keynote by JW and JW [youtube.com] Contact Jake Wharton @jakewharton [twitter.com] jakewharton.com Donn Felker @donnfelker [twitter.com] donnfelker.com Kaushik Gopal @kaushikgopal [twitter.com] kaush.co

Ep 5005: Image libraries for Android
In this episode of Fragmented, Donn and Kaushik start off by discussing the tips and tricks available for efficiently loading images in an Android app. Good image libraries make use of these techniques and perform all the heavy lifting in the background. So they then discuss the different image library options available for Android developers. Show Notes Techniques/tips on effective image rendering in Android: Bitmap sizes and allocation: Displaying bitmaps efficiently [developer.android.com] RGB_565, ARGB_888 and other different bitmap configurations[developer.android.com] Android Camera2 apis [developer.android.com] Chet Haase DevByte : Bitmap allocation [youtube.com] (bitmaps managed in Dalvik heap post 3.0; so large bitmaps implies large heap implies GC could happen more often) Reuse bitmaps: inBitmap option for Android 3.0 and later [developer.android.com] before Android 4.4 only equal sized bitmaps with inSampleSize 1 supported[developer.android.com] Reusing bitmap objects on Android[booking.com] Downsample bitmaps Load a scaled down version into memory [developer.android.com] see code for calculateInSampleSize Caching Cache Algorithms - see LruCache [wikipedia.org] LruCache object in Android [developer.android.com] JakeWharton DiskLruCache [github.com] Don’t use Soft or Weak References for your Caches [developer.android.com] Android Performance Pattern DevByte - why 60fps [youtube.com] Image libraries for Android: Picasso by Square [github.com] fetch introduced in V 2.5.0 (Changelog) [github.com] Picasso doesn’t do bitmap recycling Jake Wharton’s thoughts on Picasso not having a bitmap pool [github.com] Glide [github.com] github issue where author explains tags being used to store metadata[github.com] Glide does bitmap recycling Ion DeepZoom with Ion [youtube.com] Uses BitmapRegionDecoder to implement DeepZoom[developer.android.com] Volley Ficus Kirkpatrick introduces Volley in Google.IO [youtube.com] Doesn’t come with an image caching mechansim out of the box[stackoverflow.com] Fresco Introducing Fresco [code.facebook.com] Romain Guy concern over native api call [twitter.com] Other noteworthies that we did not discuss: Universal Image Loader Library comparisons by others: Picasso vs Glide [inthecheesefactory.com] Image library comparisons: JesseWilson on Picasso vs Fresco :P [twitter.com] JesseWilson Picasso:Glide :: Coke:Pepsi [twitter.com] Image comparisons by Koushik Dutta [plus.google.com] Volley vs Picasso [bignerdranch.com] Awesome picks: Donn Moshi - A new modern JSON library for Android and Java from the Square guys JsonSchemaToPojo: Take json or a json schema and turn it into POJOs. Parcelabler: Generate Parcelable implementations with a click of a button Parceler: Android parcels created through Code generation KG: Not your father's Java: 3 part blog post series An opinionated guide to modern Java development Stetho caster.io screencast: Debugging Android with Stetho - Donn’sscreencast Cleartones : professional ringtones! Contact Donn Felker @donnfelker [twitter.com] donnfelker.com Kaushik Gopal @kaushikgopal [twitter.com] kaush.co

Ep 4004: The RxJava show with Dan Lew (Part 2)
In this episode of Fragmented, Donn and Kaushik continue their conversation with Dan Lew on RxJava. In the final part of this 2 part series, they talk about many useful RxJava operators and other intricacies of using RxJava in Android. Show Notes RxJava Operators: Observable.just [reactivex.io] Observable.from [reactivex.io] Observable.defer [reactivex.io] Using defer to handle “Old, Slow Code” [blog.danlew.net] Observable.map [reactivex.io] Observable.flatmap [reactivex.io] map vs flatmap (alchemist and cheese shredding analogy [reddit]) Observable.zip [reactivex.io] Observable.combineLatest [reactivex.io] Observable. switchMap [reactivex.io] Observable.distinctUntilChanged [reactivex.io] Observable.lift explanation [reactivex.io] Observable.compose Don’t break the chain (using compose) [blog.danlew.net] Observable.filter [reactivex.io] Observable.take [reactivex.io] subscribeOn vs observeOn [stackoverflow.com] Understanding debounce, buffer, debouncedBuffer [nerds.weddingpartyapp.com] RxJava Components: Subjects: when is it appropriate to use [.net but still applies] [[davesexton.com] 19] Implementing an event bus using RxJava [nerds.weddingpartyapp.com] RxJava plugins [github.com] RxJavaDebug plugin - for hooking to start/end/error [github.com] .toBlocking() [reactivx.io] Composite Subscriptions [reactivex.io] Retrolambda Retrolambda library [github.com] Retrolambda gradle plugin [github.com] Common Issue with Retrolambda (NoClassDefFoundError) [github.com] Hot vs Cold observables - From the RxJs wiki [github.com] uses js instead of java, but concepts are the same and this is the best explanation I’ve found so far. RxJava wiki on Backpressure [github.com]: Ring buffer size: System.setProperty("rx.ring-buffer.size", "128"); Issue with changing buffer ring size [github.com] It’s 16 on Android, down from 1024 originally. :P So it’s actually 64x smaller. Awesome picks: Dan Lew: Simple Made Easy (talk by Rich Hickey creator of Clojure) [infohq] Victor by Trello (SVG assets) [github.com] Donn: Realm Object Database [realm.io] Kaushik: Therapeutic Refactoring (talk by Katrina Owen) [youtube.com] Contact Dan Lew @danlew42 [twitter.com] Dan Lew’s blog [danlew.net] Donn Felker @donnfelker [twitter.com] donnfelker.com Kaushik Gopal @kaushikgopal [twitter.com] kaush.co

Ep 3003: The RxJava show with Dan Lew (Part 1)
In this episode of Fragmented, Donn and Kaushik interview Dan Lew - druid of RxJava & RxAndroid! In part 1 of this 2 part series, we find out more about the one they call Dan Lew. We ask Dan how he started off as a developer, how he stays on top of development, where he draws inspiration from for amazing Android development and much more. We then begin disarming the glorious beast that is RxJava touching upon it’s benefits and begin discussion of some common operators. Show Notes Dan’s open source contributions: Joda-Time Android [github] Why developers hate Timezones [youtube] Gfycat [github] Victor by Trello [github] Staying on top of Android Development: Android Weekly Android Dev Digest Google RSS reader app - gReader androiddev [reddit] Best Book on learning Java [Effective Java: Joshua Bloch] Dan’s favorite apps: Timely Pocket Casts Reddit News Muzei gReader Link Bubble For more inspiration: Android Niceties Android Games that Dan plays Threes! Hoplite Wordiest Working Remotely: Trello Slack Notes by Eran Hammer [hueniverse.com] Getting started with RxJava: Dan Lews RxJava Series Learning RxJava with Android by example [nerds.weddingpartyapp.com] Android-RxJava [github.com/kaushikgopal] Intro to Rx you’ve been missing [gist] Rx Rx - Reactive Extensions by Microsoft ReactiveX [official page for Reactive Extensions] RxAndroid

Ep 2002: Android Studio
In this episode of Fragmented, Donn and Kaushik talk about the official IDE for Android development – “Android Studio”. Why should you care about your IDE? Is Android Studio really open source? What are some of the advantages of using Android Studio? How can you customize and tweak Android Studio so you take your android development game to the next level? Listen to this episode and find out. The awesome picks for this episode are particularly awesome too. Shownotes Android Studio (official IDE): Google announces Android Studio [Google I/O 2013] Developer frontpage – Android Studio is the official editor [developer.android.com] “Open source-ness” of Android Studio: IntelliJ open source platform for building IDEs [jetbrains.org] Eclipse plugin ADT [developer.android.com] Build Android Studio from command line [tools.android.com] Jake Wharton’s u2020 Demo App Environment customizations: Kaushik’s Android studio environment (codestyle, livetemplates, keymap etc) [github.com] Chris Kempson – original theme [chriskempson.com] Annotation Magic: A look at Android support animations [anupcowkur.com] Support Annotations [tools.android.com] Contract Annotations [blog.jetbrains.com] Tools prefix: Tools of the trade by Sebastiano Poggi Learning Android Studio resources: Donn Felker Android Studio Tips: Screencasts on Android Studio Android Tools Book – Android Studio Chapter (FREE) Philippe Breault [developerphil.com]: Android studio tips roundup #1 Android studio tips roundup #2 Android studio tips roundup #3 Android studio tips roundup #4 Android studio tips roundup #5 The most important things on the internet: Llamas in Arizona Blue Black White Gold dresses Awesome picks: Stetho Dan Lew’s RxJava Series Rounded ImageView: Rounded Bitmap drawable usage[gist] Evelio blog post on different approaches to creating rounded image views Chris Banes For questions, comments or suggestions you can reach us at @donnfelker and @kaushikgopal

Ep 1001: Welcome & Testing in Android
Welcome to the very first episode of Fragmented. Donn and Kaushik talk about why they started the podcast, the structure of the podcast and a little about who they are. The main topic for this episode is Testing! What are the benefits of testing, in general? Why does testing specifically help Android developers? What is the state of testing in Android and how does one test in Android? Shownotes Free Getting Started with Espresso 2.0 Screencast Unit testing support – Android Tools site Donn – Android from the trenches Michael Bailey – (yogurtearl) – espresso, spoon and wiremock Matt Logan – decoupling the presenter KG – interested in an android developer podcast? UiAutomator – Junit and Monkeyrunner got drunk and hooked up Working Effectively With Legacy Code Kent Beck talking about TDD – [Youtube Is TDD Dead] Espresso 2.0 Cheat Sheet Jake Wharton – ActivityRule AssertJ / AssertJ-Android XKCD – Compiling Comic Mocks Aren’t Stubs – Martin Fowler ClassNotFoundExceptoin – Espresso 2.0 Dagger Issue Testing Links Testing fundamentals Espresso Robolectric Mockito Spoon Robotium Android Dev Digest AndroidJobs.IO Sample Android Testing Projects Google Samples Awesome picks: Device Lab Inconsolata-dz font for development Consolas font for development For questions, you can reach us at @donnfelker and @kaushikgopal