When developing for different platforms individually, does anyone recommend this?

I know that I recommend several cross-platform libraries.

However, are there any advantages to processing each platform separately for your product?

Yes, there will be some basic libraries used on all platforms, but the user interface and some other things will be different on each platform.

I have no restrictions on the fact that the product must be 100% the same on each platform.

Mac, Linux, and Windows are target platforms.

Heavy win32 API, MFC is already used for the Windows version.

The reason I'm not completely cross-platform libraries is because I feel the final product does a bit of work trying to generalize it to all platforms.

+4
source share
6 answers

I would say that the benefits of individual development for each platform:

- native appearance

- platform knowledge acquired by your developers

-... I have no ideas

Seriously, the cost of developing and maintaining 3 separate copies of your application can be huge if you are not careful.

If this is just the GUI code that you are worried about, by all means allocate part of the GUI for development efforts on the platform, but you will not regret that general code such as "business logic" will not be distributed.

And given that keeping your GUI separate from your logic as a rule is considered a good idea, it would force your developers to maintain this separation when it is inevitably tempting to put β€œa little bit” of business logic at the presentation level.

+14
source

I see the benefits as

  • the ability to get your own behavior on all your platforms, which is good for end users

Risks associated with

  • Ultimately, you can encode three applications instead of one with a few differences (i.e. it's easier to let in and make X different!)
  • You will create a slight incompatibility between different versions of the OS without noticing it.
  • The cost of maintenance will suffer in proportion to the amount of your code.

Thus, taking into account the risks, you can develop good applications for your own applications, with the largest common core (resisting the temptation of risk 1), a large set of integrated tests for all platforms (minimizing risk 2) and designing to reduce the amount of code necessary to get your own behavior (taking care of risk 3)

+2
source

I cannot deny that this is attractive, but it certainly raises the question of the middle. Obviously, you will share some internal code, but how much can you share and what will you use in the user interface both in terms of design and in the code?

I think this is an individual problem. This is usually probably not worth it, but some specific applications on some specific platforms should focus on the features of this operating system.

+1
source

Yes, cross-platform user interface libraries will always make your program look and / or act a little "weird" on at least one platform.

If you have a good separation between the UI code and the internal components, it is not so difficult to reuse the non-user interface and create an optimized user interface for each platform. Many high-end cross-platform applications are produced this way.

+1
source

It also depends on how different your platforms are, and whether all the features on one platform on another are available. I am developing tools that have versions for Win32, Windows CE and mobile devices, as well as various embedded platforms. Some aspects of the product simply do not apply to platforms that do not have the appropriate equipment. For example, I am currently working on a [link text] field-based land use product 1 that works with various measuring devices, such as GPS and Total stations, using various communication tools such as bluetooth, RS232 and radio modems, on a wide range platforms. The specific version I'm working on will be placed on board on a measuring device with a relatively small screen and keyboard, as well as very limited memory and memory. It makes no sense to include functionality related to other devices, and it is very useful for the user to simplify and simplify the interface as much as possible.

Optimized user interfaces, small executables, and zero virus portability are still paramount in some domains. Many common sources for sure, but also many targeted sources and conditional compilation.

+1
source

For client programs (i.e. not for web server programs), it’s quite difficult to find good Mac and Linux developers, and it’s not very easy to find good Windows developers.

The more platform-independent code you have, the easier and faster it will be to execute it on all three platforms.

It will be expensive and risky to maintain three codebases. Your competitor, who uses cross-platform tools, will beat you to the market every time.

0
source

Source: https://habr.com/ru/post/1277306/


All Articles