Android

Mobile performance optimization with Adaptive Performance 4.0

Boat Attack starts off with plenty of scalers engaged by the menu scene, which was stabilized before the capture was done. In this example, the temperature rises quickly and the device goes into throttling. Adaptive Performance tries to stabilize the situation and reduce effects on the GPU, as this is clearly the bottleneck. The shadow scalers thereby reduce quality rapidly – but because that’s not enough, both the view distance and resolution decrease as well. The frame rate then stabilizes and the temperature drops. The game is rescued from throttling and its frame rate raises to 60 fps. Layer culling scaler With the layer culling scaler, you can dynamically adjust layer cull distances at runtime. This feature uses the indexer system to make certain decisions, like when and how much to increase or decrease layer cull distances for optimal performance and thermal stability. The sample we ship with Adaptive Performance loops in medium CPU load until it reaches critical frame rates and then decreases the cull distance of layers. The result of this is that the cull distance for layers changes depending on the CPU and GPU load. You can set a different value for the culling distance of each layer so that they scale proportionally. This helps you determine which objects to cull earlier to save performance. For details on how to do this, see the following code sample. Adaptive decals Adaptive decals target visual effects. In Amazing Adventures of Dr. Arm, there is a boss fight scenario that uses many particles and decal projectors. When the mobile device gets hot and throttling is imminent (or already occurring), the number of particles emitted scales down. In this case, less visually important emitters, things like the leaves blowing in the wind, tiny sparks, and other such elements, turn off completely. The scaler also reduces decal distances.

Read More

Learn How To Build MVVM Pattern Based App In 20 Minutes

MVVM is a software architectural pattern that facilitates the separation of the development of the graphical user interface via a markup language or GUI code from the development of the business logic or back-end logic so that the view is not dependent on any specific model platform. In this Skill Sprint in 20 minutes, you can learn how to apply this MVVM pattern to your Delphi applications smoothly.  Model-View-ViewModel The MVVM design pattern decouples your application code and separates the concerns of your application. You must care about MVVM because it is the way to write maintainable, testable code. The compelling reason is the ease of maintenance. Utilize MVVM and, your app will never become a legacy application. How can you achieve within Delphi? The answer is separating the software. ViewModel – Present data to the view View – User interface Model – Business logic or back-end Be sure to watch the whole session to learn more about the MVVM pattern and the demo using the Delphi.

Read More

FL Studio Is A Massively Popular Digital Audio Workstation Software Built In Delphi

Image-Line Software is the Belgian based creator of FL Studio, one of the most popular Digital Audio Workstations (DAWs) available on the market for creating music. FL Studio is installed more than 30,000 times per day (more than 10 million installations a year) by users in more than 200 countries, including power users such as Avicii, Martin Garrix, Afrojack, and Mike Oldfield. “Delphi is very important for us as a development tool because it allows us to do inline assembly and link function to the code directly. With classic development tools, that process is much clumsier. However with Delphi you can just add a button and double click; it speeds up coding and allows us to work in the language we know best.” – Jean-Marie Cannie, CTO and Founder Case Study https://www.embarcadero.com/case-study/image-line-software-case-study Download https://www.image-line.com/ Screenshot Gallery

Read More

Human Interface Devices Communicator For C++ Builder On Windows

Communicating with Human Interface Devices Communicator such as Alphanumeric display, Bar Code Reader, Sensors, Volume control on Speakers/Headsets becomes a primary use case for real-world applications. Do you spend more time in building libraries to communicate with HID for your Delphi/C++ and Lazarus Applications? WINSOFT Provides a powerful library to get the job done. It uses the standard Windows HID API. Features: Able to notify on Human Interface Devices Communicator arrival and removal. Can retrieve all the HID devices information available in the System. Flexible to getting/set Feature Report for the HID devices. Works with Windows 32/64-bit applications. Versions Supported: from C++ Builder 5 to 10.4 Sydney and Lazarus 2.0.8. Platforms: Windows;   Steps to Download and use the Native HID Library: Download Native HID and Unzip the file. Navigate to the Library folder for different Versions. e.g) Delphi10.4. Read the Readme.txt file to know about features and copyright information. Create a Windows VCL Application and use Hid.pas in the uses section. Include the Library folder into Project->Options->Delphi Compiler->Search Path. Compile and check for using the library. Key HID concepts:Report -Reports are the actual data that is exchanged between a device and a software client.  Input Report – Data sent from the HID device to the application, typically when the state of a control changes. Output Report – Data sent from the application to the HID device, for example to the LEDs on a keyboard. Feature Report -Data that can be manually read and/or written, and are typically related to configuration information. Report Descriptor – The Report Descriptor describes the format and meaning of the data that the device supports.UsageTables – Contain a list with descriptions of Usages, which describe the intended meaning and use of a particular item described in the Report Descriptor. For example, a Usage is defined for the left button of a mouse.  USB-IF WorkGroup Publishes the Usage Tables. See USB-IF HID Specifications.

