Fragmented - AI Developer Podcast

Fragmented - AI Developer Podcast

By Kaushik Gopal, Iury SouzaScienceTechnologyEducation
Download on the App Store

Fragmented - AI Developer Podcast episodes

  • 022: 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]
        • 13 min
        • 021: 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]
                      • 1 hr 16 min
                      • 020: 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
                              1. Don't use the Mouse! Mouseless driven development [vimeo.com]
                              2. Cmd Shift A - look up other commands
                              3. Don't use the Find box to find things: Prefer shortcuts like Cmd O/Cmd Shift O
                              4. 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]
                                                  • 1 hr 25 min
                                                  • 019: 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

                                                      1. class that groups static methods and static fields (Util like classes think java.lang.Math/java.util.Arrays)
                                                      2. class that groups static methods (including factory methods) for objects implementing specific interfaces (think java.util.Collections)
                                                      3. class that group methods on a final class (vs. extending the class)
                                                      4. 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]
                                                          • 7 min
                                                          • 018: 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

                                                              1. Create a public static final INSTANCE variable and privatize constructor
                                                              2. Same as 1 but privatize variable and expose access with provide factory method getInstance
                                                              3. Single element Enums
                                                              4. 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]
                                                                    • 12 min
                                                                    • 017: 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
                                                                                      • 1 hr 2 min
                                                                                      • 016: 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]
                                                                                                      • 13 min
                                                                                                      • 015: 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]
                                                                                                                          • 1 hr 5 min
                                                                                                                          • 014: 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:
                                                                                                                                  1. You can control the name and thus give it much more meaningful names
                                                                                                                                  2. You are not required to create a "new" object each time they are invoked
                                                                                                                                  3. 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:
                                                                                                                                      1. Classes without public or protected constructors cannot be subclassed
                                                                                                                                      2. Static factory methods are not readily distinguishable from other static methods
                                                                                                                                      3. Takeaways
                                                                                                                                        1. "Consider" using static factory methods (not always)
                                                                                                                                        2. Use  newInstance when creating Fragments [androiddesignpatterns.com]
                                                                                                                                        3. Use newIntent static factory method for creating intents inside the target activity.
                                                                                                                                        4. Contact us:
                                                                                                                                          • @fragmentedcast [twitter.com]
                                                                                                                                          • @donnfelker [twitter.com]
                                                                                                                                          • @kaushikgopal [twitter.com]
                                                                                                                                          • 18 min
                                                                                                                                          • 013: 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]
                                                                                                                                                            • 1 hr 3 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