Tamir Lahiany, VP of Software and Delivery
Today, it isn’t even a question - when we develop an application we do it while supporting as many operating systems and devices as we can. This ‘change of perception’ came from a purely business perspective - If you’re not there you don’t exist.
Any self-respecting company will make sure that its product will be available on every possible and relevant platform.
So, what is the difference between then and now?
In the past, developing both major operating systems took double the effort, both in resources and in time (and sometimes even more!) - separate teams were needed to develop Android and iOS, each in its own coding language. In addition, the UX wasn’t exactly the same between the two, meaning that all the other teams (designers, product, marketing, store managers, and the rest of the R&D chain) had to invest double the time to deliver the ‘same’ application for both operating systems.
The answer is hybrid mobile applications development, and Flutter technology is leading the charge. If we take a brief moment to stop and think about all the mobile applications in the world, truly all of them - what is the difference between the same application on Android or in iOS? Do our favorite news applications show different content between the platforms? Do we use WhatsApp differently if we’re on Android or iOS? Is the music different on Spotify for Android versus Spotify on iOS? Is Gmail any difference between the two? - Well, obviously the answer is NO.
So why should we have to develop the same application in different languages, different architectures, a separate code base, by different developers, and take double the time and resources to do so?
Flutter is a very efficient and sophisticated cross-platform technology used to create an application in the same language, codebase, architecture, design, UX, and by the same developers for all mobile platforms, while also being able to adjust its build to support web and desktop applications.
Flutter is written in Dart programming language and has a built-in graphical engine called Skia. Flutter’s engine can run over multiple platforms, one layer above the operating system it is on. As result, we get a well-managed and maintainable single codebase, optimized performance, and native capabilities.
Developing in Flutter is based on widgets, which makes it easy to reuse components and code during development. There is also a vast variety of built-in UI components which are easy to use, integrate, and even override while keeping some abstract structure and behavior. These components also compile into native code based on the operating system the application will run on (i.e. buttons, tabs, lists, menus, cards, and many more).
The components can also behave differently between platforms, to deliver the best user experience expected by the end-user. Integrating custom components from native to Flutter is very easy using Flutter’s bridging concept.
Performance-wise - it is the same as native performance. Flutter’s engine operates and controls all relevant processes, and also commits to run at 60FPS (and in some supported devices it can even run at up to 120FPS). Bottom line - in the majority of applications that are out there, the user will never feel the difference between a native or a Flutter application. It will only benefit the product, reduce the costs of the design, development, and maintenance, and make your life easier.
Want to join the Flutter evolution? We can help!