Does Library Bloat Make Your Smartphone App Look Fat?

While earlier smartphones seemed to manage well enough with individual applications that only weighed in at a few megabytes, a perusal of the modern smartphone software store uncovers some positively monstrous file sizes. The fact that we’ve become accustomed to mobile applications requiring 100+ MB downloads on what’s often a metered Internet connection in only a few short years is pretty crazy if you stop to think about it.

Seeing reports that the Nest app for iOS tipped the scales at nearly 250 MB, [Alexandre Colucci] decided to investigate. On his blog he not only documents the process of taking the application apart piece by piece to find out just what’s eating up all that space, but lists some potential fixes which could shave a bit off the top. Even if you aren’t planning a spelunking expedition into your pocket supercomputer’s particular variant of the Netflix app, the methodology and tools he uses here are fascinating in their own right and might be something worth adding to your software bag of tricks.

By passing the application’s files through a disk usage visualizer called GrandPerspective, [Alexandre] immediately identified some rather large blocks of content. The bundled Apple Watch version of the app takes up 23 MB, video and audio used to walk the user through the device setup weigh in at 22 MB, and localization files for various languages consumes a surprising 33 MB. But the biggest single contributor to the application’s heft is the assorted libraries and frameworks which total up to an incredible 67 MB.

Of course the question is, how much of it is really necessary? It’s hard to be sure from an outsider’s perspective, but [Alexandre] notes that a few of the libraries used seem to be redundant or obsolete. In some cases this could be the result of old code still lurking in the project, but the four different libraries used for user tracking probably aren’t in there by accident. It also stands to reason that the instructional videos could be offloaded to something like YouTube, so that only users who need to view them have to expend their bandwidth on it.

Getting a little deeper into things, [Alexandre] notes that some of the localization images appear to be redundant. As a specific example, he points to the images of the Nest itself displaying Fahrenheit and Celsius temperatures. While logically this should only be two image files, there are actually eight copies of the Celsius image, each filed away as language-specific. These redundant localization images could easily be stripped out, but with gains measured in only a few hundred kilobytes, it probably wasn’t considered worth the effort during development.

In the end there’s really not as much bloat as we might like to believe. There were some redundant files, maybe a few questionable library inclusions, and the Apple Watch version of the app could surely be separated out. All together, it might get you a savings of 30 – 40%, but still not enough to bring it down under 100 MB.

All signs point to the fact that modern smartphone software development is just a lot more burdensome than us hackers might like. Save for projects looking to put control back into the hand’s of the users, it looks like mobile operating systems aren’t going to be slimming down anytime soon.

What We Are Doing Wrong. The Robot That’s Not in Our Pocket

I’m not saying that the magic pocket oracle we all carry around isn’t great, but I think there is a philosophical disconnect between what it is and what it could be for us. Right now our technology is still trying to improve every tool except the one we use the most, our brain.

At first this seems like a preposterous claim. Doesn’t Google Maps let me navigate in completely foreign locations with ease? Doesn’t Evernote let me off-load complicated knowledge into a magic box somewhere and recall it with photo precision whenever I need to? Well, yes, they do, but they do it wrong. What about ordering food apps? Siri? What about all of these. Don’t they dramatically extend my ability? They do, but they do it inefficiently, and they will always do it inefficiently unless there is a philosophical change in how we design our tools.

Continue reading “What We Are Doing Wrong. The Robot That’s Not in Our Pocket”

Resistance is… There’s an Augmented Reality App for That!

Like many engineers of a certain age I learned the resistor color code using a mnemonic device that is so politically incorrect, only Tosh might venture to utter it in public today. When teaching kids, I have to resort to the old Radio Shack standby: Big Boys Race Our Young Girls But Violet Generally Wins. Doesn’t really roll off the tongue or beg to be remembered. Maybe: Bad Beer Rots Our Young Guts But Vodka Goes Well. But again, when teaching kids that’s probably not ideal either.

Maybe you can forget all those old memory crutches. For one thing, the world’s going surface mount and color coded resistors are becoming a thing of the past. However, if you really need to read the color code, there’s at least three apps on the Google Play Store that try to do the job. The latest one is ScanR, although there is also Resistor Scanner and Resistor Scan. If you use an iPhone, you might try this app, although not being an Apple guy, I can’t give you my feedback on that one.

Continue reading “Resistance is… There’s an Augmented Reality App for That!”

Top 5 Twitter Clients For Android

With the growing popularity of the Android OS for smartphones, it has become a contender for the likes of Apple’s iPhone. With the rise of Android came the facet it revolves around; Open Source. Besides it revolving around being open sourced it also has deep roots with social media. There has been an outbreak of different Twitter applications for the Android devices, each with their ups and downs suited for different types of users ranging from the socialite to the power users of twitter. These are the top 5 Twitter clients for Android (A phone running Android 2.1 OS – Éclair – will be used but most of these will be compatible with 1.5 & 1.6 OS and will be stated if they are not available to all OS versions) :

Continue reading “Top 5 Twitter Clients For Android”

Zune gets hacked, OpenZDK

Here is one that really got some of us at the HAD offices excited (yes, we own Zunes). The introduction of the Open Zune Development Kit. Sure, there was XNA, and we even toyed around with it. But anyone will quickly realize just how limited XNA is, especially with older hardware.

OpenZDK is in its infancy, with only one application thus far (don’t worry, you can still use XNA apps too). But we wanted to give it a shout out and let the hacker community make this potential into a reality.

[Thanks Galen]