XML Repository

Guide to the first (Android) mobile applications

by Sir on July 6, 2011

It creates an architecture that is designed for desktop applications (before jumping through the roof read)
Use MVC, MVP, IOC, inheritance, composition, frames, third party tools, etc.
You need to keep the code clean and extensible. Forget about performance problems. It is likely that by the time you finish your application, the hardware capabilities of the devices will double. You have to maintain code more easily handle the performance issues.
Bend / break the rules
It is the opposite of # 1. It is necessary to make a choice between performance and architecture of code. Try to isolate the modules that break the code of good architecture. Do everything necessary to get the best performance and ease of use, but in the meantime, try to stick to rule # 1.
Accelerate their implementation
The Internet can be quite slow. Cache downloaded data for the next session.
Create thumbnails of images.
Use placeholders in the list of articles and images load demand – when the list items are visible.
Connect directly to the source lists of data. If not, then create objects of lightweight items in the list.
Save the evolution of user activity – Latest Internet searches, photos, etc.
Use StringBuffer. Use SpannableString.
If you get a lot of settings from an XML file in the implementation, consider the serialization of the information to the next exit to not parse the XML, but rather deserialize objects.
Use lazy loading as much as possible.
The profile of your application. It will give you an insight of how Android, and will provide valuable information on bottlenecks where he lives. Be prepared for surprises.
Handle exceptions gracefully
Consider use of fall back, fail-safe, no recovery techniques.
I certainly do not want is the application to crash or display “rare” exception message to the user.
Record and send exceptions
Exception log and track their extensive application, but not to the point of interfering with performance or ease of use.
Add a button to easily send logs to the developer.

Test the application
Design the application to be verifiable. Use TDD encoding tests if possible or by mail. Test for each error corrected.
Evidence in many real devices as possible – the fragmentation of devices is a real problem.
Use different settings for the emulator – network speed, resolution, density, etc.

Security and Privacy
Require the fewest permissions possible. If your application is a book reader, do not ask permission to read the contacts. People are paranoid about their privacy – and it should be.
Do not cache sensitive data, users of the track, modify or transfer the user data, the user knows and accepts the policy – you can be sued otherwise.
Use encryption for sensitive data.

Prepare your thinking for usability
You do not get the same look and its application to a mobile desktop – ie. not clone.
Learning from the GUI of other mobile applications. See what is available on the market. Steal (in the artistic sense, not copyright infringement) ideas of the interfaces, customize, make them better.

Be consistent with the graphical user interface
Try using the controls on the source phone. You may not have enough time to better control anyway. Use the built-in styles – the user can change themes and styles if you encode your graphical user interface may be illegible.
Do not use other phones look and feel – like putting the LWUIT or Nokia look and feel in Android. Most users know how to use an Android phone, but will most likely be confused when presented with a new interface.

Polish your application
Make your application look good. Use colorful icons. Make it easy to use. Make it quick.
People are more likely to adhere to a “brilliant” application, even if there is a similar one that can do the same getting better and faster, but it looks ‘mean’ a bit.

Make your useful application of the box
Take reasonable defaults for the user settings. The user should not have to configure the application before using it.

Consider the dialogue in the first race of the application where the user can choose the language, or other important places.
Make the application aware of the location
Try to make your application look aware of the location, language, decimal separators, the default currency, etc.

Publish the application only after it passes the “maturity” test
Users are very upset with the beta versions. That is easily the application fee. Published only after testing and polishing applications. Use your friends as beta testers.
NB means mature, in this context, the application has passed the quality tests. This does not imply that it is the final version will be released, but rather a version that is good enough to be released.
Add the features of the stages

Publish first version of its ‘maturity’ of applications that contain only the essential features to bear. Additional features are added regularly based on user feedback.
Do not try to add too many features at once and not miss deadlines or launch delay. Your users can be very impatient and annoyed.
Remember the 80/20 rule.

Respect for users
They can be your best friend or your worst enemies. Listen to their requests. Answer your mail as soon as possible. In the case of angry users, must be humble. Learn to have patience. Learning to solve a debate before entering a fight.
If you know special people to help you with your application then be sure to give credit – perhaps because the application About box or on the website of the application.

Expect bad grades
Is likely to lower ratings, especially after the publication of his first application. That’s fine. This is normal. It happened to us all. We have improved our application and then increased our rating back. See also # 15.

Advertising / Market
Tell people about your application. Search for people using the application niche. Post to specialized forums and groups. Put your request for comments – there are specialized sites that make Android software patches. No spam.

Create a website for your application
Make a web page for your application – Describe, installation, support and troubleshooting sections.
Do not be surprised that most users do not actually read your website. But for those who do, it will mean a sign of respect and professionalism.

Subscribe to Android groups, forums and magazines
Join the community. Learn from the mistakes of others. Helping others.
Learn what the new features in newer versions of Android to bring. Learn about the new Android software. Learn what the market offers and needs.

Communities Example: Android Developers, Forum Android, Android Community.
Publish the application in multiple markets
Despite the publication in multiple markets will make their pitches heavier because you have to maintain multiple markets, you still need to do this because many users prefer to markets other than the Google Android market.