This Weeks Links
Fragmented Podcast Episode 044 – Effective Java for Android Developers – Item #10
In this mini-Fragment, Donn talks about Item #10 of the Effective Java series – Always Override toString. You’ll learn why it’s important for your own sanity, future developers, and overall developer happiness. This episode is sponsored by Hired.com.
Exploring Buy with Android Pay
At Google I/O 2016 a big topic was Android Pay. Android Pay allows an apps users to both buy physical goods while earning loyalty cards and gift vouchers.This post will help you to get your app set up and details the API Process Flow.
ConstraintLayout on Android – How Ready Is It?
The reason ConstraintLayout was introduced is to reduce the view hierarchy’s depth and complexity. By using this new layout, you can optimize and speed up the UI rendering phase of your application. Tamás Agócs provides his guide to getting started and runs shares some of his performance tests and thoughts.
ConstraintLayout – Part 1
In this series of articles you will take a look at the new Android layout named ConstraintLayout and you will be provided with some insights in to how best to use it. Part 1 takes a look at ConstraintLayout in comparison to other layouts and dispels some myths and concerns.
Security “Crypto” provider deprecated in Android N
Unfortunately, many apps depend on the “Crypto” provider which has been removed in Android N, for an anti-pattern of key derivation. If your app still derives keys using the SHA1PRNG algorithm from the Crypto provider, you are going to need start using a real key derivation function and possibly re-encrypt your data. Here are the details!
Jack, Jill & building Android apps by hand
Łukasz Adamcza renounces modern IDEs and goes back to the command-line to build and deploy an Android app by hand, using only the SDK command-line tools. You don’t want to miss this!
Crash reporting in Firebase
The new Firebase is a “Unified app platform for mobile developers” adding new tools to help you develop faster, improve app quality, engage users and monetize your apps. In this post,Segun Famisa shares how to use Firebase for Crash reporting.
Use Kotlin Anko DSL and Say No to Android Layouts Written in XML
Writing Android layouts in code instead of XML is a very promising idea. Using Kotlin Anko removes all of the unnecessary boilerplate code and makes writing UI a pleasant experience. This post will show you how to go about creating Android layouts in code with the help of the Kotlin Anko library.
Retaining Presenter on configuration change with minimal overhead.
The Model-View-Presenter approach makes our code decoupled and provides improvements for testing apps. This post looks at what it says is a problem with MVP where configuration changes are not retained and proposes a simple solution.
PSA: Dont Use Espresso Idling Resources like Google does
Google has to put together a series of “code labs” that are meant to provide a hands on learning experience for grokking Android-related topics.This article takes a looks at the code lab on Android testing to see what has changed in recent times.
Instrumentation Testing Robots
In this annotated slideshow and video Jake Wharton will explain how the “robot pattern” allows you to create stable, readable, and maintainable tests with the aid of Kotlin language features.
Testing Strategies with a React/Redux Architecture
This post which follows on from one covering the principles behind React and Redux, explores how a React/Redux-like architecture opens up a testing strategy which will not suffer from the disadvantages of the behavior-based verification testing strategy used with the MVP architecture.
Web Standards and Coffee with Googler Alex Danilo
The Mars Climate Orbiter mission failed In 1999 because of a single software bug which caused the onboard software to output in a standard of measurement format that was incompatible with the the required format of another module. This short summary and video will help you learn about the importance of Standards with real world examples.
Android N Notifications Explained
In Android N, Google has made a few changes to the notification layer to improve the user experience and make user engagement easier. Here are the details the changes you can expect to see…
isInMultiWindowMode() Race Condition
In Android N, you can call isInMultiWindowMode() on your Activity. This should return true if you are in multi-window mode, false otherwise. However, that is not always the case, take a look..
How to Create a Digital Music Streaming Application
Research suggests there is a growing demand for music streaming apps. This guide provides and overview of the market and the different things you should consider when you are looking to create a music app.
Create and Distribute your own Android Library after reading this post!
In this post Alejandro Zürcher provides a basic outline of the steps required to create your own library and share with everyone.
Gradle: Guide to versions (+Android)
A guide to help you make sure you are taking advantage of the latest core and android plugin versions for your project.
Getting started with Retrofit 2
Oleg Shelajev wants to take you through the production of a sample Android application which will use a combination of some of the most renowned libraries, to help you decide what you want to use. This first post in the series looks at establishing a minimal skeleton app that uses Retrofit 2 for network calls.
Caster.IO Episode 77: Testing View Interactions with Robolectric 3
In this episode you will learn:
- How to test button clicks
- How to use shadow classes
- How to test & verify toasts
- How to test & verify started activities
Caster.IO Episode 78: Caching with Retrofit 2
In this lesson you’ll learn how to cache requests with Retrofit 2 through OkHttp.
In this episode you will learn:
- Why should you cache your responses
- What is the Cache-Control header
- How to create a private cache for OkHttp
- How to add the Cache-Control header to your response
An example Android app which lists all countries with some additional information using Retrofit, Realm, Parceler, Dagger and the MVVM pattern with the data binding library.
A custom view for user input that models the horizontal wheel controller.