Noutați

How To Solve Issues With Cross Platform Desktop App Development

Over the past couple of years, cross platform desktop app development has been getting a lot of attention. Developers want to build apps that can be used across multiple platforms, like Android, iOS, and Windows. It’s a trend that’s been gaining momentum over the past few years, and there are plenty of tools and frameworks available to help you do this. Many have turned to third-party libraries, tools, and other ready-made solutions to help with their cross platform development needs. However, there is always a possibility for some drawbacks. With this in mind, we’ve decided to put together some tips you can consider for a project involving cross platform desktop app development. First, though, let’s start with the basics. What is cross platform desktop app development? Cross platform desktop app development involves the use of different frameworks and libraries to develop a native app that can be used across multiple platforms. With cross platform native desktop app development, you can develop your app for the Windows, Mac, Linux, and Android platforms all at once. The primary benefit of this is that the code is shared between all of these platforms in a single codebase. This makes it easier to manage your code and save time when you are building your app, as you don’t have to pay for each platform’s native SDK or create a separate version of the app. However, with cross platform native desktop app development comes certain challenges. One main drawback that many developers come across is that they have to sacrifice a lower performance or user experience to compensate for cutting back on time and cost. Still, there are many benefits to using cross platform native desktop app development. By using the right tools, you can get a wider range of users and expand your reach across all the platforms that you support with little fuss. What are the challenges of cross platform desktop app development? When you start building a cross platform native desktop app, there are a few challenges that you should be aware of. Here are some of the most common ones: Errors when transferring codes. Trying to transfer your code to different platforms can cause errors. Sometimes, it may even lead to partial loss of your codes. A code for a certain platform may not always be compatible with another platform. If you’re using a third-party library or app builder software, you need to make sure that it’s compatible with the other platforms. Some libraries may be not as stable as others, which can cause issues when transferring your code to the different platforms. Testing your app on all platforms simultaneously. You’ll need to test your app on all the different platforms at once, which is time consuming and may take up more time than expected. You also have to ensure that everything works correctly before going live with your app on the different platforms, as this can save a lot of time and money in the long run. Non-compatible languages for each platform. Not all languages are compatible with each other, which can cause errors when trying to transfer codes or creating new apps from scratch for each platform individually. The problem is even worse if you’re working with multiple languages simultaneously like JavaScript and Python or Java and C++ at […]

Read More

What Are The Most Popular Tools For Automation Testing?

Using Automation Testing Tools is a perfect way to go about the verification of your product. Most organizations do this often to ensure that their products attain the standard requirement for it. Certain resources are used to carry out testing on a product, known as automation testing tools. Most people who want to succeed in the software business always ensure they develop their products and maintain the standard. Like how technology has changed over the years, testing has also changed. In previous years, testing products are done manually, but now, testing is not only done manually but has more development. Organizations use automated testing to reduce their workload and ensure that they get the right and accurate results with testing. What are the most popular tools for automation testing to support organizations in this matter? Subsequently, we will discuss the most popular automation testing tools. Still, before doing that, we need to know what automated testing is. What is Automated Testing? Automated testing is when one tests software products to know if it meets the required standard. Automated testing tools by Sencha are used to carry out this process. There is no need for human interference with the process [1]. When you carry out Automated testing, it helps you compare the expected and actual results. This makes you know if the product is a success or failure. Another point about automated testing is; that it helps make tests simple. You can always do it at any period you wish. Importance of Automated Testing? A team with many products to develop will certainly not have much time to test products manually. Automation testing helps them save time. Automated testing also helps ensure that you are efficient with product testing through accuracy, making your products get a better result. Manually testing a product can make you get tired and test a product once in a while. But with automated testing, you can test your products regularly. Automated testing helps your team to build their confidence. This makes the products they developed ready for market. It also allows your team to direct their focus to other unfinished projects. What is an Automation Testing Tool? An automation testing tool is a tool that you can use in running tests over your software products. They are tools that replace human interference with automation techniques. They can work across various mobile, web, and desktop platforms. There are types of automated testing tools [2], and they are; Open-source tools Non-production tools Desktop tools Codeless tools Web tools Mobile tools Production tools Hybrid tools What are the Most Popular Tools for Automation Testing? There are tools that clients have rated for excellent usage, and I will share some of these popular tools here. They are; LambdaTest is a tool that is very suitable when it comes to testing web applications and desktops. It is a cloud-based tool that you can use to carry out automated testing on frameworks such as mobiles and browsers. LambdaTest is a tool that helps you reduce the time you put into testing by fast-tracking the process, and it can also help you perform tests simultaneously. Do you need an excellent JavaScript tool for testing? Then LambdaTest is the best stool to use. It works for other programming languages such as Python and Java. […]

