From the blog

TMS WEB Core v2.0 has landed

We’re excited that after many months of hard development work, TMS WEB Core v2.0 is available for you!  All active registered TMS WEB Core v2.0 users get this new release free. TMS WEB Core brings improvements to the web client development experience from your Delphi IDE in many areas! pas2js compiler update & RTL update The latest version of the pas2js compiler, responsible for transpiling the Object Pascal code to JavaScript running in the browser, and updated RTL is integrated now, bringing even better Delphi compatibility New components Various new components have been added: – TWebDropDownControl, TWebEditDropDownControl: flexible control that can be used to show any other control in its dropdown part– TWebCheckListBox: VCL-like check listbox– TWebDBListControl: DB-aware Bootstrap styled list control with optional DB field template– TWebSearchEdit: edit control with embedded search and clear button– TWebEditBtn: edit control with attached button– TCountryComboBox, TWebCountryListBox,TWebCountryDropDown: various controls to show list of countries in the world to pick from, including list of countries with official country flagsTWebXLSX: Microsoft Excel XLSX file import & export component Component enhancementsThere is too much to list here in detail. Many new features have been added to existing components, the most important shown here: – Add controls checkbox/button/progressbar in TWebStringGrid, TWebTableControl cells– Add nodes with checkbox or radiobutton in TWebTreeView– Perform filtering on items in the TWebListControl– New ListSource/ListField property in TWebDBComboBox to load items from a dataset– Row selection in TWebTableControl+ many more… Framework improvementsThe underlying framework has been enhanced and extended: – TCanvas VCL compatible brush style support added,– Material icons style support– Touch & wheel events in TWebElementActionList– Multi-language support in TWebMessageDlg()+ many more… IDE integration improvements Improved interaction with web projects from the Delphi IDE:– Improved live-preview from context menu on form units in the IDE project manager– Delete entire folder from project via IDE project manager New browser APIs exposedNew web browser APIs easily accessible from your Object Pascal code:– Speech recognition component: TWebSpeechRecognition– Classes for multi-screen API use In the coming days and weeks, we’ll unveil via video more details about the new features in TMS WEB Core v2.0. Today, you can already learn about the new dropdown controls, the new country list controls and the TWebCheckListBox in the video from our chief evangelist Dr. Holger Flick: Another interesting source of information is the replay of the recently held webinar with CTO Bruno Fierens walking through all new features of TMS WEB Core v2.0: Meanwhile, our team is also hard at work to bring all new components, new features of TMS WEB Core for Delphi to TMS WEB Core for Visual Studio Code v2.0. You can expect this update also very soon! If you are interested in web client development using Delphi, also have a look at the recent series of blogs from Andrew Simard that covers how to use external JavaScript libraries easily from TMS WEB Core. In the past weeks, Andrew covered how to integrate the impressive Tabulator JavaScript control in a TMS WEB Core project. The series starts here. TMS WEB Core v2.0 couldn’t have been created without all your valuable feedback in the past months and years! We are extremely thankful for all your help steering the development. And we continue to count on you driving further future developments of TMS WEB Core! We invite experienced TMS WEB Core developers having […]

Read More

Check Out These Amazing Skia4Delphi Cross Platform Apps

Skia4Delphi is indeed a revolutionary tool that offers tons of possibilities. This third-party library can be used effectively in Delphi to transform the GUI of your VCL apps into something more visually appealing. It comes with many useful components that can be applied beautifully for any Windows application development. Aside from desktop applications, Skia4Delphi can also be used to turbocharge your FireMonkey FMX cross platform apps that allow you to provide a comprehensive 2D API to all other platforms including Android and more. What else can Skia4Delphi do for mobile applications? Based on the recently concluded Skia4Delphi Webinar, we have learned the things that Ski4Delphi can do and all its potential to supercharge your apps’ user interfaces. This free-to-access library provides major components/controls like TSkLottieAnimation, TSkPaintBox, and TSkSvg that all work like a charm. The previous webinar showed us some cool demos showcasing Skia4Delphi’s huge potential. These include the use of Skia Shaders that can level up your interface with its beautiful 3D animations, an interactive Breakout-inspired game, a Star-trek-inspired data dashboard demo, and a great number of mobile demos. In this short video that was taken from the recently concluded Skia4Delphi webinar, Jim McKeeth will show us some demos of using Skia4Delphi in some mobile applications. These include a beautifully rendered Splash Screen animation, a feature that allows you to sign a document using the TskPaintbox control, and a feature that allows users to generate PDF documents and a QR Code. To learn more about these Skia demos and to see what exactly this amazing library is capable of, feel free to watch the video below.