Read More

Easily DirectX Support with VCL In C++Builder On Windows

It is surprisingly easy to add joystick support to your VCL In C++Builder app on Windows. Here is third party Delphi and C++ Builder component from WINSOFT for retrieving joystick position and status for any keys. You can use wired or wireless joystick for your application like games, audio/video players and other application. I have tested this delphi component on a recent Windows 10. All functionality corresponds to the declared. All buttons my joystick successful detected. Also works analog sticks. Now let’s view this demo (included to instalation packages) The first thing you need to do is install component to Delphi. It’s very fast and simple! Look this video. Demo included to component package. Now let’s look at the stages of working with a component. # 1 stage – Enumerate controlers # 2 stage – Connect to controler and get value ranges # 3 stage – Now we can read current values from controller anytime. The component uses the DirectX API. Extended capabilities also provide support for rudder pedals, flight yokes, and other devices that use up to six axes of movement, a point-of-view hat, and 32 buttons.This component has both versions for FireMonkey and for VCL In C++Builder applications to Delphi / C ++ Builder 10 – 10.4. Works with: Delphi, C ++ Builder, RAD Server, FireMonkey, VCLWorks on: Windows 32-bit, Windows 64-bit Source code included in registered version. Royalty free distribution with application without any limitation. Related linksHere is packages for VCL and Firemonkey:JoystickJoystick for FireMonkeyDirectX JoystickDirectX Joystick for FireMonkey Code Faster and Smarter with VCL on C++Builder Smart developers and Agile software teams write better code faster using modern OOP practices and C++Builder’s robust frameworks and feature-rich IDE. Spend less time waiting for lengthy compiles with our highly optimized modern C++ compilers for Windows and iOS Code Insight™ delivers code-completion based on your code and used libraries to help you code quickly and accurately plus customize the IDE to meet your coding style. Get native, high-speed direct access to InterBase, SQLite, MySQL, SQL Server, Oracle, PostgreSQL, DB2, SQL Anywhere, Advantage DB, Firebird, Access, Informix, MongoDB, and more. Get hints and tips from inline documentation as you write code Utilize popular libraries such as Boost, Eigen, and ZeroMQ plus leverage a broad range of community tools and libraries. Integrate with version control systems including Git, Subversion and Mercurial

Read More

New for the IDE in RAD Studio 10.4.1

