Surely you also know that Flutter is still a new land not only in Vietnam but also in the world, so there is not a single project model popular enough to become a common standard for the community. It is on the Flutter Architecture Sample website that
Flutter cung cấp cực kì nhiều sự tự do đa dạng hoá so that nothing is standard, the website itself has to offer a lot of different model suggestions for readers. Selection. To a Flutter beginner like me, to decide which model to apply without having a deep understanding of Flutter is like walking up a ladder to ask him.
Therefore, I think that instead of just writing a machine project according to a certain model (but not understanding what the problem of each model is solving), why don’t I apply the fundamental programming principles? The first version, especially the 5 SOLID principles, that I have often done in Android projects so far, to build up the most primitive structure that (in the future) will still ensure the following elements:
- Easy to read: Just having basic understanding of SOLID, everyone can read and understand.
- Easy to replace and extend: Easily refactor according to a different architectural model or use other libraries, frameworks, thanks to the combination of SOLID and a bit of Clean Architecture thought (according to the criteria is to be the most basic so I did not implement all Clean Architecture).
- Pre-packaged: Fully integrated
CI/CDand a demo server so you can be assured that the master branch is always alive, feel free to continue editing based on this code base. It also serves as a source of reference for you, if you need to touch on those “big hands” later.
- In addition, other advantages must be inherited from the implementation of SOLID architecture and principles that I have not listed here.
By ensuring these elements, the project will be useful for those who are new to Flutter. It helps you to spend less time on learning the sidelines and big hand work, instead you will focus on learning the Dart language, the Flutter framework and the business logic.
The reason I put the project in open source format is because there are parts that I have not written well, maybe you will have much better contributions. So I hope you guys can fork on review and add suggestions to make the project more complete.
Said already, here is the link project: https://github.com/trunghq3101/sample_flutter_messenger , please come and see.
It’s still primitive, so you can star to follow the updates. I will also refactor a bit (or a lot) in the future.
Sincerely, Code On Sunday.