Noutați

Summertime DIY project webinar!

“Learning while having fun”, is what our upcoming webinar is about! In about one hour, you will learn how to build your very own navigation system for your summertime hikes, bicycle tours or old-timer car trips! The webinar is planned for Aug 19, 15h00 UTC (17h00 CET)  and you can register here A PWA DIY navigation system for your smartphone or tablet The DIY navigation system will be built as a PWA (progressive web application) with TMS WEB Core. This means you write the code once and you can install the application on any modern iOS or Android mobile device from an URL. No app stores to get approval from, no delays with deploying updates, all is installed in seconds after open the URL.         Giving the 1996 Mercedes SLK R170 Youngtimer a Tesla touch with the TMS DIY Navigation system Delphi project During the webinar, we will build and explain the application step by step. You’ll learn about using Google Maps, the Openroute directions REST API, access to your device geo-location + orientation and take advantage of the browser speech synthesis to give you directions by voice during the trip. Get the entire project will full source code Exclusively for all attendees of the webinar we offer at the end of the webinar the full source code. You will receive the source code via the TMS Web Academy during the webinar itself. Yes, we have meanwhile also introduced a couple of new features to the TMS Web Academy that will allow this file distribution live during the webinar!  With the full source code, you can further fine-tune the DIY navigation system and add your own cool features to it. Requirements The DIY navigation system uses only the TMS WEB Core framework latest version either for Delphi, Lazarus or TMS WEB Core for Visual Studio Code. You will be able to build the project even with the trial version. So, if you haven’t tried TMS WEB Core yet, download and install it now in your preferred IDE!

Read More

How To Make An App To Convert IP to Geolocation