RAD Studio 10.4.1 is a quality-focused release, and this goes for the IDE! We’ve addressed many items including some very commonly requested changes; read more below. A ‘quality-focused release’ means one where we introduce very few new features, and focus 95% of our development efforts on quality. 10.4.1 has had a lot of work in the IDE and will be much smoother for you once you install. But, in 10.4.1 we’ve also spent that time on new features, and we’ve implemented a couple of really commonly requested items. There are two sections to this blog post: first, a change to an old IDE feature; second, a new feature, and key areas that you may be very happy we’ve focused on! The Floating Form Designer Layouts and Multiple Monitors: aka, ‘when does the IDE change things?’ Notable Quality The Floating Form Designer Ever since 2003, the RAD Studio IDE has been ‘docked’: that is, while you can drag tool windows like the Palette, Object Inspector, Messages, Watches and so forth to float, the overall design of the IDE is an integrated window. Specifically the editor and form designer are integrated in the main window. The ‘floating form designer’ is when you turn this off, and it allows the form you are designing to be a window among other windows; that is, it’s not embedded in the main IDE, but mimics the Delphi 1-though-7 behaviour where the designed form can be above or behind the editor. This behaviour has been replaced by modern docked designing for seventeen years, requiring you to manually turn on the old-style feature, and unfortunately did not always behave well. When assessing the feature, we made the hard decision to remove it. What does this mean? Does it mean you can’t have multiple editor or designer windows, for example? No! Very much not. In fact, you can still have multiple editor windows spread over multiple monitors too if you wish, with each one hosting a designed form… and we’ve even tweaked a wide range of areas and UX or behaviour tweaks while you do! Two really notable items we’ve addressed in this area are: The IDE used to not work quite as you’d want when clicking on an item in the Structure pane: the Structure pane would sometimes scroll and the wrong item was selected. This is now resolved. If you click, it will select what you clicked on. I’m really glad to note this one. When you have multiple forms being designed at once, the Structure and Object Inspector windows would reflect the selection for the form designer in the window they were docked to. Now they always reflect the form you are editing. Ie, whatever you’re working on is what they’ll show information for, regardless of what’s docked where. The key to note here is how much better 10.4.1 is at handling form designing over multiple screens. These were ‘annoyances’, things that might seem minor but got in the way when working. We’re glad to note the better behaviour in RAD Studio 10.4.1. Layouts and Multiple Monitors: aka, ‘when does the IDE change things?’ When working with layouts and the designer, we also added one often-requested feature. Desktop layouts save the position and location of your IDE windows, including the monitor your IDE is on. You can create […]

Read More

Ultra-Fast Web Application Development using Delphi/C++ Builder

Choosing the Web framework for Web Application Development in Delphi or C++ Builder will no more a tough task for both developers and companies to meet the business needs. There is plenty of resources around Embercadero and the web about various frameworks with the pros and cons of each. Still, struggle to choose the right one for your need? Don’t worry this post will guide you through the available frameworks. RADStudio Included Server Technologies : Web Broker: Abstract the HTTP Server concept with concrete classes mapped to CGI, ISAPI, ApacheModules, Standalone(indy). It can maps URLs to actions, supports filters, and global handlers. To start with WebBroker Click here. DataSnap is a Delphi technology that allows the development of multi-tier applications, most notably multi-tier database applications. Supports Rest, TCP/IP, HTTP/HTTPS. Backward compatible with COM/DCOM. A serios of tutorials here. RAD Server Load Delphi and C++ business logic methods into RAD Server, add some users, and go. REST/JSON end-points are auto-created and managed. Access control is handled. Data storage is built-in or you can easily connect to any popular Enterprise RDBMS or cloud service.  SOAP Services: It’s a protocol which enables you to access remote data, or call remote procedures. SOAP data is transmitted using an XML wrapper, usually over an HTTP or direct TCP/IP. To create and use SOAP service Click here. RADStudio Included some Client Technologies for Web Application Development: Which includes Rest BaaS Client, Cloud Client libraries, Rest Client libraries, SOAP Clients. 3rd Party Web Frameworks: Client Focused: Pascal->JavaScript Transpilers. Write in Object Pascal and translate/Compiles in to JavaScript. Creates a pure Web client Solution. Compatible with many popular server solutions. TMSSoftware’s Web Core Integrates into Delphi IDE. Write object pascal and design in RAD Studio, builds pure HTML & JavaScript. Works with TMS’s cross-platform FNC components. Builds a Single Page Application. The large reusable component set with database access. Smart Mobile Studio (SMSC) transpiler has its own IDE uses familiar Object Pascal dialect. Compiles to pure JavaScript. Has lots of target like Node.js Tizen, console & Espruino. Has own RTL and full Visual component framework. ElevateSoft’s Web builder transpiler has its own IDE with components similar to VCL. Supports using native Elevate Web Builder Web server Modules. It compiles to optimized JavaScript. Full Stack or Client/Server Focused: Framework covers the Server app and client interface. Balanced Approach good to choose when Both Server and Visually designed UI is one project. WebBroker is the core on the server for most frameworks listed below. AtoZed Software’s IntraWeb: Installs into IDE, Modeled on VCL, Visual Client Designer. The client built from the JS and HTML library. Delphi UI event handlers run on servers, extensible via typescript. FMSoft UniGui: Installs into Delphi IDE, VCL like design and use. Provides data-aware controls, supports desktop and mobile. Allows optional javascript for client-side events and VCL like server event handlers. Open source Ethea Kitto2: Uses Web broker for the backend. No visual designer, make it easy to use Ext JS to build client. Server Focused Open Source: Delphi MVC Framework: Rest Server built on WebBroker includes Delphi IDE wizard. Runs under Apche or ISS on Windows & Linux. Restful RMM level 3 compliant. Synopse mORMot : Doesn’t use Web broker, Integrated SpiderMonkey JavaScript engine for server-side business logic. ORM/ODM: Object persistence on Almost any database (SQL or NoSQL).SOA: organize your business logic into REST services. Web MVC: Publish your ORM/SOA process as responsive Web applications. MArs Curiosity: Lightweight Rest Server built on WebBroker, installs into Delphi […]

