Android development, not keeping up with the development of cross-platform technology is the greatest sadness of your career plan

background

The current era of mobile Internet is also an era of close integration of big front-end technologies. The fragmentation of mobile systems and terminal devices has always caused us to have a headache of the cost of developing and maintaining the same product on different platforms: the use of native methods to develop App requires not only the iOS and Android platforms, but also the use of different languages. For the same product function, it is necessary to adapt the functions of different terminal devices and different operating systems, and undertake the test, maintenance and upgrade work brought about by this.

This is undoubtedly a very heavy burden for small and medium-sized teams, and it also invisibly slows down the pace of Internet product delivery in pursuit of "small steps and fast running" to quickly respond to market changes.

To solve this problem, various cross-platform development solutions under the slogan of "one set of code, multi-terminal operation" have sprung up, and React Native is a typical representative.

However, React Native hopes that developers can balance performance, display, interactive capabilities, and iterative delivery efficiency. Based on the web container solution, it optimizes the three major processes of loading, parsing, and rendering. It supports the necessary Web standards for building mobile pages in a relatively simple way, ensuring a convenient front-end development experience; and retaining basic rendering On the basis of ability, the core rendering engine is replaced with the native UI component implementation, thus ensuring good rendering performance.

However, due to the limitations of React Native's technical solutions, the use of native controls to carry interface rendering, while sacrificing the flexibility of some Web standards, certainly solves many performance problems, but also introduces new problems: except through the JavaScript virtual machine The inefficiency of the communication caused by the call of the native interface is not to be discussed. Since the framework itself is not responsible for rendering, but by the native proxy, we also need to face a lot of platform-related logic.

With the changes in system versions and APIs, we also need to deal with the differences in the rendering capabilities of native controls on different platforms, fix various weird bugs, and even need to apply various patches on the native system.

All this makes the cross-platform features of React Native greatly compromised: to use React Native well, in addition to mastering this framework, developers must also be familiar with iOS and Android systems. This undoubtedly poses more challenges for developers, and it is also the reason why many developers love and hate React Native. Among them, some teams decided to abandon React Native and return to native development. Airbnb is an example.

Let's return to the topic and talk about why Flutter can be used to develop the best mobile applications and why it is the first choice for cross-platform development.

Flutter's advantages

1. Large companies are using Flutter. The
domestic first-line Internet is choosing flutter technology as their own cross-platform development, such as Ali Xianyu, Hand Tao, Bytedance, Meituan, Tencent, etc.

2. R&D efficiency is competitiveness. The
mobile Internet has entered the second half, and some emerging Internet unicorns and small giants are more willing to try new technologies with higher technical limits without historical baggage. It is not difficult to find from the difficulty of school recruitment and social recruitment: client talent is more scarce than before, especially iOS engineers. In the second half, there will be more competition and more intense tracks, such as education. Flutter itself is very suitable for application development from scratch with no historical burden. For new businesses, especially when the team is short of manpower, considering Flutter in technology selection can speed up the implementation of products on multiple ends and rapid trial and error.

3. Beautiful and smooth in one
Flutter "from birth" attracted the attention of developers with "beautiful UI, pixel-level controllable, smooth performance, and comparable to native performance". The self-rendering engine even has the ability to develop games. ability. In the second half of the mobile game, there is no demographic dividend, and the competition is more intense. How to better meet the user's demand for high quality and smoothness is a strong competitiveness of the mobile terminal. If cross-platform technology wants to have higher fluency, the solution using self-rendering technology is a better solution and a more thorough cross-platform technology direction.

  • It is completely free and completely open source
  • Can be used to create apps faster
  • Excellent user interface (UI)
  • Save code
  • Access to platform native functions
  • Most suitable for MVP development (minimize viable products)
  • Older devices also use the same UI to run apps
  • Reduce test workload
  • Richer community support
  • Low maintenance difficulty
  • Built-in package manager from Dart

Flutter learning method

So, how should Flutter learn? Do you really want to start from scratch?
Although Flutter is a brand-new cross-platform technology, the framework principles and underlying design ideas behind it, whether it is the underlying rendering mechanism and event handling method, or the component-based decoupling idea, or the overall engineering method, are similar to native Android/ There is no essential difference in iOS development, and even a lot of excellent design concepts have been absorbed from React Native. Even the Dart language used by Flutter has the shadow of many other excellent programming languages ​​in terms of information expression and processing.

Therefore, in essence, Flutter has not created a new concept. This means that if we are learning Flutter, we can go deep into understanding its principles, design ideas and general concepts, and combine with past development experience to establish our own abstract level of knowledge system, rather than just Staying on the application layer API will get rid of the strong binding of experience and platform.

In this way, even if the old framework is continuously updated in the future or new solutions appear, we can still remain invincible.

Learn to share and encourage each other

A digression, after all, I have worked at Samsung Xiaomi for many years and I know the direction of technological reform and innovation. Flutter is a cross-platform development technology. Flutter has quickly captured people’s hearts with its beauty, speed, efficiency, and openness. However, many FLutter enthusiasts have entered Level learning materials, today I will share the learning materials I collected and sorted out to those in need, if you want to learn advanced Flutter, you can discuss and exchange with me in the Flutter cross-platform development ultimate choice exchange group. Download link: https://shimo.im/docs/yTD3t8Pjq3XJtGv8

[External link image transfer failed. The source site may have an anti-leech link mechanism. It is recommended to save the image and upload it directly (img-mTqv3pRe-1610092637799)(//upload-images.jianshu.io/upload_images/19956127-10e159838da0bd01.jpg?imageMogr2 /auto-orient/strip|imageView2/2/w/750/format/webp)]

Download link: https://shimo.im/docs/yTD3t8Pjq3XJtGv8

Bold style

Guess you like

Origin blog.csdn.net/weixin_43901866/article/details/112367119