A couple months ago, when Android Nougat was announced, among new features like Multi-window, enhanced notifications, VR support, 72 new emojis 👍 and others, there was a new addition to monitoring tools: Frame Metrics API.
This post is a part of series of posts showing Dependency Injection with Dagger 2 framework in Android. Today we’re going to take a look at Asynchronous injection 2 with RxJava — alternative for Dagger 2 Producers
AndroidDevMetrics is a performance metrics library which will help you find potential performance issues in your Android app. Thanks to it we are able to measure objects graph initialization in Dagger 2, Activities lifecycle methods timings and frame drops for each screen in app.
This post is a part of series of posts showing Dependency Injection with Dagger 2 framework in Android. Today we’re going to take a look at Dagger Producers — an extension to Dagger 2 that implements asynchronous dependency injection in Java.
We live in times where mobile apps have to not only do their job but also do it smooth and delightful. In times where almost every Android device has huge computing power and operating system is really mature (and I’m not saying only about Lollipop or Marshmallow). Less and less things limit us to to deliver really beautiful apps.
But it also means that there are no excuses for us — the developers. We cannot say anymore: “this is because your crappy Android device… Do you want smoothness? Let’s check it on iPhone.”. Now it’s our fault that app works and looks good only on this year’s high-end device. We cannot blame platform developers anymore because they already did awesome job with optimizations in Android.
Moreover, they started sharing their knowledge about performance, optimizations and how things work under the hood. If you haven’t seen it yet just take a look at this videos collection — Android Performance Patterns. Do we need more proves that now everything is really in our hands?
A couple months ago we went through possible issues with Dagger 2 – graph creation performance. Thanks to TraceView tool we can see exactly how much time is needed to initialize all requested dependencies. But it’s not easy – we have to find places in our code to start and stop measuring, dump results and analyze them in Android Studio. To make it bit easier, I’ve prepared simple library which can help with catching potential performance issues.
After my last post about parsing JSON in Android with FlatBuffers parser (implemented in C++, connected via NDK to our project) great discussions started about the real performance of FlatBuffers and comparising them to another serialization solutions. You can find those debates on Reddit or in comments section on Jessie Willson’s blog.
FlatBuffers library is getting more and more popular recently. If you check last Android Performance Patterns series, Colt McAnlis mentions about it a couple times in different videos. Probably you remember Facebook’s announcement about migration to FlatBuffers. Also some time ago I published post about how to start using it in Android.
#PerfMatters – recently very popular hashtag, especially in the Android world. The times when the apps just did something, no matter how, are already gone. Now everything should be pleasant, smooth and fast. For example Instagram spent almost half a year just to make its app faster, more beautiful, and more screen-size aware.
That’s why today I’d like to share with you short hint which can have a great impact on your app launch time (especially when it uses some external libraries).
JSON – probably everyone knows this lightweight data format used in almost all modern servers. It weights less, is more human-readable and in general is more dev-friendly than old-fashined, horrible xml. JSON is language-independend data format but parsing data and transforming it to e.g. Java objects costs us time and memory resources.
Several days ago Facebook announced big performance improvement in data handling in its Android app. It was connected with dropping JSON format and replacing it with FlatBuffers in almost entire app. Please check this article to get some basic knowledge about FlatBuffers and results of transition to it from JSON.
While the results are very promising, at the first glance the implementation isn’t too obvious. Also facebook didn’t say too much. That’s why in this post I’d like to show how we can start our work with FlatBuffers.