Delphi XE8 was released today with new and upgraded functionality for Windows, Android, IOS, and OSX. One of the big enhancements is added support for IOS32+IOS64 Universal binaries with almost no code changes required. Here is a run down of the new functionality that jumps out at me:
The platform native controls option has been expanded to include TListView, TSwitch, TMemo, TCalendar, TMultiView, and TEdit controls. Additionally, the following controls can now be set to live in the same Z order as native controls like TWebBrowser and TMediaPlayer. The new ControlType property is available in TPanel, TButton, TSpeedButton, TCornerButton, TCheckBox, TRadioButton, TGroupBox, TStatusBar, TToolBar, TProgressBar, TTrackBar, TArcDial. Basically these new properties allow you to access more speed and/or native platform functionality if you need it in addition to combining native controls with FMX controls.
TWebBrowser has been expanded to support Android, IOS, Windows, and OSX. Previously in Delphi XE7 it only supported Android and IOS which meant you had to use third party components like the TMS Pack for Firemonkey to get full cross platform web browser support.
There is a new TMapView component with support for Android and IOS. If you need a full cross platform map component you can still use third party components from TMS Software or combine them with this new TMapView. TMapView uses the native maps available on each platform and the Android version requires an API key from Google. Other new components include support for Bluetooth low energy devices (iBeacon and AltBeacon components) and classic Bluetooth (with TBluetooth).
You can now save photos directly to the device photo album using new camera service functionality in Delphi XE8. Plus there are new photo quality settings you can access on the camera service. A couple other new components are TAppAnalytics and TImageList. TAppAnalytics is a statistics package to track your app usage so you can make informed iterations for your next version. TImageList has similar functionality to TImageList control from the VCL framework which is to say you can store lots of images in it.
The TRESTClient component has been augmented with a new platform dependent backend component set to replace the Indy HTTP client component. The goal of these new components (TNetHTTPClient and TNetHTTPRequest) is to reduce the reliance on OpenSSL and increase security by offloading the SSL and GZIP support to each platform vendor.
More mobile changes include support for all of the different types of IOS Simulators, the ability to enable and disable Android default libraries in the APK file (like Google Analytics) which reduces the size of your download, updated SQLite support on Android which now includes encryption, and finally cross platform native library support for the Box2D physics engine.
Finally, there is new a Multi Device Preview window which allows you to see how your app is going to layout and display on multiple screen sizes and devices. This allows you to quickly build responsive app designs and see almost exactly how they are going to look on phones, tablets, and other devices prior to deploying and testing them on multiple devices.
Be aware that the LongInt and LongWord types are now platform dependent and their size depends on the platform. The FixedInt and FixedUInt types have been introduced as the new platform independent types to replace the previous platform independent types.
Head over to Embarcadero’s website to get the full run down of all of the new features and functionality available in Delphi XE8 Firemonkey on Android, IOS, Windows, and OSX. You can also check out the release notes for Delphi XE8 which contains some workarounds and additional explanations for some functionality.