From the blog

How To Create Mobile Apps Using React JS

React JS is one of the most popular JavaScript libraries on the planet. It allows you to effortlessly create interactive UIs for your application. It is efficient, flexible, and intuitive. As a result, React has become massively popular among developers worldwide. It supports the responsive layout for all modern devices, including smartphones, laptops, and desktops. Therefore, you can create your mobile app using React JS. But is the process difficult? Can you easily create React apps for mobile devices? In this post, you will find all the details. Why Should I Create My Mobile App Using React JS? Supports Cross-Platform Application Development: By using React JS, you can make applications for a variety of platforms, including iOS and Android platforms. Therefore, you no longer have to learn different languages, like C++ and Java. By using JavaScript language and React framework, you can create applications for all platforms. Easier learning curve: React JS is very easy to learn. You just need to know JavaScript. You don’t have to learn other programming languages, like C# or Java. As a result, you can quickly pick up the technology and start creating your mobile app using React JS. Offers Code Reusability: React supports code reusability. It provides several big advantages. For example, it allows you to reuse the same code for similar features in multiple apps. As a result, you can quickly develop new applications. It can significantly reduce your development time. Open-source: React is an open-source framework. It is completely free. It doesn’t require you to pay any monthly or yearly fee. Hence, you can save a lot of money, which you can spend on other aspects of your business. Strong Community Support: React JS has a huge community. It is comprised of thousands of developers worldwide. The community is very helpful. Whenever you face any issue, you will always find a helping hand. Therefore, you should seriously consider creating your mobile app using React. It can make your life a lot easier. How Can I Easily Create My Mobile App Using React JS? You can easily create your mobile app using React JS by utilizing the power of GRUI by Sencha. It is a modern enterprise-grade grid solution. It offers 100+ data grid features, including virtual columns, infinite scrolling, and slider paging toolbars. By utilizing them, you can easily create data-intensive mobile apps using React JS. Why Should I Use GRUI By Sencha? Efficiently handle millions of records Support for large feature sets, including filtering, grouping, infinite scrolling, etc. Get full customization control over styling and theming Easily export data to different formats, including CSV, TSV, HTML, PDF, and XLS Easy React UI component integration Read: GRUI By Sencha vs. React Grid – Which Is Better? How Can I Create A Mobile App Using GRUI By Sencha? Sencha GRUI has made the process of creating mobile apps very simple. Let’s take a look at some practical examples. How Can I Create A Big Data Grid With GRUI? With GRUI, you can easily create Big Data grid. Here is an example: To create it, you have to follow these steps: 1. First, you have to import all the required libraries and components. import React, { Component, useState } from “react”; import { SenchaGrid, Column, CheckboxColumn, DateColumn, EmailColumn, MoneyColumn, NumberColumn } from “@sencha/sencha-grid”; import […]

Read More

Hands-on: Delphi Web Services with TMS XData online course – 20% RAD discount!

Creating Secure and Manageable Database-driven Web Services with TMS XData and Delphi With great pleasure we announce another great collaboration with Wagner Landgraf, architect TMS Business tools and Holger Flick, TMS evangelist and Embarcadero MVP. As of today, this new course is available for those who are interested. The course will also have a RAD purchase option which will give you 20% off! Click on the link below or use the coupon code RADPURCHASE. All information can be found here. This course will teach you step-by-step how to create TMS XData Web services in Delphi. First, the main focus is to create a template that you will be able to use in all your future TMS XData projects. The template will get you set up to create Web services with: configurable database connectivity, server parameters in a resource file, a modern UI with tray icon, switching to deployment as a Windows service, logging access control using JSON Web Token (JWT) This template will then be used to great a Web service for an example scenario. In this scenario, you will design a database, connect it to the template, implement the Web service backend, and then implement three clients. One VCL client to upload data from a CSV file into the Web service, and another VCL client to browse data from the Web service in a data grid and visualize it in a chart. The last client will be written in TMS WEB Core as an example for a Web client. All clients will implement user access control using JWT and a login dialog. The course is grouped into the following sections: Introduction Detailed introduction to the course. Some videos are free to watch before purchase which will allow you to determine if this course hits “all the marks” for you. I will start by giving an overview of all the course topics, describe the example scenarios, but will also motivate this course by giving examples for real-world Web services. Finally, we will prepare the development environment installing all the products and learning about TMS project wizards. Create a new TMS XData project Jump right into the development of a Web service with Delphi! You will learn how to create a new server and its associated project structure, get a glimpse at using version control, and where to download the source code of this course The section will close with a detailed look at the different components of an XData server and how to set up Windows to host a server. Updating the server container The server container is the core part of an XData server and will be discussed in detail. In particular, we will introduce the Singleton pattern to facilitate its accessibility in the server application. Adding services to the server Services are the means how you can add functionality to your Web services. An XData server can hold as many services as you design. In this section, you will implement your first service and its endpoints. Lots of examples will be given. Focus will be how to look at the data that is returned, how the data is formatted, how you define the data that is returned, and how you can easily browse your XData server using SwaggerUI. Adding database connectivity Using databases with Web services is an […]

