foreword
The 50th "Statistical Report on Internet Development in China" shows a lot of interesting data.
Among them, as of June 2022, the number of netizens in my country is 1.051 billion, and the Internet penetration rate reaches 74.4%.
The average weekly online time per netizen is 29.5 hours, an increase of 1.0 hours from December 2021.
Thanks to the development of domestic smart phones and mobile Internet, the proportion of mobile Internet access is absolutely leading, accounting for 99.6% .
No matter whether you are a product manager or a developer, you need to realize that the computer in the future will become a tool more suitable for office and professionals, and the mobile phone is the final choice of the general public.
From the game industry, League of Legends -> Glory of Kings , PlayerUnknown's Battlegrounds -> exciting battlefield, to the e-commerce industry. It can be seen that mobile terminal development will dominate in the future.
The design of mobile terminal software for ordinary users needs to consider various factors such as performance, UI beautification, and development efficiency. Therefore, various development types and technologies have been born since the development of mobile terminals.
The importance of mobile terminal development in the 5G era
Three types of development
Native APP
Also known as native APP , for example, Ios is directly developed in Object-C and Swift languages. Android uses Java and kotlin for development .
Web App
It is a web page developed by html, which is said to be an APP but actually refers to a page on a browser
Hybrid App
Also known as hybrid APP , Html5 shell , it uses web technology to develop pages, and then packs them into an APP. What opens is an APP, in fact, a browser is nested inside.
Architectural patterns corresponding to the three types of development
Choice of App Development Types
For developers or managers , technology selection can be made according to product requirements , performance requirements and project time ,
cross-platform development
The development in the mobile field faces problems such as different operating systems requiring different development languages, different versions of the same operating system, and different models of the same version, which adds great difficulty to mobile development. In the field of mobile development, cross-platform development technology has become the first choice of many enterprises and developers, which can effectively solve the development problems of different operating systems and different models of terminals, and save time and personnel costs for enterprises.
Cross-platform development framework recommendation
Hybrid: Domestic uni-app
uni-app is developed using Vue as the interface. The internal framework provides a set of packages for different platform feature calls. You only need to call the corresponding functions in js to call the functions of the corresponding platforms, such as native applications: read and write mobile phone storage, top Notifications etc.
Developers write a set of code, which can be published to multiple platforms such as iOS, Android, Web (responsive), and various small programs (WeChat/Alipay/Baidu/Toutiao/QQ/DingTalk/Taobao), quick apps, etc.
As shown in the figure below, a set of codes runs simultaneously to iOS simulator, Android simulator, H5, WeChat Developer Tools, Alipay Mini Program Studio, Baidu Developer Tools, ByteDance Developer Tools, QQ Developer Tools (bottom 8 terminal tabs represent 8 terminal emulators):
Hybrid:React Native
The front end is written using the React framework, and React Native provides a set of packages for Android and Ios, allowing you to call the native functions of the mobile phone directly by calling functions in JS
Hybrid, also known as hybrid APP, basically has this design, the interface uses Html, and the framework encapsulates the underlying functions as JS for calling.
React Native is very suitable for engineers with React development experience.
Native: Flutter
Introduction
Launched by Google, the concept is: build beautiful mobile applications easily and quickly; build with C, C ++, Dart and Skia (2D rendering engine); aim to help developers easily achieve a constant 60fps The history of Flutter can be traced back to In October 2014, its predecessor was the Sky project incubated within Google
performance advantage
Flutter uses the Skia drawing engine to draw directly through the CPU and GPU without relying on any native controls.
In the Andriod operating system, the written native controls actually rely on Skia for drawing, so Flutter is even higher than native on some Andriod operating systems-because Skia in native Andriod must be updated with the operating system, and Always up to date in the Flutter SDK
Comparison of advantages and disadvantages of cross-platform frameworks
frame | uniAPP | React Native | Flutter |
---|---|---|---|
study cost | Low | Low | high |
performance | Low | middle | high |
advantage | There are many cross-platforms, including various small programs, and a set of codes can run everywhere | The way of using React+JS not only guarantees a certain performance, but also makes it easy for web developers to learn | High performance android=native ios<native |
shortcoming | Wide but not refined, too many platforms can not guarantee the robustness of each set of API, you need to develop it yourself if there is no plug-in | There is a certain learning cost, and you need to learn the Dart language | |
Applicable scene | Multiple sets of small programs need to be run on different platforms, or the performance requirements of the APP are not high | Only Android and Ios platforms are required to run, and some React experience is required | Apps with high performance requirements, such as large shopping malls or games |
support platform | iOS, Android, Web (responsive), and various small programs (WeChat/Alipay/Baidu/Toutiao/Feishu/QQ/Kuaishou/DingTalk/Taobao), quick apps, etc. | Ios、Android | Ios、Android |
Although React and Flutter have also supported Windows and Mac one after another. But after all, it is not mainstream, and there is no need to make mobile applications cross-platform to PC. Even if the design size and layout are responsive, it will be very strange.
PC-side cross-platform framework recommendation
Electron | Build cross-platform desktop apps with JavaScript, HTML, and CSS.
Cross-platform framework development efficiency comparison
References
What are the advantages of Flutter over Native APP development
Weex——Thinking, Realization and Future of Mobile Dynamics
Mobile cross-platform framework Flutter introduction and learning line