Read More

How To Create A Grid In JavaScript

In this technological era, we are generating massive volumes of data. It is estimated that the data that is generated daily is of the order of a mind-blowing quintillion bytes per day! Hence, it’s no wonder that software apps, which can handle millions of data records are of paramount importance. In this context, a JavaScript grid that allows users to manipulate and work with tabular data is key. It is this reason that many data scientists and developers often ponder how to create a grid in JavaScript quickly and easily. Sencha Ext JS allows you to create data-intensive HTML 5 apps using JavaScript. You can effortlessly create cross-platform web and mobile apps for all modern devices. This is an easy-to-follow JavaScript grid tutorial that enables you to create a JavaScript grid effortlessly. Continue reading to discover how you can create a data grid using JavaScript and HTML. All you have to do is create an empty .html file and follow the four steps given below.  Why Should I Opt For Sencha Ext JS JavaScript Grid? Sencha Ext JS provides the fastest JavaScript grid. It empowers you with an incredibly fast speed and enables you to process millions of records within milliseconds. Experiments with performance benchmarks have shown that Ext JS grid beats all its competitors in terms of initial load time, filtering speed, and scrolling speed. Additionally, by using Sencha’s grid, you can completely revamp your HTML5 grid. The Sencha Ext JS JavaScript grid is 100% configurable. You can easily design a grid to fulfill all your clients’ requirements. You can add various data visualizations such as line charts, pie charts, bar charts, and more to the grid. This goes a long way to help your clients to understand their data. Moreover, you can also add other UI components to the grid. How To Create A Grid In JavaScript: What Are The Steps? You can easily create a grid in JavaScript using a single HTML file. Create an empty grid.html file and follow the steps given below. Once you complete these 4 steps, you’ll see a grid that looks as follows: In the above JavaScript grid, there are only three columns for the country, population, and population growth. However, you can extend the grid and add more columns and rows to the data table. Step 1: What Do I Need To Import For Creating A Grid In JavaScript? To create a JavaScript grid in a single HTML file, import the Ext JS library and stylesheets. You can add the following code anywhere in the header of the HTML file: Step 2: How Do I Define The Model For Creating A Grid In JavaScript? To build a grid using Ext JS, you need to create a model. In the code below, the name of the model is com.extjsGrid.Sencha and it extends Ext.data.Model. This code defines a model for three columns namely country, population and population growth. All three columns are specified using the field key. Ext.define(“com.extjsGrid.Sencha”, { extend: “Ext.data.Model”, fields: [“Country”, “Population”, “PopGrowth”] }); Step 3: How Do I Define The Data Store For JavaScript Grid? The data store holds all the data values for the grid. In the code below, senchaStore is a variable that stores all the data of the grid. To fill up the grid, specify one row of […]

Read More

How To Explain A Cross Platform App Builder To Your Boss

You have been working on a new cross-platform app using a cross platform app builder, and you’re just about done with it. You’ve tested it on your own devices, tweaked the interface until it’s perfect, and you’re ready to share it with the world! But now you have to explain it to your boss. Here’s how to do it without blowing their minds or making them skeptical about your skills as a developer.  What is a cross platform app builder? A cross platform app builder is a software development tool that enables developers to build iOS and Android apps using the same codebase. This can save time and hassle by allowing developers to create apps that work on both platforms without rewriting code or relying on third-party tools.  A cross platform app builder is also great for larger projects where multiple team members must work on the same codebase without creating various files for every platform.  A good starting point is Delphi Community Edition if you’re looking to build a cross-platform app. It’s free to try and use and has plenty of features to get you started.  Defining a cross platform app builder When you’re trying to convince your boss to invest in a cross platform app builder, it can be tough to explain just how valuable the tool can be. Here’s a guide on how to do just that.  Define the Problem Before you can even start explaining how a cross platform app builder can help, you must first understand the problem. In most cases, companies are looking for ways to reduce costs and increase efficiency.  By using a cross platform app builder, you can give your team the ability to create mobile and desktop applications for different platforms with ease. This makes it easier to manage and scale your business operations.  Emphasize the Benefits Once you’ve defined the problems, it’s time to start highlighting the benefits of using a cross platform app builder. First and foremost, this tool can save your company money in the long run. By using one codebase for more than 3 or 4 platforms, the company can avoid all the costly development costs that come with customizing each application separately. Additionally, a cross platform app builder can make it easier for your team to collaborate and share information across different platforms. This ultimately leads to increased efficiency and better communication within your business operations.  The different types of cross platform app builder Cross platform app builder allows developers to create mobile and web applications deployed on different platforms, including iOS, Android, Windows, macOS and Linux. There is various app builder out there, so it can be difficult for developers to choose the right one.  In this blog post, we’ll discuss the three most common types of cross platform app builders and give you tips on how to explain them to your boss.  The first type of cross platform app builder is called a hybrid builder. Hybrids combine features from iOS and Android app builders, making it easy for developers to create mobile apps that look and feel like their existing web applications. Hybrids also allow you to use code from either platform, giving you more flexibility when building your app.  The second type of cross platform app builder is creating native but also multi-platform applications that can […]

