Flutter Windows - State of the Art

We have a request from a client concerning the development of an app for Windows Surface.
I don’t know the status of Flutter for this and there are 2 lines in particular that I’m looking for information / feedback on: Database (the app must work offline) and use of the Surface cameras (scanning and interpreting barcodes).
Have any of you already been able to experiment or deploy this kind of application?
Any database recommendations?

Thank you in advance for your feedback.

1 Like

Regarding scanning barcodes:

I am using windows as platform and spent some time looking for a scanner for it - this is the only package I found that seems to support the platform:

Didn’t try to implement though - hope it helps, good luck!

1 Like

The only and one database: SQLite.

If you don’t want to deal with SQL (but you REALLY should, as it is the right tool for the job), you can always use Drift ORM (and the author of Drift, Simon, is a very nice and open guy).

You can add PowerSync on top of that and have a nice offline-first database synced with Postgres (I use Hasura, others use Supabase, but any PG installation works).

The good about that last part is that both Hasura/Supabase and PowerSync are SaaS, so you can start with 0 effort and then, if you grow too much, install both on docker on-premises.

Run like hell from solutions like Hive and Isar (both abandoned by the author, full of bugs (that corrupts databases)), bad design (Isar 3 only supports int PKs, which are useless in a distributed environment). SQLite is in use in trillions of instances (and I’m not exaggerating), so it is well battle-tested.

5 Likes

"We’ve been exploring similar ‘State of the Art’ implementations for Windows-based kiosks at Funnelsflex, and the ecosystem is definitely mature enough for production if you choose the right stack.

For the offline database requirement, I highly recommend ObjectBox or Isar. At Funnelsflex, we prefer these over SQFlite for Windows because they are high-performance NoSQL databases with great sync capabilities, which is crucial for ‘offline-first’ logic.

Regarding the Surface cameras and barcode scanning: the mobile_scanner package has improved significantly for Windows, but since Surface tablets use standard Windows drivers, sometimes a native C++ wrapper is needed for high-speed industrial scanning. We’ve found that the biggest hurdle isn’t the camera itself, but the ‘User Journey’—ensuring the UI doesn’t lag while the scanner is active.

It’s definitely a viable path for your client. We’ve seen that when the technical funnel is optimized correctly on Windows, the stability is comparable to traditional desktop apps."

I definitely would not recommend Isar. While the solution looks great (and, honestly, would be great), it hasn’t been updated in over 2 years. You shouldn’t be starting a new project with a dependency that’s so far abandoned. If you’re going to choose one of these two, go for ObjectBox, not that I’m explicitly endorsing either to solve this problem.

2 Likes