Key Target Platforms Update

I wanted to share some interesting data following a recent presentation looking into Modern Windows development.

75% of Windows Desktops use Windows 10!

Source: https://gs.statcounter.com/windows-version-market-share/desktop/worldwide/#monthly-201709-202009

Windows 10 is now used by 3 out of every 4 Windows desktop machines! This market share is up around 10% in 2020, having originally passed Windows 7 back in late 2017.

Windows 7 is down to around 18%, and falling. In part as Enterprises continue to shift to Windows 10 following Windows 7 going End of life in January. Windows 8.1 is stable at around 4%

What does it mean for me as a developer?

You need to make sure you applications are Windows 10 ready more than ever. Windows 10 has made fundamental adjustments to the UI layer in reaction to a number of hardware innovations, and patterns of use. This includes adjustments for PerMonitor support for different resolutions and DPI’s, and the enhancements around HighDPI support.

HighDPI support is no longer an optional item, without it your application could be rendered unusable on certain screens and the end user experience will suffer.

That said, there is still a reason to have backward compatibility to older versions of Windows. (Something the VCL helps support with its implementation of the new Windows 10 controls – YES – you can run then on Windows 7 and Windows 8 if you use the VCL)

If you are looking to add HighDPI support to your Windows applications, then I suggest starting with images, and check out the new TImageCollection and TVirtualImageList and also watch this webinar replay

For more about Windows 10, and some of the new controls and Windows 10 features in RAD Studio for Delphi and C++Builder, this 5 Unique Features for Windows 10 blog post is a good summary.

Windows and Android rule the roost!

Source: https://gs.statcounter.com/os-market-share#monthly-201809-202009

The numbers are pretty clear.

  • 38.51% – Android
  • 36.27% – Windows
  • 14.12% – iOS
  • 08.25% – macOS
  • 00.83% – Linux

When it comes to the type of devices on the mobile side – its mobile (50.33%) and desktop (47.04%) all the way, with Tablets accounting for just 2.63% of the market share.

Source: https://gs.statcounter.com/platform-market-share/desktop-mobile-tablet#monthly-201709-202009

What does it mean for me as a developer?

It means Android (and also iOS) are a key platform and technical asset to target to expand the technical capabilities of your desktop applications. This barrier to entry is low as the adoption is high. This makes it an ideal target to enhance your product offering and maximize development return.

With more mobile devices in use that desktops, mobiles can not be ignored when it comes to product innovation. Mobile devices offer a developer a key different set of technical capabilities. e.g. Camera, Accelerometer, Compass etc, and when paired alongside Desktop solutions, enable innovative ways to do data capture.

With the core System libraries in Delphi being cross platform, it means you can fast track your mobile development through the use of a single code base as well. Large parts of the business logic can move from Windows, over to iOS and Android rapidly.

It’s also worth looking at the Enterprise version of Delphi to get access to InterBase ToGo for mobile as a run-time royalty-free database. The full on-disk encryption of the database provides the highest level of data security, typically reserved for enterprise servers, yet still within a small footprint, highly distributable database.

If you are looking to use a mobile alongside a local application, (and don’t need the data to go centrally first for processing) then the unique approach of AppTethering is certainly worth a look. AppTethering avoids the need for pushing data to a central server, making it faster (as data is local). If this sounds of interest, then definitely check out this webinar replay.

Alternatively, RAD Server is a great way to take existing business logic and make it accessible as a remote API. Click for more blogs on RAD Server

Regional Specific Trends

If you want to delve deeper into regional-specific trends, then I would suggest visiting https://gs.statcounter.com/ and using the Interactive chats, powered by Fusion Charts (which also recently became a member of the Idera Group)

Installing Help and Samples for RAD Studio

The Help and Samples (for both Delphi and C++) are very useful when Programming as they provide quick reference and examples of how to use different language and component features.

If you are using the RAD Studio IDE and find that F1 is not opening up the help files, then the most likely answer is that the Help installation was skipped during the initial install.

To check (and install if missing) go to Tools > Manage Platforms

This dialog allows you to install additional platforms, but also (under Additional Options) manage the installation of Help and Samples.

Simply, tick the box for Samples and Help and then Apply, and you should then be ready to use F1 help in the IDE.

