I’ve had this article on my backlog for a long time since I started playing with performance tests back in August 2018 but I never got to finish it off. It seems a good time now since Py ⚔ released at AndroidMakers a new major version (2.0-alpha-1) with new updates and more importantly a new dump heap parser giving us a better memory performance (x10 less memory) and a faster analysis of the dump heap (x6 faster).
I started writing this article a few months ago and since then a few things have changed… for the better. …
I’ve always been interested in performance testing, back in February I gave a talk about how to write and automate performance tests at MobOS. Today I want to show you what the majority of talk was about which is how to use and improve the test jank library that you probably didn’t know Android provides us.
You can find all the code from this article and much more at this GitHub repository which I created for this talk:
https://github.com/marcosholgado/performance-test
You should be able to follow the different approaches and enhancements step by step looking at the tests in that repo…
Last week I gave a talk at MobOS about writing and automating performance tests in Android. As part of the talk I wanted to demonstrate how you could detect memory leaks during your integration tests. To prove that, I created an Activity using Kotlin that was supposed to leak memory but for some reason it didn’t. Was Kotlin helping me out without me knowing it?
Before I begin, the code of this article is available at the kotlin-mem-leak
branch of my performance-test repo:
https://github.com/marcosholgado/performance-test/tree/kotlin-mem-leak
The whole premise was simple, I wanted to write an activity that would leak memory so…
In the fourth part of this series we learnt how to integrate a third party API like Jira Cloud Platform in our plugin and to use patterns like MVP or MVC to do so. In today’s article I’m going to refactor some parts of our plugin to clean up the code a little bit so we can localize our plugin and use notifications in an easier way.
Today’s goal is quite simple, we are going to try to clean up the code of our plugin. To do that I’m going to focus on two areas: notifications and strings.
We will…
A few days ago I started building a simple app to explore clean architecture a little bit. One of the features was for the user to be able to select two items and then take her/him to another screen. I didn’t want to spend time on implementing the multi-selection part so I decided to try the recyclerview-selection library. This article explains how I implemented it and the problems that I encountered.
To begin with we are just going to implement a simple app that will show a list of 10 random numbers. This should be a simple exercise but just…
In the third part of this series we learnt how to create a new Settings screen using components to persist its data. In today’s article we are going to use that data to quickly integrate Jira with our plugin.
Remember that you can find all the code for this series on GitHub and you can also see the relevant code for each article on its own branch, this article’s code is in the branch Part4
.
https://github.com/marcosholgado/plugin-medium
The goal for today’s article is to explain how you can integrate third party APIs and libraries into your plugin. …
In my last article I talked about how to use Dagger in a multi-module project, if you haven’t read it yet, I would recommend you do it so before continuing since we will be reusing the same project. After I published the article I got a lot of questions about how I would approach a multi-module project using dagger-android instead. In this article I will talk about dagger-android and re-implement what we did in the last article but this time using dagger-android instead.
Before I begin, remember that you can find the code of the previous article in the following…
A bit more than a year ago I started to modularize our codebase. Back then, there was a lot of talking around the subject but no one really focused on how you could use Dagger in a multi-module environment which was one of the main problems I had. In this article I want to explain the approach we ended up taking a year ago and that we are still using.
Note: This article assumes you already know the basics of Dagger.
I started (like many others) with a monolithic codebase where everything was built within the same module, the main…
In the second part of this series we learnt how to persist data using components and also how to use that data to trigger a notification when users updated our plugin to show them what’s new. In today’s article we will see how we can use the data that we are persisting to create a settings screen.
Remember that you can find all the code for this series on GitHub and you can also see the relevant code for each article on its own branch, this article’s code is in the branch Part3
.
https://github.com/marcosholgado/plugin-medium
The goal of today’s article is…
A week ago we had a conversation about Dagger Lazy during our weekly dev meeting. I knew it existed but I never felt the need of using it so I thought I could deep dive into Dagger Lazy to better understand it.
When Dagger Lazy was brought up during our dev meeting that’s the first question I asked. Why do we need it? What is the benefit of it? …
Senior Android Developer at DuckDuckGo. Speaker, Kotlin lover and I also fly planes. www.marcosholgado.com