Quantcast
Channel: Blogs from DavidI - Embarcadero Community
Viewing all 142 articles
Browse latest View live

RAD Studio XE8 runs on the latest Windows 10 Insider Preview Build 10158

$
0
0

RAD Studio XE8 (Original Release and Subscription Update 1 versions) runs on the latest Windows 10 Insider Preview Build 10158. The Update/Install, on my MacBook Pro running Parallels for the Mac Desktop, took a while, at least 15 minutes time (but I did not run a clock as I was working on other computers at the same time).  There were several reboots in the process. So, you'll want to “Sit back and relax” according to the Microsoft Upgrading Windows screen.

I tested the already installed RAD Studio XE8, the IDE launches without a problem. I built "One Button" apps for VCL and FMX, ran without a problem. I tried a few sample of the sample apps and used the Windows 10 style – all good too. InterBase XE7 64-bit developer server– runs as a service with no issues.

I used GetIt (Tools | GetIt) to download the Delphi Windows RT library. Grabbed Marco’s sample app from his dropbox link. Build the sample – Notification works.  Note: Microsoft has renamed the "Notification Center" as the “Action Center” even though when you hover over the toolbar icon – it still reports “New Notifications Available”. Read Marco's blog post at http://community.embarcadero.com/index.php/blogs/entry/windows-10-notifications-from-a-vcl-app-with-the-winrt-api for additonal information and the link to the sample app (https://dl.dropboxusercontent.com/u/133855/WinRTCheck.zip).

A final note - in Windows 10 build 10158, Microsoft Edge now has a graphically stylized lower case “e” for its icon on the toolbar :D 

 


The RAD Studio XE8 Summer (Northern Hemisphere) and Winter (Southern Hemisphere) of Security!

$
0
0

The RAD Studio XE8 Summer (Northern Hemisphere) and Winter (Southern Hemisphere) of Security!The RAD Studio XE8 Summer/Winter of Security!

This blog post contains information and links covering secure development topics for Delphi, C++Builder and RAD Studio XE8 developers. You’ll find secure computing introductory topics and starting information for InterBase database, components, libraries, Backend as a Service (BaaS), Cloud, App Tethering and more. Throughout the Summer (or Winter if you live in the Southern Hemisphere), I’ll continue writing about secure topics and showing sample development projects. If you have specific secure development needs, send an email to davidi@embarcadero.com

Interbase – security at the database, column and over-the-wire levels.

InterBase® XE7 is a full-featured, high performance, encryptable, multiplatform and scalable relational database for developers who are looking to embed a low-cost, zero admin, lightweight secure database into their cross platform connected applications. With InterBase XE7 you get powerful access control, data change management, disaster recovery and journaling, as well as support for popular database drivers for increased deployment flexibility.

Data security is a hot topic! The loss of data via cyber attacks can lead to loss of customers and reputation, lead to regulatory action, and even expose you to large fines. InterBase is here to help with its flexible on-disk and over the wire encryption capabilities. InterBase also benefits from inbuilt user authentication and security in place wherever your data files reside. Choose to encrypt the entire database or just a critical table or column, and define who can decode that data with powerful role based authentication. InterBase supports both Advanced Encryption Standard (AES) and Data Encryption Standard (DES) encryption.

InterBase Encryption is supported starting with InterBase 2009. InterBase enables you to encrypt information at one or both of the following levels:

  • Database Level Encryption (InterBase encrypts all of the database pages that contain user information).
  • Column Level Encryption (Column-level encryption is more flexible and specific).

Using InterBase Database Encryption you can also encrypt Database Backup Files. For more information about encrypting your data with InterBase, see Data Definition Guide

Security is provided in the InterBase Server, InterBase Desktop and InterBase ToGo editons. To see additional features of each InterBase edition go to the InterBase product editions page at http://www.embarcadero.com/products/interbase/product-editions

Additional links and videos about InterBase database encryption can be found at:

Rise to the Data Security Challenge: Creating Secure Database Applications using InterBase – OnDemand Webinar -http://forms.embarcadero.com/InterBaseSecurityWebinar5-28

Why Database Encryption Matters: Is the NSA reading this? http://blogs.embarcadero.com/stephenball/2013/12/18/why-database-encryption-matters-is-the-nsa-reading-this/ 

 

EMS

EMS (Enterprise Mobility Services) offers a Mobile Enterprise Application Platform (MEAP) that you can host in the Cloud or on the premises, to expose custom REST APIs and enterprise database data. The enterprise data access is provided by the FireDAC data access library.

EMS offers a comprehensive solution including REST API, remote database access, users tracking, and analytics. Compared to a do-it-yourself model, in EMS you have a pre-build server with core capabilities in which you can plug custom packages.

You can create custom packages to expose datasets and plain REST resources, and easily embed the client code to access those resources in mobile and desktop applications.

http://docwiki.embarcadero.com/RADStudio/XE8/en/Enterprise_Mobility_Services

EMS Server Authorization allows you to authorize or deny access to a EMS Resource or a particular EMS Endpoint in an HTTP request. The authorization depends on the credentials used in the HTTP request to the EMS Server.

http://docwiki.embarcadero.com/RADStudio/XE8/en/EMS_Server_Authorization

EMS allows you to use external credentials in your custom plugins to execute login and signup operations in the EMS Server.

http://docwiki.embarcadero.com/RADStudio/XE8/en/EMS_External_Credentials_Support 

 

DataSnap

DataSnap is a RAD Studio XE8 technology for Delphi and C++Builder that allows the development of multi-tier applications, most notably multi-tier database applications. DataSnap offers the possibility to create Client-Server applications that communicate through the Internet, the local network, or the local host.

The main feature of DataSnap is the ability of the Client application to invoke methods that are implemented on a Server. DataSnap automatically generates the necessary interface for the Client to communicate with the Server, containing the prototypes of the Server methods.

DataSnap provides a way for the Client to safely communicate with the Server, using a secured transfer of JSON (JavaScript Object Notation) data content over TCP/IP, HTTP and HTTPS. The ability to define filters at both ends of the communication channel, for encryption and compression purposes, improves the security.

DataSnap provides Encyption filter support for data sent. You can choose PC1 or RSA - In case of using the PC1 encryption filter, the Properties property holds the Key value to use for the encryption. If using the RSA filter, the Properties property holds a list of three properties, UseGlobalKey, KeyLength, and KeyExponent.

