You can utilize these tips when building Firemonkey apps with Rad Studio XE8, Delphi XE8, C++Builder XE8, and Appmethod for Android, IOS, Windows, and OSX devices.
#1. Secure And Compress Your Data Connections
In a mobile world it is more important than ever to secure and compress your data connections. Your users are hopping from hotspot to hotspot and switching between 2G, 3G, and 4G as they travel while using your apps. You never know how fast the data connection will be or who might be trying to snoop on your enterprise data. Delphi XE8 uses the platform native HTTP clients for it’s REST requests so that it’s SSL/TLS implementation is always up to date. You can secure other types of connections using SSH tunneling.
#2. Secure Your Local Databases With A Password
If you are deploying a local database like SQLite (or Interbase) with your app you can encrypt the local database by setting a password. Whether it is company enterprise data, user medical data, or even user photos encrypting your local database will help keep your app data and your user’s app data secure. There is also a third party library available with SQLite support called LiteDAC that supports encryption on more versions of Delphi.
#3. Keep Your Mobile Apps Responsive With Native Progress And Activity Dialogs
It is never a good idea for your users to feel like your app is frozen while it does a calculation or loads some data. Using a native progress or activity dialog can keep your app fast and responsive while your app performs work in the main thread or even other threads.
#4. Check Network Connectivity Before Trying To Connect
With mobile apps especially it is always a good idea to check for a network connection prior to attempting to open a connection. Users on mobile devices can enter and leave connectivity at any time as they travel and your app should be built with this in mind. This applies to REST, app tethering, and straight TCP/UDP connections. Some mobile platforms (like IOS) even require that you make network connections outside of the main thread so utilize anonymous threads as much as possible.
#5. Keep The Focused Edit Field Visible Above The Virtual Keyboard
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.
#6. Keep In Contact With Your Users Through Push Notifications
Whether you are sending an enterprise notification about a company event or notifying a user that they have a new message increasing user retention by utilizing push notifications can really help your app succeed. Push notifications are what allow you to re-connect with a user even though the user is not currently running your app. You can utilize the BaaS components in Delphi XE8 to implement push notifications through Parse and Kinvey or you can use a third party component which implements the Pushwoosh API.
#7. Use Premium Styles For A Professional Look
There are nine premium styles that come with Delphi XE8 Firemonkey and they can really give your app a professional look. Utilizing premium styles can also allow you to provide a light and a dark theme so your users can decide which works best in their lighting environment (Hint: the dark themes work great in full sun environments). Be sure to test out using gradients and images on your form backgrounds to really make these premium themes pop.
#8. Handle App Buttons And Lifecycle System Events
When building multi platform apps be aware of the different buttons and events available on each platform. You can handle the back and menu (VK_MENU in OnKeyDown and OnKeyUp events) buttons on Android devices so your users will have an intuitive flow inside of your apps. You can also utilize events like FinishedLaunching, BecameActive, and EnteredBackground to handle changes in your app’s lifecycle. There is also a bonus component called TfgApplicationEvents which gives you easy access to OnIdle, OnOrientationChanged, and OnStateChanged.
#9. Efficiently Display Data In ListViews With Custom ItemAppearance
The standard TListView component that comes with Delphi XE8 takes one-two lines of text (a title and a detail), an image, and an accessory icon on the right. If you want to display more lines of text in each item you will need to add a custom ItemAppearance. One of the custom ItemAppearances that can be installed supports 4 lines of text (a title and 3 details). Additionally, you can create your own custom ItemAppearances and add even more. Lastly you could also use a TListBox where you can embed any number of other controls within each TListBoxItem.
#10. Optimize Icon And Splash Screen Creation And Deployment
There are a lot of different icon sizes that you will have to create to support all of the different devices and device resolutions that are available. 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 or there is a free website which will generate icons as well. A second free tool will help you make all the splash screen images you need. When deploying to Android devices be sure to add your icon to the homescreen so users can easily find your app. Don’t have an icon yet? Check out this set of 750 free icons from Google.
BONUS TIP: Track Usage Of Your App And Exceptions With Analytics
Delphi XE8 comes with a TAppAnalytics component which allows you to see how users are using your app. The feedback you receive from analytics allows you to make smart decisions on how to iterate the next version of your app. You can add custom event tracking anywhere in your app and send exception information automatically to the server for review. Seeing exactly where users may be getting stuck or what features they use the most is gold. The TAppAnalytics feature is a cloud service with both a free tier and paid tiers. There is also a third party component that allows you to also track your app usage using Google Analytics. Both components require an internet connection.
DOUBLE BONUS: Take a deep dive into the inner workings of cross platform mobile apps built with Delphi XE8 Firemonkey.
Check out more tips for Delphi XE7 Firemonkey on Android, Delphi XE5 Firemonkey on Android, Delphi XE5 Firemonkey on IOS, building games with Firemonkey, debugging Delphi XE7 Firemonkey apps, and migrating from C# and .NET to Delphi.
Secure Your Local Databases With A Password
AFAIK this does only work on windows and NOT on Mobile (iOS/Android), please have a look at Dmitry Arefiev response to a question here http://codeverge.com/embarcadero.delphi.firedac/-android-is-firedac-not-support-en/1090005 .
That comment is from 2013 and applies to Delphi XE5 (and maybe XE6 and XE7). In Delphi XE8 if you use the static SQLite libraries you get encryption on Android and IOS. http://docwiki.embarcadero.com/RADStudio/XE8/en/Connect_to_SQLite_database_%28FireDAC%29
In XE5, XE6, and XE7 you can use LiteDAC: