Why Flutter?
To start, let's answer another question first: "What is Flutter?".
Flutter is a UI Toolkit that allows you to develop mobile applications simultaneously for iOS and Android. At the same time, Flutter is not limited to only these platforms, it’s almost any device running on the Android platform (TV, kiosks, stands), iOS, and soon we will talk about the new mobile OS from Google - Fuchsia (Fuchsia's user interface and apps are written with Flutter). But that's not all, in 2020 Google plans to officially release Flutter for Web and Desktop (it is already available as a beta preview for developers).
In addition to broad support for various platforms, Flutter provides a huge number of visual components (UI Library, widgets), which significantly reduce the development time. Flutter Community is growing rapidly (faster than NodeJS), a huge number of new widgets, plugins, and other stuff appear every day.
The great advantage of Flutter - that platform was designed and engineered for mobile development. The architecture embedded in Flutter allows you to create mobile solutions many times faster than if you made them separately for Android / iOS.
Naturally, a huge benefit is one codebase, now it is imperative to support both Android and iOS, phones, tablets, and many customers already need the support of TV screens. All this variety of screens, resolutions, differences between platforms, significantly complicates the support of native solutions. Flutter gives a competitive advantage because it closes a huge part of those issues for the developers.
We see that more and more large companies are looking in this direction, the advantages of Flutter such as:
- rapid development (hot reload, building time, etc);
- one codebase;
- excellent performance;
- compilation of code into bytecode (no interpreters);
- support for multiple platforms;
- support for all kinds of resolutions and screen sizes;
- fewer specialized developers are required to support the apps;
all those factors allow businesses to significantly reduce costs and deliver services faster. This, in turn, gives a clear prospect that Flutter is a new and major trend in mobile development for the next decade.
Studying this platform now, when the market has just begun to look in the direction of this technology and has not had time to get enough, gives a huge competitive advantage for the business owners as well as in the labor market for developers.
S-curves
Flutter is the new S-curve in the mobile development world. What are S-curves and how it's related to Flutter?
The concept of S-shaped curves suggests that the amount of improvement in the technical characteristics of the product over time (due to the applied amount of intellectual effort) does not change linearly but along a curve reminiscent of the English S. According to this theory, in the early stages of technology development (Stage I), the quality of the products improves relatively slow. As technology develops (Stage II), the pace of technological improvement is rapidly increasing. Then comes the stage of maturity (relative stagnation) and the technology will asymptotically approach the natural or physical limit (Stage III) and for further improvements more and more intellectual and time costs will be needed. The last stage (Stage IV) is actually the extinction of technology or moving to a niche category.
Many researchers argue that the essence of strategic management of a company is to determine when the inflection point on the S-shaped curve has already been reached, and then identify and develop the next-generation technologies (the next curve) that rise from the bottom and ultimately change the previous one ( the difference between them is called the technological gap).
Thus, the most important thing is to change the technology base in time (intersection of S-shaped curves old and new). The failure to anticipate the threat of emerging new technologies and switch to them in time often explains the failures of big companies, and they see the source of advantages for young companies (startups) in this.
This is true for professional software developers as well. Technologies are changing so rapidly these days. For the new technology, it takes only 8 to 10 years to go through the stages from 1st to 3rd. Therefore, the inability to see a change of technologies in time is a big risk factor for a developer and can lead to the fact that even strong professionals can easily be left behind new technologies and be supplanted by younger competitors who have just started their careers at stage 1 or 2 of new technology.
In the mobile technology world, the previous S-curve was Android, so it’s not surprising that Google launched a new S-curve - Flutter, 10 years later.
The development of technologies at the 1st Stage is always a risk, and success is not guaranteed, therefore it is often the game of large companies who can afford big investments in the technologies of the future, at the same time it is a chance for startups, at stage 1 there are no competitors since the final face of technology has not yet been formed.
So for those companies and individuals who are not involved in projects of the 1st stage, it is quite important to do not miss the appearance of new S-curves and be at the beginning of the 2nd stage. The earlier, the more chances to become a company #2 (the 1st - for obvious reasons, will be company investing intellectual efforts and money in the development of new technology at the 1st stage).
Flutter is steadily gaining momentum; large corporations are already actively looking in the direction of Flutter, as a solution to the multi-platform support. Google plans to release its new mobile OS - Fuchsia, abandoning Android support and completely switch to the new OS. As mentioned above, in 2020 Google also plans to officially release Flutter for WEB and on Desktop.
Thus, switching to Flutter is a long-term strategic choice for many companies.