Read More

Smoke, mirrors, and scrolling textures: Behind the scenes of TUNIC

To ensure optimal performance, Shouldice used dynamic lighting and Global Illumination (GI) in TUNIC, and carefully considered the light count: “Because deferred rendering isn’t supported with ortho cams, light count was something I needed to keep an eye on. I used precomputed GI to do a lot of the lighting rather than Point lights, and leaned on batching to keep draw calls down.” He used to write shaders by hand, but decided to use Shader Forge’s node-based shaders for TUNIC. “Even though I can write code, I’m a fairly visual person, so it was freeing to be able to see live previews and organize my thoughts spatially,” continues Shouldice. “The node editor clicked with my brain in a really nice way. It’s supremely noodly, and so much fun!” Shouldice also made extensive use of scrolling textures to light up elements of the game world, substantially reducing the complexity of the task while achieving gorgeous (and highly performant) results. Early in the game, TUNIC’s hero opens a golden doorway by interacting with a statue that emits a pulse of light when touched. Shouldice achieves this effect by using a few different components in the Unity Editor and Shader Forge. The initial points of light – known as “starburst” – derive from three animated meshes, each rotating slightly out of sync. A donut-shaped “aura ring” surrounds these meshes, and by projecting a scrolling UV texture along this flattened cylinder, Shouldice makes the texture scroll outward, creating a radial glow. For this effect, UV coordinates are scrolled and multiplied before they’re inverted at the end to create the glow’s white-on-black effect. By applying the scrolling texture to different meshes, Shouldice was able to change the glow’s behavior. In another example, he funnels the texture up a narrow, cone-shaped mesh to create the effect of magical energy coalescing skyward.

Read More

How what we learned at KubeCon EU 2022 will impact our product roadmaps

After two years of only virtual KubeCon events, the GitLab product team was excited to participate in and meet colleagues, partners, and more from our industry at KubeCon EU 2022, held in Valencia, Spain. We were present with four product leaders, a software developer, and a UX researcher. This post summarizes our primary takeaways from the conference, an experience that will affect our roadmaps. We will discuss the following topics: Internal platforms and GitOps Secrets management Infrastructure integrations WebAssembly a.k.a. WASM There were 32 topic types and several 0-day events at KubeCon. Many talks focused on a few tools. Many Cloud Native Computing Foundation (CNCF) projects had their community meetings during these days. Some talks were given IRL, and others were broadcast virtually with live Q&A. There were a variety of topics and approaches. There were many talks about the various aspects of cluster management, too. However, we left this topic out on purpose because at GitLab we want to focus on the software developers and provide one DevOps platform to support their work. Cluster management is one step away from this focus. Still, we noticed some remarkable patterns as highlighted by the four elements of our list. You’re invited! Join us on June 23rd for the GitLab 15 launch event with DevOps guru Gene Kim and several GitLab leaders. They’ll show you what they see for the future of DevOps and The One DevOps Platform. Internal platforms and GitOps Companies want their developers to focus on their core business. They create internal platforms to hide the complexity of Day 0-2 operations from their software engineers and still allow the “shift left” movement of DevOps. These platforms often involve the welding of several tools. Many talks presented how the given team or company approached their platform problem and what tools they used, and one could often feel the 18-month sweat of a whole platform team trying to come up with a solution. These platforms use either a push- or pull-based model for deployments. No single approach is emerging due to legacy applications and different requirements. While there is a definition of GitOps provided by the OpenGitOps initiative, several presenters offered their own definitions, including of pull-based deployments. We fielded a large-scale survey related to secrets at KubeCon, and learned that users would like help with the Pipeline Authoring workflow. Besides the wiring of the tools, the industry is still looking for a unified approach to multi-tenancy (there might not be one), and sometimes integrating security processes seems overly challenging. How does this affect our roadmap? There is a lot of potential in building a platform used as the starting point for internal platforms. Imagine a “tool” that shortens the time required to create an internal platform to days or weeks instead of a whole year. This is the GitLab vision of The One DevOps platform. As a result, we don’t plan any changes in our direction. We will continue investing in the recently started Deployment direction to provide all the building blocks for a platform in a single tool and are already actively looking for integrated experiences across our offering. We’re working on a CI/CD Component Catalog that includes CI templates. This will support the Pipeline Authoring workflow. Secrets management One of the things that often came up in our […]