Read More

The power of AI from Delphi and/or C++Builder

On the record of the webinar on “Using IBM Watson and the power of Artificial Intelligence (AI) from Delphi and/or C++Builder ” from Thursday, October 24, You can see the resources, slides, and code examples used in the webinar: Resources How to create a free IBM Cloud account:  https://ibm.biz/BdjLxy​ IBM Watson Tone Analyzer:  https://www.ibm.com/watson/services/tone-analyzer/​ IBM Watson Visual Recognition:  https://www.ibm.com/watson/services/visual-recognition/​ Delphi-JsonToDelphiClass by Petar Georgiev:  https://github.com/PKGeorgiev/Delphi-JsonToDelphiClass​ TNetHTTPClient:  http://docwiki.embarcadero.com/Libraries/Rio/en/System.Net.HttpClientComponent.TNetHTTPClient​ Al Mannarino Blog Posts:  https://community.idera.com/developer-tools/b/blog Slides IBMWatsonAI_Delphi_CBuilder.pdf Code Samples: Delphi:WatsonVisual.dproj IBMWatsonToneAnalyzer.dproj (WatsonToneAnalyzer.zip) NetHTTPClient.dproj (TNetHTTPClient.zip)  C++ Builder:   CppSystemNetHttpClient.cbproj On this webinar we showed: – How to leverage the power of machine learning from Delphi and/or C++Builder with the IBM Watson Artificial Intelligence (AI) Services.– This webinar covered using the IBM Watson REST API. IBM Watson is a collaborative environment with artificial Intelligence (AI) tools that you can use to collect and prepare training data, and to design, train, and deploy machine learning models.– On this webinar we specifically looked at two of the IBM Watson AI Services:– The Visual Recognition Service, and the– Tone Analysis Service (for Natural Language Classification), plus we will also look at– Watson Machine Learning.But before we dove into using Delphi and/or C++ Builder with the IBM Watson Artificial Intelligence (AI) REST Services, we took a quick refresher look at what’s possible with Delphi and/or C++ Builder for the integration with Web and/or REST Services. We had a quick review on how to integrate Delphi and/or C++ Builder with back-end services to provide access to data and enhance the Delphi and/or C++ Builder VCL and Multi-Device user experience!

Read More

C++17 On Windows 10 With The C++ Builder

