Flutter from the perspective of a Product Manager

Josh Dibble
Skills Matter
4 min readNov 14, 2018

--

As a Product Manager in a financial services startup, tasked with building an app from scratch, utilising Flutter was the single best decision the business made.

When our Head of Tech first suggested we consider a new reactive framework to build our shiny new app I was sceptical, to say the least. I can officially say I’m now a Flutter convert and am constantly singing the praises of this revolutionary new framework. Below are some of the benefits of using Flutter that I have witnessed first-hand during the development of our banking app.

1. Speed of development

Although it’s probably the most commonly stated benefit of Flutter, the speed of development should not be overlooked. With its hot reload feature, changes to your code can be viewed in your app generally in less than 1 second. Firstly, this allows for more UI/UX experimentation as changes can be viewed in almost real-time. Apps can be built and tested piece by piece. It also means bugs can be identified and rectified far more quickly. No more lost hours waiting for apps to build!

The language Flutter uses (Dart) is compiled ahead of time (AOT) into native (ARM) code. This means reactive views without the need for a bridge to do the context switching. Whilst the technicality of this means less to a Product Manager, what it does mean is beautiful native apps, still written in one codebase, theoretically halving development time.

2. UI/UX Customisation

As a Product Manager we don’t just care about shipping the product quickly. We should also have an eye for design and ensure we maintain an optimal user experience. Fortunately for us, Flutter delivers. As you may have heard, UI in Flutter is created almost entirely by widgets. Instead of having a large set of global layout rules, each widget has its own, smaller set of layout rules, allowing for heavily optimised layouts. With this comes speed. Layouts are so fast in Flutter that more advanced UX designs and animations can be implemented and the app will remain perfectly seamless. It opens another avenue of possibility when considering user experience.

Widgets are also highly customisable. Now that they are within the app itself they can be customised to match more specific UI designs. Almost anything imaginable can now be created in custom widgets meaning greater flexibility for both designers and developers.

3. Dart is easy to read

Whilst Product Managers certainly aren’t programmers, there is some level of knowledge required to communicate effectively with your developers. If, like me, you lean more towards development than design you might be pleased to hear that Dart is a simple language to read (and learn).

This means you can actually understand the code your app is being written in. Allowing for more effective code reviews, faster iterations and a deeper understanding of the work associated with building new features. This understanding for me has ensured a tighter control over the backlog, more accurate sprint planning and ability to meet deadlines.

4. Less QA/Testing

This follows on a little from the first point, but I felt it needed it’s own section. We were down the road in planning for native development on both iOS and Android, which comes with writing tests for both codebases. Firstly, Flutter gives you native apps anyway, but it also allows developers to only write one set of tests. Again, this speeds up development time, but also means bug fixes are minimised to one set of code. Additionally, if you are outsourcing your QA, which lot’s of startups are, your QA team only have one app to go through.

This comes with a caveat. The majority of Flutter apps are written in one codebase, but a positive (negative in this case) of Flutter is that you can also write parts of your app in native code too. Whilst this is great for flexibility, or covering any gaps Flutter might have at this point, of course this means writing tests and performing QA separately on these parts.

5. You can make apps too!

As mentioned earlier, Dart isn’t too hard to pick up. Don’t get me wrong — to develop a production ready app takes a highly skilled developer and lots of time, effort and testing. But to make a basic app without a complex (or any) back-end is totally feasible for someone with some programming knowledge. After going on a short course I managed to create an app which gets random GIFs from the GIPHY API and displays a list in a grid view. Whilst this isn’t going to win any app awards, it demonstrates that it’s quite plausible for someone wanting to begin app development to have something up and running very quickly. In a short amount of time I managed to build a fully functional app which works on both Android and iOS devices. This should be enough to make anyone curious to explore further the capabilities of Flutter. Anyway, who doesn’t love a GIF?

Find source code here

Final thoughts

There are numerous benefits to Flutter I haven’t mentioned, particularly the fact it’s open source, highly performant and has a great set of developer tools, they tend to be less beneficial to the Product Manager. However, these benefits do pass through and any startup should strongly consider Flutter if they plan on building an app. The flexibility and ability for iteration makes our lives as Product Managers a whole lot easier!

— Josh Dibble

--

--

Josh Dibble
Skills Matter

Flutter Developer for London based FinTech // interested in everything tech and guitars.