Read More

A Step-By-Step Guide To Making Mobile Cross Platform Apps

These days, many app developers are looking into building their mobile apps to cater to multiple platforms. It is essential to create an app that will be able to operate on multiple platforms like Android, iOS, Windows and so on. Creating cross platform apps can be a very challenging process, especially for mobile devices, but it can bring many advantages. Despite the challenges, picking the right software development platform, especially one which has a low code ideology such as RAD Studio Delphi, is not an insurmountable hill to climb. The right IDE software mitigates a lot of the difficulty and helps you create apps with the minimum of required effort from you and with the maximum efficiency. Using a highly capable tool such as RAD Studio and the Firemonkey FMX framework for cross platform apps means you can focus on one code base for your app even if it’s going to run on multiple mobile targets such as iOS and Android. This guide will give you some pointers in creating a cross-platform app that will be able to run on multiple platforms. You will also learn how to make your app highly efficient, which is an essential part of mobile app development. Working smarter, not harder is the whole philosophy behind RAD Studio Delphi. Let’s start by discussing what building cross platform apps actually entail. What do we mean by development of cross platform apps? Cross-platform development is a process that will allow you to create an app that will be able to run on multiple platforms. The most common examples of cross-platform apps are mobile apps, which are basically software applications designed to run on mobile devices. This is a direct opposition to proprietary app development which is developed specifically to only run on a single platform. These kinds of apps often use a technology which is supplied by the hardware manufacturer and can lock the developer into that mobile hardware vendor’s ‘ecosystem’ where they provide the development tools, the hardware on which you must develop and even the app store through which you must distribute your app. These vertical development solutions can seem attractive since the vendor often streamlines the process to market – as long as that market is the one they exclusively control. Going down that route can often mean inadvertently creating cross platform apps which cannot actually work on another hardware platform without substantial rewrites, sometimes total re-engineering of the solution. Meanwhile, the idea behind genuine cross-platform development is to save developers a lot of time and effort while providing them with the most options for expansion across different hardware vendors. It will also allow developers to market their apps in a more efficient way, as they can reach out to a wider pool of potential users. Ideally, you can minimize the effort it takes to manage code while simultaneously cutting back on costs, since you’d only need one development team. Picking a tool which maximizes the idea of a single code base for the app, with minimal changes required to target another platform, is the smart choice. What is the secret to efficiently targeting multiple device types with mobile cross platform apps? What’s the secret? Choosing the right cross platform development frameworks. These are the building blocks that will help you develop your app […]

Read More

10 Unsupervised Machine Learning Algorithms: What Are They And How To Create Them

