April 19, 2019
At icapps we worked on a Flutter proof of concept for over 3 weeks. We wanted to test Flutter to see if it could be used at the company. We had set the expectations really high because we want to build quality apps with it.
We choose to build a trading application because it ticked all the boxes for testing Flutter. This is the list of the requirements the technology had to meet.
We tested all of the above requirements and we found that the app was running very smooth even on older devices. We could write quality code although the dart language has a long way to ahead if it wants to match Kotlin or Swift. At Google I/O the dart team announced they are working on nullability in Dart. This is a very big change in the quality of your apps. We got Niddler working for dart along with the icapps translation tool. We wrote a native bridge (platform channels) to get access to the Vasco Secure Store. The only remark for the platform channels is that error handling should be a lot better. CI and autonomous builds were easy as well.
Google announced at Google I/O that Flutter for web is released in a technical preview. This means that there is a version of Flutter for web available, but no size or performance improvements have been made so far. After testing it out the same day I found that the performance was not good indeed. But I think it is cool to get the same code running on the web in only 2 hours of work. At this point, we need to use another package for Flutter for web called: flutter_web. You can just replace all package:flutter with package:flutter_web and everything should be working unless you are using platform channels. For that, I had to make some adjustments to get it working. I also had to remove packages that had a dependency on Flutter itself.
Google announced yet another thing at Google I/O. Flutter desktop embedding moved to the core package. The next day I tried to get the proof of concept working for desktop. It only took me 2,5 hours to get everything working. I had some trouble with broken packages after upgrading dart to 2.3. Everything works except the platform channels. There is still no good documentation on how to implement the platform channels
This is a project from icapps. I worked on this project while working for icapps. All rights reserved for icapps. This is purely for my personal portfolio. Want to find out more about icapps?