In this episode we talk Gradle with the amazing and awesome Annyce Davis. We deal with the basics of Android’s build system and dabble with some tips on improving your build times.
Also we released our first ever Fragmented T-shirt in collaboration with another amazing GDE – Taylor Ling of AndroidTee fame.
Annyce’s talks & videos:
Everybody loves t-shirts! More than one listener in the past has asked us when Fragmented is going to have a t-shirt – one they can wear at conferences and such.
We thought about it, but never could hone in on a wicked design. The bar is set SUPER high for good t-shirts these days! The design has to be iconic, yet you should be able to comfortably wear it to work and it shouldn’t turn you into a public billboard. Most importantly though – the design should be distinctly Android…
That calls for an extra special t-shirt and we’re stoked to tell you this… we have something extra special for you … check it out …
Announcing the Limited Edition Fragmented T-Shirt:
If the design is familiar, it should be. We worked with Taylor Ling who’s released a bunch of amazing DroidTees in the past. Taylor Ling is a phenomenal designer, who also happens to be a GDE for design and clearly understands Android design intimately.
We asked Taylor if he would do a limited edition special Fragmented t-shirt and he gladly obliged (thanks a ton, Taylor). We are super stoked to be releasing these t-shirts. They’re available in a whole bunch of colors and sizes for a limited time. We would be honored if you got one for yourself!
Purchase the t-shirt here.
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.
./gradlew -q app:dependencies
| +--- com.android.support:appcompat-v7:23.1.1 (*)
| +--- com.android.support:recyclerview-v7:23.1.1
| | +--- com.android.support:support-annotations:23.1.1
| | \--- com.android.support:support-v4:23.1.1 (*)
| \--- com.android.support:support-v4:23.1.1 (*)
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.
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:
- 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?
- Always override hashcode when you override equals
- Don’t be too clever!
- Don’t substitute another type for Object in the equals declaration.