Noutați

Let’s talk about tests!

The Behind the scenes series continues! The next one will happen next Thursday, September 9th, 4PM UTC. You voted for it, and the theme for the next webinar will be Unit Testing and Integration Testing. In the next “Behind the Scenes” session, Wagner Landgraf will give an overview about how testing is implemented in TMS Business framework, how TDD has influenced TMS Aurelius development and show some tools and techniques used for the setting up all tests in the whole product line. Let’s talk about tests: behind the scenes with Wagner Landgraf.  Thursday, September 9th, 4PM UTC. REGISTER NOW for free! Also, don’t forget to subscribe to the Behind the Scenes topic in the Support Center to vote for the subject of upcoming webinars! (*) Photo by Agence Olloweb on Unsplash Wagner R. Landgraf

Read More

What Is It Like To Be A Developer Glenn Dufke?

Hello. This article is part of a 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 heading out to the simply gorgeous country of Denmark to talk to Embarcadero MVP Glenn Dufke. Glenn can often be found fearlessly challenging preconceptions people have of Delphi by expounding the benefits of the language and the way it can solve everyone’s problems. If I wasn’t already a champion of Delphi myself I think Glenn could single-handedly change my mind and get me coding with it! You’ll bump into Glenn at various online events like TCoffeeAndCode as well as infosec forums and an impressive array of other locations. Glenn, thanks for taking part in the interviews 😊 Thanks for inviting me – I’ve been overloaded with work, sorry it took a while! What would be your brief evening news summary of who you are and what you do? I run my own consulting company GlennKonnetk where I provide services in the realm of software development, electronics design for embedded solutions and industrial automation. Which Embarcadero product(s) do you use a) the most b) regularly? Delphi is what I use the most during the day for the things I’m working on. How and/or why did you become a developer? Besides writing software, I also design electronics for embedded and industrial automation setups. I wanted to know how to get things “to work” by being able to write the software too. The challenges are fun and there are many things to think about, plus both knowing the hardware and software part makes it easier to account for the details that makes all the difference in the end. Glenn, hard at work capturing the hearts and minds of developers Do you think you will ever stop being a developer? If so, what would be next? No, I don’t. it is an ever changing field and a lot is constantly happening. However, if I were to switch to something else, that would probably stating a little burger joint, serving the best home made burgers you can get. What made you start using Delphi/C++ Builder? It was kind of a coincidence. When I initially got into a bit of programming, before I had a much clearer understanding of what it was all about, happened on the Commodore 64 with BASIC (Actually Microsoft BASIC 2.0 which Commodore licensed) when I was around 7 years old. Around 9, I tried HiSoft Pascal on the Amiga 500 I inherited from my gramps. Still I didn’t fully get far since I didn’t have manuals or anything to guide me. When I became a bit older, around 11, I was so intrigued about what made a PC work and how did software get into the machine to make it work. Fortunately one of my brother’s friends had just graduated a computer science program where they were taught Delphi (around 2001) and he got me a copy of the trial version of Delphi 6, not long after I was gifted with a copy of Delphi 7 Enterprise. Since we didn’t have any internet at home at the time (56k were common, ISDN for those who could afford and ADSL […]

Read More

How To Make A Native Cross-Platform App In 30 Seconds

In the last few years, companies are increasingly seeking the most cost-effective ways to optimize the way they make powerful applications. Cost-effective demands high productivity and a fast app development environment. Moreover, creating Android, iOS, macOS, Windows, and Linux applications within a single code base is helpful to get into the market in the shortest possible time and target a potential audience of millions of users. The Delphi programming language and FireMonkey native and cross-platform framework is absolutely designed to make this kind of thing happen. We never forget, the “RAD” in “RAD Studio” is an acronym for “rapid application development” and always has been. If you have spent time looking through cross-platform development tools, most of them are mobile-centric and do not target desktop audiences. For enterprises, being able to target both mobile and desktop environments is like taking control over everything. But, everything comes with ups and downs. Designing for a mobile framework which is then reused to create a desktop app often results in applications which do not behave like a real native app for the desktop. If we look closer, the fundamental problem is that the native UI controls behave differently depending on which platform they is hosting them. Things that work quite naturally on a mobile platform, such a slide or three-finger swipe, might work with a double-click, right-click or even key combination on the desktop. If you’ve designed your interface mobile-first and focusing on the slide/swipe interaction it’s going to look very broken or act awkwardly when it translates into the desktop click/right-click/keypress user interface interactivity metaphor. Cross-Platform Tools A substantial number of programmers start with web development and, typically, those developers know JavaScript. So, using web technologies to create cross-platform applications is naturally much easier for web developers. Sometimes it is also better for companies that they do not need time to teach other technologies to get into the mobile market. But, FireMonkey (FMX) is by far one of the best “Write Once, Deploy Everywhere” software development systems on the market. The impressive architecture of the framework is leading success stories and businesses around the globe. FireMonkey can tap into the GPU to deal with user interface and work with 3D graphics. The 3D graphics of FMX are built into its very core, that is why all visual components can be used in the 3D space. Moreover, it can also get into the underlying operating system so that you can achieve high performance and platform look and feel. Furthermore, one of the best features of the FMX is that it is easy to access underlying operating system features and device functionalities through just interfaces. The high level of abstractions in the FMX framework provides fast accessibility for developers. To put it in a nutshell, Delphi and C++ Builder with FireMonkey allows you to have a single codebase and yet compile for all the major platforms in seconds. FMX is not limited to mobile and desktop platforms, it offers a wide range of support for IoT, Embedded development and also works with smartwatches. How to create a fully functional native cross-platform app in under 30 seconds with a low-code experience? FireMonkey App Low-Code Wizard – is a tool to create a new fully-functional Delphi mobile application with multiple screens using the Low Code Wizard. Once […]

Read More

How To Make A Powerful Low Code Currency Conversion App

Wouldn’t it be nice to have real-time and historical currency information for your business and be able to instantly retrieve up-to-date exchange rate data for more than 168 world currencies? The currencylayer API is capable of delivering accurate exchange rate with data updates ranging from every 60 minutes down to stunning 60 seconds. 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 currencylayer API API and retrieve a JSON format response for currency exchange rates in real-time. 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 Currencylayer API? Make sure you refer to Currencylayer API website (https://Currencylayer.com/) and sign up 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 Currencylayer API endpoints? Now all we need to do is to call the API base URL (http://api.currencylayer.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 endpoint we choose to call. One can do that using REST Client libraries available on several programming languages. Currencylayer offers five API endpoints to choose from live endpoint: request the most recent exchange rate data historical endpoint: request historical rates for a specific day convert endpoint: convert any amount from one currency to another using real-time exchange rates timeframe endpoint: request exchange rates for a specific period of time change endpoint: request any currency’s change parameters (margin and percentage), optionally between two specified dates Our demo will focus on the Live 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 Currencylayer Quickstart guide (https://currencylayer.com/quickstart) http://api.currencylayer.com/live ? access_key = YOUR_ACCESS_KEY & source = GBP & currencies = USD,AUD,CAD,PLN,MXN & format = 1 // more parameters available please refer to the API Documentation (https://currencylayer.com/documentation) http://api.currencylayer.com/live ? access_key = YOUR_ACCESS_KEY & source = GBP & currencies = USD,AUD,CAD,PLN,MXN & format = 1 // more parameters available please refer to the API Documentation (https://currencylayer.com/documentation) What does the Currencylayer API endpoint return? After the call the main results will be as shown below. The currencylayer API’s live endpoint is used to get the latest rates for all available or a specific set of currencies. { “success”: true, “terms”: “https://currencylayer.com/terms”, “privacy”: “https://currencylayer.com/privacy”, “timestamp”: 1630324396, “source”: “USD”, “quotes”: { “USDUSD”: 1, “USDAUD”: 1.370567, “USDCAD”: 1.260385, “USDPLN”: 3.87164, “USDMXN”: 20.2166 } { “success”: true, “terms”: “https://currencylayer.com/terms”, “privacy”: “https://currencylayer.com/privacy”, “timestamp”: 1630324396, “source”: “USD”, “quotes”: { “USDUSD”: 1, “USDAUD”: 1.370567, “USDCAD”: 1.260385, “USDPLN”: 3.87164, “USDMXN”: 20.2166 } How do I connect my Delphi applications to Currencylayer API? Once you have followed basic steps to set up the Currencylayer API we need to make sure we are able to connect and […]

Read More

A Guide To Migrating From Legacy .NET Framework To Delphi

The application migration process can be easy or tedious, depending on the technology you are migrating. Moreover, migrating legacy projects to a new development environment might take a vast amount of time because of new software from scratch – re-engineering. Application migration is a broad term for the technological realm. Application migration can be deploying the app to another cloud service provider. Or it can be migration from one technology to another, for instance, .NET to Delphi FireMonkey. It can be migration from legacy to a whole new up-to-date technology from scratch. Moreover, this can be the migration of databases and the migration of platforms to one another. How to know when there is a need for migration? Most of us know that if the UI is not modern and UI controls are like the 2000s, it needs migration to a newer version of the technology.  If your app has problems with new operating systems and new architectures and can not work smoothly, therefore there is a need for migration. If there is no official support for the technology that you are utilizing, you just need to migrate to a newer version or other modern technology on the market. Source: Microsoft Insider How to prevent migration issues? Problems arise all the time – there are always risks of migration for any technology. The migrated source code can work fine as it was, but if there are no good architecture techniques, you still have the same old code. So, having a good and enough knowledge about the technology and being able to apply new modern patterns can be a real and worth migration. Moreover, you also need to think about the components and libraries that you have used in your previous project. If there is no alternative to those libraries you need to spend more time to develop them or port them to a newer version. Why migrate to Delphi? Delphi is one of the market-leading rapid application development environments. You can build native and cross-platform applications several times faster.  Single Code Base for Android, iOS, macOS, Windows, and Linux – Even you can use that logic in web apps using 3rd party tools with Delphi. Cloud aware and a wide range of database components Responsive UI and fast prototyping for mobile apps Enormous component set from hundreds of component creators  Cross-Platform Low Code Wizard to create fully functional apps in under 30 seconds How does migration offer the opportunity to cut dead features? Since you are thinking about migration, you perform business analysis and create new cases and remove unneeded code in your code.  While re-writing and refactoring, you can achieve neat code and even make code work faster by giving tweaks. EmbarcaderoAcademy How to migrate from .NET to Native and Cross-Platform Delphi FireMonkey Since the designer of the C# and Object Pascal is the same distinguished engineer, the languages are similar in several ways. But there are some syntax differences. To be able to successfully re-write in Object Pascal – check out the Object Pascal Handbook by Marco Cantù. From the Delphi language version 10.3, Delphi allows more flexibility in the declaration of local variables and type inference for inlined variables. This gives more flexibility when migrating. Furthermore, if you are utilizing RESTful web services in your project, there […]

Read More

Supercharge Your JavaScript Mobile Apps With Touch

Touchscreens are available on a variety of devices, ranging from smartphones to tablets. They have taken the way we interact with and design our applications to a whole new level. People love to use their phones, tablets and other touch devices. As a result, developers are giving more thought to building quality applications for touch screen devices — it is now a top priority for responsive UX design. A large part of touch UX design is ensuring the apps you design respond intuitively to your user’s needs. One of the best ways to supercharge your Ext JS cross-platform web applications is with Sencha Touch effectively. In this post, we will show how. What is Sencha Touch? Sencha Touch is a JavaScript framework designed for developing applications for mobile devices. It can be used to develop data-intensive web apps for a wide spectrum of platforms including touchscreen laptops, smartphones, and tablets. More importantly, It helps you to develop mobile applications for both Android and iOS easily while maintaining a native look and feel. Once a stand-alone product, Sencha Touch is no longer supported on its own. Instead, its core functionality has merged with Ext JS, which provides you with an even more powerful suite of tools to conveniently develop all of your cross-platform mobile and web applications. How to implement touchscreen support on Ext JS? Implementing Touch is even easier now that it is a part of the Ext JS JavaScript framework for smartphones, tablets, and touchscreen laptops. More than ever, the applications you build with ExtJS run seamlessly a variety of devices — all with little or no modification. Here are three ways to implement touchscreen support: Event Normalization The first way to implement Touch on a device using Ext JS is Event Normalization. Event Normalization refers to the process of translating simple mouse events to their equivalent touch and pointer events. Simply put, it enables your Ext JS application to run flawlessly on touchscreen devices. Here is how it works: If your code requests a listener for a mouse event, Ext JS attaches an equivalent touch or pointer event to the request. For example, here is a scenario where the application attempts to attach a mousedown listener with the following code: myElement.on(‘mousedown’, someFunction); If the device supports touchscreen events, the event system translates mousedown to touchstart: myElement.on(‘touchstart’, someFunction); In cases where your devices support pointer-events, the event system translates mousedown to pointerdown: myElement.on(‘pointerdown’, someFunction); As you can see, you can implement touchscreen support in the form of Event Normalization for your Ext JS web applications is very easy. There is no complexity and very little code you need to write to make it work. Gesture System Gesture systems are another way to implement touchscreen support in ExtJS. From a browser’s perspective, there are three types of events: touch, pointer, and mouse. Upon interpreting their sequence and timing, Ext JS can synthesize more complex events, like drag, swipe, and tap. To enable your Ext JS application to listen for specific gesture events like longpress, you just need to use this single line: Ext.get(‘myElement’).on(‘longpress’, handlerFunction); Origionally, Sencha Touch was specifically designed for touch events. Now, however, Ext JS offers full support for pointer and mouse events using the Gesture System. Gestures respond to any type of input –they can be triggered […]

Read More

How To Make A Native Cross-Platform Apps In 30 Seconds

In the last few years, companies are increasingly seeking the most cost-effective ways to optimize the way they make powerful applications. Cost-effective demands high productivity and a fast app development environment. Moreover, creating Android, iOS, macOS, Windows, and Linux applications within a single code base is helpful to get into the market in the shortest possible time and target a potential audience of millions of users. The Delphi programming language and FireMonkey native and cross-platform framework is absolutely designed to make this kind of thing happen. We never forget, the “RAD” in “RAD Studio” is an acronym for “rapid application development” and always has been. If you have spent time looking through cross-platform development tools, most of them are mobile-centric and do not target desktop audiences. For enterprises, being able to target both mobile and desktop environments is like taking control over everything. But, everything comes with ups and downs. Designing for a mobile framework which is then reused to create a desktop app often results in applications which do not behave like a real native app for the desktop. If we look closer, the fundamental problem is that the native UI controls behave differently depending on which platform they is hosting them. Things that work quite naturally on a mobile platform, such a slide or three-finger swipe, might work with a double-click, right-click or even key combination on the desktop. If you’ve designed your interface mobile-first and focusing on the slide/swipe interaction it’s going to look very broken or act awkwardly when it translates into the desktop click/right-click/keypress user interface interactivity metaphor. Cross-Platform Tools A substantial number of programmers start with web development and, typically, those developers know JavaScript. So, using web technologies to create cross-platform applications is naturally much easier for web developers. Sometimes it is also better for companies that they do not need time to teach other technologies to get into the mobile market. But, FireMonkey (FMX) is by far one of the best “Write Once, Deploy Everywhere” software development systems on the market. The impressive architecture of the framework is leading success stories and businesses around the globe. FireMonkey can tap into the GPU to deal with user interface and work with 3D graphics. The 3D graphics of FMX are built into its very core, that is why all visual components can be used in the 3D space. Moreover, it can also get into the underlying operating system so that you can achieve high performance and platform look and feel. Furthermore, one of the best features of the FMX is that it is easy to access underlying operating system features and device functionalities through just interfaces. The high level of abstractions in the FMX framework provides fast accessibility for developers. To put it in a nutshell, Delphi and C++ Builder with FireMonkey allows you to have a single codebase and yet compile for all the major platforms in seconds. FMX is not limited to mobile and desktop platforms, it offers a wide range of support for IoT, Embedded development and also works with smartwatches. How to create a fully functional native cross-platform app in under 30 seconds with a low-code experience? FireMonkey App Low-Code Wizard – is a tool to create a new fully-functional Delphi mobile application with multiple screens using the Low Code Wizard. Once […]

Read More

What Is It Like To Be A Developer Frank Lauter?

Hello. This article is part of a 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 German developer and Embarcadero MVP Frank Lauter. Frank has been a developer for 39 years. He has his own company which sells their own application and have done so for 35 years. He says “I’m, of course a big Delphi fan and I’m using Delphi and Turbo Pascal since version 1.0”. Frank is one of a handful of developers who chats with me fairly regularly on Skype where we swap programming notes, developer gossip and nerdy Star Trek kind of stuff. Hey Frank, thanks for doing the interview, I really appreciate it. You’re welcome! How and/or why did you become a developer? This was the natural progression. Do you think you will ever stop being a developer? If so, what would be next? Never! What made you start using Delphi/C++ Builder? Pascal was the third language I’ve learned, first was Z80 Asm, then BASIC and UCSD-Pascal. So, Turbo Pascal 1.0 was the next way to go on a non-Apple Hardware. The next stage was Delphi. If you could give some advice to a student who is considering a career as a software developer, what would it be? Don’t listen to other people, you have to decide for yourself what is best for you. You don’t have to follow every new trend, just because something is new doesn’t necessarily make it better. Do you want to use a programming language that is supposedly the most widely used, or a language where there are always openings? Tabs… or spaces? Spaces – Tabs are horrible… I don’t agree with Richard. What’s the best day you ever had as a developer? When I reached 1000 customers. What’s the worst thing about being a developer? Frank knows EVERYBODY from the Delphi community! Here he is (left) with David Millington No life! What’s the coolest development tip you know? Threads are your friends. Work from home, work from an office, work in an open plan / shared space? What do you prefer and why? Do you get to choose? I would really like to try to work in a google -like-office space. But I’m in home office since more than 10 years. Tell us something interesting we don’t know. I don’t know what you don’t know. [After Frank’s answer I changed this question to “tell us something interesting you think we might not know”. You can always trust a good developer to be brutally correct about questions and answers! 😂 – IanB] If you could wave a “fix the tech industry” magic wand what would you change? I would remove Java and Python from this world and educate all the Python and Java developers that there is hope at the end of the tunnel, and the name is “Delphi”. Have you ever met any famous/well known tech figures? Who was it? How did it go? David-I – One sentence from him will always remain in my memory: “We are developers, we rule the world” If you could convince someone to consider Delphi or C++ Builder what would your method be, how would […]

Read More

Sencha 2021 / 2022 Roadmap — August Update

In this Sencha roadmap post, you will find a detailed summary of what we’ve planned for the near future. The product team interacts with customers on an everyday basis. Your feedback plays a significant role in driving our overall product direction. Before we get to the details of our updated roadmap, we wanted to recap what we’ve delivered in recent months.   Recent Releases 7.4 Release In May 2021, we released Sencha Ext JS 7.4, and the release was features-focused, addressing some of the customer requests across the modern and classic toolkits. Shortly after the initial 7.4 release, we released ExtReact, ExtAngular, and ExtWebComponents 7.4. Key 7.4 features include: Multi-level Grouping The MultiGrouping grid feature allows the Grid Panel to display the Store data grouped by multiple groupers. Multi-level Grouping Menu Options for Multi-level grouping   Grouping Panel  This plugin lets your end-users drag and drop grid columns to the grouping panel section visible above the grid panel. The user can move the dimensions in the grouping panel in which order they want. Grouping Panel Options for Grouping Panel – Classic   Summaries for groups and total Quickly define functions for aggregation such as sum, min, max count, and more per column. Filterbar This classic and modern toolkit plugin will add a docked bar under the grid headers, and depending on the grid columns configuration, the user will add filter fields. GXT 4.1.0   In February 2021, we announced the availability of a GXT 4.1.0 software release for our customers on maintenance. This release addresses more customer-reported tickets, dependency upgrades, and more. The release is available for customers from the Sencha support portal. Key features included in GXT 4.1.0: GXT support for GWT 2.9.0 GXT should support Java 11 version Fix Archetypes Maven migration from Artifactory to Sencha MyGet Sencha Test 2.4   Since the release of WebTestIt, we’ve received some questions from Sencha Test customers. We don’t have any plans to replace Sencha Test with WebTestIt. The two products will coexist. WebTestIt is used to serve the broader non-Ext JS test automation ecosystem. It isn’t tied with apps built with Ext JS and can test apps built with any framework (React, Angular, etc.).  Recently we released Sencha Test 2.4, which is more focused on keeping it up to date with its dependencies.  Key features included in Sencha Test 2.4 Sencha Test Studio has been upgraded to Electron 11 Sencha Test included Chrome drivers have been updated to 86-90 The Generic Web Driver has been fixed If there are specific features you would like to see added to Sencha Test, please don’t hesitate to reach out to Sencha product management.   Sencha GRUI High-performance, feature-rich grid for react applications GRUI by Sencha is a perfect modern enterprise-grade grid solution for React UI that comes with 100+ unique data grid features. With GRUI, we have re-built the Ext JS grid from the ground up to use modern JavaScript and a whole new architecture that will deliver all the same great features and even better performance in an easy-to-use React API. Key features included in GRUI: Virtual Columns Infinite Scrolling Slider Paging Toolbar Column Drag and Drop Column Editors Click here to Experience an interactive demo of ‘Why use GRUI by Sencha?’ We are excited to receive your feedback on the latest […]

Read More

The Future Of Accessibility Is Desktop First

The advancement of technology over the years has made life more comfortable. Arguably, if we’re to have a truly inclusive society, one of technology’s priorities should be eliminating the lines of race, gender, ability, amongst others.  The same goes for application development. To get your products or services to the largest possible target audience, you must eliminate all usage barriers. This is where accessibility plays an important role.  With the mass adoption of mobile devices, many companies’ focus has shifted towards developing mobile-first applications, when, perhaps, the key to unlocking the treasure pot is accessibility-first. Here, your applications would not only be available to mobile users but to everyone that requires your products or services.  Mobility is not a condition for accessibility. If you’re to follow the accessibility-first initiative, you must aim for desktop-first application development. This is because accessibility support on desktops, especially in native desktop app development platforms like Delphi, is well established. Therefore, not only should the desktop be first, but accessibility should be first and is with native desktop apps! Read on to find out more on why desktop-first rules accessibility. Or you can dive into our Desktop First UX Summit to learn more about building desktop-first applications. What Is Accessibility? Accessibility refers to making your application suitable for use by everyone, including people with disabilities – for example, impaired vision, hearing, cognition, and other ways in which a user may be differently-abled. The world is filled with people of varying physical abilities and sensory challenges. In fact, according to a CNET article, at least 15% of the world’s population suffers from a disability. The Center for Disease Control (CDC) also reports that 25% of Americans are considered disabled;  in other words, one in every four Americans. Of this number of people affected by disability in the United States, the largest group are blind or suffering from a form of visual impairment, or deaf, or hearing impaired. Other challenges included those who suffer from mental disabilities or difficulties with either speech, mobility, or cognition.  Because of these individuals, the Americans with Disabilities Act (ADA) was put in place to ensure that companies offer general application accessibility. With most people still forced to stay indoors in some parts of the world due to the Covid-19 pandemic, accessibility has never been more imperative.  To this end, numerous desktop tools make it easier to access data and navigate through web and native applications. Some of which include; Voice commands Screen readers Alternative or specialized keyboards  Trackpads and other adaptive pointing devices Screen magnifiers Eye-tracking tools.  It’s clear from this list that all these tools have something in common; while voice command is more common on mobile devices, they’re all easier to use and implement on desktop than on mobile devices with a greater variety of vendors from a broad selection of vendors. On the desktop, users are less constrained by the operating system and, in particular, the hardware vendor when reviewing options for assistive technologies.  Desktop Accessibility Features All standard desktop applications, for example, mail app, internet browsers, office applications such as spreadsheets and word processors, photo manipulation software, and so on, are conscious of and are maximizing accessibility today to ensure their widest possible adoption. This has benefits not just for disabled users but any user.  Here are […]

Read More