As you know from C++ Builder 10.3, we have support for the modern C++17 On Windows 10 version. Here you can see the C++ 17 support chart. In this CodeRage session, Dion Mai shows demo applications in action. You can find out how you can use the new C++17 On Windows 10 functions and an updated C++17 standard library.  What you can find in this session? Moreover, you can find out how you can call WinRT functionalities. You can find all the wrappers from the RAD Studio installation folder. Source->RTL->Win->WinRT   C++ Builder provides three levels of development:1. Components (VCL and FMX)2. Common Libraries (RTL).3. Platform APIs (iOS, Android, Mac OS) In this post we will discuss the Common Libraries (RTL). C++ Builder has several hundred functions, macros, and classes that you call from within your C and C++ programs to perform a wide variety of tasks, including low- and high-level I/O, string and file manipulation, memory allocation, process control, data conversion, mathematical calculations, and more.​ The C++ Builder Run-Time Library (or RTL) is composed of a number of base header files that provide the underlying support for most of the VCL and FireMonkey component libraries . The RTL includes global routines, utility classes such as those that represent streams and lists, and classes such as TObject, TPersistent, and TComponent.​ Although closely allied with FireMonkey and VCL, the RTL does not include any of the components that appear on the Tool Palette. ​ Instead, the classes and routines in the RTL are used by the components that do appear on the Tool Palette, and are available for you to use in application code in either VCL projects or FireMonkey projects, or when you are writing your own classes.​ For example, the System header contains most of the Run-Time Library (RTL). ​ And from the System header, you have the System.Math.hpp header that defines classes, routines, types, variables, and constants related to mathematical operations, vectors and matrices.​ Or the System.Bluetooth.hpp header that provides classes to use the Bluetooth capabilities of the device that is running your application to connect to applications running on remote devices.​ Or the System.Sensors.hpp header that provides classes and components that let you obtain information and manage system sensors. The Sensors are pieces of hardware or software that can provide measures of physical quantities to your applications.​ Or the System.Threading.hpp header that defines classes and types that implement the parallel programming library.​

Read More

5 motive esențiale de a utiliza InterBase in 2020

InterBase in 2020 will continue to be, one of the hidden gems of the relational database world. From its inception in the early 1980s, through mainstream adoption and evolution under Borland, InterBase looks back at a track-record that spend decades; at times defining the standard that all other databases were measured against. With Embarcadero acquiring the Borland development portfolio in 2008, InterBase has again been brought up to speed with the latest technological advances; surpassing them even with features like Change Views. Thanks to steadily refactoring and evolution since Embarcadero took over; its performance and scope have seen radical performance gains. Once again InterBase is the cutting edge, synonymous with performance, security and platform diversity. The optimizations invested in our gentle giant over the past eight years alone are too many to list. Embarcadero has done an amazing job on modernizing this much loved — and dare I say, archetypal relational database. At the same time, they have managed to retain the functionality that is quintessentially InterBase: Features that set the product apart. For an old Delphi developer like myself, using InterBase in my production environment again is an emotional experience. InterBase was part of my university curriculum and used in my first commercial software development alongside Delphi. Familiar yet unmistakably modern, fresh yet mature and established. I want to present five good reasons why InterBase should be your next database. Writing about a subject I am passionate form easily turns into a novel, which is why I am limiting the features to a modest five. Let’s jump in and look at why should InterBase in 2020 be your next database? 1: Platform Diversity The world of technology has changed dramatically in a very short time. The way that technology evolves, be it software or hardware, is typically through sudden, unexpected leaps. The mobile revolution of 2007 spearheaded by Steve Jobs, as he unveiled the iPhone at the Apple developer conference in San Francisco, was one such leap. Overnight, the criteria for software development were irrevocably changed. Fast forward to 2020 and two-thirds of the planet’s population are walking around with a proverbial super-computer in our pockets. Each filled with applications, ever-growing in complexity, and with a very real need for reliable data persistence. Today business is conducted more and more on mobile devices, and with that, the ability to deploy software to different platforms, operating systems and hardware is a necessity. Multi-platform computing is now the prerequisite that all developers, regardless of programming language, must base their strategy on. When you need multi-platform support, InterBase is a pioneer and ahead of its time. Already in the late 80s, InterBase was available for a variety of computer systems; from large and powerful business machines running Unix, to more modest home computers like the Apollo or the Commodore Amiga. The targets of 2020 are very different, but InterBase remains the same versatile and platform-independent database system that it has always been. Today, it can be deployed to all leading platforms and operating systems: Windows, Linux, macOS, Android, and iOS. InterBase also supports heterogeneous OS connectivity across all supported platforms. The ability to use the same database on multiple architectures is by far my favorite feature. It saves time, reduces cost, and makes life significantly easier during maintenance. Internet of Things is InterBase in 2020 With the […]

Read More