Hello, a noob presentation with a wide focused question

I’m Patrick, from Italy. I’m a former molecular biologist, now sw developer, with a two decades long experience in back-end development, started with ASP(1.0), later on php, and the last 10 y in ruby (RoR, Sinatra), lately I got in love with Elixir and Phoenix, which are now my first choice for any new suitable project I’m starting from fresh. I have also some 5 y. of experience with a JS cross-platform mobile framework, the former Appcelerator Titanium, and his MVC library Alloy.
I’ve been following Flutter since it’s alpha days, with lot of interest, but never took the first real step and going in production with it. Let’s say I was overwhelmed by job tasks and somehow intimidated by Dart itself.
Now I’ve decided it will be the framework for a next-to-come project for a customer of mine. During this last year I’ve been developing a laboratory informations management system for them (in Elixir/Phoenix), and we’re now discussing their need for a mobile client app with specific functions, for remote and in-lab samples registration.
I’ve been experimenting with Flutter with some super basic proof of concept apps, and I still have many doubt on the way to go. Especially about code architecture and organization.
This client app will need to authenticate user and get some informations from the server, but must guarantee off-line capabilities. I’m planning to use a sqlite database for in-app data storage and JSON APIs for the interactions with the server, i.e the data sync at the end of a session of sample registrations. The app will need to use the device’s camera and mic to take samples’ images and record some voice annotations of the operator, plus some standard text fields.
Overall it looks like a quite simple application, with not so many moving parts and a fairly straightforward operational flow. But I’m so very new to Flutter framework, that I’ve had some hard times trying to imagine how to start tackling it.
I discovered some weeks ago the existence of the Bloc library that’s seems a very good code organization starting point and a nice way to manage the runtime state.
So, before sending myself in a painfull journey into the unknown, I thought I could ask you some general advice or hints to useful documentation or example application I should be aware of. I’m also willing to buy a good book, so I’ll apreciate if you can point me to some good choices.
Thank you very much for the attention and -in advance- for your kind answers.


Heyy @patrick_demarta ! You are in luck. Many experts are giving away their tutorials for free during the Quarantine period :slight_smile:

You can start with the basics from here:


Thank you @sakina, I’ll definitely have a good look at it!

Edit: enrolled! :vulcan_salute: