Fragmented - AI Developer Podcast

Fragmented - AI Developer Podcast

By Kaushik Gopal, Iury SouzaScienceTechnologyEducation
Download on the App Store

Fragmented - AI Developer Podcast episodes

  • 032: 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
      • 13 min
      • 031: 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]
                  • 15 min
                  • 030: 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]
                          • 44 min
                          • 029: 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]
                              • 9 min
                              • 028: 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]
                                      • 39 min
                                      • 027: 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]
                                          • 44 min
                                          • 026: 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]
                                                    • 42 min
                                                    • 025: 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]
                                                              • 12 min
                                                              • 024: 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]
                                                                    • 13 min
                                                                    • 023: 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]
                                                                            • 36 min

                                                                            About Fragmented - AI Developer Podcast

                                                                            From the publisher's feed

                                                                            Fragmented is an AI developer podcast for engineers who want to go beyond vibe coding and ship real software.

                                                                            More shows like Fragmented - AI Developer Podcast

                                                                            Design Details by Brian Lovin, Marshall Bock

                                                                            Design Details

                                                                            360 Listeners

                                                                            Developer Tea by Jonathan Cutrell

                                                                            Developer Tea

                                                                            403 Listeners

                                                                            Does Not Compute by Sean Washington, Rockwell Schrock

                                                                            Does Not Compute

                                                                            53 Listeners

                                                                            Toolsday by Una Kravets, Chris Dhanaraj

                                                                            Toolsday

                                                                            48 Listeners

                                                                            Swift Unwrapped by JP Simard, Jesse Squires, Spec Network, Inc.

                                                                            Swift Unwrapped

                                                                            90 Listeners