5 years ago we were building “Rich Internet Applications” using flash alone. We were odd birds in the development community. Outcasts. We didn’t have Flex, we had Colin Moock’s book and Grant Skinner’s fabulous components. What separated the good flash developers from the greats? Footprint. Our file sizes were small. We took pride in the fact that our rich applications were drastically smaller than their antiquated and un-sexy HTML counterparts. When IT pros said “don’t use flash because the file sizes are huge” we laughed and easily proved them wrong. It was good times.
Fast forward 5 years. 80% of households have high-speed internet. Mobile data is faster than most home connections were “way back then”, and wifi almost everywhere that matters. Bandwidth is plentiful. It’s like living in the Wonka factory and all the chocolate is free. If your app is 10 megs, it downloads in seconds. If it’s 100, minutes. We just don’t have to worry about file-size anymore. Right?
I’ve been spending the day doing what I call “iMaintenance” – organizing my iPad/iPhone content and apps and updating all the apps that needed updating. I noticed that some of the apps I was updating were monsters. 213 megs for Real Racing, 12 9megs for Texas Holdem, 47 megs for iFish Pond. Most of the games and utility applications were well over 10 megs. And some of my favorite applications, Adobe Ideas, Open Table, WSJ, Food Scanner, Word Press, and New York Times were all smaller than 2 megs.
Some would argue that the content is driving the file size higher – and they are right in some circumstances. But I would argue that most developers have failed to respect the elegance of thinking about the foot print. Yes, there is something Zen about developing a very small application. But there is also a discipline that is created when you obsess over file size. Applications that are smaller should take less memory, should perform better, should be easier to maintain, and should only do the things that the user actually needs. Thinking about how to most elegantly and simply solve a problem makes an application better. Not just better for better’s sake – it actually makes the app more valuable.