Do you need a new application but don't know whether a web or desktop option is better? Want to know which is more beneficial and why it's worth investing in a desktop solution? In this article, we will answer 8 questions to help you decide if you really need a desktop app or if the web version will be more profitable for you.
Web or Desktop: Comparing Technologies
Nowadays, most of the user's needs are fully satisfied by web technologies. Working "in the cloud" allows to access an app from any device. You are now independent of the operating system and a certain workplace. Nevertheless, building desktop applications don't lose their relevance. This can be due to data protection policies, the need to use more power, and other reasons.
"Cloud" solutions
- Universal and simple. You can install a client program or work right on your browser. In most cases, you don't have to worry about screen size, operating system, or computer hardware.
- Convenient for sharing. Databases are located on remote servers, and many users can access it simultaneously. Actualization is performed in real-time.
But any browser app is somewhat sensitive in terms of security. In addition, its work is slowed down significantly because of the need to process large amounts of data on remote servers.
Desktop applications
- They don't depend on network connections. Standalone operation is a big plus in many situations.
- They can process information faster (if there is enough spare capacity). There is no need to upload data to a remote server and then download it on the computer. This may be crucial when working with graphic files, processing audio or video, etc.
- They provide a high level of security and confidentiality.
On the other hand, it limits the possibilities of collaborative work. In addition, the app must be pre-installed for later use.
What Questions to Ask Before Creating Desktop Applications
Some of the questions below are general and suitable for both developing and purchasing a ready-made solution. Others are about interaction with developers and the legal and financial side of the issue.
1. How will the desktop app benefit you and your business?
It's the first and most obvious question to help you determine if you really need a desktop app.
The most common reasons for choosing software products for a computer are the following:
- The software needs to interact with the external equipment to work. This can be printers, CNC machines, scanners, and other equipment. Web applications can gain similar access as well, but the capabilities are limited. Plus, it's not always possible to provide the right level of interaction.
- Protection and confidentiality must be at the highest level. When working with local apps, you don't have to connect the computer to the network at all, or you can only use the internal local network. It's impossible to steal data from a device that is not connected to the network without involving the user of that device.
- You will need to use UX or UI, which are difficult to implement with web technologies.
- The solution of the tasks requires large computing power of the central processor or graphic adapter.
- You will also need a large volume of RAM and other hardware resources, including large screens, special input-output conditions, etc.
- You plan to use the app off the Internet.
If you have found your case in the list above, you really need to build desktop applications. And you can go straight to choosing the platform and other issues related to the implementation of your task. Otherwise, you should re-think this idea, examine the pros and cons from a user and financial point of view. These are the questions we will discuss next.
2.Who will use the app?
Any software product is created for users. People will buy and use it only if they are comfortable working in the system.
Study your future users, determine their preferences and important requirements for software products. Consider which option - a web app or a desktop app - will better solve the tasks at hand.
3. SAAS or Standalone?
In most cases, application development involves making a profit on the sale of a product. And there are two fundamentally different approaches:
- SAAS means "cloud" solutions, to which users have access on a subscription basis. In this case, technical support and almost all modifications are made by the development team. This payment scheme allows the developers to get a steady income. Users pay rather small amounts of money regularly and can at any time cancel their subscription. Of course, we are talking about a web app here.
- Standalone is the sale of a "boxed" version of the product. The users pay for the product once and then install it on their servers or local desktops. This approach is perfect for desktop apps.
You should study the pros and cons of each option, think about how it will combine with the requirements for hardware resources, privacy, and user convenience.
4. How to choose the right platform?
Before you start development, you need to decide on the platform the app will run on. This can be Windows, Mac, or Linux.
If you want to create a unique solution for a particular category of users, for example, a product for a bank or a manufacturing company, you should study the habits of users and the security requirements of the company. Depending on this, you can choose an appropriate platform.
In case you want to create a software product for further sale and mass use, you should learn about cross-platform development possibilities. If this way is possible, your audience will noticeably increase.
5. What tools and frameworks to use?
Depending on your choice of an operating system, you can use different tools, programming languages, and frameworks. Each solution has its pros and cons. Choose them having the specific task in mind.
The most common solutions:
- Desktop apps for Windows usually use Microsoft Virtual Studio, and often .NET. For this operating system, developers most often write in C++, C#, Visual Basic, Python.
- Developing for MacOs involves the use of Cocoa and Xcode (for most apps). The most popular programming languages are Ruby, Python, Perl, and C++.
- The Linux operating system involves the use of Qt Creator and the language frameworks C + +/Qt.
In cross-platform development, there can be many options for languages and frameworks with the most popular being C ++/Qt.
6. Will the app work with complex operations?
You should understand the complexity of the calculations and operations for the app in advance. The future architecture depends on it. Simple solutions can work in a single thread. For complex operations, you better think in advance about the multi-threaded architecture of the desktop app. Thus, several operations will be run simultaneously.
With this approach, a single-processor system will be able to handle user input and perform tasks in the background at the same time.
If multiple cores and processors are available for operation, a multi-threaded architecture will help increase the work of desktop applications significantly. Instead of queuing up 100 operations for a single processor, you can distribute them evenly, for example, 25 per 4 cores.
7. How do you plan to distribute the software product?
You can sell or offer for download a ready-made solution with the help of your website, various platforms, or using the App Store or the Windows Store. You should think of methods of distribution in advance.
First, you should take into account the rules of the platform on which the app will be installed. Each of these platforms has its own limitations. If your product tries to access a library or other resource without permission, the operating system may block it and mark it as potentially harmful software. This can push a lot of users away.
To add a desktop app to the app stores, you will have to follow their rules. Study in advance the requirements of the chosen platform and take them into account during development.
8. Will you be able to deal with licensing issues?
If you use third-party frameworks, libraries, or any other tools, you should make sure in advance that there will be no licensing issues.
Imagine you have a ready-to-use desktop app, but the program accesses an unlicensed library. It's okay if that library is free and open source. Otherwise, you will have to urgently deal with the license issue, which always means more time and money. And if this route proves to be unavailable or too complicated, you will have to make changes to the app itself: change the library or even develop your own library, which also means spending more money.
Conclusions
So, you know the answers to all the questions and have decided to build desktop applications. Your project is likely to involve complex calculations, work with external equipment, and a high degree of confidentiality. You should take all this into account when setting the task for developers and building the work strategy.
Keep in mind the most important questions:
- Who are your users and what are their needs.
- What platform the application will run on.
- What tools you want to use: languages, frameworks, etc.
- What the architecture of the desktop app should be.
- What libraries and other external resources the product will interact with.
With this information, you can make your own work plan or contact a third-party developer. In the latter case, a representative of the company will certainly ask you some questions during the discussion stage of the project. The specialists can make technical decisions on their own.