I wanted to share some interesting data following a recent presentation looking into Modern Windows development.
75% of Windows Desktops use Windows 10!
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!
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.
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)
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.
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.
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.
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.
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.
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.
Privacy & Cookies Policy
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.