Read More

Extend TMS WEB Core with JS Libraries with Andrew: Tabulator Part 6: Getting Data Out Of Tabulator

Last time, we took a look at some of the ways that we can edit data in Tabulator in our TMS WEB Core projects. And that was just the most basic introduction to a very large and complex topic overall.  This time out, in our penultimate stop in this Tabulator miniseries, we’re going to look at how to get those changes out of Tabulator and back into our databases or wherever else we need to send it.  We’ll also augment our example from last time with a proper navigator and clean up a couple of the editing options.  And then we’ll look at how to create PDF, XLS and CSV files directly from Tabulator. Motivation. Having any comprehensive JavaScript grid control is great, and Tabulator is just one of many such controls.  Having a grid control that can do almost everything all by itself is also great.  But there may come a time, specifically if your grid supports editing, when it has to give up its data, or at least its changes, so you can send it elsewhere. And giving the user some degree of control over that process, or at the very least, some level of confirmation, then everyone benefits.  The plan for this post, then, is to offer up some ideas, both on how to implement the actual data transfer-type mechanisms and on how to keep the user informed. Navigator. When doing database work in a traditional Delphi application, there’s a handy little DBNavigator component that you can link to your TDataSource that provides a consistent set of buttons for things like next/previous or save/cancel operations.  In TMS WEB Core, there’s also a TWebNavigator that can be linked to a TWebDataSource in the same way.  But a Tabulator table isn’t really a TWebDataSource, so they can’t be linked in that way.  So let’s start out by making our own navigator for Tabulator. The underlying purpose is to help become more familiar with how Tabulator tells us what is going on in the UI, via events and so on, so that we’ll be better able to understand how it does the same thing when data is changing. As a bonus, we’ll have a handy place to put some of the other things that we’ll need a spot for as well.  So to start with, we’re going to pretty up our example from last time and add a placeholder for the navigator.  We’ve covered some of these design items previously, so I’ll just list them here for reference purposes.  But by all means, please post a comment if you’d like a bit more information on any of them. Bit of styling for the whole Tabulator – rounded corners, new font, darker column headers. Added a CSS for the styling that we don’t handle in code. Put Tabulator inside another DIV, with some additional styling for the outer DIV. Added Interact.js so the DIV can be moved around and resized. Drag from the navigator. Added ‘selectable’ option, so we can visually see what record is currently active. Added a placeholder DIV below the table where the navigator will be Adjusted columns and layouts to be more ‘responsive’ – give it a try! Numerous adjustments to the individual columns and editors.  Check the code for details. So our starting point for today […]

Read More

What could the metaverse look like?

Diversity, equity, and inclusion (DEI) issues are key to the success of the metaverse. These values are foundational for a great user experience and will certainly affect user adoption. What is true in our reality and all of the issues that we already face in our day to day, as a society, will transition to the metaverse; That’s why we need to prioritize tackling them as we build these platforms. We must enable users to live immersive experiences, and an important part of that equation is inclusivity and safety. For instance, we must see that all languages are well-represented and accessibility norms respected. On the question of representation, we should allow for diversity in avatars too. And not just in terms of race and gender, but in terms of all personal preferences, to guarantee an experience that people want to come back to. If the metaverse is truly the next evolution of the internet, then everything that is currently true (and not being addressed or prioritized) in the world of web 2.0 will remain true there as well. It would be foolish to think that we can take on these problems in the metaverse if we still can’t solve them in our current context. To conclude, I truly hope that the new opportunities offered in the metaverse will be a catalyst that prompts more focus on the things that matter in our lives so that we can make the entire world a better place – not just the digital side of it. Connect with Manu on LinkedIn or Twitter.

