Flutter.io bury or burn?
We had GitHub, DockerHub, VisualParadigm and a whole host of instant messengers of all colors and styles, as well as Sails.js, MongoDB and Trello. Not that it was the necessary margin for development, but if you started to make fashionable, stylish, youth, it becomes difficult to stop. The only thing that worried me was the mobile application. There is nothing more helpless, irresponsible and vicious than a cross-platform mobile application. I knew that sooner or later we will move on to this rubbish.
We are engaged in automation (if not terrible, “uberisation”) of the funeral services market since 2016.
In August 2016, for the first time in Russia, and maybe in the world, an order for funeral services was issued electronically. And for 2 years we have gone the way of introducing the most advanced technologies into this difficult business that are successfully used in other industries: Internet acquiring, online cash, creating maps using quadcopter shooting, online booking, SMS alerts to customers etc.
In fact, we have created an ERP B2B system for a ritual business that brings together ritual agents, suppliers of goods, contractors for rendering services at the cemetery and in the crematorium, managers, accountants, with the ability to track order execution in real time.
The main technology stack is Sails.js + MongoDB + Webix, as well as a little PostgreSQL, all of which are packaged in a dozen docker containers and ensure the work of eight 24x7 user roles. Well, Amazon Cloudfront for delivering tiles of maps and pictures, and Amazon SNS for alerts. In general, a real startup.
One of the roles in our system is the role of a mobile agent. From the very beginning, we created for it a web interface adapted for smartphones. But whatever one may say, no web interface can compare with a noob for convenience and responsiveness. There were constant bugs: then something is not overloaded, something does not fit on the iPhone 5S, then it gets on the android. Given that the tasks, at first glance, are quite simple: fill in several forms and select products / services and send an order.
So, what we wanted:
- mobile app
- cross-platform (we have exactly ⅓ apple clients), and we didn’t want to spend resources on two independent development for Android / iOS
Naturally, first began to look at the various wrappers to the web: PhoneGap / Cordova / Ionic. (more about them here ). But WebView is WebView, slowly and sadly.
Xamarin ? But there was no desire to climb on .Net & C #. And according to rumors, with UI, not everything is smooth on different platforms.
What remains? Flutter.io!
- you write on Dart (what a pleasure after JS) - compile into a netivny code
- hot reload - you write and immediately see the result
- integration with Google Firebase out of the box
- a bunch of pub packages
- plugins for basic IDE and text editors
- if desired, you can make inserts on the netivny code for platforms
- in our case, there really is one code for all platforms! (only icons are different)
At the first stage, we decided to launch applications without changing the API on the server side at all, and our application repeats everything that can be done in the web interface, but faster and easier for the user. At the same time, all information is mirrored both in the web interface and in the mobile application.
In the plans:
- Work offline, incl. with cards
- calculations and payments with agents in the application itself
- live chat with managers and call center
Total: Flutter'u live in the cemetery and the crematorium!