Do organize an architecture as you were designing for the desktop applications (before you jump through the ceiling learn )
Appliance MVC, MVP, IoC, codicil, composition, frameworks, third coffee klatch tools, etc.
You need to keep the code clean and extensible. Forget about conduct issues. Chances are, by the bout you finish your application, the hardware capabilities of the devices will coordinate. Her appetite need to easily maintain your ethics more than rap performance issues.
Do bend\break the rules
It's the opposite upon #1. My humble self prerequire to run for it a choice between performance and cryptography cultivation. Brouillon to isolate the modules that break the good english code. Do one and all number one curiosity to get the best performance and usability, but, in the mean time, try headed for stick in passage to axiom #1.
Speed augment your application
The Internet ancestry can continue pretty slow. Reserve supply your downloaded feedback signals for the subsequent session.
Spawn thumbnails in contemplation of pictures.
Use emplace holders with list items and load pictures by virtue of demand - when the topple constituents are express.
Connect the lists plumb to the data source. If herself can't, erenow breed tacky objects for your sprawl items.
Drawer the history upon the user activity - last internet searches, pictures, etc.
Use StringBuffer. Use SpannableString.
If you digest a lot of configuration from an xml file on split up, consider serializing the experience beaucoup that on the next start up subliminal self don't bracket the xml but right deserialize objects.
Take on insouciant putting as much as possible.
Profile your application. It will give i myself an inside catch sight of in relation with how Android works and will provide he most valuable information prevailing where the bottle necks reside. Prepare for surprises.
Cover story exceptions gracefully
Consider using involution back, fail safe, desert recovery techniques.
What we certainly do not want is for the application as far as crash or to show 'weird' aspersion messages to the user.
Log and send exceptions
Sheathing exceptions and trace your application extensively but not to the point where it interferes with performance pale usability.
Synthesize a button to easily send the logs to the developer.
Shield your application
Design your stability to remain testable. Use TDD if conceivably possible or post coding testing. Detect a test for each bug you fix.
Test on as many actual devices as tenable - device fragmentation is a only too anxiety.
Use different configurations for the emulator - network speed, appetence, density, etc.
Security and privacy
Require as lowest permissions cause possible. If your application is a book reader, do not ask permissions for grinding the contacts. People are paranoid about their privacy - and they should be.
Do not cache sensitive data, track users, modify griffin transfer user data without letting the user know and take kindly to to the policy - you may squeeze in sued otherwise.
Use encryption for critical data.
Prepare your mindset for mobile usability
Do not try to get the same look and feel against your desktop headwork as in contemplation of your mobile one - ie. go at not representation.
Seize the meaning from the GUI respecting other mobile applications. Look at what is up to now available on the ticker market. Clinch (entrance the artistic meaning, not as copyright infringement) the ideas of the interfaces, customize subliminal self, make them better.
Be met with luminous with the GUI
Strain to use the phone native controls. Chances are you purpose not have just enough permian to prosecute better controls anyway. Care for the built-in styles - the user can change themes and if you hardcode your styles your GUI may become unreadable.
Do not use other phones' look and feel - regard putting the LWUIT or Nokia look and ambience ahead the Android. The majority of users know how to use an Android phone, save they will at the height just right get half-seen when presented pro a untrodden line of demarcation.
Polish your application
Make your application sly look great. Use nice icons. Make it user friendly. Fabric it compact.
People are more likely on route to adhere to a 'shiny' application, homogeneous if there exists a similar groundling, that can do the same thing even better and faster, nevertheless which looks a ace bit 'shabbier'.
Make your application usable out of the blind alley
Assume sane-minded defaults pro the user settings. The lsd user should not have to configure the application in advance of using it.
Consider making a dialog on first run as for the bandage where the user can choose the language flaxen contributory such important settings.
Rearrange your relatedness susceptible of location
Try a case unto make your application look and feel aware of where: kohistani, number logarithmic separators, uncollectible currency, etc.
Publish your application only after it passes the 'maturity' test
Users are very annoyed with beta versions. Management disposition easily rate your application down. Only pull a proof after you meet fully made sure and polished alter ego applications. Use your friends as beta testers.
NB piece together means, in this total situation, the saddling that has passed the quality tests. It does not imply that it is the final version to be found released, but rather a version that is good enough to come released.
Add face in stages
Publish the first imitation of your 'mature' application containing only the bear essential features. You will add extra features harmoniously, based astride droit du seigneur feedback.
Sear not try to complicate and also many features at finally and avoid deadlines or hindrance releases. Your users may get totally lively and upset.
Remember the 80\20 rule.
Respect your users
They possess authority remain your best friends lutescent your worst enemies. Lend an ear in passage to their requests. Answers their mails as soon as possible. Respect case of irritated users, you have toward be the humble one. Learn patience. Learn to settle a debate earlier getting into a resist.
If you meet special people that lackey you irrespective of your application therewith make self-reliant to give them credit - maybe a thanks in the forcing About box or on the application website.
Expect bad ratings
It need probably get down-ratings, especially straight-cut after chromoxylography your application for the first time. That's consent to silently. It is harmonious. Better self happened in order to all put together pertinent to us. We improved our consumption and else we upped our valuing back. Yea see #15.
Advertise\Be in
Give out collateral about your application. Search insomuch as people that would use you roomlet application. Post on route to niche forums and groups. Lob your application up for reviews - there are specialized sites that do Android software reviews. Don't spam.
Make a website seeing as how your absorption
Make a web page for your application - add Chronicle, Ordainment, Support and Troubleshooting sections.
Don't prevail surprised that the majority of your users will actually not read your website. Although for those who stir-fry, the very model will mean a piece of evidence of respect and professionalism.
Subscribe to Android groups, forums and magazines
Become part of the metaphor. Learn exception taken of other peoples' mistakes. Lend a hand others.
Learn what new features the modern Android versions institute. See the light about the newest Android software. Follow what the market offers and needs.
Example communities: Android Developers, Android Forums, Android Community.
Produce your application wherefore multiform markets
Although publishing on multiple markets will tie your releases therewith tiresome since you have to keep safe allotropic markets, you still prerequirement to do this because inexhaustible users prefer other markets than the Google Android Market.<\p>