Issue #248

March 12th, 2017

Articles & Tutorials

link image   Why your app should crash (

Too many times I've seen developers trying to avoid crashes at all cost. Actually, sometimes you want your app to crash. Jeroen Mols explains why and gives some practical tips.

The Two ID Problem (

Dan Lew calls out a surprisingly tricky problem he ran into when developing offline mode in the Trello Android app: handling identifiers.

Retaining Dagger components (

Here's one way to retain application components across configuration changes that involves using Dagger.

The Burden of Knowledge (

Sharing knowledge is the mark of a professional software engineer. If you have unique knowledge which is crucial to the company, it is your duty, as a professional, to share it.

Realm Migrations Supercharged with Dagger (

Annyce Davis is always looking for opportunities to improve her code, and she realized that the recommended way of handling migrations in Realm could be improved significantly by means of Dagger 2. 

link image   How to be a Mock-Star… (

In this post by Garima Jain you'll learn the whys and hows of mocking objects... until you're a "Mock-Star".

Animating Markers with MapOverlayLayout (

In the second part of a four part series by Mariusz Brona you'll learn how to animate markers on a Google Map.

What Unit Tests are Trying to Tell us About Activities Pt 2 (

In this second part of the series, the Philosophical Hacker show how using Activity’s and Fragments as building blocks makes our code hard to test and show that our failure to unit test tell us that our target class has low-cohesion.

JUnit 5: DisplayName (

JUnit 5 offers a @DisplayName annotation which we can use on our tests. The text which we add to this annotation is what the test runner will display in the test report. Mark Allison shows how this can be useful.

Clearer RxJava intentions with Single and Completable (

You should consider using two wonderful RxJava 2 constructs called Single and Completable. Valentin Hinov shares some examples of how to use them.

Custom FindBugs detectors in Android (

There are two tools that exist to take compile(ish)-time code checking to the next level - Android Lint and the FindBugs Project. Here's a closer look at FindBugs and how it can help even beyond what Lint provides.

Static Code Analysis Tools (

Dmytro Danylyk continues his series on optimal project setups, this time showing how to use static code analysis tools to catch issues early on.

Sync Failure Handling (

Part three of the Dan Lew's Trello Android offline series. This time it's about how they handle errors while syncing.



link image   JitPack - Publish your Android libraries (

JitPack is an easy to use package repository for Android libraries. You can publish your code straight from GitHub without setting up build and deployment. Super quick releases make sharing code even easier and faster.

link image   A Better Location Stack for Android - Try it Free (

Sign up for the PathSense SDK right now to enjoy (1) Geofencing 2x faster, and 2x more accurate than Google Play Services (2) Activity recognition that's 6x faster with half the battery drain (3) and our new TruePath system - insanely improved map matching!



link image   LottieFiles (

Free high quality Lottie animation files

Google 🤜🤛️ ️Designers (

Nick Butcher is part of Google's Design Relations team, helping designers understand or apply Material Design, design a Progressive Web App or to get their head around designing for Android, Nick and his teammates can help.



Software Engineer - Android @ trivago (Düsseldorf, Germany)

Do you have proven Android app development credentials to match your passion for creating world-class products? We believe in achieving innovation through constant experimentation and are seeking an experienced software engineer with the passion and expertise to help push us to greater heights.

Android Developer (Austria, Europe)

You want to create apps that are used daily by millions of users worldwide? Join our team and use your Android passion to make the life of millions healthier.

Android Developer (London)

Nodes is a young, ambitious mobile agency doing native apps with offices in London, Copenhagen and Aarhus. We take pride in developing great experiences while having fun using all the newest patterns and tech.

Building the best banking app in the world @ Monzo (London, UK)

We're building a bank for the 21st century, and we want a 4th product-aware Android engineer to join our team. Our designers care about a slick native experience & understand Android best practices. We use an MVP architecture, RxJava, and our minimum SDK is 21 🎉 Join us!

Android Engineer (San Francisco, CA)

Want to work on the world's leading video platform and community for gamers? Join us at Twitch!


Libraries & Code

link image   DiscreteScrollView (

A RecyclerView-based implementation of a scrollable list, where current item is centered and can be changed using swipes (Similar to a ViewPager)

SimpleRatingBar (

SimpleRatingBar allows us to create a RatingBar with margin between items.

InstaCropper (

A View for cropping images that is similar to Instagram's crop.

GuildWars2_APIViewer (

Guild Wars 2 API Viewer utilizes Dagger 2, Databinding, Retrofit 2, and RxJava 2, in conjuction with MVVM architecture.

here-be-dragons (

Here be dragons is an Intellij/Android Studio plugin that let's you annotate your impure Java methods with the @SideEffect annotation and shows a little dragon icon in the gutter when you call them.

RoboGif (

A small utility to record Android device screen to an optimized GIF so you can paste it to GitHub or a simillar service.

service-tree (

A tree that stores services in its node for a given key, and allows traversing them.


Videos & Podcasts

link image   SOLID principles (

Tamas Losonczi presents on the joys of SOLID principles, which help developers leverage the capabilities of an object-oriented programming language.

Damn Functional Programming with Paco Estevez (

In this episode Artem & Hannes talked with Paco Estevez about Functional Programming and how he applies Functional Programming in his Android apps.

Developing a watch face & Android Wear 2.0 (

Ondrej Komarek showed how to add complications to the watch face and discussed ways to make your current Android Wear app compatible with the latest version.

Development tips & tricks (

Lukas Hermann goes over how you can speed up an app by picking the correct layout or using vector images instead of raster ones. He also discussed how to make APK output smaller, so it takes less megabytes.



link image   Special Discount Tickets for Droidcon Boston (

For a limited time only, Android Weekly is offering special $100 off tickets for the first Droidcon in Boston - April 10-11, 2017 @Calderwood Pavilion. Get them now before they're all gone!

Get your Ticket for the 9th MobileCamp (

Germany's largest barcamp around mobile topics has open its registration for free Tickets. So hurry up to get yours. The MobileCamp takes place in Dresden from 29. – 30. April. Up to 300 developers, innovators, early adopters and users come together to share their knowledge.