Start with the DataSnap Server Wizard. DataSnap Server Wizard provides an easy way to implement a server application using the DataSnap technology. Regardless of the options you select, it creates a ServerContainerUnit that contains a TDSServer component. All the additional components are connected to the TDSServer, having the Server property set to the name of the TDSServer component. If the selected protocol is TCP/IP, the server unit also contains a TDSTCPServerTransport. If HTTP is selected as the communication protocol, the server unit contains a TDSHTTPService component. If HTTPS is selected, then the server unit will contain a TDSHTTPService component configured for HTTPS operations.

http://docwiki.embarcadero.com/RADStudio/XE8/en/DataSnap_Server_Wizard

Additional DataSnap documentation pages:

 

Cloud Application Development

Building cloud based applications also involves security, authentication, storage and more.  RAD Studio XE8 provides several interfaces to cloud systems using the Cloud API runtime libraries with support for Amazon AWS and Microsoft Azure.

http://docwiki.embarcadero.com/RADStudio/XE8/en/Developing_Cloud_Applications

We also provide component interface for Backend as a Service (BaaS) providers Parse, Kinvey, App42 (a separate free download). These BaaS services provide their own secure interfaces for developers for user and device authentication, storage and push notifications.  You can find additional information on their sites.

Sarina Dupont has a series of blog and tutorial posts showing you how to use BaaS providers. Use the following community blog post and tags to find the articles:

 

App Tethering

The RTL provides app tethering components, giving your applications the ability to interact with other applications running either on the same machine or on a remote machine.

Using app tethering, your applications can easily:

The app tethering feature does not depend on a specific transport or protocol, and new transports and protocols can be implemented using the app tethering API. The RTL provides built-in support for IP and Classic Bluetooth connections. IP support includes connecting applications running on the same device.

You’ll find a wide range of App Tethering documentation and tutorials on the Embarcadero DocWiki:

 

HTTP/HTTPS

 

RAD Studio XE8 supports using the Native HTTP libraries on multiple devices.

http://docwiki.embarcadero.com/RADStudio/XE8/en/Using_an_HTTP_Client, http://docwiki.embarcadero.com/Libraries/XE8/en/System.Net.HttpClientComponent

You can also use OpenSSL with your secure applications. http://docwiki.embarcadero.com/RADStudio/XE8/en/OpenSSL, https://www.openssl.org/

 

TurboPower LockBox

TurboPower LockBox 2 (Win32, Win64, Android, OSX) and LockBox 3.5.2 (Windows, Android, OSX) cryptography libraries/components. You can download and install the latest releases for RAD Studio XE8 using GetIt  (Tools | GetIt) menu item in the IDE:

  

Secure C Library

The foremost reason why Secure C Library came into existence was the need for bounds checking for string handling functions in the C Library. There are many functions in the C Library that expect the caller to supply string parameters long enough to hold the result of the operations. When a larger string is written "over" a smaller string, in fact data is written past the end, overwriting other program data. This can lead to "mysterious" failures, as the program has no means of knowing if or when something went wrong.

A typical solution was to try to use strings that were "big enough" but this could lead to two problems: either the result was a waste of space, or the user's "big enough" was not big enough in practice. In addition, buffer overflows can be exploited in order to run harmful code, compromising the security of operating systems and networks.

For many C Run-time Library functions, the Secure C Library introduces extra parameters that are used for bounds checking of character arrays, and data is never written past the end of an array. Besides that, it introduces run-time constraints and the means for the user to set his own run-time violation handling functions. Doing so, the program can know when and where something goes wrong with a character array and can fix the error, or fail gracefully.

http://docwiki.embarcadero.com/RADStudio/XE8/en/Secure_C_Library

 

Windows CryptoAPI

You can always call Windows SDK functionality even if we have not wrapped the API in our RTL or components. Here is the Microsoft SDK URL for CryptoAPI –

Cryptography - https://msdn.microsoft.com/en-us/library/windows/desktop/aa380255(v=vs.85).aspx

Cryptography API - https://msdn.microsoft.com/en-us/library/ms867086.aspx

 

IP*Works! By /n software

Internet components that are provided as part of the RAD Studio XE8 Registered User Downloads.

The full version of /n software’s IP*Works components - A comprehensive suite of components for Internet communications including more than 40 individual components covering every major Internet Protocol. IP*Works! eliminates the complexity of Internet development, providing easy-to-use, programmable components that facilitate tasks such as sending email, transferring files, managing networks, browsing the web, and consuming web services.

You can then purchase their addon packs for SSL, SSH and more at

Registered user download links:

 

Project Indy Internet Components

Project Indy includes a range of components for RAD Studio XE8 supporting a wide range of Internet protocols, clients, servers and more. You can find additional information on our DocWiki about the components and how to secure Indy based network connections:

 

I will be covering additional RAD Studio XE8 secure development topics throughout the summer. Stay tuned for demos and articles on the above topics as well as secure development for REST, SOAP and other web based architectures.

Have a great Summer or Winter depending on which hemisphere you live it :D

 

Deploying your EMS server applications for scalability and security

$
0
0

Yesterday I wrote about some of the RAD Studio XE8 secure computing capabilities that are supported in the product features and technologies. Robert posted a comment asking whether the EMS Console app was secure as it was using HTTP for development and debugging. This is true.  I asked our EMS R&D team members. I was reminded that when you deploy your EMS server applications they run under Microsoft IIS using an included ISAPI.DLL that works with your EMS application package files. The tools that come with the deployment including the console app and browser interface also work inside an HTTPS environment.  Security is assured as long as you configure your IIS Server correctly.

Information in our DocWiki for EMS application deployment says: "For a production environment, we recommend to set up the EMS Server and the EMS Console Server on a web server. We currently support Microsoft IIS Server." The tools you need are included as DLL versions in the RAD Studio XE8 (enterprise edition and above). You'll find the DLL versions in the "C:\Program Files (x86)\Embarcadero\Studio\16.0\bin folder". Additional developer and packaging information is also included in the DocWiki - If you have created one or more packages of custom EMS resources, you must build them into package shared library files, which you need as well.

EMS Development gives you executables for the EMS server and console apps. These you can test and debug inside your own secure environment. For development we give you 5 user licenses. When you want to deploy your EMS based applications, contact our sales office or reselling partners to get your deployment licenses.

