I recently gave a talk at a local meetup about lessons learned making Android Apps as a side project. The presentation is now available on slideshare. The slides are also embedded below. You can get a preview of upcoming articles in this series by looking over the slides. (Note: this article is part of a series about making Android Apps as a side project. Click here to read the introduction.)
Are you a software developer with minimal design skills? You don’t have to let that be a stumbling block to publishing an App. One of the key elements of the design of your App is the icon. You don’t want to make a bad impression by having an ugly looking icon. That is why the rest of this article is dedicated to discussing ways to procure a decent icon. (Note: this article is part of a series about making Android Apps as a side project. Click here to read the introduction.)
Your Icon’s Importance
Often times the first impression of your App’s design (and implied quality) is the icon. You can show that you are serious about your App by spending the time and effort to get a decent icon.
Additionally, if you use the Action Bar to provide a consistent Android user experience, your icon will be a highly visible part of the user interface. The Action Bar, and therefore the App icon, appear on almost every screen of my Apps.
The picture above shows three Android App icons. If you have an eye for design you might be able to tell which one was created by a professional. The Eco Trip icon featuring the gas pump handle was an original creation by a freelance designer. I made the other two icons from public domain clip art.
Review Official Documentation For Android App Icon Design
The first thing you should do when thinking about your App icon is review the guidelines from the official documentation. Let’s face it, often times developers and designers focus on iOS first. The design philosophy for Android is unique. If you want your App to look like it was made for Android, you should follow the design recommendations from Google.
Hire A Designer
It is easier than ever to hire a designer. Digital payments and the internet smooth out the friction of hiring someone who specializes in icon design. The designer for the the Eco Trip icon came from a referral. The designer was very patient as we worked through many revisions. I was happy in the end and spent less than $100 for a custom icon. If you are making an App let people know, you never know which one of your friends has already been down this road and may be able to provide a referral.
If you are on a tight budget and want to pay someone else to design an icon, you can try fiverr. I haven’t used fiverr for an icon before but based on the reviews on the site, there are several icon designers with happy customers.
Make Your Own
If you have more time than money, or if you just like to flex your creative muscle once in a while, you can always make your own icon. You can read this tutorial for some tips.
You should use some kind of vector graphics to make sure that the icon looks good at all the resolutions that are needed for an Android App icon. The open clip art web site provides a good collection of public domain clip art.
I found an appropriate icon image for the Email Sign Up App just by browsing the open clip art web site. The Eggspense icon, however, is a composition of two different graphics from the site (plus a gradient that I applied with gimp.)
Conclusion, Get An Icon You Can Be Proud Of
One of the reasons to do a side project is to have a portfolio piece that you can show other people. Show them that you care about your work by using a quality icon.
Let’s say you have decided to learn a new platform. You start reviewing hello world tutorials and searching for the best books on the subject. You spend some time reading reviews of the top rated books on Amazon. Perhaps you narrow down your choices to a short list of two or three books. Which one should you buy? Your time is limited and you are not looking to start a library of books that will just take up space on your shelf. Does this sound familiar?
If you are getting stared with Android, look no further. The rest of this article will explain why The Busy Coder’s Guide to Android Development by Mark Murphy is my recommendation as the best Android book. (Note: this article is part of a series. Click here to read the introduction.)
Up To Date
If you click over to the website for The Busy Coder’s Guide to Android Development, you are going to start seeing information about The Warescription. The book itself is delivered as an eBook when you buy a one year subscription.
You may be thinking do I want a subscription to a technical book? The answer is yes. Yes you do. The truth is when I started writing my first Android App, I bought a hard copy of a highly rated book from Amazon. This book was a good introduction to Android. The problem was that it was out of date by the time the UPS man delivered it to my door.
The Android platform is under active development. New versions of Android are being shipped multiple times a year. Mark Murphy has you covered. He actively monitors the changes that Google is making to Android through articles like this. Then he releases a timely update to his book.
You may be old enough to remember when thick technical tomes came with a CD with example code inside the cover. These CDs were a nice addition to the book and could save a lot of typing.
One of the benefits of The Busy Coder’s Guide to Android Development is all the code samples it comes with. Of course, these days the code samples are hosted on github. The code samples are concise and illustrate the points being made in the book well. It is helpful to be able to read about the concepts from the book and then to be able to see a working example. You can then explore the source code in the context of the background material from the book.
There is a saying that applies to The Busy Coder’s Guide to Android Development.
Price is what you pay, value is what you receive.
If the frequent updates and extensive code samples haven’t convinced you of the value of the Warescription, just wait there is more. The more in this case comes in the form of office hours. The office hours take place in an online group text chat session. If you have specific questions, Mr. Murphy is available to answer them during office hours.
I appreciate physical books but when it comes to technical books, I am sold on the eBook format. The PDF format of Version 6.3 of The Busy Coder’s Guide to Android Development tips the scales at 2987 pages. The Android platform is huge. No single book could cover every detail, but this book covers a lot of ground. I wouldn’t want to carry around a paper version of the full book, but I have printed out relevant chapters here and there.
The book also comes in epub, mobi and APK formats. I most often use the PDF format and the APK format. It is nice to have the PDF book open in a separate window while working on code. The APK format is nice to read on a tablet when you don’t want to take up extra space on your monitor.
Conclusion, The Busy Coder’s Guide is the Best Android Book
The Busy Coder’s Guide to Android Development is a perfect fit if you are going to be building an Android App as a side project. By definition you don’t have unlimited time to dedicate to your side project. Between the writing in the book and the sample code, this book will get you up to speed quickly. The updates that are published will cover what you need to know about up and coming versions of the Android platform. Mark Murphy has truly over delivered on this book.
You learn some lessons the hard way. It seems painfully obvious now but if you plan to release a paid App, always check the App store before you start coding to see if there are several popular free Apps available that do the same thing. (Note: this article is part of a series. Click here to read the introduction.)
Graph of Paid Android App Total Installs
Take a look at the graph of total paid Android App installs below and see if you can guess which of the paid Apps competes with several free alternatives?
Follow Up Question
For bonus points, which App was made based on a request from an Android user on an Android forum?
The answer to the first question is A, also known as Eco Trip, a gas mileage calculator. The answer to the second question is C, also known as Email Sign Up, an App that collects email addresses. For completeness, B is Eggspense, an App to track costs associated with keeping chickens.
As it turns out, making a paid App that people want is non trivial. The best way I have found is to do research with the goal of making something that people are already asking for. Chances are that if one person on an Android forum is requesting the App, there are other people who are likely to want it as well.
Eco Trip Back Story
Eco Trip was the first App that I made. I had to pick something to build as a first App. I chose to make a mileage calculator because I keep a paper mileage log in my car. I am good at writing down the mileage each time I fill up the tank, but I rarely bother to calculate the actual miles per gallon.
I thought, why not make an App that would log the mileage and automatically calculate the miles per gallon? Eco Trip was an App that I knew I would use. Once I had decided to build the app, I focused on building the first version. As development of the App was coming to completion, I decided to check to see if there were any other similar Apps already on the App store.
I was disappointed to see that there were a few free alternatives already available. I pushed through this set back to complete Eco Trip. The App has received very few downloads and I quickly lost interest in adding features to it.
Email Sign Up Back Story
Email Sign Up is designed to replace paper email sign up forms. The idea came from the following forum post (source).
I run a college club. We go to events and people sign up for our mailing list. When I get home, I add them to the club email account, and I have to throw out half of them because people can’t write worth a damn.
All I want is an app with two fields, Name and Email, and one button that says “Add Me.”
People enter their name. They enter their email address. They press “Add Me”. Their name and email address are dumped into a text file. The text file would have the date for a name, and anyone logged that day would be added to the end of the text file.
I’d still want to import them manually so the occasional moron trying to be funny won’t clutter up our email address book.
It would also be nice if you could customize the background for your organization.
This would literally take someone a half hour to make. I just don’t know anyone who knows how to do it.
The first version of Email Sign Up matched this description almost exactly. Check out a screen shot from an early version of the App below.
I added emphasis to the poster’s time estimate. Estimating how long a software project will take is incredibly difficult (books have been written on the topic). It is even harder for non software people. It took quite a few late nights spread across a couple of weeks to complete the first version of the App.
The main challenge of making Email Sign Up was allowing users to choose an image file. The heap on Android devices can be as low as 16 MB. When allocating space to hold an entire high resolution image, you can quickly run out of space. When this happens Android will force close the App. Not a good user experience. The solution is to scale the image. The image doesn’t need to be any larger than the devices screen resolution.
This is the first in a series of articles about lessons learned creating Android Apps as a side project. I have three paid apps on the app store with the first two published in December 2012 (the third was published in March 2013). With two full years on the app store, I thought it was time to look back and try to pull out some lessons learned. This introduction will provide some context to my approach and point of view. I hope the series will be useful to other developers thinking of making their own Android apps.
I developed the apps after hours in my spare time. Do Android Apps make an appropriate target for a side project? My short answer is yes. The longer answer depends on your background and goals for the side project.
Android Apps make an appealing choice for a side project for a few reasons. First of all, there are a lot less moving parts as compared to a web app. The app is self contained. It does not need to run on a server or necessarily have to talk to other servers. There is also a lot of leverage provided by the Android platform and APIs making it possible to get an app working quickly.
Further leverage comes from Java. If you are already familiar with other strongly typed lexically scoped languages, Java will not seem too foreign. I appreciate having a full IDE and the ability to debug the app in a graphical debugger.
Finally, Android makes it easy to develop apps in two main ways. The Android SDK and development tools are available for Linux, Windows and Mac. This is all you need to get started as an emulator is provided with the developer tools. Additionally, compared to iOS Android makes it very easy to install your app on your device. Just put your device in developer mode via the settings and install your apk on the device.
My Background And Goals
My background consists of working for large companies on embedded C/C++ code. I did not have prior experience writing Java when I began the first app. One important goal I had when I started was to learn something new. By writing the apps, I learned Java and the Android platform along the way.
The second goal was to have complete control of the app. Perhaps the most frustrating part of working for a large company is when your project gets canceled. I once worked on a project for two years before it was canceled by upper management. Creating an app allows total control of all aspects of the project.
The chance to make some money by selling my own software was also appealing. My approach to this was to offer paid apps. Apparently, this is not the best way to capture revenue from app store sales. In app purchases seem to be the best approach for maximizing profits. However, it is the most straight forward arrangement in my opinion. If the app is valuable, people would be willing to pay for it.
Finally, publishing the apps provided portfolio pieces. I have worked on proprietary code throughout my career. During interviews it was possible to talk about the code and the technical work that was required. However, before the apps, I didn’t have anything that I could fully demonstrate.