Machine Learning is one of the hottest software development topics right now. The algorithms and techniques which enable machine learning have begun to really mature and have graduated from ‘interesting ideas’ into providing genuine power and permitting capabilities in our apps which can sometimes seem magical just as much as they are useful. Python has very quickly emerged as a de facto language for machine learning. There is rich set of machine learning libraries available for Python providing the ability to do everything from image recognition to complicated scientific analyses. How to use machine learning libraries to Delphi Did you know that it’s simple to use some truly excellent Python libraries to boost your Delphi app development on Windows? All that wonderful array of Python machine learning goodness is also easily available to you as a Delphi programmer. Adding Python to your Delphi code toolbox can enhance your app development by bringing in new capabilities that allow you to provide innovative and powerful solutions to your app’s users, combining the best of Python with the supreme low-code and unparalleled power of native Windows development that Delphi provides. Are you looking for how to build a GUI for a powerful Unsupervised Machine Learning library?  You can build a state-of-the-art unsupervised learning solution with scikit-learn on Delphi. This article will demonstrate how to create a Delphi GUI app dedicated to the scikit-learn library. Watch this video by Jim McKeeth for a thorough explanation of why you can love both Delphi and Python at the same time: What is the scikit-learn machine learning library? scikit-learn logo (source: scikit-learn.org). scikit-learn is an open-source Python machine learning library. scikit-learn has simple and efficient tools for predictive data analysis that are built on top of SciPy, NumPy, and Matplotlib. Support vector machines, random forests, gradient boosting, k-means, and DBSCAN are among the algorithms available in scikit-learn for classification, regression, and clustering. In this article, we will specifically talk about clustering algorithms. What is unsupervised machine learning? Unsupervised learning, also known as unsupervised machine learning, analyzes and clusters unlabeled datasets using machine learning algorithms. Without human intervention, these algorithms uncover hidden patterns or data groupings. Its ability to detect similarities and differences in data makes it an ideal solution for exploratory data analysis, cross-selling strategies, customer segmentation, and image recognition (source: IBM Cloud Education, 2020). What is clustering and how does it relate to machine learning? Clustering is a type of unsupervised learning problem. Cluster analysis is another name for this technique. It is frequently used as a data analysis technique for discovering interesting patterns in data, such as customer groups based on their behavior. There are numerous clustering algorithms available, and there is no single best clustering algorithm for all cases. Instead, it is a good idea to experiment with various clustering algorithms and different configurations for each algorithm. A cluster is frequently a dense area in the feature space where examples from the domain (observations or rows of data) are closer to the cluster than to other clusters. The cluster may have a sample or point feature space as its center (the centroid), as well as a boundary or extent (source: Brownlee, machinelearningmastery.com, 2020). A comparison of the clustering algorithms in scikit-learn (source: scikit-learn.org). What is the difference between supervised and unsupervised machine learning? The following infographic created by AltexSoft may […]

Read More

How To Detect And Extract Text In Images With Amazon Textract

Text is everywhere! Text is not always where we want it, or in the format we need. We often find ourselves needing the text from images. You might have a scanned document containing financial information like an invoice you want to input into an accounts system, or maybe you are building an archive of photographs that you want to index against any text detected? Whatever your use case, if you need to get some text from an image, you can achieve this with ease in Delphi programming software using Amazon Textract using the latest version of Appercept AWS SDK for Delphi. What is Amazon Textract and what does it do? Amazon Textract provides text detection and analysis for image documents. Textract can analyse the relationships between detected text objects and provide information relating to forms, financial, and identity documents. Let’s detect some text… program DetectText; {$APPTYPE CONSOLE} implementation uses AWS.Textract; var Client: ITextractClient; Request: ITextractDetectDocumentTextRequest; Response: ITextractDetectDocumentTextResponse; begin Request := TTextractDetectDocumentTextRequest.Create; Request.Document := TTextractDocument.FromFile(‘C:image.png’); Client := TTextractClient.Create; Response := Client.DetectDocumentText(Request); if Response.IsSuccessful then begin for var LBlock in Response.Blocks do WriteLn(Format(‘Detected %s: %s’, [LBlock.BlockType, LBlock.Text])); end; end. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 program DetectText;   {$APPTYPE CONSOLE}   implementation   uses   AWS.Textract;   var   Client: ITextractClient;   Request: ITextractDetectDocumentTextRequest;   Response: ITextractDetectDocumentTextResponse;   begin   Request := TTextractDetectDocumentTextRequest.Create;   Request.Document := TTextractDocument.FromFile(‘C:image.png’);     Client := TTextractClient.Create;   Response := Client.DetectDocumentText(Request);   if Response.IsSuccessful then   begin     for var LBlock in Response.Blocks do       WriteLn(Format(‘Detected %s: %s’, [LBlock.BlockType, LBlock.Text]));   end; end. Is there an example of using Amazon Textract? To help you experiment and get started, check out the Textract demo in the AWS SDK for Delphi Samples repository. About Appercept AWS SDK for Delphi Appercept AWS SDK for Delphi is available exclusively on GetIt with active Enterprise or Architect subscriptions for Embarcadero Delphi or RAD Studio. You can install the SDK through the GetIt Package Manager within Delphi or RAD Studio if you have an active subscription.