3 Libraries for improving Existing Applications built with Delphi

One topic I get increasingly asked about Delphi Programming when developers are migrating to the latest version of RAD Studio is “quick ways to improve their applications”. So in this post, I am going to summarise 3 favorites by focusing on the libraries in RAD Studio. If you are new to RAD Studio, then I would also recommend reading these, as they are very easy to implement and provide quick wins to new code too.

As with any actively developing and improving language and IDE, RAD Studio / Delphi is improving all the time. This summary is based on the questions I receive weekly focusing on what is in the box so to speak. While I barely scratch the surface here, I also want to point out that there is a great 3rd party community of developer tools offering even more options that you can explore.

Continue reading 3 Libraries for improving Existing Applications built with Delphi

Setting up the IDE for your First Android App

I have had a growing number of customers asking recently about getting started with Android programming with Delphi, so I thought it was a good time to refresh how to check your IDE is set up, how to enable developer mode on an Android phone, and show how you can rapidly get Android applications run and debugged from RAD Studio.

If you are new to Android development, then the first thing to note is that you need to ensure the IDE has Android support enabled. Under Tools > Manage Platforms, ensure Android is enabled.

You will also need to check Java is setup on your machine. This is because RAD Studio uses the Android SDK and NDK as part of the process for packaging and deploying android applications. One such part is the ADB program which tells the IDE what Android devices are attached to the computer.

If you already have Java installed, you can set the paths to the required elements required by the IDE under Tools > Options > Deployment > SDK Manager

With Java setup and Android tools enabled, you should be able to put your phone into developer mode and connect it to the Windows host to see it in the IDE.

If you have any issues with Android phone setup – check this post out.

The rest of the video shows running your first Android application directly from the IDE. If you want to debug the application, ensure you use DEBUG mode rather that RELEASE build. from the build configurations.

If you are using Debug mode, you still need to choose Target platform (for 32bit or 64bit), a target device, and then a configuration. – e.g. Development.

These options are used to setup and manage the development, release and files deployed. Something I will cover another time.

For more on Android development, check out the Embarcadero docwiki on Android app development

MKS Covid19 App Saving LiVes

The Military Institute of Medicine in Poland has been making the news recently with its app that is helping fight the spread of the global SARS-CoV-2 pandemic.

Piotr Murawski Ph.D, (Head of ICT, Military Institute of Medicine, Warsaw, Poland) shared recently with me how back on the 13th March, 2020, that after the SARS-CoV-2 epidemic reached Europe, the experience of other countries alerted his team that it will not be easy to control the infection, and testing will take a longer time than normal due to the numbers. This intern would have a negative impact on controlling the spread of the disease.

The solution

Continue reading MKS Covid19 App Saving LiVes

Auto Inc Fields in RAD Server with InterBase

How to create Auto Incremental Fields in RAD Server with InterBase, FireDAC and TEMSDataSetResource

One key feature when asking a remote server to add a record is to get the new record ID value returned. Thankfully this is easily achieved with InterBase and FireDAC via RAD Server with TEMSDataSetResource

InterBase has a concept of Generators. These provide a unique sequential integer value that can be used to provide a primary key field value. You can create up to 32,767 Generators in an InterBase database, but typically you would create one for the database or create and name one for use per table.

FireDAC Query UpdateOptions AutoInc

Part of the FireDAC framework is the ability to treat database fields as Auto-Incremental Fields. For Databases that do not have an AutoIncremental field data type, you can set the UpdateOptions properties to define the Generator and key fields.

Continue reading Auto Inc Fields in RAD Server with InterBase

Open Innovation, RAD Server and Enterprise Connectors

The sheer volume of data that is collected has exploded in recent years thanks to digitalization and modern cloud architectures that support massive data collection, and encourage widespread cross-sharing of data.

The growth trend of having applications with easily accessible API’s, provide a rich base for rapidly adding functionality, and choice of functionality to new applications, based on existing software that is already being widely used. – Enabling a customer to expand their existing systems easily through the choice of software is a real example of Open Innovation. This approach makes it easier to get your software adopted into a customer’s existing business capabilities.

Continue reading Open Innovation, RAD Server and Enterprise Connectors