All posts

Category: Android

Setting animation scale for Android UI tests

This post describes how to disable animations on Android device or AVD before running UI tests (especially Espresso-powered) in reliable way.

Read more

Android Gradle configurations

Article explains configuration provided by Android Gradle plugin.

Read more

How to handle Featured and MVP in simple Android app

Introduction During my company workcation in Bali, I noticed that the main mean of transport in Indonesia are scooters, they are used by everyone and I mean it, EVERYONE. They are so popular, that they almost replaced public transportation. With so high number of scooters, there have to be a lot of them needing repair. It […]

Read more

Espresso Test Recorder – A quick How-To

A quick how-to on using the newest feature of Android Studio – Espresso Test Recorder

Read more

/dev/full on OS X

How to simulate ENOSPC errors on OS X

Read more

What’s new in Android 7.0 Nougat?

An overview of new featuers in Android 7.0 Nougat.

Read more

Constraint Layout == Relative Layout on roids?

Sneak peek at Constraint Layout and new Layout Editor along with simple example.

Read more

Multi-Window Simple Examples: Part 3 – Launching another app

Simple example of how we can start another app in split-screen mode

Read more

Multi-Window Simple Examples: Part 2 – Drag and drop

Simple example of how to handle drag and drop during multi-window

Read more

Multi-Window Simple Examples: Part 1 – Screen changes

Simple example of how to handle screen changes during multi-window

Read more

Unit tests with custom JUnit rules, annotations and resources

Some advanced solutions for unit tests

Read more

RxJava – the production line

A bit different introduction to RxJava

Read more

Rosie – Let’s Dive Into Clean Architecture

Review of Rosie – Android framework to create application that follows principles of Clean Architecture.

Read more

Android Flip Animation – Explained

How to do a flip animation

Read more

Example of Realm with MVP and Dagger

How to use Realm in MVP pattern with Dagger

Read more

Realm in Android – simple example

Simple example of Realm database

Read more

How to integrate Gerrit with HipChat

You can find complete source code on Droids on Roids’ GitHub repository Background One of the useful features for Gerrit users is to receive notifications about events related to their changes. Gerrit contains built-in support for email notifications. You can just configure SMTP settings and voilà, bunch categories of emails will be sent. So far so […]

Read more

Meaningful Motion with Shared Element Transition and Circular Reveal Animation

The project can be found on DroidsOnRoids Github in Material Showcase repository.   First glance The circular reveal animation is one of the most popular animations in a Material Design paradigm. Following official android documentation: Reveal animations provide users visual continuity when you show or hide a group of UI elements. So with this kind of animation […]

Read more

How to start your Android development journey

Do you want to be an Android developer? I am sure that the answer is ‘Of course! I’ve always wanted to be an Android developer. It had been my dream since I remember. But the hardest thing was how to start the journey. First steps First of all you should buy the most expensive smartphone […]

Read more

Top Design Tools for Android App Developers

In this article I’d like to show you most useful (and free!) tools that you might like while designing your Android app. You’ll find plugins, web sites and more. So let’s start! 1. Device Metrics – web site Web site: https://design.google.com/devices/ Have you ever wondered what density has your phone? Or which device has tvdpi […]

Read more

How to create fancy screen transitions used in walkthrough in Android Google Drive App.

Recently I found very cool introduction screen in Google Drive App visible above. I really like Google color transition between screens. It was my inspiration to create this cool color transition by myself.

Read more

Testing Dagger 2 with ESPRESSO + MOCKITO + ROBOLECTRIC

Complete source code can be found on Droids On Roids Github Introduction Anyone who has ever tried making test to Android project that is using Dagger 1 knows that this is quite possible to override existing modules and replace them with test ones, e.g.:

Dagger 2 brings us @Component and @Module, annotations which implies […]

Read more

How to generate Java sources using buildSrc Gradle project and Codemodel

Introduction Assume that you have to embed some data in your Android application. Data which is gathered from some external source and needs to be parsed to be usable inside an app. In this example we will use list of Internet top-level domains. As you can see at ICANN TLD Report there are over 1000 […]

Read more

Differences between minSdkVersion, maxSdkVersion, compileSdkVersion and targetSdkVersion

Introduction There are 4 places in build.gradle where Android SDK version can be defined. This article describes their meanings and purposes. All of them are connected with concept of API level. In general it corresponds to Android system version and the newer device and system the higher API level is. Certain parts of Android framework […]

Read more

How to create PagerTitleStrip with current page indicator only

Original PagerTitleStrip displays indicators of the current, next, and previous pages of the ViewPager but sometimes only current is needed. It looks like the others can be hidden by setting non-primary alpha value to zero but despite of that shadows can appear. TextViews containing mentioned indicators are not exposed so it is not possible to set their visibility even by […]

Read more

Using processes to avoid OutOfMemoryErrors

One of the ways to increase available memory (heap) size is to divide application to separate processes. Each <activity>, <service>, <receiver> and <provider> can specify a process in which it should run. To do this just set

attribute in particular tag in AndroidManifest.xml. Where com.example.appname is desired process name. You can assign multiple components to one […]

Read more