Read More

How to leverage modern software testing skills in DevOps

Testing is a critical step in the software development lifecycle but also the part of the process most DevOps teams trip over. The solution — test automation — has been talked about for years but has been far easier said than done. However, with new technologies on the rise, test automation is taking off. DevOps teams need to be prepared with modern software testing skills. Here’s how to get started. The benefits of automated software testing In GitLab’s 2021 Global DevSecOps Survey of over 4,000 developers, security professionals, and operations team members, respondents agreed on one universal truth: Software testing is the biggest reason why development is delayed. It’s critical to get software testing right because it’s financially disastrous to get it wrong. How much money do software mistakes add up to? Somewhere in the trillions. Yes, with a “t.” DevOps.com reported that software failures in companies’ operations systems cost a total of almost $1.6 trillion in the U.S. in 2019 alone. But testing has traditionally been difficult to do efficiently and not particularly popular with developers. The solution? Test automation combined with modern software testing skills. It’s a hands-on start DevOps teams looking to up their test game need to take a step back… into manual testing. (The irony is not lost on us.) A manual testing mindset can actually improve all facets of automated software testing. As devs perform basic tests on their code as it’s being written, channeling their inner manual tester can be helpful. Whether it’s looking at the requirements again or running failed fixes one more time, that attention to detail should be brought into how automated test cases are built and executed. Take the modern view Once developers have incorporated some old-school habits into their test cases, it’s time to consider some fresh perspectives, up to and including a deep understanding of the organization’s goals and objectives. According to Modern Testing, there are key principles of modern testing that every developer needs to be aware of for successful testing at any stage: Job one is to make the business better. Rely on trusted resources like Lean Thinking and the Theory of Constraints. Fail fast but focus on success. Always be the customer when testing. Do data-driven work. Testers are evangelists. Get certified As the saying goes, every little bit helps. Though it is not required, a training program or certification course in software testing can enhance team capabilities. If there’s interest in this option, research courses online that might fit. From beginners to experienced testers, there’s something for everyone. Not sure where to start? Teams can explore the International Software Testing Qualifications Board (ISTQB) Foundation Level Certification for CTFL certification. This is required before taking any other certifications (see the full list of ISTQB prerequisites). After CTFL, there are many interesting certification options. The American Software Qualifications Board, which offers the ISTQB certifications, is another great resource and has a helpful Software Testing Career Road Map. Embrace new technologies Artificial intelligence and machine learning are at the core of test automation, so a thorough understanding of the technologies is a key modern software testing skill to have onboard. If AI/ML is already in use, ask to shadow or “apprentice” those working with it. Organize a Q&A for the DevOps team with an expert, and […]

Read More

Why we’re sticking with Ruby on Rails

When David Heinemeier Hansson created Ruby on Rails (interview), he was guided by his experience with both PHP and Java. On the one hand, he didn’t like the way the verbosity and rigidness of Java made Java web frameworks complex and difficult to use, but appreciated their structural integrity. On the other hand, he loved the initial approachability of PHP, but was less fond of the quagmires that such projects tended to turn into. It seems like these are exclusive choices: You either get approachable and messy or well-structured and hard to use, pick your poison. We used to make a very similar, and similarly hard, distinction between server-class operating systems such as Unix, which were stable but hard to use, and client operating systems such as Windows and MacOS that were approachable but crashed a lot. Everyone accepted this dichotomy as God-given until NeXT put a beautiful, approachable and buttery-smooth GUI on top of a solid Unix base. Nowadays, “server-class” Unix runs not just beautiful GUI desktops, but also most phones and smart watches. So it turned out that approachability and crashiness were not actually linked except by historical accident, and the same turns out to be true for approachability and messiness in web frameworks: They are independent axes. And these independent axes opened up a very desirable open spot in the lower right hand corner: an approachable, well-structured web framework. With its solid, metaprogrammable Smalltalk heritage and good Unix integration, Ruby proved to be the perfect vehicle for DHH to fill that desirable bottom right corner of the table with Rails: an extremely approachable, productive and well-structured web framework. When GitLab co-founder Dmitriy Zaporozhets decided he wanted to work on software for running his (and your) version control server, he also came from a PHP background. But instead of sticking with the familiar, he chose Rails. Dmitry’s choice may have been prescient or fortuitous, but it has served GitLab extremely well, in part because David succeeded in achieving his goals for Rails: approachability with good architecture. Why modular? In the preceding section, it was assumed as a given that modularity is a desirable property, but as we also saw it is dangerous to just assume things. So why, and in what contexts, is modularity actually desirable? In his 1971 paper “On the Criteria to be Used in Decomposing Systems into Modules”, David L. Parnas gave the following (desired) benefits of a modular system: Development time should “be shortened because separate groups would work on each module with little need for communication.” It should be possible to make “drastic changes or improvements in one module without changing others.” It should be possible to study the system one module at a time. The importance of reducing the need for communication was later highlighted by Fred Brooks in The Mythical Man Month, with the additional communication overhead one of the primary reasons for the old saying that “adding people to a late software project makes it later.” We don’t need microservices Modularity has generally been as elusive as it is highly sought after, with the default architecture of most systems being the Big Ball of Mud. It is therefore understandable that designers took inspiration from arguably the largest software system in existence: the World Wide Web, which is modular by necessity, […]