Read More

Getting to grips with Tentacular, Firepunchd’s chaotic kaiju “constructathon”

Optimizing the quest system Progression in Tentacular is structured by main and side quests, each with their own stories and levels organized as Scriptable Objects. The quest system contains all elements from the game as well as the scenes that Firepunchd needed to load during each build. This enabled them to manage progression from one centralized location. “Some games manage this data with long lists, but I prefer modules,” shares Cubasch. “I can just click or duplicate a module, and I really like that workflow.” Structuring quest data with Scriptable Objects helped manipulate game data and keep Reference Exception errors to a minimum. “If we need to add more stuff or delete, it’s very easy to make adjustments,” specifies Scaramuzzino. “The iteration of level creation was much smoother because of that.” Speeding up character design Scriptable Objects also influenced character creation. The team worked on a large number of individual character assets – eye color, hair color, clothing, and headgear – and used parameters to generate configurations randomly. This sped up Prefab creation considerably. Most background characters are fully randomized, whereas main characters are customized in the Unity Editor. These Scriptable Objects are then exported and dropped into the game, where Prefabs are generated at runtime. Managing localizations To simplify switching between languages, Firepunchd linked a Scriptable Object to the database containing Tentacular’s localization strings. The Scriptable Object has functions for checking against the font/typeface and presence of certain characters. “We probably could have done this with different tech,” admits Cubasch, “but because Scriptable Objects are so convenient to use, for us it’s always a good place to go.” “All of the localization strings are in a Google Sheets document. You can pull the data from a Google document using the Google API and populate the Scriptable Object,” explains Scaramuzzino. “This way, we can be sure that every time we build, we have the latest version of the localization files.”

Read More

10 Signs You Should Invest in Cross Platform Apps

Cross platform apps are becoming increasingly popular as they allow users to access their favorite apps and programs on multiple devices. If you are considering investing in cross platform app development, here are ten signs that it’s a good idea! How to determine if your business needs cross platform apps If you are not sure whether your business needs cross platform apps, there are a few things you can consider.  First, think about what kind of business you have. For example, cross platform apps might not be necessary if you have a brick-and-mortar store. However, a cross-platform app could be very beneficial if you have an online or service-based business. Second, think about what kind of customer base you have. If your customers primarily use iOS devices, then an iOS app might be all you need. However, if your customers are using various devices, cross-platform apps could be beneficial for reaching them all.  Third, think about your budget. Developing an app can be expensive, so you’ll need the device if the benefits of cross platform apps are worth the cost.  Ultimately, only you can decide whether cross platform apps are the right for your business. However, these are some things to remember as you make your decision.  Do you want to reach the broadest possible Audience with cross platform apps? Cross platform apps are becoming increasingly popular in reaching the possible broadcast audience. Cross platform apps can be installed on various devices, including smartphones, tablets, and computers. This means that your app will have the potential to reach a wide range of people.  Are you targeting multiple demographics? If you’re trying to reach multiple demographics with your app, then cross platform development is a good option. This way, your app will be accessible to a broader range of people.  Targeting a precise user or users across multiple platforms is called cross-device targeting or cross-device marketing. The main goal is to analyze and understand your audience so that you can reach them through their favourite platforms or mediums. Do you want to improve employee productivity by using cross platform tools? If you want to improve employee productivity, investing in cross platform apps is a pragmatic approach. Utilizing cross platform app development tools provides a set of flexibilities to software engineers. With the correct cross platform app development ecosystem, employees can collaborate on projects regardless of where they are. This ensures that deadlines are met, and tasks are completed efficiently. With the RAD Studio ecosystem, you can get the highest productivity level. For instance, hundreds of built-in components and the UI development environment are among the best in the market. The latest version of RAD Studio 11.1 Alexandria has all the latest functionalities and support for the latest technologies. Besides, the pool of third-party components is so prominent in Delphi and FireMonkey ecosystem that if you want to make something big, there is already a library or component available. Do you need an app that can be used on multiple devices? If you need an app that can be used on multiple devices, then investing in cross platform apps is the best idea. Cross platform apps are designed to work on numerous operating systems with exact functionalities (except the UI/UX). Moreover, investing cross platform apps is also a good idea if you want […]

