If you are using the REST client or the TIdHTTP component in your mobile apps you should encrypt your connection with SSL to keep your user’s data secure. You can utilize services like CloudFlare and MaxCDN to simplify implementing SSL on your web servers. Or encrypt your data manually with these free components.
With mobile service providers charging by the gigabyte lowering data usage is important. If you are making any kind of HTTP connection to a web server from your Firemonkey apps you should enable GZIP compression on both your server and client. There is also an open source compression library for files available.
If you want users to be able to find your app again after they first install it you should add your icon to the user’s home screen. The user can remove it or it will automatically be removed if they uninstall your app.
You will need to create quite a few different icon sizes to deploy with your app and to upload to the app stores. Each of the four major app stores (Google, Apple, Amazon, and Samsung) have their own icon size requirements. There is a free utility available which makes this easier. A second free tool will help you make all the splash screen images you need.
Take action when the lifecycle of your app changes in events like FinishedLaunching, BecameActive, and EnteredBackground. Users multitask using Android these specific system events (and others) will be fired. You should add these events to your app and take action as needed. There is also a bonus component called TfgApplicationEvents which gives you OnIdle, OnOrientationChanged, and OnStateChanged.
If the virtual keyboard pops up over your memo or edit control in the lower half of the device screen you will need to implement a solution to scroll the field into view. There is a demo included with the latest version of Delphi called ScrollableForm which demonstrates another way of doing it.
While your app is doing work that the user must wait for you should display a native progress or activity dialog to keep the app responsive. Your app will do it’s work in the main app thread (or your own custom threads) and the native progress or activity dialogs will animate seamlessly in the foreground.
You should check if a user is connected to the internet before making any opening any connections that attempt to connect using the internet. This way you can notify the user if they do not have connectivity and your app can handle that accordingly.
Android devices have a back button which you should handle so your users will have an intuitive flow inside of your apps. On Android devices there is also the VK_MENU button which you can handle in the OnKeyDown and OnKeyUp events as well.
A new event is available in Delphi XE7 called TForm.OnSaveState which gets called when your app is going to be hibernated by Android. There is a free class helper available that will loop through the controls on your from in the OnSaveState event and save them out to JSON. When you form is created you can load up the previous saved form state.
BONUS TIP: Google Cloud Messaging Push Notifications
If you want to keep connected to your users and increase retention you can use push notifications. On Android there is a push notification API from Google called Google Cloud Messaging. It is pretty closely tied to Google and you have to have API keys but keeping connected to your users is worth it. Push notifications are similar to an email newsletter. You can also do push notifications through the BaaS components via Parse and Kinvey.
DOUBLE BONUS TIP: Apply Premium Styles For A Professional Look
Delphi XE7 comes with 7 premium styles for Firemonkey that look fantastic. You can give your users the option to choose which style they want to use at runtime. The Jet style works particularly well in direct sunlight.