Wouldn’t it be nice to know where your customers access your website from and customize user experiences based on IP?! ipstack offers a powerful, real-time IP to geolocation API capable of looking up accurate location data and assessing security threats originating from risky IP addresses. Results are delivered within milliseconds in JSON or XML format. Using the ipstack API you will be able to locate website visitors at first glance and adjust your user experience and application accordingly. In this article we will see how fast and easy it is to use RAD Studio and Delphi to create a Firemonkey multidevice application using the LowCode Wizard in addition to a REST client library to take advantage of ipStack API and retrieve a JSON format response for IP to geolocation in real-time. ipstack API has years of partnership with large ISPs ensure accurate and consistent data any day of the year and covers over 2 million unique locations in more than 200.000 cities around the world. Our RAD Studio and Delphi applications will be able to call the API and request information based on the name of parameters you provide. How do I set up the IpStack API? Make sure you refer to IpStack API website (https://IpStack.com/) and and SignUp for the free Plan providing only your email and some basic information (no credit card required). Once you are in the website will redirect you to a Quickstart guide dashboard and your API Access Key will be provided. The Access Key unique, personal and is required to authenticate with the API. Keep it safe! How do I call IpStack API endpoints? Now all we need to do is to call the API base URL (http://api.ipStack.com/) via a HTTP POST method with no JSON request body needed and some few requested parameters added to the URL address depending on the ednpoint we choose to call. One can do that using REST Client libraries available on several programming languages. ipStack offers three API endpoints to choose from: Standard Lookup: Look up the data behind an IP address. Bulk Lookup: Look up the data behind multiple IP addresses at once. Requester Lookup: Look up the data behind the IP address your API request is coming from. Our demo will focus on the Standard Lookup Endpoint but all the others follow similar logic but with different parameters passed. For a complete and detailed list of endpoints and its parameters make sure you refer to IpStack Quickstart guide (https://ipStack.com/quickstart) // Standard IP Lookup – look up the data behind an IP address http://api.ipstack.com/134.201.250.155 ? access_key = YOUR_ACCESS_KEY // optional parameters: & fields = ip,location,security & hostname = 1 & security = 1 & language = en & callback = MY_CALLBACK & output = json // more parameters available please refer to the API Documentation (https://ipStack.com/documentation) // Standard IP Lookup – look up the data behind an IP address http://api.ipstack.com/134.201.250.155 ? access_key = YOUR_ACCESS_KEY   // optional parameters: & fields = ip,location,security & hostname = 1 & security = 1 & language = en & callback = MY_CALLBACK & output = json // more parameters available please refer to the API Documentation (https://ipStack.com/documentation) What does the IpStack API endpoint returns? After the call the main results will be as shown below. {“ip”:”35.208.128.246″, “type”:”ipv4″, “continent_code”:”NA”, “continent_name”:”North America”, “country_code”:”US”, […]

Read More

Desktops Are An Unmatched Productivity Powerhouse

Mobile apps may be in vogue but with the global pandemic disrupting workplaces everywhere desktop devices bring the office to wherever you are working from this week. Microsoft has reported there are over 1.3 billion devices running Windows 10 and they are working on shipping Windows 11. Some work can be done on just a mobile device but for other information economy activities such as software development, graphic design, and global finance there is no better place to be productive than on your favorite desktop device. In this article we are going to explore how desktop devices have a productivity edge that has been honed over the decades. Does having multiple monitors make you more productive? Repeatedly, studies over the years have shown that having multiple monitors increases productivity. While some mobile devices support large screens or even multiple screens that is not the normal configuration most people use. Desktops (and laptops), on the other hand, generally have a large primary display screen and in addition the devices ship frequently with multiple monitor support built into the motherboard. To learn more about taking full advantage of the desktop UI and UX experience you can get a free ticket for Desktop UX Summit 2021 where the focus is on a “desktop first” experience, what is meant by that and why it’s important. Does using hot key combinations make you more productive? CTRL-C and CTRL-V on Windows are tried and true key combinations for copying and pasting content. Hot keys like this on a keyboard give you a productivity boost over using the same function via the mouse or a touch screen. Software development tools like Embarcadero RAD Studio have built in support for building your own custom keyboard combinations into your apps. In addition to TShortcut, system wide accelerator keys can be configured to enhance productivity. Can adding peripherals make you more productive? Desktop and laptop computers have been around for decades and there are many different kinds of peripherals that have been created for them. Everything from special mice to joysticks to drawing pads to custom instruments and ever smart phones themselves. Specifically, as one example, for graphic design work, drawing pads, or large screened mobile devices connected to a desktop can significantly boost productivity. Not only can peripherals be added to laptop and desktop devices but multiple peripherals can be added all at the same time to a single machine. You could even connect more than one smart phone device to a desktop computer for syncing and management. There are multiple software libraries for Embarcadero RAD Studio that offer direct access to all these types of peripherals. Does app size really matter? Networks and hard drives are fast these days. Despite this the size of your app still matters in this context. Embarcadero Delphi can create a graphical application for Windows devices that is roughly 2MB in size. That is smaller than some web pages! You can read an analysis of such an application in our Delphi vs. WPF vs. Electron comparison. This small-sized executable is easily copied over the network or even executed across the network. Additionally, it has no dependencies! Large mobile device applications, sometimes hundreds of megabytes these days, even at 4G speeds can take significant time to download on a mobile device. Waiting for a […]

Read More

Built with XData: HealthLy App for iOS and Android

A couple of weeks ago I received an awesome e-mail from a customer, Vladimir Atanackovic. We have exchanged e-mails before. As a TMS Business customer, he was using TMS XData and naturally asking for help here and there with technical issues. Our previous e-mail conversation was four months before, just a regular support question, but this one was different. He sent a kind e-mail for letting me know that his company has finally released their application, HealthLy, built with TMS XData. About HealthLy HealthLy is a mobile application, available for iOS and Android, that help users to manage their health life: track health data, provide reminders for taking medicines and injections, monitor health indicators, organize doctor appointments, offer information about drug interactions, etc. In this blog post we added some screenshots of the application, but of course you are invited to visit the following links to know more about it, or even download and use it, it never hurts to take better care of your health! HealthLy for iOS (App Store): https://apps.apple.com/us/app/healthly/id1536292632 HealthLy for Android (Play Store): https://play.google.com/store/apps/details?id=com.healthcarecentral.healthly HealthLy web site: https://HealthLyApp.com It was so nice to receive a personal message as a feedback from a customer, and even nicer to see our product, TMS XData, helping to build such a well built, well regarded, professional product like HealthLy (I has received 5 stars in both Apple and Google stores). Vladimir shares his experience After that, I asked Vladimir if he could share more technical information for the readers of this blog. He kindly agreed, and I sent him some questions. The pace of the “interview” or the questions might look a little strange, but it’s just because all the questions were made in advance without a previous answer. If you are a TMS XData user, I hope you will find encouraging to see how many nice things can be built with it. If you are not a TMS XData user, well I can only invite you to join the family! I hope you like what Vladimir has to say about his development process, XData and, of course, HealthLy. Wagner Landgraf: Can you please say in a few words for our audience what is your application for? Who can benefit from it? Vladimir Atanackovic: Managing all the aspects of health development and history can be a big task. Even more challenging is when a person is struggling with a chronic condition or is helping someone else in that struggle. Personalized health management depends heavily on health data analysis and well-organized health-related activities. HealthLy is a health management system and a companion. It is encompassing the crucial health improving and monitoring tools together with personal health data to create a platform for individuals, families, and physicians, or pharmacists. Two years ago, in order to validate our idea, we created a mobile app Tableta, designed only for a local market and with limited features. Through the organic growth and no marketing money, we have managed to reach 3,000 users and achieve 4.8 stars ratings on both PlayStore and AppStore. WL: I see your app has 5 stars score in both App Store and Google Play. Congratulations about that! What do you consider are the strong points of your app and what makes it so appreciated by your customers? VA: HealthLy has 5 […]

Read More

How To Connect To SOAP Services With JavaScript

In today’s world, developers have a wide range of solutions while building modern web applications. They can choose a variety of languages and frameworks. Also, when it comes to web services, there are different options to choose from. One of the most popular options is SOAP, which enables platform and language-independent web applications to exchange data conveniently. In this post, you will find the details of plugging SOAP services into your application using JavaScript quickly. Let’s dive in. What is SOAP? SOAP stands for Simple Object Access Protocol. It is an XML-based protocol for accessing web services over HTTP. It is platform and language independent. So, you can use it to interact with applications of different programming languages without any hassle. What are the advantages of SOAP? Compatible with different programming languages and platforms Supports built-in error handling Provides WS-security support for protecting the web service How to Get Ext.Data.Store Up and Running with SOAP Data The configuration process of getting Ext.data.Store up and running with SOAP data is very simple. Just follow these steps: 1. First, you have to define Blender and extend Ext.data.Store. Then define three fields: id, name, and price. Ext.define(‘Blender’, {     extend: ‘Ext.data.Model’,     fields: [         { name: ‘id’, type: ‘int’ },         { name: ‘name’, type: ‘string’ },         { name: ‘price’, type: ‘float’ }     ] }); 2. Next, you have to create the proxy. Then you have to define url, API, soapAction, operationParam and targetNamespace. Also, you have to create reader. var store = Ext.create(‘Ext.data.Store’, {     model: ‘Blender’,     proxy: {         type: ‘soap’,         url: ‘BlenderService/’,         api: {             create: ‘CreateBlender’,             read: ‘GetBlenders’,             update: ‘UpdateBlender’,             destroy: ‘DeleteBlender’         },         soapAction: {             create: ‘http://example.com/BlenderService/CreateBlender’,             read: ‘http://example.com/BlenderService/GetBlenders’,             update: ‘http://example.com/BlenderService/UpdateBlender’,             destroy: ‘http://example.com/BlenderService/DeleteBlender’         },         operationParam: ‘operation’,         targetNamespace: ‘http://example.com/’,         reader: {             type: ‘soap’,             record: ‘m|Blender’,             namespace: ‘m’         }     } }); How to Load Data into the Store To load the data, you have to follow these steps: 1. First, you have to call the store’s load method. Then you have to add a parameter, called brand. It will create a SOAP request to GetBlenders, which is specified by the read property in the proxy’s api. Let’s assume that the GetBlenders SOAP operation requires a brand parameter. You can pass it to the store’s load method. store.load({     params: {         brand: ‘Blendtec’     } }); The above code will trigger a post to this URL: http://example.com/BlenderService/?operation=GetBlenders 2. Let’s assume that the response to the above request looks like this:                                         1                 Total Blender Classic WildSide                 454.95                                          2                 The Kitchen Mill                 179.95                         3. Now, you can pass a callback function to store’s load method. It will enable you to see what the store’s records will look like after it is loaded. store.load({     params: {         brand: ‘Blendtec’     },     callback: function() {         console.log(store.getCount()); // 2 records were loaded.         console.log(store.getAt(0).get(‘name’)); // get the name field of the first record.     } }); How to Customize SOAP Envelope and Body To customize SOAP envelope and body, you have to follow these steps: 1. Use the developer tool on your web browser […]

Read More

What Is It Like To Be A Developer Sunil Kumar Arora?

Hello. This article is part of a new series where we speak with professional software developers, ask them what it’s like to write code for a living, and perhaps gain a few insights into the software development industry along the way. Today we’re talking to Sunil Kumar Arora also known as “Digitiger”. Sunil is a based in Shillong, Meghalaya, India. He is an Embacadero MVP and long-time Delphi developer. Hello Sunil, thanks for talking to us. Thank you for the opportunity. Could you tell us a little about yourself? I think of myself as one who continues to attempt to travel the road less traveled, and step out of comfort zones, time and again. Still a child at heart who enjoys fantasizing & also passionate to learn pure and rational sciences, my real professional journey has its roots in Software development, Sales & Marketing and above all managing and nurturing relations of all sorts. I think I am an analytical, insightful, & highly disciplined problem solver with a demonstrated ability to identify & secure project resources & provide the quality leadership that invokes committed professional participation from all involved. Maintaining meticulous attention to detail, inspiring team accomplishment, & delivering quality, on-time project execution are areas in which I am reported to excel. As much as I care about human relations, I feel that the approach to work and quality of work is equally important. I have had accountability for the design, implementation, and execution of development / Support projects for all technological platforms including SMAC. During that time, I have developed a solid reputation for successfully and profitably managing numerous concurrent projects through all project phases from conception through completion within targeted cost, schedule, and compliance parameters. Sustaining a high-performance reputation, maintaining quality standards, and minimizing corporate costs and liability have been a consistent result of my professional commitment. Last but not the least, my empathy and compassion also drives me to voluntarily remain engaged as a social worker through several organizations/NGOs including FOMI (Friends of Mentally Ill), Rotary Club of Shillong and many others. Which Embarcadero product(s) do you use a) the most b) regularly? Even though I use RAD Server, Interbase and so on, Delphi has been the most regularly used Embarcadero product I have been using since very long. In fact, I started using Delphi with version 2 sometime around 1996 if my memory serves me right. How and/or why did you become a developer? You may laugh but as a matter of fact I feel my two main habits / likings are the main reasons for me becoming a developer. One is my passion for creativity and second is my laziness. Because I love to be creative but also like to get things done in easiest possible with least efforts or confusion so becoming a software developer perhaps was most logical option. Do you think you will ever stop being a developer? If so, what would be next? I do not think that in real sense there would be a full stop till the time my brain is working, yes, the quantum would surely decrease sooner or later. In fact, if I compare quantum of work or time spent by me in development related activities say about ten years back with what I do now, it […]

Read More

Made With Delphi: This Powerful Load Shedding Schedule App

This beautifully designed and engineered app really puts the superb cross-platform capabilities of the Delphi FireMonkey FMX platform to work on mobile devices running either Android or iOS. Delphi keeps South Africans forewarned of potential electrical outages Eskom is a South African public utility supplying both commercial premises and regular consumers with electricity. At times of extreme demand it is sometimes necessary for Eskom to use “load shedding”. Load shedding is a procedure where the electricity supplier tries to prevent the power delivery circuits from incurring damage due to overloading. Overloading is really quite simple: the amount of electricity which can be generated and safely delivered is finite. Apart from the obvious physical output limitation on the generators themselves, powerlines to deliver that electricity also have a maximum capacity before they will become damaged by overheating and sometimes, in extreme cases, catching fire or exploding. When the amount of electricity being used by consumers reaches the point where it is unsustainable and is approaching that point where an overload could happen the electricity generating company will actually temporarily cut off the power to selected regions for the greater good of the overall client base. This reduces the load and in turn averts disaster. Knowing if your power is going to be disconnected can save lives Obviously, in our high tech world, electricity is the lifeblood of much of modern life. Not just for entertainment such as TVs, games consoles, and computers but, in hotter countries, the air-conditioning is vital. If the air conditioning stops working the inability to cool down can actually result in heat-related sickness and even deaths. Likewise, some private consumers can have other electrical devices like CPAP machines, home kidney dialysis units and other similar medical appliances which operate on electricity and without it can lead to life-threatening and potentially fatal situations developing. Obviously electrical outages are inconvenient at best and seriously impacting or disastrous at worst. A planned outage or least some forewarning of the outage and, better still, a heads-up on when power will be restored can take much of the danger out of electrical disconnections and provides those likely to be affected with some space to take steps to mitigate the problems that might occur. GTM’s Delphi app can genuinely help avoid danger, reduce frustration and prevent a drama becoming a crisis In the words of the developer: “The GTM loadshed app will take all the confusion out of the Greater Tzaneen Municipality’s load shedding schedule”. According to GTM, the app’s features include: – By defining your area the app will tell you if you are subject to load shedding or not.– Indicates whether Eskom is load shedding and, if so, at which stage.– Receive notifications on Eskom stage changes as well as your area’s load shedding status.– Receive notifications when your area’s load shedding is about to start.– Provides contact information for GTM for power related queries. Developer Website GTM LoadShed Google Play GTM  Apple App Store GTM Screenshot Gallery

Read More

Protect Your App With This Free Anti-Hacking Tool In 2021

Hackers around the world are using advanced tools to abuse your source code They can extract sensitive information from your application and cause major financial damage. So, it can be very important to obfuscate your Delphi program. It will make the code very difficult to analyze for the hackers. So, they can’t abuse or add malicious functions to your application. In this post, you will find the details of obfuscating the Delphi programs with an open-source Delphi code obfuscator, called Pythia. This a new Delphi code obfuscator tool for 2021 We have written about code obfuscators before on this blog, both for Delphi code obfuscation and to protect C++ apps from reverse-engineering too. Both of those options were slightly more mature commercial solutions which some commenters said they were not happy with since, although perfectly usable, they believed that they were a little out of date and for a paid product that was a problem. Well, this article is about a code obfuscation tool which is Open Source so you can see exactly what and how it does in the work of obfuscation. Yes, the code is also from a few years back (if it works without bugs, why change it?) – however, because it’s Open Source you can also examine the code, fork the repository, and make improvements or change the way the obfuscation works to create your own unique custom obfuscation which would then further thwart reverse engineering. What is an open-source Delphi Code Obfuscator? Open-source Delphi code obfuscator is a free tool that makes your code complex by adding an extra layer of obfuscation. As a result, the hackers will have a very tough time comprehending your program. So, they can’t steal sensitive data from your application. Also, they can’t reverse engineer your code. Why should you use an open-source Delphi Code Obfuscator? Helps you to save money Hides sensitive information by generating random values Protects intellectual property or trade secrets from the hackers What is the best open-source Delphi Code Obfuscator in 2021? The best open-source Delphi code obfuscator in 2021 is Pythia. It is available for free. The license used means you can use it with the code of your commercial Delphi applications without spending any money. Also, you can alter and redistribute Pythia freely within the guidelines of the original license. How Pythia Protects Your Delphi Program Pythia protects your program by modifying the Delphi Form (DFM) data and Virtual Method Tables (VMT) data of existing binary files in such a way that it’s rendered useless for hackers. However, it doesn’t change the functionality of your program. It keeps everything the same while obfuscating the key information. So, any person attempting to reverse engineer your program will face a very difficult time. Let’s take a look at an example. Before Obfuscation: Take a look at StringGrid1 of the DFM Data tree. It has a property, called Left. What will happen when it is obfuscated? After Obfuscation: As you can see, StringGrid1 has been changed to NzJaIGRG5Hb. Also, the Left property has been changed to BTtK. By obfuscating the data, Pythia is helping you to conceal important values. So, hackers can’t steal key information. Should I use Pythia? Pythia helps you to obfuscate binaries created with Delphi. As a result, your competitors and the lurking […]

Read More

How To Use A C++ DLL In Any Delphi Program

There is a glorious wealth of useful C++ libraries available on the internet. We have featured many great uses of C++ here on this blog too. C++ is typically extremely high performance. If we can have the source code of the C++ library, we can create a package which will then allow us to use the C++ in our Delphi programs. Often though the source code of the C++ library is not available. In commercial C++ libraries, it is common to get only a few C++ headers and the static library file (.lib) without any of the accompanying .cpp source files. So, in this case, when we want to use those C++ libraries in our Delphi application, we can use a Proxy DLL to make it possible. How to create a Proxy DLL to connect C++ DLL and Delphi? To connect Delphi to a DLL, the DLL should expose a simple Windows API style API instead of C++ things. We can use any of the C++ compilers to compile the Proxy DLL. Embarcadero Dev-Cpp Open Source Compiler Visual Studio Let’s take a simple example. Let’s think we have a DLL file and a harder file with this declaration and no .cpp file with the implementation. You can refer to the source code of this example in this link: https://github.com/PacktPublishing/Delphi-High-Performance/tree/master/Chapter%208/StaticLib1 #pragma once class CppClass { int data; public: CppClass(); ~CppClass(); void setData(int); int getSquare(); }; #pragma once class CppClass {   int data; public:   CppClass();   ~CppClass();   void setData(int);   int getSquare(); }; Here’s how to use a C++ library in a Delphi program with a proxy dll Now we need to create the proxy DLL. Create a new C++ DLL project with your preferred IDE. It will automatically add “dllmain.cpp” file. But we need another unit to wrap the static library. Add new unit called “StaticLibWrapper.cpp”. Now we should include the header file of the static library we want to import in our project. #include “stdafx.h” #include “CppClass.h” #include “stdafx.h” #include “CppClass.h” Now copy the header file of the static library to the project folder. Now we should include the static library in our project. To do that add the static library folder to the library directories: Or in Visual Studio goto “Configuration Properties | Linker | General | Additional Library Directories settings”. How to mark C++ DLL functions as “exported” Now we define a Macro to mark DLL functions are exported. #define EXPORT comment(linker, “/EXPORT:” __FUNCTION__ “=” __FUNCDNAME__) #define EXPORT comment(linker, “/EXPORT:” __FUNCTION__ “=” __FUNCDNAME__) Next, implement the IndexAllocator class to cache the C++ objects. This class contains an array of pointers. It has three functions as “Allocate”,  “Release” and “Get” to store the pointer in the cache, release the cache, and get a pointer by index. bool Allocate(int& deviceIndex, void* obj) bool Release(int deviceIndex) void* Get(int deviceIndex) bool Allocate(int& deviceIndex, void* obj) bool Release(int deviceIndex) void* Get(int deviceIndex) Then we need to Initialize and Finalize functions to allocate and deallocate IndexAllocator objects. extern “C” int WINAPI Initialize() extern “C” int WINAPI Finalize() extern “C” int WINAPI Initialize() extern “C” int WINAPI Finalize() Then we create an instance of CppClass class and store it in the cache with this function. extern “C” int WINAPI CreateCppClass (int& index) extern “C” int WINAPI CreateCppClass (int& index) In this statement, we use “C” to make sure the same name is exported and […]

Read More

Quickly Harmonize Your Non-English Localization Efforts In JavaScript

For quite a few years now, language localization has been one of the most neglected segments in application development. While some companies are making localization attempts, in many cases businesses are neglecting entire markets and making the assumption that a single language version will suffice. Alternatively, they are simply unaware of how easy localization can actually be with the right framework in place. However, in a global economy where buzzwords like inclusivity and understanding are common, it only makes sense to make an effort to address localization. Simply put, with properly localized applications,  everyone can access your technology. In more pragmatic terms, businesses that neglect localization efforts are limiting their potential user base by not making an effort to cater to different language markets. Because the penny has finally dropped, many modern application development frameworks have started providing active support for language localization. Sencha ExtJS is one such framework. ExtJS makes it extremely easy for developers to integrate localization processes in their applications with a minimum amount of effort and time spent. In this article, we’ll look at how we can easily harmonize our localization efforts in JavaScript using Sencha ExtJS. How can I achieve localization with Sencha CMD? To implement localization with Sencha CMD, you only need to modify the app.json file in your Sencha CMD-generated application. Add the ext-locale package in the requires array to register it for use across the application. “requires”: [ “ext-locale” ], Once you have registered the package, you need to define the localization language in your app.json file to create a locale setting. “locale”: “es”, To see it in action, build the application and refresh the page to witness all the English values translated into Spanish. sencha app build What is an easy way to do localization without Sencha CMD? To achieve localization without using the Sencha CMD, simply include and link the ExtJS localization file in your HTML file as follows. Localization example Is there RTL support in ExtJS? ExtJS has extensive support for localization. The framework includes over 40 languages from all over the world. Because many languages are written right-to-left, ExtJS has RTL support built-in. Developers can easily enable ExtJS RTL support, allowing you to better accommodate an international user base. How can I enable RTL support using Sencha CMD? To enable RTL support in your Sencha CMD-generated application, you simply need to add Ext.rtl.* in the requires array and set the rtl flag to true as shown in the code below. Ext.define(‘MyApp.view.main.Main’, { extend: ‘Ext.container.Container’, requires: [ ‘Ext.rtl.*’ ], rtl: true, … For further details on locales with RTL and RTL locale override, check out this section in our RTL guide. What is a simple way to enable RTL support without using Sencha CMD? Even if your application does not utilize Sencha CMD you can still make use of localization and enable RTL support in a few simple steps. The first step is to update your HTML file to include and link the RTL framework file such as build/ext-all-rtl.js. Linking the framework file will modify your application to load the RTL-specific library. Linking the framework file is not enough. You also need to include the selected theme’s RTL CSS file such as build/packages/ext-theme-{themename}/build/resources/ext-theme-{themename}-all-rtl.css. Finally, add the rtl: true flag to the viewport. Hello RTL As you can see, due to its easy-to-understand localization framework, […]

Read More