Read More

What Is A Low Code Application Platform? An Overview

The idea of a low code application platform has become a trend in recent years. By 2024, Gartner projects that low code will comprise more than 65% of app development activity. The need to offer digital solutions for COVID-19 has increased this trend. It’s vital to understand the notion of low code. A low code platform is a development environment. It allows non-technical users to create applications. These apps can be deployed on the cloud. Low code platforms use visual programming languages. They are typically compatible with multiple devices. Also, they are featured to work with operating systems. With a little research, you can easily find a perfect low-code application platform for you that suits your needs.  What is a low code application platform? The low code application platform is a method of designing and developing software. They are specifically used to design software with no coding. Low code application platforms enable enterprises to create unique solutions. For these unique solutions, they provide cutting-edge features. These features are tailored to certain business models. These platforms provide easy visual builders, ready-to-use code snippets, and form & report templates. They also have built-in connectors. These are used to accelerate development. Also, they expand the potential to innovate to a wider audience. Users can also get right to work on their apps. These platforms automate common coding tasks. These common coding tasks include framework creation, data modeling, and user interface development. What are the benefits of using a low code application platform? Here are some advantages of low-code development. A low code application platform is often easier to use The platforms provide drag-and-drop interfaces and visual editors. They allow non-technical business users to create apps quickly. Business users can design screens using the platform’s visual editing tools. They can easily connect them with data sources, business rules, and other functionalities via connectors. This makes it possible to develop complete custom applications. Also, there’s no need to write any code as well in these low code application platforms.  A low code application platform can promote increased development agility Low-code platforms can help companies accelerate application development. With them, they can create custom applications quickly. Also, teams can work together better. Thus, they can work on the same app in real-time. A low code application platform allows you to create interfaces with Drag-and-Drop Drag-and-drop usage is available on every established low-code platform. It is one of the most significant and beneficial elements. It facilitates the development process.  It assists both citizen hobbyist and professional developers. The time to market can be much quicker with a low code application platform Low code platforms allow businesses to create applications. These apps can be deployed directly and quickly. This means that businesses can get their products and services to market faster. This is important in today’s fast-moving environment. Lower usage cost Low code platforms are cheaper than traditional software development. They do not require developers to write code manually. Low code platforms are also easy to use. Less experienced IT experts can operate them without compromising processor security. Increased productivity with low code application platforms – little or no code means less work and more efficiency Because low code platforms are so intuitive, you can build your entire application without writing any code. This means that you don’t […]

Read More

An SA story about hyperscaling GitLab Runner workloads using Kubernetes

