On the market of cross-platform app development, we have a lot of technologies to choose from, React Native, Xamarin, Flutter, and others. When opting for one of these possibilities we need to consider many different factors, and how would they affect our app and the business.
We won’t go into details of which technology to choose, or its pros and cons, there are many other articles touching upon this topic quite extensively, so instead, in this article, we’re going to focus on Flutter, a new rising star in the development sector, while also looking at its biggest flaw.
What You Need to Know About Flutter
Flutter is a UI toolkit, it enables the creation of multi-platform apps from a single code base. Multi-platform means that the apps for Android, iOS, web, and desktop can be created by only writing the code once and running across all these platforms.
Flutter’s first stable version was released in December 2018. The biggest name in the tech industry is credited for its creation, and we’re referring to Google of course.
In comparison to other cross-platform app development tools, Flutter lets developers control every pixel on the screen, offers full customization of every default widget, following platform-specific behaviors and conventions (with zero additional lines of code).
This creates that native look and feel on both iOS and Android devices.
In addition, Google fonts have recently been made available, and these really shines when it comes to customizing UI and typography.
Using Flutter - Benefits for Business
Cuts on time and costs
Flutter offers fast development. The single codebase is used for multiple platforms. No official stats have been offered yet, but the estimation is that building an app in Flutter takes less than ⅓ of the time, cost and effort needed for building 2 separate iOS and Android apps.
Thanks to the “hot reloading” feature, developers can see the changes they’ve made in code within seconds; speeding up bug fixing, the adding of features and experimentation.
The other advantage, especially over Xamarin, is that Flutter can be used for building UI/UX-rich apps.
This tool has built-in Material Design and Cupertino (iOS-flavor) widgets, rich motion APIs, smooth natural scrolling, and platform awareness.
Even though Flutter has advantages over other cross-platform tools, one of the major challenges is the lack of talent available who can work with it.
Sourcing Flutter Developers
Source: Andrea Bizzoto - What’s great about Flutter?
As you can see in the image above, the biggest downside of using Flutter is the availability of developers. It’s still relatively new on the market, especially in contrast to other technologies, such as native iOS and Android, that has been available for over 10+ years, Xamarin since 2011, and React Native 2015.
When sourcing Flutter developers, there are a few options to consider:
If you search on recruitment social media channels, such as LinkedIn, you’ll see there are already engineers with the skills and knowledge of Flutter. Posting a job ad, or headhunting might give you some results with potential.
If you find individuals who meet your experience criteria via this method, then it’s important you’re open to offering relocation packages, since engineers with the right knowledge are scarce, and you might need to bring them to your office from another town (in the event you're not offering remote work).
We’ll use BrightMarbles as an example for training Flutter developers.
Software engineering, no matter which programming language is predominantly used, requires similar basic knowledge. Hiring people ready to diversify their knowledge and learn new technologies while having a superb solid grasp of basic programming concepts is a way to go since the technology and the market is changing rapidly.
How long will it take to learn new technology depends on the technology itself, and the engineer your training.
Flutter (and Dart - the programming language used to write the code) is easy to learn, and it doesn’t take much to become productive. The documentation is comprehensive, debugging is made easy with Dart DevTools and helpful error messages, and there’s an exponentially growing community too.
Here are some steps we suggest going through before training Flutter developers:
1. Identify similar knowledge profiles. For instance, knowing native Android and iOS development is a good basis for Flutter.
These were the requirements BrightMarbles set:
- Minimum of 2 years experience in either mobile development (Android, iOS, or cross-platform) or any frontend technology
- Experience with systems software design and development
- Quick learner with exceptional organizational and prioritization skills
- Bachelor's degree in Computer Science or a related degree
2. Find suitable Flutter courses, conferences, and other materials and form a learning group.
3. Allocate time for learning.
4. Measure progression and success.
When you already have Flutter developers, either you've hired or trained them, and this opens the door to new opportunities, for example sending them to local meetups or even organizing them. This will help you meet a lot of brilliant people, including engineers following trends of current tech development, eager to learn new things and willing to invest their free time in their career development.
This process is time-consuming, and as a business owner, you may not have the time or resources available to take these approaches, in which case a specialist outsourced software development company may be needed. With already built expertise in the field, these teams may be the way to go. It might be a bit more of a costly solution, but it's by far the fastest way to access top talent in the field.
The Flutter developer job market, as Flutter itself, is still evolving. The lack of engineers with the expertise is evident, but as change is the only constant in the programming world, this will change too, and quickly. With Google’s commitment to Flutter, we feel it’s here to stay, and so you need to think about your Flutter capabilities sooner rather than later.
Editor's Note: This is a guest post by BrightMarbles. BrightMarbles is a quality software engineering house based in Serbia covering the entire software development cycle, starting from the idea, design, development, and maintenance of a software solution.