What's New in XE7
Go Up to What Was New in Past Releases
The XE7 release contains many new and improved features.
Contents
- 1 FireMonkey Changes for XE7
- 1.1 FireMonkey Multi-Device Applications Support Both Desktop and Mobile Platforms
- 1.2 FireMonkey Uses the New Google Mobile Ads API for Android
- 1.3 New TMultiView Component
- 1.4 Native Presentation of TEdit and TCalendar on iOS
- 1.5 Multi-Display Support
- 1.6 Multi-Touch Support and Gestures Changes
- 1.7 Full-Screen Immersive Mode for Android
- 1.8 Size and PlatformDefault Properties in TControl
- 1.9 PlatformDefault Setting for TTabPosition on Mobile Apps
- 1.10 FireMonkey Supports the Pull-to-Refresh Feature for TListView on iOS and Android
- 1.11 FireMonkey Save State Feature
- 1.12 Dialog Box Methods Support Anonymous Methods to Handle Their Closing
- 1.13 Touch-Optimized MetropolisUI Styles Available
- 1.14 DesignVisible Property Was Eliminated
- 1.15 Refactoring of FireMonkey Libraries
- 1.16 New Editable Property in TTakePhotoFromLibraryAction and TTakePhotoFromCameraAction
- 2 Platform Assistant Changes for XE7
- 3 IDE Changes for XE7
- 3.1 RAD Studio Guided Tours
- 3.2 Changes in the Form Designer for Multi-Device Applications
- 3.3 Project Files Are Automatically Added to the Deployment Manager
- 3.4 Entitlement List Added for Android
- 3.5 Splash Screen Support for Android
- 3.6 Git Version Control System Integrated in the IDE
- 3.7 Delphi Personality Now Requires SDK for OS X and iOS Simulator
- 3.8 Add Java Libraries to Your Applications for Android from the Project Manager
- 3.9 Creating Metropolis UI Applications
- 4 Run-Time Library (RTL) Changes for XE7
- 5 VCL Changes for XE7
- 6 C++ Compiler Changes for XE7
- 7 Delphi Compiler Changes for XE7
- 8 Database and Connectivity Changes for XE7
- 9 Debugger Changes for XE7
- 10 Command-Line Utility Changes for XE7
- 11 Application Samples Changes for XE7
- 12 Changes in the Online Help
- 13 See Also
FireMonkey Changes for XE7
FireMonkey Multi-Device Applications Support Both Desktop and Mobile Platforms
You no longer have to choose between creating a desktop application or a mobile application. FireMonkey applications are now called multi-device applications, and by default they can support all the available target platforms.
FireMonkey Uses the New Google Mobile Ads API for Android
FireMonkey now uses the new Google Mobile Ads SDK to provide advertising features on Android devices.
Previously, FireMonkey used the Google AdMob SDK, which is now deprecated. Google announced that on August 1, 2014, the Play Store will stop accepting applications built with the Google AdMob SDK. Please update your existing Android apps to use Google Mobile Ads instead of AdMob. See Using the AdMob Service.
New TMultiView Component
FireMonkey supports the new TMultiView component, which allows you to implement a master-detail interface that can be used for any supported target platform.
- The master pane can display a collection of any visual controls, such as edit boxes, labels, lists, and so forth.
- The detail pane typically displays information based on the properties of the controls in the master pane.
For more information about this component and an example application, see Mobile Tutorial: Using a MultiView Component to Display Alternate Views of Information (iOS and Android).
Native Presentation of TEdit and TCalendar on iOS
On the iOS target platform, FireMonkey now supports both styled and native presentations for the TEdit and TCalendar components.
- By default, when you add any of these components to the Form Designer, RAD Studio uses the styled presentation.
- To use the native presentation on the iOS target platform, set the new TPresentedControl.ControlType property to
Platform
.
For more information, see TPresentedControl.ControlType and FireMonkey Native iOS Controls
Note: The FMX.DateTimeCtrls.TCalendar class has been moved to its own unit, FMX.Calendar. If your pre-existing apps use TCalendar, make sure that FMX.Calendar is in the uses/includes.
Multi-Display Support
If your application runs on multiple displays, the GUI application framework that you use effectively manages the layout of the user interface of your application on several displays.
If your FireMonkey application runs on multiple displays, TScreen maintains a list and number of active displays and their dimensions and provides methods to obtain the display containing a form or a point. Multiple display support in FireMonkey framework is similar to multi-monitor support in VCL applications.
Multi-Touch Support and Gestures Changes
- The new FMX.MultiTouch unit contains a TMultiTouchManager.
- The new OnTouch event handles gestures that are purely gestures (never interpreted as mouse events).
- TForm and TControl now have an OnTap event for when the user taps using a finger or a similar device (not a mouse).
Full-Screen Immersive Mode for Android
You can enable immersive full-screen mode in your Android 4.4 apps (KitKat). To enable immersive mode, FMX.Forms.TForm.FullScreen must be set to True.
Note that Google Glass apps by definition are immersive full-screen.
Size and PlatformDefault Properties in TControl
A new property, Size, has been added to TControl to provide the management and the storage of the size of a control. The Size property is an object type (TControlSize) that introduces a new field, PlatformDefault, which is set to True by default. PlatformDefault allows controls to automatically resize themselves to the correct, pre-defined size for the run-time platform. The Width and Height properties of TControl remain, but their values are now saved inside the TControlSize object, instead of as separate width and height fields.
PlatformDefault Setting for TTabPosition on Mobile Apps
The FMX.TabControl.TTabPosition enum contains a new value, PlatformDefault, which sets the tab position according to the default behavior of the target platform, as follows:
- TTabPosition = Bottom for iOS apps
- TTabPosition = Top for Android apps
See Mobile Tutorial: Using Tab Components to Display Pages (iOS and Android).
FireMonkey Supports the Pull-to-Refresh Feature for TListView on iOS and Android
XE7 provides the Pull-to-Refresh feature for TListView that allows you to pull down the list to refresh the contents. For information on how to enable and use this feature, see PullToRefresh.
FireMonkey Save State Feature
The new FireMonkey Save State feature allows you to save the state of an application before it closes so this state can be recovered once the application is restarted.
To manage this new feature, the form has a new property called SaveState that handles the saving and recovering of this state. This Save State data can be written to or read from at any time, but ideally, the saving of this state should be during the new OnSaveState event and the recovering of this state should be during the OnCreate event.
The Save State of the form can include information such as active tab, text contained in edit controls, checkbox selection, calendar date, current selected item, etc. along with user data. This feature can be used on mobile platforms as well as on desktop platforms.
For further information about this feature, see FireMonkey Save State.
Dialog Box Methods Support Anonymous Methods to Handle Their Closing
In XE6, calls to dialog box methods (InputBox, InputQuery, MessageDlg, ShowMessage) were always blocking. Any code after a call to one of these methods is not executed until the dialog box closes. Android does not allow blocking dialog boxes, so you could not use these methods on Android.
On XE7, InputBox, InputQuery, and MessageDlg support a new optional parameter, ACloseDialogProc
. Calls that include this new parameter work on all platforms, including Android. This new optional parameter allows you to provide an anonymous method that is called when the dialog box closes. When you call these methods using this new parameter, your call is blocking in desktop platforms and non-blocking in mobile platforms. If you need to execute code after your dialog box closes, use this new parameter to ensure that your application works as expected on all supported platforms. For more information about anonymous methods, see:
If you call InputBox, InputQuery, or MessageDlg and you do not provide an anonymous method on your call, these methods behave as they used to behave in XE6: calls are blocking on all platforms, including iOS, and Android is not supported.
ShowMessage also gained support for Android in XE7, and calls to ShowMessage are blocking on desktop platforms and non-blocking on mobile platforms. However, ShowMessage does not provide any new parameter to handle its closing. If you need to execute code after the dialog box that ShowMessage shows closes, use MessageDlg instead of ShowMessage.
Touch-Optimized MetropolisUI Styles Available
Four newly updated MetropolisUI styles are available for FireMonkey (.style
files):
- MetropolisUIBlack_touch
- MetropolisUIBlue_touch
- MetropolisUIDark_touch
- MetropolisUIGreen_touch
These styles have all the UI elements of mobile apps and are touch-optimized. You can access the styles at C:\Users\Public\Documents\Embarcadero\Studio\15.0\Styles.
DesignVisible Property Was Eliminated
FMX.Controls.TControl.DesignVisible property has been removed. Now the Visible property applies to both run time and design time, and the Structure View always allows access to any component at design time.
Refactoring of FireMonkey Libraries
- FMX.Controls: If you are creating a FireMonkey forms application, the following refactorings should require no code changes on your part, since the FMX.Controls unit is automatically included in FireMonkey forms apps:
- These trigger-related API have been moved from the FMX.Types unit to the FMX.Controls:
- FMX.Types.TFmxObject.StartTriggerAnimation (previous name) is now FMX.Ani.TAnimator.StartTriggerAnimation.
- FMX.Types.TFmxObject.ApplyTriggerEffect (previous name) is now FMX.Controls.TControl.ApplyTriggerEffect.
- These trigger-related API have been moved from the FMX.Types unit to the FMX.Controls:
- The FMX.Edit.TNumberBox class has been moved to its own unit, FMX.NumberBox.TNumberBox. If your pre-existing apps use TNumberBox, make sure that FMX.NumberBox is in the uses/includes.
- FMX.DateTimeCtrls.TCalendar has been moved to its own unit, FMX.Calendar. If your apps use TCalendar, make sure to add FMX.Calendar to the uses/includes.
- TPopup has the new Size and PopupForm properties, and the new VisibleStored method.
- MessageDlg, InputQuery, and InputBox have new overloads containing an anonymous method reference. This change removes previous precautions about using these methods in Android apps.
New Editable Property in TTakePhotoFromLibraryAction and TTakePhotoFromCameraAction
The FMX.MediaLibrary.Actions.TCustomTakePhotoAction base class for taking photos actions, contains a new property, Editable.
The new Editable property allows cropping an image after loading or capturing it using TTakePhotoFromLibraryAction or TTakePhotoFromCameraAction.
See Mobile Tutorial: Taking and Sharing a Picture, and Sharing Text (iOS and Android), Enabling Image Editing for more information on how to use the new property.
Platform Assistant Changes for XE7
Two New Commands in PAServer
v - Toggle verbose mode
(verbose mode displays the command-line parameters whenever you issue a command)
r - Reset, terminate all child processes
For more information, see PAServer, the Platform Assistant Server Application.
New PAServer Manager App
We have added a new GUI app that runs on the Mac. The PAServer Manager enables you to create and manage multiple PAServer processes for Mac and iOS apps:
For more information, see:
IDE Changes for XE7
RAD Studio Guided Tours
This release includes a new technology to provide Guided Tours to facilitate learning about RAD Studio. The Guided Tours consist of a step-by-step walk-through to show specific features and functionality.
These interactive tours display a bubble on each step explaining what you have to do in the step. You must read the instructions and follow all the steps to complete the Guided Tour successfully. You can access a Guided Tour by clicking the appropriate link in the Welcome Page. For further information, see RAD Studio Guided Tours.
Changes in the Form Designer for Multi-Device Applications
The new Multi-Device form is a common designer for all platforms (desktop and mobile), with a styled Master form and multiple available views for different form factor and layouts. See Form Designer.
The Designer opens with the default style, the Win32 Master style. The Style drop-down menu allows you to change the Master Form style; you can choose Windows, OS X, iOS and Android. The available components and their properties change depending on the style.
The Master Form is where all the components should be placed and appropriately edited. To design mobile applications, we recommend that you use the steps in the following tutorial: Mobile Tutorial: Using Layout to Adjust Different Form Sizes or Orientations (iOS and Android).
The Views drop-down menu enables you to add predefined forms to your project, such as Android 7 Tablet or iPhone 4. After selecting an available view, the corresponding form is added to your project folder, and a reference clause to the code page. All the views inherit from the Master Form. See Adding Views to Your Multi-Device Project.
The Views allow you to personalize your project for a specific predefined layout. The available views take into account the display resolution of the target device. If you want to personalize your project for a particular resolution, you can add a customized view. See Adding a Customized View to the View Selector for more information.
When you run your project for a particular target, only the corresponding views are included in your application.
Project Files Are Automatically Added to the Deployment Manager
If you add a file to or remove a file from a project using the Project Manager, the Deployment Manager now automatically adds or removes this file. You can add media files, text files or any resource file you want to deploy with your application.
Some files, like database files, require a special treatment because they need database drivers or license files (Featured Files). In this case, the Featured Files dialog box opens automatically so you can choose the necessary files to add to the deployment list.
The Featured Files dialog box includes a new option (Show automatically when required check box) that allows you to disable the automatic adding/deleting of files in the Deployment Manager. If you deactivate this option, RAD Studio does not show the Featured Files dialog box automatically anymore; instead, you must open the Featured Files dialog box manually to add or remove featured files.
Entitlement List Added for Android
An Entitlement List page has been added for Android (iOS and Mac OS X continue to support the Entitlement List). You can access the Entitlement List through Project > Options > Entitlement List.
You can set entitlements for your Android apps. For example, you can add advertising to your mobile application or allow your application to receive data from remote servers by using the remote push notification support.
See Entitlement List for more information.
Splash Screen Support for Android
You can now configure a splash screen for your Android applications. Select Project > Options > Application, enable Include splash image, enter the path to your splash screen image, and configure the alignment of your splash screen.
For more information, see Splash Images and how to use 9-patch images in the Splash Screen.
Git Version Control System Integrated in the IDE
RAD Studio now supports the Git version control system for your version controlled projects, and some new Subversion features have been added in the IDE.
- The History Manager now presents integrated Git version control information from your local repository. After you open a project that is under version control by either Git or Subversion, you can find more information in the Contents, Information and Differences tab.
- Now you can use Git Integration in the IDE to:
- Clone a copy of your remote Git repository and start working with it.
- Commit your changes to your local Git repository (send them)
- Show the Git repository log for your version controlled projects.
- When using Subversion support, now you can:
- Use the new Subversion ChangeList labels to group your changed files before committing them to your remote repository.
- Use the new SVN merge dialog box to start merging your changes from the IDE.
- Use the new Subversion switching branches feature to point your local repository changes to a new branch of your remote repository.
For more information, see:
- Subversion Integration in the IDE
- Git Integration in the IDE
- History Manager
- http://www.git-scm.com/
Delphi Personality Now Requires SDK for OS X and iOS Simulator
An SDK (Software Development Kit) is required now to develop Delphi applications for OS X and iOS (this was previously required only for C++).
A software development kit (SDK) provides a set of files to build applications for a target platform, and defines the actual location of those files on the target platform or an intermediate platform that supports the target platform (for example, Mac OS X provides SDKs for iOS).
For steps to add a new Mac OS X or iOS (Device or Simulator) SDK to your development system from a Mac, see Adding a Mac OS X or iOS SDK.
Add Java Libraries to Your Applications for Android from the Project Manager
In XE6, to add a custom Java library to your application, you had to manually create and deploy a classes.dex
file.
In XE7, you can simply add your custom Java libraries from the Project Manager, using the new Libraries node that you can find within the Android platform node. See Adding A Java Library to Your Application Using the Project Manager.
Creating Metropolis UI Applications
In XE7 you can no longer create Metropolis UI applications directly from the File > New menu. Instead, select either of the following to create a new Metropolis UI application:
- File > New > Other > Delphi Projects > FireMonkey Metropolis UI Application
- File > New > Other > Delphi Projects > VCL Metropolis UI Application
- File > New > Other > C++Builder Projects > FireMonkey Metropolis UI Application
- File > New > Other > C++Builder Projects > VCL Metropolis UI Application
Run-Time Library (RTL) Changes for XE7
RTL API for Bluetooth and Classic Bluetooth Support for App Tethering
The RTL has a new unit, System.Bluetooth, that provides a multi-device API to access the Bluetooth features of the device that is running your application. This new unit provides support for both Classic Bluetooth and Bluetooth Low Energy. See Using Bluetooth.
You can now use app tethering to connect your application using Classic Bluetooth in addition to IP connections.
The following table summarizes the platform support of the app tethering connections (IP and Classic Bluetooth) and the RTL API for Bluetooth:
Platform | App tethering | RTL API | |||
---|---|---|---|---|---|
IP | Classic Bluetooth | Bluetooth Low Energy | |||
Client | Server | ||||
Windows |
8+ |
||||
Mac OS X | 10.9+ | ||||
iOS |
5+ |
6+ | |||
Android |
4.3+ |
App Tethering Supports Connections Outside Your Subnet
In XE6, the methods to discover remote devices to connect, AutoConnect and DiscoverManagers, used to look for devices in the subnet of the local area network (LAN) where the device running your application was. As a result, you could not use app tethering to connect devices in different subnets of the same LAN, or devices with completely different IP addresses.
In XE7, both of these methods provide an optional parameter, Target
, that you can use to override this behavior, and specify a target IP address or subnet to search for remote managers. See Connecting to Applications Outside Your Subnet.
Parallel Programming Library
By including the new System.Threading unit in your apps, you can use the new Parallel Programming Library.
For more information, see Using the Parallel Programming Library.
XML Improvements
New Cross-Platform XML Vendor that Improves Performance
In addition to MSXML and ADOM, RAD Studio now provides a new XML vendor: OmniXML. The OmniXML cross-platform XML vendor shows much better performance results than the alternative cross-platform XML vendor: ADOM. The OmniXML XML vendor in RAD Studio is based on OmniXML, but it includes additional features, such as namespace support, and it is compatible with SOAP.
New System to Select XML Vendors
The RTL provides a new system to define the XML vendor to use, as described in Using the Document Object Model.
The new XML vendor selection system provides MSXML as the default XML vendor. MSXML only supports the Windows platform; if you do not specify a different XML vendor, your application does not have XML support in platforms other than Windows, and you see a run-time exception when you run your application in other platforms.
To choose a different XML vendor, add a reference to the unit of the vendor into the unit where you use the RTL XML features, such as the TXMLDocument class. If you add more than one XML vendor unit, the first unit referenced is used as XML vendor. To override this behavior, you can change the value of the DefaultDOMVendor global variable to the global variable of the target XML vendor.
- Note: You can look up the unit and the global variable of each XML vendor in the List of Built-in XML Vendors.
When you use the TXMLDocument component, you can choose an XML vendor using its DOMVendor property. When you change the value of DOMVendor, the unit that uses the component is configured to use the specified XML vendor, so that you do not need to change unit references or the DefaultDOMVendor global variable manually.
To use a different XML vendor for each platform (such as MSXML in Windows and OmniXML in other platforms), use conditional compilation:
New Unit for Web Encoding and Decoding
The RTL provides a new unit, System.NetEncoding, that provides encoding and decoding features for Base64, HTML, and URL.
The following table shows how methods from previous versions of RAD Studio map to methods in System.NetEncoding
:
XE6 | XE7 |
---|---|
|
|
|
|
|
|
|
|
Some previously supported methods either support both AnsiString and UnicodeString or only support AnsiString
. The new XE7 methods support only UnicodeString
. To use the new methods with AnsiString
in XE7, you must cast your input string and the method result as follows:
Delphi:
AnsiStringResult := AnsiString(NewMethod(string(AnsiStringInput)));
C++:
AnsiStringResult = AnsiString(NewMethod(UnicodeString(AnsiStringInput)));
PCRE 8.35 for Windows and Mobile Platforms
The PCRE library, which provides support for Perl-compatible regular expressions, has been upgraded in XE7:
Platform | XE6 | XE7 |
---|---|---|
32-bit Windows |
7.9 |
8.35 |
iOS Device |
8.31 | |
Mac OS X |
These platforms use the PCRE version available in the system. |
- To check the changes since previous versions of PCRE, see the official changelog.
- To use PCRE, see the documentation of the System.RegularExpressions unit.
PCRE 8.35 Does Not Accept Group Names Starting with Digits
In XE6, you could define named groups with names that contained any combination of digits and letters, such as "1" or "2nd". For example: "(?<1>\w+)\s+(?<2>fish)\s*".
In XE7, which includes the latest version of the PCRE library, it is no longer possible to use group names that start with a digit. That is, you cannot use group names such as "1" or "2nd" anymore. However, you can still use digits in the name as long as they are not the first character of the name, such as "g1" or "my2cents".
zlib 1.2.8
RAD Studio includes a new version of the zlib compression library: 1.2.8.
- To check the changes since zlib 1.2.7, see the official changelog.
- To use zlib, see the documentation of the System.ZLib unit.
VCL Changes for XE7
New Component for Windows Taskbar Jump Lists
Windows 7 and later versions of Windows provide a context menu for items in the taskbar, which gives users quick access to recent files to open with your application. In XE7, the TJumpList component allows you to customize the information that the jump lists show for your application.
You can hide or show recent and frequent files, provide task entries to give your users quick access to common tasks of your application, or add completely custom categories and items to the jump lists of your application.
For information about related features, see VCL Taskbars.
C++ Compiler Changes for XE7
New Versions of Boost and Dinkumware Libraries for Win64
New versions of Boost and Dinkumware libraries are now installed (both are for Win64 only).
- Dinkumware STL version 6.40 for Win64
- Boost Libraries version 1.55 for Win64
- See Boost.
New iOS Headers Added (libcplusplus)
The libcplusplus iOS headers are now being used in RAD Studio. These updated headers provide more C++11 features, such as atomics, and default initialization of vectors.
RAD Studio now supports the Navigate To command, which was added to the Find (C++) commands previously available on the context menu in the Code Editor. The Navigate To command searches the entire active project for identifiers and constants that meet the specified search criteria. For more information, see:
Delphi Packages No Longer Allow Namespace Selection in Output - C/C++ Options
For C++ Output file generation, options are different for Delphi packages vs. executables. For packages, there are two choices (instead of 11 choices for .exe files):
- Generate DCUs (when you do not plan to use the package from C++)
- Generate all C++Builder files (including package libs)
This change eliminates potential namespace issues when the Delphi package is used in C++ applications.
Delphi Compiler Changes for XE7
String-Like Operations Supported on Dynamic Arrays
- Dynamic arrays can be manipulated similarly to strings. For example:
var
A: array of integer;
B: TBytes = [1,2,3,4]; //Initialization can be done from declaration
begin
...
A:=[1,2,3]; // assignation using constant array
A:=A+[4,5]; // addition - A will become [1,2,3,4,5]
...
end;
- String-like support routines added:
I. The Insert function inserts a dynamic array at the beginning at the position index. It returns the modified array.
var
A: array of integer;
begin
...
A:=[1,2,3,4];
Insert(5,A,2); // A will become [1,2,5,3,4]
...
end;
II. The Delete function eliminates elements from a dynamic array and returns the modifed array:
var
A: array of integer;
begin
...
A:=[1,2,3,4];
Delete(A,1,2); //A will become [1,4]
...
end;
III. The Concat function can be used to put together two different dynamic arrays:
A := Concat([1,2,3],[4,5,6]); //A will become [1,2,3,4,5,6]
Database and Connectivity Changes for XE7
FireDAC Changes
- FireDAC streaming support for blob parameters and support for MSSQL file streams
- New TFDParam properties : AsStream, AsStreams, IsDataSet, IsDatasets, IsObject, IsObjects, IsStream, IsStreams, IsUnicode, and StreamMode
- New TFDParam methods: GetDataReader and SetStream
- New TFDParams methods: Close and Unprepare
- New TFDAdapterDataSet methods: CloseStreams
- New IBLite driver for desktop and mobile, based on existing IB driver
- New DriverID = 'IBLite'
- New TFDPhysIBDriverLink.Lite property
- Support for DBMS API command native timeouts
- Supported by FireDAC drivers: Advantage, Informix, and SQL Server
- FireDAC connection parameters are now displayed in the Object Inspector as records
- TFDConnection.Params is now of TFDConnectionDefParams base class.
- Depending on TFDConnection.DriverName, the params are of one of the TFDPhysXxxConnectionDefParams, where Xxx is driver ID.
- Data Explorer enhancements
- Primary keys and fields are displayed.
- Foreign keys and fields are displayed.
- Sequences/generators are now displayed.
- Metadata writing capabilities
- New TFDTable.CreateTable method
- New poCreateDest option of TFDBatchMove.Options
- New IFDPhysCommandGenerator.GenerateCreateTable, GenerateDropTable methods
- New TFDBatchMove component for copying tables data and metadata between different databases
- New components: TFDBatchMove, TFDBatchMoveTextReader, TFDBatchMoveTextWriter, TFDBatchMoveDataSetReader, TFDBatchMoveDataSetWriter, TFDBatchMoveSQLReader, and TFDBatchMoveSQLWriter.
- Old component TFDDataMove is deprecated now. Use TFDBatchMove instead of TFDDataMove.
- TFDScript, TFDBatchMove along with reader and writer components, TFDDataMove are moved to the new "FireDAC ETL" page.
- TFDCustomSchemaAdapter serialization
- New methods: LoadFromStream, LoadFromFile, LoadFromStream, SaveToStream, and SaveToFile
- New properties: DataSets and ResourceOptions
Enterprise Mobility Service
The new Enterprise Mobility Services (EMS) offers a Mobile Enterprise Application Platform that can be hosted in the Cloud or on premises, and exposes REST APIs and enterprise database data.
EMS is developed to offer the customers a comprehensive solution that includes a REST API Server, remote database access, and tracking the usage of the solution. The EMS database stores the activity of users, and the EMS Console creates analytics with this information.
The main components in the EMS architecture are:
- The EMS Server is the component that provides core functions and services for the EMS Clients. The EMS Server manages the EMS database that stores information such as registered users and the activity of your application (creating the analytics).
- The REST API is used to access the EMS database data. EMS Clients can access the information in the EMS database by making calls to the REST built-in Administrative API of the EMS Server. You can extend the functionality of the existing EMS Server by creating your own EMS Packages, and registering these resources in the EMS Server.
- EMS Clients are mobile or desktop applications that can access the EMS Server registered resources by using the REST API. EMS support for FireDAC is provided, so you can create EMS FireDAC Client Applications.
- EMS Console reads the information that is stored in the EMS Database and shows in your default browser. The EMS Console displays the list of Users and Groups, and shows graphs of analytics that are stored in the EMS database.
In XE7, new components have been added for EMS in the IDE, such as TEMSProvider or TEMSFireDACClient (to support FireDAC in your client application). You can also use existing BaaS Components, such as TBackendQuery, in your EMS Client applications.
EMS Update includes stability and performance improvements in the EMS Server and EMS Console Server.
- Connection pooling. You can now connect using FireDAC Connection pooling to reduce the latency establishing the database connection.
- Allow a maximum number of EMS Users and HTTP connections to the EMS Server.
- Cross-origin resource sharing for the Web files resources of the EMS Console Server.
Parse Provider Support for Your Android Push Notification Applications
RAD Studio REST BaaS framework now supports Parse BaaS as a provider for your Android Push Notification applications. Previously, you could use the Parse provider only for RAD Studio iOS apps.
To start receiving push notifications from the Parse BaaS provider, register your RAD Studio application as an Android Parse push notification client and configure your Parse cloud service.
For more information, see Mobile Tutorial: Using Remote Notifications (iOS and Android) and Creating the Android Push Application.
BDE Removed
BDE, our oldest database solution, has reached the final stage of deprecation, and has been removed from RAD Studio. This includes the Bde.DBBdeWeb and Bde.DBTables units. Instead, use newer database technologies such as FireDAC. For migration, see Migrating BDE Applications to FireDAC.
If you need to continue using BDE, an external installer is available on the Registered Users site: http://cc.embarcadero.com/myreg
The BDE help remains in the XE7 help.
Enhancements to the Data Explorer
The Data Explorer now displays the following nodes for FireDAC applications:
- Primary keys and their fields
- Foreign keys and their fields
- Generators
DataSnap iOS Connector Uses ARC Now
In order to support iOS 7 and later, a DataSnap iOS Connector must use ARC.
If you have a working connector and you want your connector to support iOS 7 and later, you must update your Objective-C code so that it uses ARC. See the Transitioning to ARC Release Notes by Apple for help.
Getting Started with iOS Objective-C DataSnap Mobile Connector shows how to create a new DataSnap iOS Connector from scratch using ARC.
Online Help Changes for Database
- Tutorial: Using a REST DataSnap Server with an Application and FireDAC (New)
- Tutorial: Using a REST DataSnap Server with an Application (Revised)
- DataSnap.FireDACJSONReflect REST Server Client Sample (New)
Debugger Changes for XE7
New PAServer Manager App on the Mac
The new Mac GUI app PAServer Manager is now delivered with PAServer (the Platform Assistant Server). PAServer Manager enables you to create and manage multiple instances of PAServer.
For more information, see:
MultiByte Support for Mobile Debuggers
- The debuggers for the mobile platforms (iOS and Android) now support the use of Unicode characters and strings with UTF8, UTF16 or UTF32 encodings.
- In file names of iOS apps, the debuggers now support the use of international characters (Unicode, such as hélène and éléments).
For general information, see Debugging Multi-Device Applications.
Binary info.plist File Deployed
The info.plist file, which is required for Mac and iOS apps, continues to be generated as an XML file containing keys and associated values.
For deployment, however, the XML file is now converted to binary. For information about the contents of the info.plist file, see Version Info.
Command-Line Utility Changes for XE7
Java2OP.exe: New Native Bridge File Generator for Android
The process of allowing your application to use custom Java libraries on Android previously required you to manually create a native bridge file from a Java class file.
RAD Studio provides a new tool, Java2OP.exe (Java to Object Pascal), that automates the creation of a native bridge file for Delphi applications. This new tool allows you to generate a native bridge file from a set of JAR or Java class files, or from a specific subset of the Android API.
For this release, Java2OP.exe is available on the Registered Users site: http://cc.embarcadero.com/myreg
Application Samples Changes for XE7
The application samples delivered with the product have been reorganized, and some of the application samples are no longer delivered. We deliver the newer samples that are more relevant to multi-device application development, but we removed older samples that are less relevant.
For more information about the application samples delivered with the product, see:
Changes in the Online Help
Some notable new pages:
- Enterprise Mobility Services (EMS), a new section that includes many pages, such as:
- Using App Tethering
- Using Bluetooth
- Mobile Tutorial: Using a MultiView Component to Display Alternate Views of Information (iOS and Android)
- Tutorial: Creating Collection Lists Using LiveBindings (describes how to create the app delivered in the ListCollections sample)
- FireMonkey Save State
- FireMonkey Native iOS Controls
- File Types Index
- Running the PAServer Manager on a Mac
- RAD Studio Guided Tours
Some changes in the Online Help:
- Form Designer (now enables you to design multi-device apps)
- Mobile Tutorial: Creating an Application for Mobile Platforms (iOS and Android) (was Mobile Tutorial: Creating a FireMonkey Mobile Application (iOS and Android))