Designing a mobile application is very different from designing for a PC. On a PC, you can assume fast processors, sizable memory, lots of storage space, and a large display. Users are generally expecting to spend a lot of time in your application to accomplish a larger goal, such as writing a book or doing their finances.
A mobile phone is a very different device! Users interact with it in very different ways than they do with a normal computer. They are often accomplishing short tasks while on the go.
According to Meier, "compared to desktop or notebook computers, mobile devices have relatively:
Mobile phone batteries are notorious for quickly losing a charge and people get very frustrated when they can't use their phone for an entire day. Many people carry about battery boosters and chargers so that they will have access to their phones after a day of heavy usage. You should write your applications to be a battery friendly as possible.
This is even more important in the further flung regions of the world, where Kochi shares that "recharging your phone every night is not an option if you live in a rural village without electricity. At one of UNICEF's projects in rural Senegal, I encountered a village entrepreneur who started a business where he would collect everyone's cell phones and for a small fee, bike to an electrified village a few hours away, then bike back with phones at full charge."
Kochi further states that, "people in these countries spend a lot of money to keep their phones charged. Developing a phone whose battery lasts for a week," and applications that don't needlessly waste battery power, "would unlock smartphones to a large market segment."
It's expensive to purchase data. We're fairly lucky in the United States to have ubiquitous access to networks on the go and affordable plans. That's not always the case, even in other developed nations.
To be a better device citizen, limit the amount of data you download while on mobile networks and maximize the amount you download and upload when users have a faster connection, such as Wi-Fi.
You have no idea what device will be running your application, especially since the Android OS is ever expanding to new devices and form factors. You must design responsive apps that scale to the multitude of devices on which your application could run.
Another thing to keep in mind is that your user's attention span is much shorter when using a portable device. Users are usually engaged in a different activity when using your app, e.g. attending a party. Short bursts of activity like sharing a picture on Instagram, sending a tweet about the festivities, or sending a text to meet up with their friends is the name of the game.
You also can't assume that you have their full attention span for long. You want your designs to be beautiful and intuitive to help them quickly accomplish their task.
You don't want your users to be surprised by your application. You want to make sure that your designs are intuitive and behave in ways that are easy to understand. A general rule of thumb is if you need a lengthy tutorial to introduce your user to the interface, it's probably too complicated!
You also don't want users surprised by a background action or location-based action that they haven't explicitly signed up for. A great example of what not to do is regularly annoying them with notifications about rating your application or sending ads when they haven't requested them.