Appmethod 1.17 Summer Release - Now Available!

Posted by on in Tips, Tricks and Techniques

The 1.17 is now available! Read on for an overview of whats new!

Read the full list of what's new with Appmethod 1.17.

Read the release notes for Appmethod 1.17.

Download Appmethod 1.17


C++ Compilers

New Clang-enhanced C++ Compiler for 32-bit Windows
BCC32C is a Clang-enhanced C++ compiler for 32-bit Windows. BCC32C allows you to take advantage of many C++11 features, and it makes it easier to maintain a single code base to target both 32-bit and 64-bit Windows.

Updated Clang and LLVM Versions
BCC32C and BCC64, Clang-enhanced C++ compilers for Windows, are both updated to Clang 3.3 and LLVM 3.3.

Parallel Compilation for Clang-enhanced C++ Compilers
In 1.17, you can enable parallel compilation in Clang-enhanced C++ compilers to significantly decrease compilation time in systems with multi-core processors.

Previous-generation C++ Compilers __property Keyword Limitation
The BCC32 and BCCOSX compilers do not support the default keyword on indexed properties. See __property - Compiler Support for more information.

New Constant for Clang-enhanced C++ Compilers
The RTLVersion constant is not supported by Clang-enhanced C++ compilers. Instead, you may use RTLVersionC.



FireMonkey Supports Windows 10
FireMonkey fully supports creating native applications for Windows 10. The framework automatically detects the target platform, loads and displays the appropriate native style at run time, without you needing to add a stylebook or any code.

Drag and Drop onto Other Applications on OS X
IFMXDragDropService, the FireMonkey platform service that provides support for drag-and-drop operations, now supports dragging data from a FireMonkey application onto another application.

New FireMonkey Styles
New Windows 10 FireMonkey styles included on 1.17: Win10Modern.Style, Win10ModernBlue.Style, and Win10ModernDark.Style.

New FireMonkey Native Windows Presentation

Tab Scrolling in a Tab Control

Removal of TCalendar Size Constraints
Appmethod 1.17 does not have size constraints for the TCalendar component.
You can now change the Height and Width of the TCalendar, and even set the Align property to Client.

New GetFirstWeekday Function
FireMonkey provides the new GetFirstWeekday function within the IFMXLocaleService interface.

FireMonkey Visual Controls can Display Hints on Mouse-over
FireMonkey visual controls now support hints on desktop platforms. To set a hint, enter the text in the Hint property of the control in the Object Inspector and set the ShowHint property to True. See Using Hints to Show Contextual Help in a FireMonkey Application for more information on how use hints.

System Notifications Move to the RTL and Gain Windows Support
The FMX.Notification unit has been replaced by System.Notification.
The TNotificationCenter component now supports Windows 8 and later Windows versions. This component has also undergone some minor changes.

Styled Presentation Constructors Receive the Data Model and Control
In 1.17, styled presentation classes receive both their data model and their presented control in their constructor, which makes creating presentation classes much easier.

Refactoring of the List View Control
Many members that used to be in TCustomListView are now in a different class or even a different unit. Members that went into a different class continue being a part of TCustomListView through inheritance.

TStyledPresentationProxy Replaces All Styled Presentation Proxy Classes
Styled presentation classes no longer need to define a proxy class. The new TStyledPresentationProxy class can be used to create a proxy object for any styles presentation class.

Touch Animation for Android
Touch animations have been included in 1.17 for the Android platform. This new type of animation simulates the touch animation from Google Material Design guide.

FireMonkey Style Designer

Platform Styles
The FireMonkey Style Designer allows now setting a different style for each different platform of your project, at design time. Just one TStyleBook can now manage a collection of styles.

Control Customization
Appmethod allows now component customization for different platforms at design time.

New Bitmap Links Editor
A new editor allows graphic edition for TBitmapLink properties on styled-objects, directly inside the IDE

More Improvements
New toolbar to load, save, and clear .style files.
Different backgrounds for style editing. You can choose no background or a light/dark one. The color helps you see how the customized control fits over dark and light colors.
Selecting and managing the different style layout objects and components directly in the Style Designer.
Adding new controls to the Style Designer by double-clicking the control in the Tool Palette.

... and more!


Registering Your Application to Handle Android Intents
In 1.16, the only way to receive intents was with local or push notifications.In 1.17, the built-in Appmethod Java library Androidapi.JNI.Embarcadero allows registering your application to handle any given type of intent action.

JSON Improvements
The System.JSON scope has been extended with many new units that provide support for:

BSON, a binary alternative to the JSON format.
JSON readers and writers, to generate and parse JSON data on the fly, without first building a complete JSON tree in memory.
MongoDB extended JSON, an extension to the JSON format to support additional data types. You can enable this JSON extension in JSON readers and writers using their ExtendedJsonMode property. Also, TJSONObject.ParseJSONValue and TJSONObject.Parse allow creating a TJSONBool value from the parsed data.

Running Asynchronous Remote Actions
Use the new RunRemoteActionAsync method to run remote actions asynchronously.By using asynchronous actions, the function that calls this method is not blocked until the remote action finishes.

GATT Server Support for Android 5
In 1.17 you can create a Bluetooth Low Energy server on Android 5.
Support for Internationalized Domain Names

The HTTP framework now supports Internationalized domain names (IDN). There are two new public methods available: TURI.UnicodeToIDNA and TURI.IDNAToUnicode.

Support for SHA-2 Hashing
The System.Hash unit has a new member, THashSHA2, that implements the SHA-2 family of hash functions.