Read More

What Are The Best UI Frameworks For Windows App Development And How To Add The Wow Factor To Them

The recent version of Microsoft Windows brought a vast of important upgrades and changes which also made a huge impact on the entirety of windows app development. When developing a Windows application, one of the first things to consider is the User Interface. There are a great number of UI frameworks to choose from and each comes with its own strengths and weaknesses. In this webinar, Embarcadero MVP Ian Barker will deep dive into some of the best UI frameworks for Windows and the advantage of using them for application development. He will also share some methods of creating the best User Interface possible. The challenges of using Windows 11 and the use of its native Win UI3 Library While the interface of Windows 11 is undeniably appealing, it can also be slightly terrifying for some users. The changes made in Windows 11 are all visually recognizable. One of which is the new centered toolbar. Although the new toolbar is set in the center by default, this can still be configured and placed back on the left side which we are all very familiar with. There is also a new type of Windows behavior known as Windows Snapping that allows you to align your programs up so they are more organized. Windows comes with its own UI library. The newest generation is the Win UI3 which can be used to build production-ready desktop/Win32 Windows apps. Despite being a native GUI library for Windows, Win UI 3 is notably more complex compared to other UI frameworks. If you are looking for Windows 11-friendly UI frameworks that are more manageable, Delphi’s VCL and FireMonkey (FMX) libraries are surely a perfect fit. How to add a “WOW” factor to your VCL and FMX Apps Ian Barker will also discuss how to make the user interface of your VCL or FireMonkey apps more visually appealing. There are cool things you can do with the FireMonkey and with the VCL that can emulate Window’s Fluent UI design system and some of its behaviors. You can also take advantage of third-party suppliers such as the StyleControls VCL which provides the whole set of components allowing you to produce fluent UI interfaces. Skia4Delphi can also turbo-charge your FireMonkey and VCL apps. Skia4Delphi is an open source 2D graphics library that provides common APIs that work across a variety of hardware and software platforms. We can also recall Barker creating a Star Trek-inspired data dashboard using the Skia4Delphi library. To know more about the best UI frameworks for Windows 11 development, feel free to watch the video below.

Read More

Benchmark Study: Which Target Platforms Do Electron And Delphi Support?

