How are multi-platform applications developed?

I was wondering how multi-platform applications are being developed. Applications such as Microsoft Office for MAC / Windows, FireFox for MAC / Windows / Linux, etc.

If they need to code for different platforms, then it's hard to manage, and there are many other difficulties.

Q: How do development teams manage development complexity across multiple platforms?

+3
source share
7 answers

Microsoft Office is not a multi-platform application. If you have ever used the Mac version that you know. The latest multi-platform version of Office was the infamous version of Office 6.0 back in 1998. It so happened that users moaned about their appearance and denounced the “porting” mentality.

The Mac version of Office is not only written by another team, but also written by a completely different department: Mac Business Unit, also known as MacBU. Different department heads, different managers, and I believe that different sellers and marketing specialists, too.

This is one way to do this. Also known as the “right path” among Mac users.

, Microsoft Mac ( Linux). - - GUI, wxWidgets QT GTK. , C , , . , POSIX -. , , Mac (, MS Office 6.0).

- . , GUI ( ). MVC - . ( #define different build script/makefiles) View Controller MVC. , Google Chrome. Mac Mac, Windows/Linux Skia. Chrome WebKit V8, -.

+6

, , , . , :

  • - , Java,.NET .

  • - (, QT), .

  • C ++ . №2, , - .

+1

++, , #IFDEF WIN32 . -, -. , Hudson, , .

GUI - , QT, . gui , , .

, !

0

- . , ++, boost ( , ..), . , .net(), - .net run-time ( ) Mono ( Linux).

, , . , ++, , . - - , WxWidgets Qt.

- .

0

- / . C ++ C , , .

(, /, , , ..) API , : .

( -) , / .

0

: ?

A: .

0

One approach is to have a separate class for each particular platform and to have all the classes needed for a particular platform compiled together. This way the code is cleaner and it also avoids unnecessary abstraction. The following is an example of “Loading XML Data in MySQL or NoSQL.” Blue is for NoSQL and pink is for SQL, khaki is for general code, and gray is for language support.

0
source

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


All Articles