Read More

Faces of Unity – Archana Rao

What are your personal values, and what Unity values do you gravitate towards the most? My personal values are anchored in encouraging diverse views while operating with a high degree of ethics and accountability. I love all the Unity values, but I especially connect with Go Bold, as it relates to staying curious and hungry. I’m never satisfied! There is always room to go faster, do bigger things, and make more impact. Can you share any fun facts about yourself? I love to learn and need constant challenges, so my career has been an unusual zigzag path through roles in engineering, business development, and IT. I grew up in a small town in India and always wanted to be an engineer, although I would never have dreamed that I’d be a CIO one day. Despite my small-town origins, I was lucky to receive tremendous encouragement from my parents, teachers, friends, and mentors. I would not be here without them. I hope to pay this forward, and love to invest in building, mentoring, and growing diverse teams. When I was little, I was really, really scared of dogs. I got chased by a large dog as a kid and that scarred me quite a bit. But, thanks to the insistence of my kids and husband (who had a lovely Labrador growing up!), we now have two amazing dogs: Cleo, our happy-go-lucky 10-month-old Labradoodle, and Rusty, our effervescent Golden Retriever. They are the loves of my life, and I now really enjoy meeting dogs and basking in their loyalty and joie de vivre.

Read More

The 5 Best Kept Secrets Of Android App Builder Software

Do you know, in the year 2021 when COVID was arguably heading towards dominance, the number of mobile app downloads skyrocketed to 230 Billion [1] worldwide? Of those downloads, a burgeoning majority were for the Android platform. Choosing and using Android app builder software to safely ride that tidal wave to create user-centric apps and capitalize on that demand. With pandemic upending people’s usual way of working and socializing the mobile market sky-rocketed towards a faster growth because of users’ demands for apps to interact, work, and divert. With COVID still very much around but with society coming to terms with how to mitigate the worst effects the growth in mobile devices still seems to be maintained; in fact, the research forecasts Google Play Store app installs to reach a whopping 613 billion alone by 2025. So, mobile is definitely a growth market which, as developers, we can’t really afford to ignore – and Android is very much the dominant player. But what should be the characteristic of the best Android app builder software? Let’s have a look! What are the characteristics of the best Android App Builder Software? Is it free to download so you can get started instantly? Explore the features using different ways like drag and drop an element, defining a button, etc.  Does it make coding and app development quicker, improves efficiency, and works as a comprehensive app that performs a variety of functions thus eliminating the need for multiple apps? By building your own custom business app through Android app builder software, you get overall control and don’t have to depend on stuff for anything, therefore, minimizing the licensing and maintenance expenses. Does the Android App Builder software come with ample support channels meaning it’s possible that it will work well with your existing software? Ensuring any new apps you develop will work together with any existing apps is important. Apps are designed to handle a finite number of resources and operations. These apps might not be able to handle the strain as your requirements expand. With the best Android app builder software, you can easily scale up the app when the need arises which makes scaling and consolidating easier.  Here you have the characteristics to look out for let’s get to the most interesting part – the secrets! What are the top secrets you need to know about the best Android app builder software – Delphi? 1. Use the Alcinoe component library for Delphi to make your Android apps have even more epic user interfaces Because of all of the varied formats (across devices), doing a video with Delphi FireMonkey can be intimidating, and constructing a high-quality video player is difficult for the faint of heart. The Alcinoe component library is an open-source package that has already done a lot of the legwork for you in order to get the video to operate in FireMonkey on Android and iOS. It also has” Android/iOS Facebook SDK login, native iOS/Android TEdit, Firebase cloud messaging, better FireMonkey controls, ImageMagick wrapper, WebRTC Delphi wrapper, Json Parser, MongoDb client, and much more” in addition to the video player capabilities. It also has a high GitHub Stars count, indicating that it is extensively used. 2. The TFDMemTable design time edit dataset allows you to visualize what your Android app will […]

