A blog site for teams who care about building great apps
Guest Post: Slow mobile app = Millions in lost sales [Part 2]
By Brien Colwell, Co-Founder and CTO at HeadSpinDec 20, 2018Part 2 Causes and Remedies In part one of this two-part post about on new HeadSpin’s App Speed Survey, we took a closer look at how we did the testing and at the detailed results. In part two, we’ll look at common causes of sales-killing slowness in Android apps, and...
Guest Post: Slow mobile app = Millions in lost sales [Part 1]
By Brien Colwell, Co-Founder and CTO at HeadSpinDec 20, 2018New HeadSpin Holiday Season Site Speed Test: 60% of top etailers too slow App speed is widely understood as a key UX metric. And more companies are grasping that “load time affects bottom line.” But how, more precisely, does app performance impact online sales? That was the big question behind...
Guest Post: How NimbleDroid helped Flipkart speed up app startup by 45%
By Sourabh Gupta and Anirudh, Android Developers at FlipkartMay 9, 2017We found Nimbledroid via http://androidweekly.net/ and checked it out starting in 2016. We had been looking for a service to help us identify where exactly in code we needed to improve Flipkart performance time. Over the last five months NimbleDroid has helped us detect and fix several performance bottlenecks, as...
Eight Ways Your Android App Can STOP Leaking Memory
By Tom HuzijSep 6, 2016In part one of this blog post “Eight Ways Your Android App Can Leak Memory”, we went over eight different ways your code can cause your Android application to leak memory. Specifically, all eight leaks were leaking an Activity instance, which is particularly dangerous because activities have a very large...
App Diets are not a Fad
By Mikhail NakhimovichJun 15, 2016In our last post we explored an architecture/library selection that would lead to nearly perfect startup times. Today I wanted to explore another type of performance optimization: APK size. A smaller APK results in faster resource lookup and faster reflection. Image optimization, an important way to cut down APK size,...
Eight Ways Your Android App Can Leak Memory
By Tom HuzijMay 23, 2016One advantage of a garbage-collecting-language like Java is that it removes the need for developers to explicitly manage allocated memory. This reduces the likelihood of a segmentation fault crashing the app or an unfreed memory allocation bloating the heap, thus creating safer code. Unfortunately, there are other ways that memory...
NimbleDroid Product Update, May 2016
By Josh DiehlMay 16, 2016This month we’ve been primarily focused on improving the more hidden parts of NimbleDroid, as well as laying the groundwork for some exciting features coming next month. For now, here are a couple of visible product updates. Better Management of Uploads We have a number of users who have been...
Five Common Issues That Slow Down Your App
By Junfeng YangMay 9, 2016In the last couple of months, we’ve been describing a handful of common issues that slow down your Android app based on our analysis using NimbleDroid. We conclude this series of posts by summarizing the issues here. Java reflection. Reflection is, of course, an extremely useful aspect of Java and...
Performance Problems in Libraries and SDKs
By Anton Krasov | Sarvar DhillonApr 25, 2016It’s difficult to imagine modern android apps that don’t implement some external libraries or SDKs. After all, most apps have to leverage some combination of network image loading, crash tracking, advertisement, or analytics libraries and SDKs. It makes sense - developers shouldn’t have to reinvent the wheel (several wheels, actually)...
Pushing the Limits of App Startup Time
By Mikhail NakhimovichApr 20, 2016It’s easy to make a tiny app fast. It’s more challenging when you need to deal with the complexities required by most apps: data caching, json parsing, immutability, dependency injection, and a slew of support libraries.It’s still possible to minimize startup time, even when you’re following modern development practices such...
NimbleDroid Product Update, April 2016
By Josh DiehlApr 15, 2016This month we have a mix of new features, many of them focused on making NimbleDroid’s UI more enjoyable to work with. Saving App Test Credentials We’ve always allowed users to include app test credentials with the upload of their APKs, but we’ve improved on this by allowing users to...
Why Is ClassLoader.getResourceAsStream So Slow in Android?
By Anton Krasov | Sarvar DhillonApr 6, 2016Through our extensive analysis at NimbleDroid, we’ve picked up on a few tricks that help prevent monolithic lags in Android apps, boosting fluidity and response time. One of the things we’ve learned to watch out for is the dreaded ClassLoader.getResourceAsStream, a method that allows an app to access a resource...
Five Lesser-Known Ways to Hang Your Main Thread
By Anton KrasovMar 21, 2016By now, most Android Developers already know that the main thread of an app is the one that handles user interaction, and should consequently be considered off-limits for time-consuming work. In general, any method invocation that causes the main thread to hang for 16*N milliseconds will lead to N dropped...
NimbleDroid Product Update, Mar 2016
By Josh DiehlMar 14, 2016The past month saw more exciting features make it to production, as well as lots of updates to give our growing user base a smoother and faster experience. Memory Leaks NimbleDroid already provides identification for speed-related problems, so we’re pleased to now provide detection of memory leaks as well. We...
How Fast Do Top News Apps Start?
By Sarvar DhillonMar 10, 2016Two weeks ago, we presented our study of cold start times of top apps in Google Play. Meanwhile, our friends at the New York Times explained how they’ve reduced their Android app’s startup time from 5.6 seconds to just 1.7 seconds with the help of NimbleDroid, so we feel obliged...
Comparing the Performance of Dependency Injection Libraries
By Anton KrasovMar 7, 2016The dependency injection (DI) has become an increasingly popular tool in Android development, and for good reason. Injections reduce the amount you have to code (and hence, debug), facilitating the creation of better apps and a smoother development process. While it may be tempting to toss in dependencies to a...
How Slow is Reflection in Android?
By Anton KrasovFeb 23, 2016(So far we’ve analyzed a lot of apps and discovered a handful of issues that significantly slow down many apps. Starting from this post, we’ll describe these issues one by one.) Reflection is, of course, an extremely useful aspect of Java and Android development. Yet it turns out that reflection...
Cold Start Times: An Analysis of Top Apps
By Junfeng Yang | Sarvar DhillonFeb 17, 2016We’ve stressed that apps need to start up quickly in a prior blog post, but how fast do existing apps start? Here we examine the startup times of the top 100 apps in Google Play and share the insights we find. Background: Three Types of App Starts There are actually...
NimbleDroid Product Update, Feb 2016
By Josh DiehlFeb 10, 2016We’ve been hard at work over the past few weeks making NimbleDroid an even more powerful tool for Android developers seeking to improve the performance of their apps. In this post we’ll discuss some of the biggest changes we’ve made in this update, and then offer a quick preview of...
How to Make Your Application Fluid
By Junfeng Yang | Sarvar DhillonSep 17, 2015In a previous blog post, we discussed the importance of monitoring your app’s performance. This time, we’ll show you exactly how to go about doing this. We’ve spoken with several developer teams from some of the most popular apps in the world, including WeChat and Yahoo News Digest, about the...
Why You Should Care about Your Android App's Performance
By Junfeng Yang | Sarvar DhillonSep 3, 2015Android is dominating the global and national mobile app market. As a result, developers are pumping out new apps every day. As early as 2011, over 500 new Android apps were being released daily. By April 2015, the number of Android apps had reached over 1.4 million, and apps on...