Skip to main content


Showing posts from October, 2017

Managing State with RxJava by Jake Wharton

Watch: This Brilliant Lego Calendar Syncs With Google

Last year, the designers at Vitamins, a design studio in London, took some time to build something for themselves. What they needed was a way to keep track of all their various projects. It had to be big and visual and easy to use in person but also accessible online. Their solution? A wall-sized calendar made entirely of Lego bricks that syncs with Google automatically via smartphone screenshots.


MockServer - Easy mocking of any system you integrate with via HTTP or HTTPS

MockServer can be used for mocking any system you integrate with via HTTP or HTTPS (i.e. services, web sites, apps, etc).

MockServer can:

return a "mock" response when a request matches an expectationforward a request when the request matches an expectation (i.e. a dynamic port forwarding proxy)execute a callback when a request matches an expectation, allowing the response to be created dynamicallyverify requests have been sent (i.e. as a test assertion)MockServer

LeakCanary - Memory leak detection library for Android

A memory leak detection library for Android and Java.

“A small leak will sink a great ship.” - Benjamin Franklin

LeakCanary will automatically show a notification when an activity memory leak is detected in your debug build.

GitHub / LeakCanary

Running Espresso Tests in parallel with Spoon and Android Test Sharding

Introduction to Android Espresso Testing and Spoon

Espresso UI test automation framework is Google’s de-facto testing platform for Android app developers.

No test engineer or developer will be quite unless it validates the functionality of his app on multiple devices and emulators. For that, there is another widely used tool called Spoon (there are also cloud-based solutions as mentioned above that support parallel execution on real devices). This tool, will collect all the target devices (that are visible via adb devices) test results and aggregate them into one HTML view that can be easily investigated.

Mobile Testing Blog

Android Test Sharding

The test runner supports splitting a single test suite into multiple shards, so you can easily run tests belonging to the same shard together as a group, under the same Instrumentation instance. Each shard is identified by an index number. When running tests, use the -e numShards option to specify the number of separate shards to create and the…

Firebase Remote Config

Firebase Remote Config is a cloud service that lets you change the behavior and appearance of your app without requiring users to download an app update. When using Remote Config, you create in-app default values that control the behavior and appearance of your app. Then, you can later use the Firebase console to override in-app default values for all app users or for segments of your user base. Your app controls when updates are applied, and it can frequently check for updates and apply them with a negligible impact on performance.

Firebase Remote Config

Firebase Performance Monitoring

Introducing Firebase Performance Monitoring

Monitoring performance from the end user's point of view - both app code performance and network responsiveness/reliability - is a challenge for building great mobile apps. You have to be able to understand conditions that need improvement, in order to avoid user churn and negative reviews. Conversely, we have seen that 60% of 5-star reviews on Google Play mention speed, design or usability.

This is why we built Firebase Performance Monitoring for iOS and Android. It provides an SDK to capture and instrument performance metrics in production, and a console to gain insights about the data captured by the SDK.

Firebase Google Blog
Firebase Performance Monitoring Docs

Kotlin for iOS and Kotlin/ktor as Web backend framework

Kotlin/Native Tech Preview: Kotlin without a VM
We are happy to announce the first Technology Preview of Kotlin/Native that compiles Kotlin directly to machine code. The Kotlin/Native compiler produces standalone executables that can run without any virtual machine.
Kotlin/Native uses the LLVM compiler infrastructure to generate machine code. In this preview, we support the following target platforms:
Mac OS X 10.10 and later (x86-64)x86-64 Ubuntu Linux (14.04, 16.04 and later), other Linux flavours may work as wellApple iOS (arm64), cross-compiled on MacOS X hostRaspberry Pi, cross-compiled on Linux host


Ktor is a framework for quickly creating web applications in Kotlin programming language with minimal effort.

This web site provides a complete reference to the Ktor application structure, programing interface and how to approach particular tasks.


React Native and how to (partly) integrate it in your native app

React Native
React Native lets you build mobile apps using only JavaScript. It uses the same design as React, letting you compose a rich mobile UI from declarative components.

React Native uses the same fundamental UI building blocks as regular iOS and Android apps. You just put those building blocks together using JavaScript and React.With Hot Reloading, you can even run new code while retaining your application state.React Native combines smoothly with components written in Objective-C, Java, or Swift.React Native

Currently it's full monty or none: Either you use React Native completely for you app or you can't use it at all, e.g. for a single widget or screen. If you face the same situation take a look at:

Electrode Native: The Platform For Integrating React Native Into Your Apps

Electrode Native offers a streamlined integration of React Native into existing mobile applications. With Electrode Native, there will no longer be a need for an engineer who specializes in both mobi…