For the two main EMS deployment DLLs you'll need to configure IIS to know where they located, This is documented in the "Configuring IIS for the ISAPI DLL topic". The EMS DLLs are: :

  • emsserver.dll, for example C:\inetpub\wwwroot\emsserver\emsserver.dll
  • emsconsole.dll, for example C:\inetpub\wwwroot\emsconsole\emsconsole.dll

Additional information about setting up a secure IIS installation is provided by Microsoft including the following links:

How To Set Up an HTTPS Service in IIS - https://support.microsoft.com/en-us/kb/324069

How to Set Up SSL on IIS 7 - http://www.iis.net/learn/manage/configuring-security/how-to-set-up-ssl-on-iis

How to implement SSL in IIS - https://support.microsoft.com/en-us/kb/299875

IIS7 : HOW TO configure a website for HTTPS? - http://blogs.msdn.com/b/rakkimk/archive/2007/05/25/iis-7-how-to-configure-a-website-for-https.aspx

Thanks, Robert, for the comment/question on my secure computing in RAD Studio XE8 Security blog post.

 

 

 

RAD Studio XE8, XCode 6.4 and iOS 8.4 - it's safe to go in the water!

$
0
0

Shark Week 2015 starts on the Discovery Channel this Sunday. This week, Apple released updated Xcode (Xcode 6.4) and iOS (8.4) to support the Apple Music launch (along with other improvements and bug fixes). Within 2 minutes of the release, I got an email from several developers asking if it was safe to install these updates and use them with RAD Studio XE8. Our R&D teams have been using and testing the beta releases of iOS 8.4 and Xcode 6.4 for awhile, but we always wait to do final testing on the actual release (we've been surprised a couple of times with changes that appeared between beta and release).

We've tested the IDE, PAServer, Delphi and C++Builder compilers, runtime library, debugging, app distribution, device integration, using the simulator, and building/running mobile sample applications. Several of our field software consultants have also tested these latest Apple releases with their computers and devices.

After final testing by our teams, I can officially report that it is safe to use Xcode 6.4 and iOS 8.4 with RAD Studio XE8. It's safe to go in the water, but keep a lookout for any shark reports in your area. Let us know if you find any issues. You can use the Embarcadero Quality Portal to report problems.

 

 

 

 

 

How to vibrate iOS and Android phones using FireMonkey and XE8

$
0
0

Pawel Glowacki asked about how to vibrate a smartphone from Delphi code for iOS and Android. The following sample code for Delphi and FireMonkey was provided by Thierry Laborde and Williamm Wittwer from Embarcadero France:

unit Umain;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
  FMX.Controls.Presentation, FMX.StdCtrls
{$IFDEF ANDROID}
  ,Androidapi.JNI.Os,
  Androidapi.JNI.GraphicsContentViewText,
  Androidapi.Helpers,
  Androidapi.JNIBridge
{$ENDIF}
{$IFDEF IOS}
  ,IOSapi.MediaPlayer,
  IOSapi.CoreGraphics,
  FMX.Platform,
  FMX.Platform.IOS,
  IOSapi.UIKit,
  Macapi.ObjCRuntime,
  Macapi.ObjectiveC,
  iOSapi.Cocoatypes,
  Macapi.CoreFoundation,
  iOSapi.Foundation,
  iOSapi.CoreImage,
  iOSapi.QuartzCore,
  iOSapi.CoreData
{$ENDIF}
  ;

{$IFDEF IOS}
Const
  libAudioToolbox        = '/System/Library/Frameworks/AudioToolbox.framework/AudioToolbox';
  kSystemSoundID_vibrate = $FFF;

Procedure AudioServicesPlaySystemSound( inSystemSoundID: integer ); Cdecl; External libAudioToolbox Name _PU + 'AudioServicesPlaySystemSound';
{$ENDIF}


type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

procedure TForm1.Button1Click(Sender: TObject);
{$IFDEF ANDROID}
Var
  Vibrator:JVibrator;
{$ENDIF}
begin
{$IFDEF ANDROID}
  Vibrator:=TJVibrator.Wrap((SharedActivityContext.getSystemService(TJContext.JavaClass.VIBRATOR_SERVICE) as ILocalObject).GetObjectID);
  // Vibrate for 500 milliseconds
  Vibrator.vibrate(500);
{$ENDIF}
{$IFDEF IOS}
  AudioServicesPlaySystemSound( kSystemSoundID_vibrate );
{$ENDIF}
end;

end.

Notes: For the iOS part you have to go in the SDK Manager, choose the SDK for iOS and click on the button to add a Path. And parameter it like in the join picture. Don’t forget after to click on the button ‘Update Local File Cache. For the Android part don’t forget to add the authorization for Vibration in the parameter of the project. http://docwiki.embarcadero.com/RADStudio/XE8/en/SDK_Manager

Delphi VCL and FireMonkey: eBooks, Books, Tutorials and Courseware - a collection of links

$
0
0

We are often asked where developers and teachers can find books, courseware and tutorials available today that cover Delphi programming and Multi-Device FireMonkey app development. The great news is that there are more and more books appearing on Amazon, Lulu and online. Here is my latest list of books, courseware and tutorials from book shopping sites and developer sites.  

ebooks

Books

Courseware

Tutorial and Learning Websites

 

If you know of other books, eBooks and tutorials, post a comment to this blog post and send me an email (davidi@embarcadero.com) with the information and links and I will keep updating my list.

 

Developer Skill Sprints for Q3 2015 - The programming fun starts Tuesday, July 14, 2015

$
0
0

Q3 2015 - Developer Skill Sprints: Code, Test, Version Control, Deployment and More

This latest season of Developer Skill Sprints focuses on programming tips and techniques most requested by attendees of the past 72 skill sprints we’ve already presented. This quarter we’ll take your developer skills to an even higher level and also get you ready for the release of Windows 10.

Live sessions every Tuesday

July 14 - September 29, 2015
6AM San Francisco / 9AM New York / 2PM London / 3PM Milan / 1300 UTC
11AM San Francisco / 2PM New York / 7PM London / 8PM Milan / 1800 UTC
5PM San Francisco / Wed 9AM Tokyo / Wed 10AM Sydney / 0000 UTC Wednesday

Register for the series at http://forms.embarcadero.com/15Q3DeveloperSkillSprintsWebinarSeries

Schedule/Topic

  • 14-Jul Using the New Native HTTP Client Libraries
  • 21-Jul Using Azure Translator Services for Automatic Text Translation
  • 28-Jul Using InterBase Events and Change Views with Callback Functions
  • 4-Aug TestInsight – integrated RAD Studio IDE Unit Testing Made Simple
  • 11-Aug Taking Beacons to the Next Level
  • 18-Aug Using Dependency Injection for Maintainable Code
  • 25-Aug IDE Integrated Project Source Code Control using Subversion, Mercurial and Git
  • 1-Sep Cool Dynamic Programming Tips with the Enhanced RTTI
  • 8-Sep App to Store: Build and Publish to iOS App Store and Google Play
  • 15-Sep Best Skill Sprint Yet! Register Now
  • 22-Sep Delphi Anonymous Methods and C++ Lambdas – when to use them and not use them
  • 29-Sep Effective LiveBindings from Forms to Code

Save your seat: register now at http://forms.embarcadero.com/15Q3DeveloperSkillSprintsWebinarSeries

Previous Developer Skill Sprint replays can be found on the Embarcadero YouTube channel playlist at https://www.youtube.com/playlist?list=PLwUPJvR9mZHhZTajVWsgaFPLtDA-t1Xwc

 

Beacons, Beacon Fencing, and the Internet of Things

$
0
0

It is a spectacular time for developers who want to interact with the real world of things: sensors, gadgets, devices, wearables, beacons and more. Developers are not just stuck writing code for desktop, client server and multi-tier systems. Developers can now use pre-built components and servers to add new devices to their application solutions. Beacons (iBeacons, AltBeacons, Eddystone Beacons) allow developers to add proximity based features to their applications. Using BluetoothLE, these beacons allow you to find you way through a museum and a warehouse. Retail stores can help their customers find the products they are looking for and alert them to special personal offers. With Beacons you expedite the visit to a doctor's office. Using Beacons elder care centers can more effectively help senior citizens with special needs.

Using Beacon Fencing, applications can track entry and exit of a section in a house, department in a store, room in a school and more. Together Beacons, Beacon Fencing and desktop, smartphone and tablet based apps can provide new dimensions to the user experience. With the recently announced BeaconFence, developers can quickly lay out regions in a store, warehouse, hotel, office and other indoor/outdoor locations.

There are so many new ways that developers can include devices, gadgets, sensors, beacons, etc that I could go on and on writing about the use cases. I will continue to add new ideas, samples, articles and videos in the coming months. Here are just a few of the many links to additional resources to get you started in this exciting new world of the Internet of Things.

Want to learn more about how developers and businesses are going to take advantage of the new Internet of Things opportunity? Download the survey results at http://forms.embarcadero.com/15Q1IoTSurvey

You can get started right now - [DownloadButton Product='RAD' Caption='Download the RAD Studio Trial']


Read more

Technology Partner Spotlight: Aerserv ad technology platform - Thursday August 6, 2015

$
0
0

AerServ is a free mobile SSP and monetization platform that empowers mobile publishers with a superior technology platform, supercharges their ad revenue through mobile video, and supports them with unrivaled customer service for a triple-win. AerServ works in alignment with thousands of apps, from premium publishers to independent developers, to optimize their existing ad network revenue through mediation, and tap into aerMarket’s demand inventory to supercharge their earnings. AerServ’s entire platform and infrastructure were built with a publisher-first mentality. Publisher’s get best-in-class support with hands-on care from integration specialists, account managers, and software engineers. Whether you are looking for a simple way to monetize your mobile inventory or an advanced way to increase revenue, AerServ can get you there easily and efficiently.

Aerserv supports 3 different ad types: Video, Banner HTML, Interstitial HTML. Aerserv supports many different Ad Sources. You can target your ads for specific countries, US and Canada local cities, and specific devices (iPhone, iPad, Android). Below you will find links to the RAD Studio component download and additional articles and information.

The replay is available on the Embarcadero YouTube video channel at https://www.youtube.com/watch?v=bGoS-swBp10

 

Aerserv Information URLs:

RAD Studio Developer information URLs:

Aerserv Components and Library are now in the RAD Studio XE8 GetIt Package Manager gallery (use the Tools | GetIt Package Manager... menu item in the IDE) .

Aerserv_in_GetIt_Manager

 

Component Requirements – Product/Version, OS, Frameworks

  • Component works with RAD Studio XE8
  • OS: Android, IOS
  • Frameworks: FMX

For additional help – email help@aerserv.com

 

You can register for the Embarcadero Technology Partner Spotlight series at http://forms.embarcadero.com/15Q3TechPartnerSpotlights

The replays for previous technology partner spotlight webinars are available using the Embarcadero YouTube channel playlist - https://www.youtube.com/playlist?list=PLwUPJvR9mZHgaYTPmY_FhOvJfbl7ZzVku

 


Read more

Developer Skill Sprint: Taking Beacons to the Next Level

$
0
0

Developer Skill Sprint: Taking Beacons to the Next Level
David Intersimone "David I" - VP of Developer Relations and Chief Evangelist
Tuesday, August 11, 2015

What will be covered during this Developer Skill Sprint? We'll take a look at the use of Bluetooth Low Energy Beacons and the new BeaconFence, beacon fencing solution for developers, announced by Embarcadero. Beacons (iBeacon and AltBeacon) and Beacon Fencing are used in retail, manufacturing, warehousing, healthcare and entertainment venues just to name a few use cases. During this developer skill sprint you'll learn how to create beacon maps, beacon zones and how to create beacon fencing applications for iOS, Android and OSX.

What is BeaconFence? BeaconFence is the new developer proximity solution available from Embarcadero. BeaconFence allows you to

  • Build mobile apps that deliver precise “GPS-Free” indoor/outdoor user location tracking and events
  • Create radial and rectangular zones for any physical location and layout
  • Visually draw the layout of a physical location and beacon placement
  • Track location information down to inches
  • Track intersections, enters, and exits with callback events

BeaconFence provides two components

There are two components for beacon fencing: TBeaconZonesFencing and TBeaconMapFencing. TBeaconZonesFencing uses zones (that you define) for proximity based applications. TBeaconMapFencing has a visual BeaconFence map editor that lets you load a bitmap layout or design a layout. You can add and configure different objects in the map editor: maps, zones, beacons and paths with nodes.

BeaconFence Position Calculation

The API for BeaconFence provides the System.Beacon.Fencing.PositionCalculator unit, where you can find the necessary classes used to estimate the current position of your BLE device in a specific map. The default implementation of TPositionCalculator embeds the main functionalities of a particle filter algorithm optimized for localization tasks. In particular, this particle filter corresponds to a Monte Carlo Localization algorithm.

Adding App Background Support for iBeacons on iOS

If you use iBeacons in your App you need to allow your application to run in background so that the BLE device wakes up to handle bluetooth events. Add support for Core Bluetooth background execution modes by adding the UIBackgroundModes key in the Info.plist file of your project. You can add this key in the IDE by using its menu: File > Project > Options > Version Info:

  • Click the last key listed.
  • Press down arrow key to create a new key.
  • Introduce the key UIBackgroundModes and value bluetooth-central.

Try BeaconFence Today for Free

BeaconFencePurchaseProcess

To use BeaconFence, you need to be a current RAD Studio XE8 Update Subscription customer. Launch the GetIt Package Manager in RAD Studio XE8 to request a free “Pluto” license. Use GetIt to install the BeaconFence components and runtime library. You can build and deploy iOS, Android and Mac OSX applications using BeaconFence with support of up to 3 beacons, for 1 location (building size of up to 1,500 sq ft / 150 sq meters) and 1 application. For additional development and deployment capabilities, contact Embarcadero Sales and Reselling Partners to upgrade your BeaconFence plan.

Additional Resources

BeaconFence product information

Beacons, Beacon Fencing, and the Internet of Things - http://community.embarcadero.com/index.php/blogs/entry/beacons-beacon-fencing-and-the-internet-of-things

Building Proximity Aware Applications using Beacons in RAD Studio XE8 - http://community.embarcadero.com/index.php/blogs/entry/building-proximity-aware-application-with-rad-studio-xe8

What to do with beacons before you code - http://community.embarcadero.com/index.php/blogs/entry/what-to-do-with-beacons-before-you-code

Technical Skill Sprint Replay highlighting Beacon Support in XE8 - http://embt.co/sprint-prox-beacons

News articles about companies and locations that are using Beacons

Shop and Manufacturer sites where you can purchase beacons

We have tested ur software with a number of proximity beacons including: EM Microelectronic, Estimote, Radius Networks and Gimbal. You can find proximity beacons at your favorite online and physical electronics stores. You can also search for proximity beacons on Amazon. The "Hitchhikers Guide to iBeacon Hardware: A Comprehensive Report by Aislelabs" (May 2015) lists 26 iBeacon hardware vendors. Another good source for proximity lists is Beekn.net's "Guide to iBeacon Hardware".

[DownloadButton Product='RAD' Caption='Get Started Now, Download the RAD Studio XE8 trial']


Read more

How to vibrate iOS and Android phones using FireMonkey and XE8

$
0
0

Pawel Glowacki asked about how to vibrate a smartphone from Delphi code for iOS and Android. The following sample code for Delphi and FireMonkey was provided by Thierry Laborde and Williamm Wittwer from Embarcadero France:

unit Umain;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
  FMX.Controls.Presentation, FMX.StdCtrls
{$IFDEF ANDROID}
  ,Androidapi.JNI.Os,
  Androidapi.JNI.GraphicsContentViewText,
  Androidapi.Helpers,
  Androidapi.JNIBridge
{$ENDIF}
{$IFDEF IOS}
  ,IOSapi.MediaPlayer,
  IOSapi.CoreGraphics,
  FMX.Platform,
  FMX.Platform.IOS,
  IOSapi.UIKit,
  Macapi.ObjCRuntime,
  Macapi.ObjectiveC,
  iOSapi.Cocoatypes,
  Macapi.CoreFoundation,
  iOSapi.Foundation,
  iOSapi.CoreImage,
  iOSapi.QuartzCore,
  iOSapi.CoreData
{$ENDIF}
  ;

{$IFDEF IOS}
Const
  libAudioToolbox        = '/System/Library/Frameworks/AudioToolbox.framework/AudioToolbox';
  kSystemSoundID_vibrate = $FFF;

Procedure AudioServicesPlaySystemSound( inSystemSoundID: integer ); Cdecl; External libAudioToolbox Name _PU + 'AudioServicesPlaySystemSound';
{$ENDIF}


type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

procedure TForm1.Button1Click(Sender: TObject);
{$IFDEF ANDROID}
Var
  Vibrator:JVibrator;
{$ENDIF}
begin
{$IFDEF ANDROID}
  Vibrator:=TJVibrator.Wrap((SharedActivityContext.getSystemService(TJContext.JavaClass.VIBRATOR_SERVICE) as ILocalObject).GetObjectID);
  // Vibrate for 500 milliseconds
  Vibrator.vibrate(500);
{$ENDIF}
{$IFDEF IOS}
  AudioServicesPlaySystemSound( kSystemSoundID_vibrate );
{$ENDIF}
end;

end.

Notes: For the iOS part you have to go in the SDK Manager, choose the SDK for iOS and click on the button to add a Path. And parameter it like in the join picture. Don’t forget after to click on the button ‘Update Local File Cache. For the Android part don’t forget to add the authorization for Vibration in the parameter of the project. http://docwiki.embarcadero.com/RADStudio/XE8/en/SDK_Manager


Read more

Delphi VCL and FireMonkey: eBooks, Books, Tutorials and Courseware - a collection of links

$
0
0

We are often asked where developers and teachers can find books, courseware and tutorials available today that cover Delphi programming and Multi-Device FireMonkey app development. The great news is that there are more and more books appearing on Amazon, Lulu and online. Here is my latest list of books, courseware and tutorials from book shopping sites and developer sites.  

ebooks

Books

Courseware

Tutorial and Learning Websites

 

If you know of other books, eBooks and tutorials, post a comment to this blog post and send me an email (davidi@embarcadero.com) with the information and links and I will keep updating my list.

 


Read more

Developer Skill Sprints for Q3 2015 - The programming fun starts Tuesday, July 14, 2015

$
0
0

Q3 2015 - Developer Skill Sprints: Code, Test, Version Control, Deployment and More

This latest season of Developer Skill Sprints focuses on programming tips and techniques most requested by attendees of the past 72 skill sprints we’ve already presented. This quarter we’ll take your developer skills to an even higher level and also get you ready for the release of Windows 10.

Live sessions every Tuesday

July 14 - September 29, 2015
6AM San Francisco / 9AM New York / 2PM London / 3PM Milan / 1300 UTC
11AM San Francisco / 2PM New York / 7PM London / 8PM Milan / 1800 UTC
5PM San Francisco / Wed 9AM Tokyo / Wed 10AM Sydney / 0000 UTC Wednesday

Register for the series at http://forms.embarcadero.com/15Q3DeveloperSkillSprintsWebinarSeries

Schedule/Topic

  • 14-Jul Using the New Native HTTP Client Libraries
  • 21-Jul Using Azure Translator Services for Automatic Text Translation
  • 28-Jul Using InterBase Events and Change Views with Callback Functions
  • 4-Aug TestInsight – integrated RAD Studio IDE Unit Testing Made Simple
  • 11-Aug Taking Beacons to the Next Level
  • 18-Aug Using Dependency Injection for Maintainable Code
  • 25-Aug IDE Integrated Project Source Code Control using Subversion, Mercurial and Git
  • 1-Sep Cool Dynamic Programming Tips with the Enhanced RTTI
  • 8-Sep App to Store: Build and Publish to iOS App Store and Google Play
  • 15-Sep Best Skill Sprint Yet! Register Now
  • 22-Sep Delphi Anonymous Methods and C++ Lambdas – when to use them and not use them
  • 29-Sep Effective LiveBindings from Forms to Code

Save your seat: register now at http://forms.embarcadero.com/15Q3DeveloperSkillSprintsWebinarSeries

Previous Developer Skill Sprint replays can be found on the Embarcadero YouTube channel playlist at https://www.youtube.com/playlist?list=PLwUPJvR9mZHhZTajVWsgaFPLtDA-t1Xwc

 


Read more

Beacons, Beacon Fencing, and the Internet of Things

$
0
0

It is a spectacular time for developers who want to interact with the real world of things: sensors, gadgets, devices, wearables, beacons and more. Developers are not just stuck writing code for desktop, client server and multi-tier systems. Developers can now use pre-built components and servers to add new devices to their application solutions. Beacons (iBeacons, AltBeacons, Eddystone Beacons) allow developers to add proximity based features to their applications. Using BluetoothLE, these beacons allow you to find you way through a museum and a warehouse. Retail stores can help their customers find the products they are looking for and alert them to special personal offers. With Beacons you expedite the visit to a doctor's office. Using Beacons elder care centers can more effectively help senior citizens with special needs.

Using Beacon Fencing, applications can track entry and exit of a section in a house, department in a store, room in a school and more. Together Beacons, Beacon Fencing and desktop, smartphone and tablet based apps can provide new dimensions to the user experience. With the recently announced BeaconFence, developers can quickly lay out regions in a store, warehouse, hotel, office and other indoor/outdoor locations.

There are so many new ways that developers can include devices, gadgets, sensors, beacons, etc that I could go on and on writing about the use cases. I will continue to add new ideas, samples, articles and videos in the coming months. Here are just a few of the many links to additional resources to get you started in this exciting new world of the Internet of Things.

Want to learn more about how developers and businesses are going to take advantage of the new Internet of Things opportunity? Download the survey results at http://forms.embarcadero.com/15Q1IoTSurvey

You can get started right now - [DownloadButton Product='RAD' Caption='Download the RAD Studio Trial']


Read more

Technology Partner Spotlight: Aerserv ad technology platform - Thursday August 6, 2015

$
0
0

AerServ is a free mobile SSP and monetization platform that empowers mobile publishers with a superior technology platform, supercharges their ad revenue through mobile video, and supports them with unrivaled customer service for a triple-win. AerServ works in alignment with thousands of apps, from premium publishers to independent developers, to optimize their existing ad network revenue through mediation, and tap into aerMarket’s demand inventory to supercharge their earnings. AerServ’s entire platform and infrastructure were built with a publisher-first mentality. Publisher’s get best-in-class support with hands-on care from integration specialists, account managers, and software engineers. Whether you are looking for a simple way to monetize your mobile inventory or an advanced way to increase revenue, AerServ can get you there easily and efficiently.

Aerserv supports 3 different ad types: Video, Banner HTML, Interstitial HTML. Aerserv supports many different Ad Sources. You can target your ads for specific countries, US and Canada local cities, and specific devices (iPhone, iPad, Android). Below you will find links to the RAD Studio component download and additional articles and information.

The replay is available on the Embarcadero YouTube video channel at https://www.youtube.com/watch?v=bGoS-swBp10

 

Aerserv Information URLs:

RAD Studio Developer information URLs:

Aerserv Components and Library are now in the RAD Studio XE8 GetIt Package Manager gallery (use the Tools | GetIt Package Manager... menu item in the IDE) .

Aerserv_in_GetIt_Manager

 

Component Requirements – Product/Version, OS, Frameworks

  • Component works with RAD Studio XE8
  • OS: Android, IOS
  • Frameworks: FMX

For additional help – email help@aerserv.com

 

You can register for the Embarcadero Technology Partner Spotlight series at http://forms.embarcadero.com/15Q3TechPartnerSpotlights

The replays for previous technology partner spotlight webinars are available using the Embarcadero YouTube channel playlist - https://www.youtube.com/playlist?list=PLwUPJvR9mZHgaYTPmY_FhOvJfbl7ZzVku

 


Read more

Developer Skill Sprint: Taking Beacons to the Next Level

$
0
0

Developer Skill Sprint: Taking Beacons to the Next Level
David Intersimone "David I" - VP of Developer Relations and Chief Evangelist
Tuesday, August 11, 2015

YouTube replay - https://www.youtube.com/watch?v=MRrZubGke8k

What's covered during this Developer Skill Sprint? We look at the use of Bluetooth Low Energy Beacons and the new BeaconFence, beacon fencing solution for developers, announced by Embarcadero. Beacons (iBeacon and AltBeacon) and Beacon Fencing are used in retail, manufacturing, warehousing, healthcare and entertainment venues just to name a few use cases. During this developer skill sprint you'll learn how to create beacon maps, beacon zones and how to create beacon fencing applications for iOS, Android and OSX.

What is BeaconFence? BeaconFence is the new developer proximity solution available from Embarcadero. BeaconFence allows you to

  • Build mobile apps that deliver precise “GPS-Free” indoor/outdoor user location tracking and events
  • Create radial and rectangular zones for any physical location and layout
  • Visually draw the layout of a physical location and beacon placement
  • Track location information down to inches
  • Track intersections, enters, and exits with callback events

BeaconFence provides two components

There are two components for beacon fencing: TBeaconZonesFencing and TBeaconMapFencing. TBeaconZonesFencing uses zones (that you define) for proximity based applications. TBeaconMapFencing has a visual BeaconFence map editor that lets you load a bitmap layout or design a layout. You can add and configure different objects in the map editor: maps, zones, beacons and paths with nodes.

BeaconFence Position Calculation

The API for BeaconFence provides the System.Beacon.Fencing.PositionCalculator unit, where you can find the necessary classes used to estimate the current position of your BLE device in a specific map. The default implementation of TPositionCalculator embeds the main functionalities of a particle filter algorithm optimized for localization tasks. In particular, this particle filter corresponds to a Monte Carlo Localization algorithm.

Adding App Background Support for iBeacons on iOS

If you use iBeacons in your App you need to allow your application to run in background so that the BLE device wakes up to handle bluetooth events. Add support for Core Bluetooth background execution modes by adding the UIBackgroundModes key in the Info.plist file of your project. You can add this key in the IDE by using its menu: File > Project > Options > Version Info:

  • Click the last key listed.
  • Press down arrow key to create a new key.
  • Introduce the key UIBackgroundModes and value bluetooth-central.

Try BeaconFence Today for Free

BeaconFencePurchaseProcess

To use BeaconFence, you need to be a current RAD Studio XE8 Update Subscription customer. Launch the GetIt Package Manager in RAD Studio XE8 to request a free “Pluto” license. Use GetIt to install the BeaconFence components and runtime library. You can build and deploy iOS, Android and Mac OSX applications using BeaconFence with support of up to 3 beacons, for 1 location (building size of up to 1,500 sq ft / 150 sq meters) and 1 application. For additional development and deployment capabilities, contact Embarcadero Sales and Reselling Partners to upgrade your BeaconFence plan.

Additional Resources

BeaconFence product information

Beacons, Beacon Fencing, and the Internet of Things - http://community.embarcadero.com/index.php/blogs/entry/beacons-beacon-fencing-and-the-internet-of-things

Building Proximity Aware Applications using Beacons in RAD Studio XE8 - http://community.embarcadero.com/index.php/blogs/entry/building-proximity-aware-application-with-rad-studio-xe8

What to do with beacons before you code - http://community.embarcadero.com/index.php/blogs/entry/what-to-do-with-beacons-before-you-code

Technical Skill Sprint Replay highlighting Beacon Support in XE8 - http://embt.co/sprint-prox-beacons

News articles about companies and locations that are using Beacons

Shop and Manufacturer sites where you can purchase beacons

We have tested ur software with a number of proximity beacons including: EM Microelectronic, Estimote, Radius Networks and Gimbal. You can find proximity beacons at your favorite online and physical electronics stores. You can also search for proximity beacons on Amazon. The "Hitchhikers Guide to iBeacon Hardware: A Comprehensive Report by Aislelabs" (May 2015) lists 26 iBeacon hardware vendors. Another good source for proximity lists is Beekn.net's "Guide to iBeacon Hardware".

[DownloadButton Product='RAD' Caption='Get Started Now, Download the RAD Studio XE8 trial']


Read more

C++ IDE code editor structure windows is blank on Windows 10 machine - workaround

$
0
0

Several developers reporting an issue where the C++Builder IDE code editor structure window was blank after they upgraded their Windows machine to Windows 10. The issue is reproducible on these scenarios:

  • The user has a machine with a Windows version lower than Windows 10 (Windows 8.1, 8, 7,...)
  • The user has RAD Studio installed (all versions are affected)
  • The user upgrades to Windows 10

In our R&D testing, we have reproduced the issue on 2 machines after upgrading to Windows 10

  • Windows 7-32 bit with XE8 Update 1 installed
  • Windows 8.1-64 bit with XE9 23.0.20488.2497.1 installed

Once the upgrade to Windows 10 has finished, the structure pane for C++ applications is blank.

Microsoft has noted the issue with J# 2.0 on Windows 10. The workaround is:

  1. Uninstall the Microsoft Visual J# 2.0 Redistributable Package
  2. As the uninstaller is broken, you must enter into the registry and delete all the entries with 'J#'
  3. Reboot the machine
  4. Install the Microsoft Visual J# 2.0 Redistributable Package:
  • 32bit: http://www.microsoft.com/en-us/download/confirmation.aspx?id=4712
  • 64bit: http://www.microsoft.com/en-us/download/confirmation.aspx?id=15468
  • Reboot the machine

  • Read more

    You can now post community issues and feature requests to the Embarcadero Quality Portal

    $
    0
    0

    We have added the Community project to the Embarcadero Quality Portal. You can create issues and add feature requests to the community project. Our Quality Portal is designed to track a variety of issues including bug reports and feature requests. Submitted issues are evaluated by QA and are not part of product support. If you need assistance installing or registering your product, please contact Support. Log in to the Quality Portal with your EDN username and password.

    CommunityQualityPortalProject 

    The Quality Portal also allows you to post issues and feature requests for RAD Studio (Delphi and C++Builder) and Appmethod.

    QualityPortalCreateIssueFeature 

    The Quality Portal connects to our internal issue and feature tracking system (both systems use Jira). You can track the status of your submissions using each of the project dashboards.

     


    Read more

    BeaconFence and Beacons – Tips from our Development Team

    $
    0
    0

    I recently presented a Developer Skill Sprint “Taking Beacons to the Next Level” where the presentation and demonstration covered proximity based application development using Beacons and our recently announced BeaconFence (Beacon Fencing Proximity Solution for Developers) product. Thank you to everyone who attended, asked great questions and were enthusiastic about the opportunity to build new applications for their customers. Along with the skill sprint presentation I also provided a blog post with additional information and links. In this blog post you can see some of the great questions that were asked and read the expanded answers I received from Diego Navarro and his wonderful R&D team in our Spain develop,ent center.

    BeaconFenceGraphic

    The replay for the “Taking Beacons to the Next Level” is available on the Embarcadero YouTube channel at https://www.youtube.com/watch?v=MRrZubGke8k

    My skill sprint blog post with some technical details and links to additional sources of information is available on the Embarcadero Community at http://community.embarcadero.com/index.php/write-blog-post/entry/developer-skill-sprint-taking-beacons-to-the-next-level

     

    Deeper Dive with the Questions and Answers

     

    Q) Do we state any accuracy in our location calculation? I know I can load a map, measure my surroundings and set the scale (inches, centimeters, and meters) and then zoom in to set beacon locations, zones, etc.  I know you can also set the distance between any two beacons – does this help in the location calculation? 

    A) About the accuracy, the most important thing is to calibrate the beacons, for sure. This is a manual process that you need to do, but if we want to achieve best results, developers need to do it. To best calibrate the beacons be at 1 meter from the beacon and read the RSSI. Do this several times and setup the beacon using this value as the transmission (Tx) power (this is done using manufacturer software. There is a beacon configuration parameter for each one, not the same value for all beacons if they are the same model and/or brand).

     

    Q) I know that the beacons RSSI (Relative Signal Strength Indicator) can be affected by the environmental surroundings and location. Jim McKeeth also mentioned that he has read reports about beacon signal impacts and recommendations to put the beacons on the ceilings for hallways and offices. Do you have any additional device for developers? 

    A) Putting beacons on the ceiling is very helpful because even a person can affect the beacon signal.

     

    Q) Do you have any other additional information and advice to give to developers for beacon placement, zones and other best practices?

    A) Use defined paths (created in the BeaconMap Editor) to determine which map zones are included or not. Beacons should be at minimum distance of 4 meters between them (is not useful to place one each meter). You can change some parameters on the TBeaconMapFencing component. For instance, the refresh time, should be set to 500 milliseconds, not less (the default value 200 milliseconds). Change the property value to 500 milliseconds because the algorithm will change the position several times each second). Furthermore, you can change the number of beacons to read the signal. If you have an aisle, no matter, 2 or 3, but if you have a big square (or circular or polygonal) region, be sure to increase this number up to 10, depending how big is the region.

     

    Q) For a circular zone – I am guessing that one beacon at the center point would be okay – or do you need to place at least 3 beacons?

    A) For a circular zone, with one beacon placed in the middle is ok (unless the region is > 3meters radius, then is ok to place more beacons on the edges).

     

    Q) For rectangular zone – should you place beacons at each of the 4 corners – or are 3 enough?

    A) For a rectangular zone, it is OK to place a beacon on each corner.

     

    Q) For a polygonal zone – say a T – is it better to put 6 or more beacons or are 3 the minimum?

    A) As a rule, it is not required to put beacons on the corners of each region. If you have a big square room, you can place beacons each 4 meters, then you can split the room into regions (no mater square, circular, polygonal, ...), the algorithm will calculate the position and if you are inside or not a region, but it’s not required to place beacons on each region (of course this will improve the accuracy).

     

    Q) Should you place beacons at an intersection point of two contiguous zones?

    A) Regarding region intersection, this is a good question. In general, it is better not to place a beacon at an intersection point, unless you have other beacons nearby to get the signal. If we are at the same distance of the two regions (same distance then of the beacon), we can’t determine in which region we are located. If there is another beacon, using the signal from others we can calculate the correct location.

     

    Q) When would you use TBeaconZonesFencing versus TBeaconMapFencing components to set up your application? Even if you use a map to create your zones, you don’t have to show the map. So, why wouldn’t you always use a TBeaconMapFencing component?

    A) TBeaconZonesFencing just fires events when entering a zone (aka beacon), there is no algorithm calculating current position, just register beacons, define zones with one or more beacons and only the proximity event is used. It requires less memory and CPU and of course, no map.

     

    Q) Should a developer/application/solution use one type of beacon for a store/location or is it okay to mix beacon types? I would think it would be better to use one beacon manufacturer and calibrate all of the beacons instead of mixing and matching.

    A) It is OK to mix beacons, no problem, but in this case, please, it’s even more important to calibrate all beacons. Please, spend 3 minutes calibrating each beacon, the result will be much better. If a beacon is not calibrated, it can be faking the signal and causing to miscalculate the current position.

     

    Q) Is there a guide for how much beacon overlap to have when you are setting up zones and placing beacons?  What happens if there is a “beacon dead zone” inside of a zone? Is there a percentage of overlap guidance that we advise developers to use or do we tell developers that there should be some beacon transmission field overlap?

    A) There is no problem to overlap beacon signals.  It is recommended to place a beacon every 4-5 meters, no less. There is no advantage (or better accuracy) to place beacons any closer together. If you have a dead zone (which can happen if beacons are more than 10–15 meters apart) then we can’t calculate your position. We will provide additional information and demo videos explaining basic beacon placement rules with some sample scenarios. Stay tuned!

     


    Read more

    RAD in Action: Develop a Complete Solution for Windows + Mobile + Web Service + Cloud

    $
    0
    0

    RAD in Action: Develop a Complete Windows + Mobile + Web Service + Cloud Solution

    Wednesday, August 26, 2015. 6am, 11am and 5pm Pacific Daylight Time

    In this RAD in Action webinar, you'll learn how to build a complete warehouse application for auction items that runs on Windows desktops and mobile devices using SQL databases, REST servers and Cloud Storage. You will learn how to build a VCL application and mobile apps that work with a middle tier via a web service that uses DataSnap and FireDAC talking to an InterBase server. The presentation and demonstration is full of useful tips, tricks, source code and clear explanations. The presentation will include a recording of developers using the mobile app to start bidding on the auction items. A monitoring desktop app will show the auction bids and details.

    During this RAD in Action webinar you will learn how to:

    • Develop a Warehouse Application for auction items
    • Build a server application as backend using DataSnap (you could also use Enterprise Mobility Services EMS) and REST
    • Create a mobile camera app so the users can add photos of the auction items via Bluetooth LE
    • Use the parallel programming library to make the app fast and responsive

    Register Now

    Register for the RAD in Action Webinar at http://forms.embarcadero.com/RADinAction-CompleteSolution?cid=701G0000000tKTx

    Additional Information

    Here are several links to information that will help you understand the technologies used in this RAD in Action webinar and source code projects.

    If you have questions or need additional information, send an email to David Intersimone "David I" at davidi@embarcadero.com

     


    Read more
    Viewing all 142 articles
    Browse latest View live


    <script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>