Polish Your Firemonkey Apps For IOS With These Twelve Tips
#1. Monetize With In App Payments And/Or Ads Like Admob And Iads
There are a number of free and commercial components which handle in app payments and ads for you on IOS with Delphi XE5 Firemonkey. Check out DPF for IOS which has both in app payments and Iads components for free. The other components are from JVESoft and from Flash AV Software.
#2. Secure Your App’s Data Connections With SSL
Users are connecting from public hotspots these days and you need to secure your data connections to keep your user’s data safe from snooping. You can use the free OpenSSL components with Indy or there are two other commercial SSL components here and here.
#3. Encourage Users To Rate Your App
Usually only people who want to give your app a low rating end up on the App Store rating page and rate your app down. In order for you to encourage users who also really like you app to rate your app you can use a component like this or build your own using dialog boxes. DPF for IOS has a free component and JVESoft has a commercial rating component.
#4. Create And Deploy Icons For Your App
There are around 30 different icon sizes that you need to create to handle both Iphone and Ipad icons with your IOS app. There is a free utility which will take your logo and turn it into all off the icon sizes that you need.
#5. Use Premium Styles In Your App
Embarcadero provided some additional premium styles which you can download and use with your apps. There is a dark style and a light style for both IOS6 and IOS7. You can provide both to your users and they can choose for themselves which one they like on your app best.
#6. Handle App Activate And Deactivate Lifecycle Events
The lifecycle events are really important on IOS (much more so than on Android). There is no functionality to exit your app on IOS so you need to use those backgrounding lifecycle events to take care of saving your settings etc.
#7. Add Google Analytics To Your App
If you are building a professional commercial app you will want to collect usage data so that you can find out how your users are using your app and use that data to guide how you upgrade your app and add new features.
#8. Keep The Focused Edit Field Visible Above The Virtual Keyboard
When the virtual keyboard pops up it will by default cover the box that is being edited if it is below the bottom half of the screen. You can scroll your form or tabcontrol so that the field being edited stays visible. Make sure to implement a version of the code that handles multiline edit controls like TMemo as well.
#9. Setup Apple Push Notifications
If you are building a long term commercial app for IOS one way you will want to keep in touch with your users is through Push Notifications. It is always easier (and cheaper) to re-connect with existing users than it is to get new users. Push Notifications can help your achieve that.
#10. Use Threads To Keep Your App Responsive
There is a multithreaded progress dialog which is the main link of this tip but in addition to that there are two native progress dialogs for IOS here. And there is the anonymouse thread unit called AnonThread which comes in the samples section of Delphi XE5 Firemonkey. You can read this blog post on how to use it. Lastly you can use the ExecuteAsync function with TRESTRequest to do asynchronous REST calls.
#11. Handle Device Idle Time Out
If you are doing any kind of downloading using your app you will want to handle the idle time out of the device so that your app doesn’t dim out and go into the background when it is actually working. You can disable the idle time out, finish your downloading, and then re-enable the idle time out to conserve the user’s battery.
#12. Check Network Connectivity Before Trying To Connect
With mobile devices your app could lose connectivity at any time as the user travels around while using your app. You need to build that connectivity detection in your app from the start so if connectivity does drop you can handle it gracefully either by queuing up actions or sending your users notifications that they need connectivity to continue.