Read More

Extend TMS WEB Core with JS Libraries with Andrew: Tabulator Part 7: Performance

In our final outing in this miniseries about using Tabulator in your TMS WEB Core projects, we’re going to focus primarily on one area – performance.  While Tabulator in its simplest form is amazingly quick, there is a lot more to the performance equation than just Tabulator itself.  We’ll also look at one way to implement image lazy loading, potentially applicable to any TMS WEB Core project.  And we’ll even explore one way to monitor the progress of downloading data from an XData server. By the time we’re done, you should be well-equipped to build not only functional projects, but highly performant projects as well. Motivation. One of the defining characteristics of any application, whether it is a web app, a phone app or a Windows desktop app or any other app, is how much time the user spends waiting.  Waiting for the app to load.  Waiting for the app to display data.  Waiting for the app to respond to some kind of interaction. For example, clicking a button should ideally provide some kind of feedback, even if the action being triggered cannot be completed immediately.  Scrolling should also be as fast as possible.  “Buttery smooth” as one famous person in our field liked to describe it. There are plenty of statistics to be found (naturally, with varying degrees of applicability) that relate app performance to user retention.  If an app is slow, they’ll quickly move on to something else. So we owe it to our users (and ourselves!) to make things as absolutely performant as we can. There’s almost always something that can be done to make an app faster. But is it worth it? Tabulator. Just How Fast Is It? One of the first questions to address, then, is about Tabulator itself.  There are many JS grid libraries around.  Which one is fastest?  Well, we’re not the first to come up with that question.  In fact, there’s a GitHub project focused on exactly this – JavaScript Data Grid Performance Comparison. Unfortunately, the Tabulator figures are not yet included in their results, though a PR is pending. You can read more about it here, though. The news is good – the current version of Tabulator is easily among the top performers in this comparison in every respect.  So we’re already starting out strong in the performance department. While using Tabulator with all its defaults is great, one of the benefits to many of these JS grid libraries is the ability to customize what it is doing, as we’ve been seeing over these last several posts.  And sometimes, that customization can come at a cost if we’re not paying close attention.  As an example of this, in a previous outing, we made some changes to include the row count in the column header of our tables.  We implemented this using Tabulator’s own updateColumnDefinition() function, which did exactly what we wanted. However, it turns out that this function essentially drops and recreates the entire column (so it can be sure that all the column definition parameters are accounted for). When doing this with a column filled with images, this ended up being enormously expensive. And it also triggers a table refresh, which interferes with the live filtering function.  This particular issue is something that is being addressed by the Tabulator team […]

Read More

Everything You Need To Know About The Skia Shader Language

This video will introduce us to the Shading language and what exactly it does to elevate your windows application development. Generally, a shading language is a graphics programming language adapted to programming shader effects. This program called Shaders simply tells the computer how to render each pixel to produce photorealistic or stylized surfaces to an object or image. These shaders are written in a special shading language. Currently, there is a great number of shading languages to choose from and while they all share common features and pretty much do the same thing, they might still vary in terms of restrictions and flexibility. What is the Skia Shader Language (SkSL)? Whether you are developing a game or a desktop application, the use of shading language is important to make everything visually appealing as it can drastically enhance the photorealism of an object, adding depth and texture, and even creating the illusion of three-dimensionality. The most popular shading language today is the OpenGL Shading Language (GLSL). While it is a high-level shading language, the shader is made specifically for Open GL and cannot be used with Vulkan or Apple’s Metal. You can, however, use Skia’s very own Skia Shader Language (SkSL). SkSL is a variant of GLSL which is used as Skia’s internal shading language. SkSL is, at its heart, a single standardized version of GLSL which avoids all of the various version and dialect differences found in GLSL “in the wild”, but it does bring a few of its own changes to the table. For instance, GLSL code from sites like Shadertoy can be converted to SkSL. In this video, Jim Mckeeth will demonstrate how to successfully convert a shader from Shadertoy via Skia Shaders Playground. One of the cool things about Skia Shader Language is that it works across all platforms. It doesn’t require Open GL or any special drivers to be installed on the platform. To learn more about the Skia Shader Language, feel free to watch the video below.

Read More