Presidential campaign 2016: Who has the faster, more secure Android app?
We are in the midst of a highly-contested 2016 presidential race here in the U.S. Donald Trump and Hillary Clinton are drumming up support for their cause in any way they can, and everywhere they go, smartphones follow. Both campaigns have mobile apps: Hillary 2016 and America First.
Trump with supporters taking photos. (https://www.flickr.com/photos/darronb/24224402311 creative Commons 2.0 License)
Clinton takes a selfie with a supporter. (https://www.flickr.com/photos/14079872@N00/25385423530 creative commons 2.0 License)
Now I am not a pollster. I don’t read tea leaves. I have no idea who will win the election in November. However, I am pretty good at examining mobile applications for performance concerns. My team at AT&T has built the Application Resource Optimizer (ARO), a free tool for testing your application for data usage, battery drain, and other performance issues. With this in mind, I thought it might be a fun exercise to look at how the apps of the top presidential candidates behave, and if there is room for improvement.
The Presidential Campaign App Test
I downloaded Hillary 2016 and America First (Trump’s official app) on a Samsung S7 running Android OS 6.0.1. The results reported below are from my phone, and the only manipulation was to remove all traffic from Facebook IP addresses (neither application was connected to Facebook, so doing this should just remove extraneous traffic.)
In the age of polarized elections, how many phones have both of these apps installed? In my estimation, the Venn Diagram probably looks something like this:
Both of these apps have similar premises and include information about the candidate, Twitter feeds, and a game to collect points – the more you interact, share, and donate – the more points you get. Also, if you look at the icons in the above screenshot (of the downloaded apps on the Home screen), there are push notifications from the Hillary app and one of the unread e-mails is from the Trump campaign. So I can look forward to getting information from both candidates on my phone going forward.
Data Usage: What’s the Toll?
I tested both apps for eight to nine minutes, and they both use about the same amount of data (the Clinton app uses slightly more data, even though the test time was 30s shorter):
From a data usage perspective, the Trump app uses 20% less data per minute (560KB/min to 670 KB/min). Based on these findings, I award five points to Trump.
Let’s dig in a bit deeper. What kind of data are these apps sending?
Security: Is the App Securing Data?
I’m looking at how much data these two apps send using HTTPS, which is a highly secure way of transmitting data between servers and the application. It makes it harder for hackers to intercept and read the traffic being sent. In this test, the MORE the application hides, the better.
The Hillary 2016 application is encrypting 99% of the data transmitted, while America First lags at about 60%. So the Clinton app is hiding more than Trump and in this scenario it’s a good thing.
Security is a win for Clinton (40% better at security) – Five points go to Clinton.
What Kind of Files Are Visible?
Moving forward in my analysis, Trump’s America First app is at a bit of a disadvantage since Hillary 2016 sends virtually all of the data with highly secure HTTPS. I cannot see what files are being transmitted over the air, but I can see 40% of the America First traffic. Can the traffic that’s visible in the America First app be optimized?
One easy way for application developers to reduce data usage, and to make your application respond faster is to download images once, and then reuse them from a local cache (reading from a local storage is always faster than downloading again.)
America First has 556KB of duplicate images downloaded more than once. Many of these images are from Twitter. That said, the duplicate download is not Twitter’s fault. Each image has the following header (from the Twitter servers):
This means you can store this file in your local cache for 604,800 seconds (that’s seven days). There are other images from campaign servers that have an E-Tag, which means you have to check the ETag with the server before you can reuse the file. In either case, the directives from the server on how to reuse the stored files were not used – implying that there is no image cache being used in the app.
Some of the files are very large (sorted above by file size in bytes), and were downloaded a number of times. The 5.7KB image highlighted was downloaded four times, and is seen below:
This image was downloaded four times in a three-minute period.
While the Trump app used less data than the Clinton app, by simply caching images locally, it could be up to 11% MORE efficient – and use even less data. Based on this finding, I’m taking one point from Trump.
Most Creative Domain Name
Trump wins here. Many of the images used in the application (outside of Twitter) come from cdn.letsw.in.
CDN is short for “Content Delivery Network” and it’s used to distribute files around the world to be closer to the end user. In this case, they are not in India (as you might assume form the .in), instead it is supposed to be read as “let’s win!”
When looking at the traffic for letsw.in, I see 40 requests for images, and an additional 24 requests for the header (often used to see if the file actually exists). Of those 64 requests, 28 are successful, and the remaining 36 (12 file requests and all of the 24 header requests) respond with the error code 403 FORBIDDEN. In my test of America First, it is forbidden from connecting to letsw.in 56% of the time. This is not good, so I will deduct 0.5 points form Trump.
Which Presidential Campaign App Won?
Both Clinton and Trump have official campaign applications for Android that fared pretty well. The Trump application was 20% more efficient in its data usage (but could improve up to 11% with appropriate image caching). The Clinton application sends more data in a highly secure manner than Trump. All in all, the battle for the most efficient mobile application is close. Here’s the final score (with my admittedly totally arbitrary scoring method): Clinton 5, Trump 4.5. Given the margin of error (also arbitrary), we’ll call this comparison a draw.
Are you curious how well your application behaves? Check out ARO and test how your application compares to those of the U.S. presidential candidates.