The following fictional story1 reflects a repeating pattern that Solutions Architects at GitLab encounter frequently. In the analysis of this story we intend to demonstrate three things: (a) Why one should be thoughtful in leveraging Kubernetes for scaling, (b) How unintended consequences of an approach to automation can create a net productivity loss for an organization (reversal of ROI) and (c) How solutions architecture perspectives can help find anti-patterns – retrospectively or when applied during a development process. A DevOps transformation story snippet Gild Investment Trust went through a DevOps transformational effort to build efficiency in their development process through automation with GitLab. Dakota, the application development director, knew that their current system handled about 80 pipelines with 600 total tasks and over 30,000 CI minutes so they knew that scaled CI was needed. Since development occurred primarily during European business hours, they were interested in reducing compute costs outside of peak work hours. Cloud compute was also a target due to acquring the pay per use model combined with elastic scaling. Ingrid was the infrastructure engineer for developer productivity who was tasked with building out the shared GitLab Runner fleet to meet the needs of the development teams. At the beginning of the project she made a successful bid to leverage Kubernetes to scale CI and CD to take advantage of the elastic scaling and high availability all with the efficiency of containers. Ingrid had recently achieved the Certified Kubernetes Administrator (CKA) certification and she was eager to put her knowledge to practical use. She did some additional reading around applications running on Kubernetes and noted the strong emphasis on minimizing the resource profile of microservices to achieve efficiency in the form of compute density. She defined runner containers with 2GB of memory and 750millicores (about three quarters of a CPU) had good results from running some test CI pipelines. She also decided to leverage the Kubernetes Cluster Autoscaler which would use the overall cluster utilization and scheduling to automatically add and remove Kubernetes worker nodes for smooth elastic scaling in response to demand. About 3 months into the proof of concept implementation, Sasha, a developer team lead, noted that many of their new job types were failing with strange error messages. The same jobs ran fine on quickly provisioned GitLab shell runners. Since the primary difference between the environments was the liberal allocation of machine resources in a shell runner, Sasha reasoned that the failures were likely due to the constrained CPU and memory resources of the Kubernetes pods. To test this hypothesis, Ingrid decided to add a new pod definition. She found it was difficult to discern which of the job types were failing due to CPU constraints, which ones due to memory constraints and which ones due to the combination of both. She knew it could be a lot of her time to discern the answer. She decided to simply define a pod that was more liberal on both CPU and memory and have it be selectable by runner tagging when more resources were needed for certain CI jobs. She created a GitLab Runner pod definition with 4GB of memory and 1750 millicores of CPU to cover the failing job types. Developers could then use these larger containers when the smaller ones failed by adding the […]

Read More

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

5 Easy Things To Learn Today About C++ Software

Hello Developers, C++ is one of the oldest and stronger programming language. It has many functions and methods to manipulate strings and doing string operations as fast as possible in your C++ software. These options and different string types allow you to develop low memory usage and faster applications in all sorts of situations. Today we will continue to look at some more string and wide string operations available in modern C++. We will learn to obtain string capacity and length. We will also learn how to compare strings. Iterators are another modern feature of C++ and we will learn how to use how to use then with Wide Strings. One of the important things is reading and writing text files. Also, we take a look at how to use wide strings in file I/O operations. Finally, we learn to use Form Properties of C++ Builder, Delphi and RAD Studio. Head to LearnCPlusPlus.org to learn all about how to create C++ software LearnCPlusPlus.org is packed full of great articles for professionals and beginners alike. The posts vary from articles suitable for people who are just starting to learn C++ – basics like string handling, pointers, loops, and all those fundamental building blocks of this rich and powerful programming language – to much more in-depth and advanced subjects like artificial neural networks and AI, along with the math behind it. Our focus is on the C++ language, particularly modern C++, and will work with almost any environment and IDE software you can choose although, of course, we believe RAD Studio C++ Builder is the best option! If you are new to RAD Studio, we think these posts may help you as much as a rapid introduction to programming in C++, all the way to the most robust, modern, and latest techniques for those more experienced with the language. For those who are perhaps wanting to expand their knowledge with the most up-to-date features, routines, and methodologies this is a great little boost (pun intended) to your C++ knowledge. The new RAD Studio 11, C++ Builder 11, Delphi 11 are released with great new features and we are developing and testing new examples for you with the latest RADS 11 that means.LearnCPlusPlus.org examples are working well with the latest C++ Builder. You can see more of our C++ posts on this blog by clicking the following dynamic search link: https://blogs.embarcadero.com/?s=C%2B%2B Here are today’s selections: How can we use C++ Builder in the most modern and efficient ways? These posts are designed to give you more information and to be easy to understand the modern and professional ways that we use in C++. Here are the topics, This Is How String Capacity And Lengths Work In A C++ App How To Make A Comparison Between Strings In A C++ App How To Use Wide String Iterators In Modern C++ Software The Modern Way To Read Formatted Wide Strings In A C++ App How To Use Form Properties In C++ Cross Platform Apps What kind of C++ software questions are we answering? These are the questions that we answer in this collection: How can I use the string capacity and length methods in a C++ app? What kind of methods I can use to get size of a std::string? How can I use the empty() method with strings? How to get length() of a std::string? How can I use size() property of […]

Read More