With the release of Android Studio version 2.2, Google has given developers a lot of new features. One of them is Espresso Test Recorder. Espresso is a framework for writing UI tests for our applications. It is a part of Android Support Testing Library.
When creating an application, sometimes at some point we want to get several versions of our application that differ in some more or less important details. To easily obtain different versions of your application, just make a few changes in Gradle.
Clean Architecture can be approached in several ways. One solution is to use RxJava 2, and in this post we will take a close look at this approach.In the presentation layer we will use the proven standard Model View Presenter, in the domain layer we will have UseCases with a single responsibility, and in the data layer we will apply Repository Pattern. All of this will be controlled with RxJava streams.
BDD or Behavior-Driven-Development is a method of programming in which business clients, developers and testers describe the behavior of the application with the help of scenarios. The scenarios are written using agreed notation and language, so that they are understood by all parties.
In recent editions of Android system, settings underwent a small revolution. The main settings screen has been reorganized, new options have been added. Android Lollipop introduced shortcuts to quickly switch most important settings so that they are visible immediately after expanding the upper panel. Android Nougat, along with the API 24, provided us with the ability to add our own settings there related to our application.
Each application requires user's permission to use network, access sensors and memory of the device. API-23, that is Android 6.0, introduced a new model of permissions system. So far, before an installation, a user had to absolutely approve a list of permissions requested by application. Currently applications can push at runtime requests only for the specific permissions needed at a given moment.
When getting into the subject of dependency injection, we need to understand numerous new techniques that enable us to control created objects. Dagger allows developers to declare interfaces that will handle that. We can create an interface which will be a component or a subcomponent. What is the difference?
Recently, while browsing through news from Android world I came across a concept of ConstraintLayout. It is a new layout delivered by Android and Google, supporting Android versions from API 9 on. Digging into possibilities it is to give, I decided to check how new Layout Builder behaves and what is ConstraintLayout like in use.
You have to perform operations on images and Java is too slow for that? You want to avoid playing with compiling code using dk? There is a solution! Renderscirpt will help you with this task. With it you can use parallel operations, executing them both on the CPU and GPU. Everything is available in a very accessible form, so you don't even have to wonder how to divide the work.