One person’s idea of fun isn’t always fun for someone else, but some things are pretty universal. Listening to music and podcasts, reading, playing games, exploring (hiking, biking, or driving), and watching videos (YouTube clips or epic feature films) are just a few things that many people can agree are fun. I’m so glad I live in the 21st century, because most of these activities can be done on or augmented by smartphones.
I love my Android phone! If I had to save one thing in a fire (assuming loved ones and irreplaceable photos were already covered by my wife), it would probably be my phone.
Programming is Fun?
It is! I know I don’t need to convince any developers reading this, but for those of you who have never written any code before, it really is delightful. I understand that “programming” can sound intimidating to someone who has never written a line of code before, but if you’re reading this article, then you’re probably pretty familiar with using a computer, which means most of the hard learning is already done. With just a few basic building blocks you will be ready to start hacking away at whatever kind of project you can imagine.
In The Mythical Man-Month, one of the seminal books on software development, Frederick Brooks lists five reasons why programming is fun. They are, in short:
- The sheer joy of making things.
- The pleasure of making things that are useful to other people.
- The fascination of tinkering with complex puzzle-like objects.
- The joy of always learning.
- The delight of working in such a tractable [controllable] medium.
He goes on to say (emphasis mine), “Programming then is fun because it gratifies creative longings built deep within us and delights sensibilities we have in common with all men.”
I couldn’t agree more! These certainly apply to Android development, and we may as well add a few more:
- An Android phone isn’t just a computer; it’s a phone, a camera, a recording studio, a game controller…
- When you make an Android app, it’s very easy to show it off and share it with friends.
- You enter into a thriving developer community where people are encouraged to share their code and ideas.
- Android apps play well together, and everything is better with a friend.
Android Devices are Just Plain Cool
I recently read a blog post by Reto Meier (@retomeier), who works for Google as the Tech Lead on the Android Developer Relations team. His thoughts about smartphones echoed my own: ”Had you handed 12 year-old me a Galaxy Nexus and a Nexus 7, and I’d have assumed they were props from ST:TNG [Star Trek: The Next Generation].” Even the most jaded members of the technorati marvel at what we can do with these magic little gadgets.
If you read my earlier post on Why Developing Apps for Android is Important, then you might remember that I wrote about how we take for granted the amazing technology and access to information that we literally carry around in our pockets. The hardware manufacturers have crammed so many amazing features into smartphones, and as users and developers we can marvel at the fun and inventive things we can do with them. As a developer, this Swiss Army knife of features to play with is unequalled in the computing world.
Gone are the days when our only means of interacting with a computer were the keyboard and mouse. Cameras, microphones, touch screens, and motion sensors enable us to experience and do things on our phones and tablets that were pure science fiction before this past decade. Not only are they fun to use, but they’re so fun to tinker with! Anyone who enjoys taking apart and tweaking toys, electronics, or cars can appreciate the joy of understanding how a computer or smartphone works and then bending it to do your will in new and creative ways.
With so many features packed into one platform, we can change our dialog from “wouldn’t it be neat if we could X” to “let’s do X!” If you like music and all things auditory then you can access the microphone and then manipulate recorded clips that you store in the phone’s flash memory. If you’re a gamer you can hack away at your own game, adding motion and touch events like tilting the screen and swiping around with your fingers. It doesn’t have to be pretty or polished, either. Just getting your app to recognize a swipe and displaying a message that the swipe was detected can be an incredibly rewarding eureka moment.
“What we obtain too cheap, we esteem too lightly.” - Thomas Paine
It’s such a thrill to solve a problem, especially when it’s something we’ve had to invest time and effort in. Some of my greatest professional moments have come at the end of a long day or week struggling with a specific problem, finally catching the break that let’s me fling images in a gallery just right or connecting to a server and successfully parsing the data it sends back. Those moments are especially sweet when they are shared with a team that has been working toward a common goal.
Not only is making Android apps fun, it’s intensely gratifying. It gives you a feeling of accomplishment and pride when you can pull your phone out of your pocket, show something you’ve worked on to a friend, and they are truly impressed by this thing you have created. Everyone has a smartphone these days, it seems, and most people marvel at how they work. When done well, it really does seem like magic. And isn’t it fun to play with magic?