preface

Over the years, with the development of mobile applications, a large number of Internet companies have been born, and the competition is also quite fierce. In order to save costs, rapid development and break the barrier of Android and ios requiring a set of code, cross-platform development technology emerged at the right moment.

Cross-platform development frameworks have also been evolving, from Cordova to React Native and Flutter. After years of development, various technologies have been gradually improved. Therefore, we can consider whether to choose cross-platform development based on the following advantages and disadvantages.

Advantages: (1) Share business logic, write business logic once, run on any platform. (2) the need to learn a language, if you are a developer for multiple platforms, so learning a language (or a set of language (usually is a programming language, build script language and user interface markup language), more easily than two sets of the same team working on the two applications, it is a big job, a team funds cheaper, Make project management easier and more efficient. Knowledge is easier to share among teams, and members of the Android team can help the iOS team, and vice versa, because there is no Android team, there is no iOS team, there is only one team. (3) Share unit tests. If you have unit tests, the cross-platform code base can also share unit tests, which means less time spent writing tests. (4) The development cycle is short, the effect can be seen in a short time, there is no need to waste time on it. Disadvantages: (1) Performance, native cross-platform code is translated into bytecode or native machine code, so native performance can theoretically be achieved, but there are often various limitations. (2) It is difficult to debug. (3) Update and upgrade delays. Whenever new updates are released for the mobile operating system, native apps can seamlessly integrate these updates. In the case of hybrid apps, developers have to rely on third party support, which also takes time and money.

Conclusion: Given the above analysis, if the budget is adequate and the project is complex, then native development can be used and the user experience is relatively good. Instead, use cross-platform development and see how the project works. Cross-platform is a very promising direction, combined with their own situation to choose.