As your Flutter application grows, manual testing gets more and more tedious and time-consuming.
Each time you release your mobile app to production, you have to test not only new features but also all the existing ones developed so far.
When ubiquitous regression starts to be a problem, the speed of development slows down, and the release schedule gets less predictable.
We’ve built our own Flutter UI testing framework, Patrol. It overcomes the limitations of the existing solutions. Patrol is the only UI Testing Framework that works with both Flutter and native UI.
No matter if you’re just starting or have already written thousands of lines of code - we will set up Patrol in your app.
We’ll create a comprehensive set of UI tests in Patrol. It significantly reduces the number of regression bugs and speeds up the release cycle.
Codemagic, Bitrise, GitHub Actions, or Jenkins - each of them has its peculiarities. We have experience with all of them, and we know how to make it work with Patrol.
Taking advantage of popular device farms such as Firebase Test Lab or Browser Stack can help check whether the app works fine across all kinds of phones and operating systems.
Our QA team took part in tens of Flutter projects encountering many kinds of problems and challenges. Let us take care of your QA processes so that your team can focus exclusively on delivering business value.
If you have an internal QA team that is not yet familiar with Patrol we can teach them both Dart language and Patrol framework. Working hand in hand with our QA experts is the best way to transfer knowledge and best practices.
Libraries provided by the Flutter Team for UI Testing
Unfortunately, the Flutter ecosystem doesn’t provide developers with a robust solution for e2e UI testing. Libraries provided by the Flutter team, such as flutter_driver and integration_test are great when it comes to interacting with Flutter widgets but they don’t allow us to interact with the native UI of the app. As we know, each Flutter app is also a native app with purely native components. For example, in virtually any mobile app, there’s some native permission request dialog. If you want to give your app permission to access the camera or to send push notifications, you have to click on a native system dialog. This is an obstacle which can’t be overcome with the above-mentioned Flutter libraries.
Flutter doesn't get along with Appium
There are also solutions popular in the native development world that can be integrated with Flutter. The most popular solution of this kind is Appium - a cross-platform UI testing framework. Although Appium has no official support for Flutter, it has an open-source connector to Flutter. Technically it allows access to both native and Flutter components, but it’s extremely inconvenient to use with Flutter. You can’t write your tests in Dart; Flutter widgets can be accessed only by bare strings, and the open-source connector is buggy and poorly maintained.
Developers from the best Universities
(no career changes)
Knowledge transfer supervised by our Team Leaders
Professionals with excellent communication skills
Conference speakers and community members
Engineering managers experienced in enterprise projects
Training for the local IT workforce
Help in your future recruitment processes
Our entire team graduated from computer science studies at the best technical universities in Poland, where the vast majority comes from Warsaw University of Technology. Moreover, we are also leading two courses at that University about Developing Mobile Apps in Flutter and System Architecture in .NET.