Which target platforms do Delphi and Electron support? The “Discovering The Best Cross-Platform Framework Through Benchmarking” whitepaper evaluates two frameworks supporting multi-platform desktop application development: Delphi and Electron. Delphi Delphi, encapsulated in the Rapid Application Development (RAD) Studio IDE, is Embarcadero Technologies’ flagship product. A proprietary version of the Object Pascal language, Delphi features graphical application development with “drag and drop” components, a WYSIWYG viewer for most mobile platforms, and robust style options including platform-standard and unique palettes that provide a fully customized look and feel. Among other features, included libraries provide GUI controls, database access managers, and direct access target platform hardware and platform operating systems. The Delphi FireMonkey (FMX) framework will compile projects to native code for 32-bit and 64-bit Windows, macOS, Android, iOS, and Linux, allowing users to develop and maintain one codebase reaching most of the market. Delphi has been available for over 25 years. Electron Electron is an open-source (MIT License), Chromium-based framework that utilizes web technologies to build desktop applications on Windows, macOS, and Linux. It is developed and maintained by GitHub, a subsidiary of Microsoft. Electron combines the Chromium-based rendering engine with a Node.js server environment. As such, the user interface for an Electron application is available via HTML5 and CSS. Generally, Electron works with most Javascript frameworks such as Angular, Vue.js, and React. The HTML5, CSS, and Javascript-based technologies found in Chromium provide a rich ecosystem of user customization familiar to any web developer. Despite its relatively young age of five years, its community boasts open source packages for database access, operating system interactions, and other common tasks. Benchmark Metrics This post is part of a series of blog posts that look more closely at each of the individual metrics used in the study, and how Delphi and Electron each fared on these metrics. The first can be found here. Download the complete whitepaper here Benchmark Category: Flexibility Framework flexibility was examined qualitatively through research and conversation with experts in Delphi and Electron and sought to analyze the application of each framework to business problems and requirements. Delphi’s major advantage in the flexibility category is its ability to deploy one body of source code to any major desktop or mobile platform as a native binary executable, maximizing application market reach while minimizing maintenance/upgrade headaches due to code duplication. The framework supports projects of every scale from logic controllers for industrial automation to world-wide inventory management and functions within every tier from database-heavy back-ends to client-side services. Finally, Delphi’s standard libraries provide simplified access to most database products , fully support Unicode and other modern standards, and broaden access to operating system functionality on every platform as well as I/O devices and sensors. Electron is an open-source framework targeting all desktop operating systems through its Chromium base. It typically focuses on web-centric, client-side applications but can accomplish middle-tier and database services using runtimes and libraries like node.js and node-postgres. Hardware access and limited operating system interactions are provided by node.js libraries and Electron’s Chromium core ensures compliance with modern Unicode standards. After reviewing both frameworks, Delphi holds the lead in the flexibility category due to its flexible and automated deployment to all major platforms, scalability to every level of development, and visual design system. Electron enjoys a lower barrier-to-entry and more development tool options but requires manual […]

Read More

3 keys to success for product operations

It is official. Product operations is a thing. A quick Google search will pull up a long list of articles singing the praises of everything product operations has to offer, from making product managers more efficient to data collection and synthesis. When I first took on product operations at GitLab, there wasn’t a lot of definition or guidance on the topic. I understood what product operations meant because I’d been “doing it” as an inseparable part of my product management and product leadership roles for some years. But I’d never had the opportunity to focus solely on product operations. As excited as I was, I was also nervous. GitLab was accelerating toward an IPO and both the product management team and the product were in hyper growth mode. And, to boot, the all-remote, cross-functional teams were in motion, sync and async, day and night, all around the globe. So, I reached out to peers who had already started their product operations journey and leveraged the perspective, progress, and learnings they generously shared. And, in doing so, I realized everyone was doing it a bit differently. Now, two and a half years later, product operations is a thing at GitLab. And the most common question I get from peers reaching out to me is: How can I set up product operations for success at my organization? To answer this question, I will assume we all want to be product-led and customer-centered, and “success” would be product operations helping us get there. I’ll also assume we agree with the sentiment that’s evolved defining product operations responsibility to fall into these core areas: tools, data, experimentation, strategy, and trusted advisor. While there is no one formula, I will share three keys that opened doors for product operations to make an impact and grow with GitLab. 1. Empower product operations as its own function, with an equal seat alongside other value-driving functions At GitLab, we run product operations as an independent function under the product umbrella. The direct line of responsibility to the head of all product ensures product operations has awareness, alignment, and accountability to the macro needs of the product and the business. This also allows product operations to maintain a broad and unbiased view, as well as the right level of influence, to develop strategies/tactics serving the product and the business without favor toward any particular group. This Silicon Valley Product Group article by Marty Cagan provides more helpful context on the why of this approach. 2. Make product operations a people-first operation Before product operations can deliver on efficiencies and tools that are useful for the product and the business, product operations must understand all of its internal customers. The first year product operations took shape at GitLab, much of my energy was focused on building relationships, not only with product team members but across the whole organization. Becoming a trusted advisor runs deeper than just delivering data, it’s about sensing pain and building bridges. A product operations team that leads with empathy will elevate the organization rather than just serve the organization. 3. Drive adoption of product operations strategies by providing opportunities for team ownership At GitLab, everyone can contribute. Leveraging this mindset for product operations led to more impactful and better-designed iterations to the problems we were trying […]

Read More