Today I want to tell you about the major v3.0 update of Talker and why this is the best solution to logging and error handling for your Flutter / dart project.
- Wait, you're developing it yourself, is it right? It sounds somehow too narcissistic.
- I agree, but first read the article to understand the full power of Talker 😄
But firstly I want to tell you about what is Talker?
Therefore, I suggest you watch a series of articles that I wrote while creating this package
This project has a lot of functionality, but I thought its problem was excessive complexity.
I saw the feedback from the community, a lot of engineers liked the package, but it seemed to me that the project could have many more users!
And I should start simplifying the project and cleaning it from the overhead logic.
I needed around three weeks for make changes in this release pull-request
It's really a lot of time, but all this time I kept releasing versions in the dev branch
Important point for those who create their own open source library:
Always create separate releases in -dev versions to make ability for users to upgrade to the stable version and don't block the main version.
After reviewing all issues in the project, communicating with the community and a long development, we released version 3.0.0 of the package
And now I want to share the results. But I don't want to go into deep details so as not to make you bored.
The library code was reduced more than by 700 lines!
This is a really good result, because I was thinking of creating a lightweight solution that does not affect the performance and weight of the application build.
And it is also important that the functionality of the project has not suffered at all from this
After talking to the community, I realized that a separate page with filters is inconvenient within this package and that you can take the filter and search to the main page with all the logs
In the previous version, I experimented a lot. For instance, with a bridge between packages. I wanted to provide packages with the ability to communicate, without dependencies. However, I did it in not the best way.
Now, for library logs in Talker, there is an enum called WellKnownTitles. It contains all the familiar types of Talker's log system. This allowed me to get rid of a lot of code.
List of all deleted and deprecated code:
Remove deprecated in constructor and configure() method:
- LoggerFormatter? loggerFormater
- LoggerFilter? loggerFilter
- TalkerLoggerSettings? loggerSettings Now you can setup this fields only in TalkerLogger constructor
Remove deprecated methods:
- handleError Now handle() method used
- handleException Now handle() method used
- fine() log method Now you can use the handle() method to achieve the same functionality in both methods.
Add observer field instead of removed observers
Also, with the release of 3.0.0, the errors that library users wrote about in issues were fixed.
Like null error string in TalkerWrapper Snackbar's, new share_plus plugin version support, etc.
I really hope that the package will continue to evolve and become even more convenient in the future. I also want to finally sort out the documentation and create a website with a convenient package description.
So, if you also want to take part in the development of this package, you are more than welcome 🙌
And thank you for reading my articles, even though I began to appear here much less often 😌