Know Your Market
Whether you are developing android apps for tablets or phones it is important to research and analyze the market.Carefully study your niche, get to know your competition and future users.
Study the top 3 and worst 3 apps that are relevant to your project. (What are their strong and weak points? How can you be better and stand out? How can you add value and make users happy? )
Social networks (Facebook, Twitter, Youtube), forums, blogs and Market user reviews are great to help you in your research and get feedback.
As more and more people turn to smartphones as their primary method of handling everyday activities, it is important to take into consideration what kind of attitudes, behaviors an app may promote. A violent game will promote irresponsability and ignorance on the long run, on the other hand a multi-player word or puzzle game boosts analytical thinking and social growth, while a weight loss or stop smoking app stimulates a positive change by helping users to get rid of their frustrations. On CNN is great article on this.
Love your users and aim to give the best and highest quality application for them. Stand out with a well taught interface, beautiful design, speed and pay attention to the smallest detail. Add value and help them reach their goals with an app that they can easily incorporate into their life and workflow.
Tools and Installation
The two most important tools you will need is Android SDK and a development environment, such as Eclipse.For Eclipse make sure you are using the latest Java Runtime Environment(JRE) or Java Development Kit(JDK).
Coding
To develop android apps you will need to be familiar with the Java programming language. If you are a total newbie on Tuts+ you will find a detailed beginner friendly introduction with everything you need to know about using Java in your Android app project.Tutorials
Hello World Tutorial - This is the most simple and basic tutorial for beginners. You will learn how to create a new project, construct a simple UI, run an application
Android Video Tutorials - This is the best resource for beginner and advanced android developers. Here you will find 200 detailed, easy to follow tutorials on how to set up a button, add background, images or music, how to create a browser, save data, get location, draw bitmaps or how to use voice recognition. SQLite databases, and many more.
Official Google Tutorials - Another great list with useful how to's of the various types of views, frameworks, layouts available.
Sample Apps
Barcode Scanner - Uses camera to decode and scan barcode
Android's Fortune - A simple quote and fortune cookie app
Vidiom - Lets you capture and publish MP4 videos, integrates with social networks
Mileage - Track car mileage and costs, import and export data etc.
FeedGoal - Rss/Atom feed reader
Standup Timer - Meeting timer for Android devices
Sample apps by Google - A great compilation of open source app from Snake to Tic Tac Toe or Spinner
Design and UI Tips
Keep it Simple Use colors Wisely - Work with a coordinated color scheme, where elements are linked together by a design or colors. See more on color harmonies here). When comes to background stay as clean as possible and choose something that you can build upon. Avoid Clutter- do not abuse font types and sizes
- avoid overpopulating your app with icons, buttons
- prioritize and concentrate on the most important thing. Do not overwhelm your users with too many options
- have enough space between UI elements (spacing is advised to be at least 8dp).
Make it Predictable
Use platform specific icons and actions - People are used to the Android environment and they identify certain gestures, icons with their specific functions. The last thing you want is to make them confused.
Show progress and give touch feedback - Users like to know what is happening around them, the effects of their actions. Visually indicate progress, which objects were touched, what is enabled or disabled. A nice custom progress bar tutorial you can see here
Make it Unique Respect your users and offer them a unique visual experience with a clean presentation, beautiful high quality icons and buttons.Induce positive feelings and emotions with your choice of colors and designs. Make your users feel at home. Have a clear message with supporting graphics. You could go organic or retro, mimic real life objects or use textured icons and backgrounds.
Users Comfort First
Make it fast- Limit the number of objects created, use efficient algorithms, and do not abuse method calls. Profile and optimize your code. A great profiler is VisualVm. You can find the Eclipse launcher of VisualVM here. For more performance tips check out Google Docs .
Size Matters - It is important to find the right balance between usability and aesthetics, especially when there are so many different target devices. The best is to test and improve, test and improve. Use large enough font sizes and tap targets. The size of touchable UI elements should be at least 48dp high and wide. On supporting multiple screen sizes and platform versions click here
Support both orientations - With the exponential growth of tablet and large -screen smartphone market supporting landscape mode is something that shouldn't be forgotten.
Integrate with other apps - People look for multi-functional apps that can quickly and easily satisfy their needs. Let them do want they want from within your app and improve user experience by incorporating other tools and applications, such as sharing, texting, GPS and maps, taking photos etc. Android offers an easy way to achieve this with Intents
Personalize - Offer customization options (change background, font size, color, sounds etc)
Other things to consider - Allow multi select (for deleting, moving multiple objects at the same time), use auto complete forms/fields, allow search suggestions.
Android GUI Sets
GUI for Android ICS - Google offers a nice GUI Psd collection for developers.
Android Asset Studio - AAS lets you easily generate you own icons. It also comes with a handy device frame generator. Both work great.
Android GUI Psd - A beautiful well made GUI set for Android. The set includes: circle buttons, radio, google search, signal bar, keyboard, main menu and many more
Android Gingerbread GUI - A nice set with many UI elements to help you in your project.
Android Icons - Another great set with vector-built fully editable icons.
Android 2.3.4 GUI - High density Psd set with customizable app icons, buttons, bars, keyboards and so much more.