Bluetooth Improvements
The new ScannedAdvertiseData property of TBluetoothLEDevice allows you to access the data that a remote device advertises as an instance of TBluetoothLEAdvertiseData, so that you can easily read useful information, such as its manufacturer-specific information.
TBluetoothGattServer.AddService allows you to indicate whether you want the added service advertised (default) or not.
TBluetoothLEManager.StartDiscovery supports a new parameter, ForceConnect, to connect to all discovered remote devices to obtain a complete list of services that each remote device provides. This allows you to filter remote devices based on the services that they provide, regardless of whether they advertise them or not.
New TBluetoothUUIDHelper helper class to work with different formats of Bluetooth UUIDs.

Refactoring of the App Tethering Communications
The base class for app tethering profiles, TTetheringProfile, implements now the aclogic to parse app tethering commands (which was previously implemented in base class for app tethering protocols) as well as the logic to handle remote profiles and connections, which was previously implemented on its child class TTetheringAppProfile.

... and more!


Memory Improvements

In 1.17, the Appmethod IDE includes some notable improvements related to memory consumption and management: The IDE can now use up to 4 GiB of memory, it is no longer limited to 2 GiB. Note: IDE extensions must support large memory addresses. The IDE memory management of open projects has improved. The IDE can now handle a higher number of open projects.

Improved Support for Multi-Monitor Configurations
1.17 improves user experience in multi-monitor configurations.

Integration of the Castalia Features in the IDE
Some of the Castalia features have been embedded in the IDE for Appmethod 1.17.

The AutoRecover feature allows you to recover your files when the IDE closes unexpectedly.

Changing the Font Size of the Code Editor
You can increase or decrease the size of the font in the Code Editor using the context menu of the Code Editor, or using keyboard shortcuts: Use the Increase Font Size and Decrease Font Size options available in the Code Editor Context Menu to increase and decrease the font size.

Use the Ctrl+Num + and Ctrl+Num - keyboard shortcuts to increase and decrease the font size respectively. Visit Keyboard Mappings Index to see more shortcuts.

Subversion Libraries Update in the IDE
In 1.17, Appmethod includes Subversion libraries version 1.8.13.

GetIt Package Manager Improvements
The following improvements have been added to GetIt Package Manager in 1.17:
New improved UI for the GetIt Package Manager Window.
Ability to filter packages by category.

Renamed Labels in OS X - Application Store Provisioning Page
Provisioning options for code-signing an OS X application for the Application Store have been renamed to 3rd Party Mac Developer Certificate and 3rd Party Mac Installer Certificate, to match the names that Apple uses for those certificates.

New Option to Add Support for Background Execution on iOS
Now the IDE allows you to include in the Info.plist support for background execution mode on iOS application.

New Option to Enable High-DPI Awareness in Your VCL Applications
Now the IDE allows you to enable High-DPI Awareness in your VCL applications.
Object Inspector Improvements
A new filter box shows properties or events that match the specified pattern. The new option is located under the Instance List from the Object Inspector. More granularity for the Object Inspector. A new Show option on the context menu allows to show or hide the different parts of the Object Inspector.

New Icons for the Structure View
The icons on the Structure View correspond now to the icons on the Tool Palette. The thumbnails help you to easily spot the application components on the Structure View.

New Default Value for InstallLocation Parameter in Android Manifest
The new default value for the InstallLocation parameter in the Android application manifest file is auto. See the Android Version Info section for more information. Changing this value in your older projects may help solve some specific debugging problems.

New Option to Hide Non-visual Components at Design-time
The IDE now allows you to hide or show non-visual components at design-time.

New Look and Feel for the Select Directory Dialog
The IDE now displays a modernized Select Directory dialog for folder searching. The Select Directory dialog allows you to type or paste a folder path.

Tools API Improvements
Editor Drawing Interface: New drawing Tools API interfaces have been added to extend the code editor in order to improve custom painting.

Database Changes

Optimization of FireDAC ETL components
Support for the NoSQL MongoDB Database
Enhancements to the ODBC driver
... and more!

REST Client Library and BaaS
TRESTRequestParameterList.AddItem accepts values as arrays of bytes or streams.
TCustomRESTRequest has a new read-only property, Body, that you can use to read a body that you previously define using AddBody.
The REST Client Library and BaaS now support the use of JSON readers and writers.
The TParseDate type supports Parse Date object in the correct format.


Cloud API no Longer Requires OpenSSL

Some Members of CloudAPI are Deprecated

AmazonAPI now supports the latest API versions.
The API uses the AWS Signature version 4 wherever possible, but maintains backwards compatibility.

AzureAPI now supports the latest API versions.

Debugger Changes for 1.17

Remote iOS 64-bit Device Debugging

Improved OS X Exception Handling

Integrated Frameworks and SDKs
Microsoft Windows 10 SDK is now installed with Appmethod 1.17. Appmethod 1.17 also supports the following SDKs:
Microsoft Windows 8.x SDK
Microsoft Windows 7 SDK
Appmethod 1.17 now supports Windows RT API (Windows Runtime API) and the Windows API.


Sample Applications Include Better Readme Files

Read the full list of what's new with Appmethod 1.17.

Tags: Appmethod

Gold User, Rank: 8, Points: 399
Brian Alexakis is a Product Marketing Manager at Embarcadero Technologies. He is focused on leveraging the connected world of technology to build new experiences for the Internet of Things.


Check out more tips and tricks in this development video: