Say Goodbye to Error Chaos in Flutter with Talker 3.0
Tags: flutter, dart, opensource, mobile
Published: 2023-06-05 13:07:34

Today I want to tell you about the major v3.0 update of [Talker](https://github.com/Frezyx/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 😄_

## What is Talker?

But firstly I want to tell you about what is Talker?
Therefore, I suggest you watch a [series of articles](https://dev.to/frezyx/series/19668) that I wrote while creating this package

![Pokemon](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hx795tjcbip1b4ec6pzm.gif)

## More users

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! 

![More users](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nr7yds2jl8wly9jbqmz6.gif)

And I should start simplifying the project and cleaning it from the overhead logic.

## Huge update

I needed around three weeks for make changes in [this](https://github.com/Frezyx/talker/pull/108) release pull-request 

It's really a lot of time, but all this time I kept releasing versions in the dev branch

![Changelog](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/52j5sj6uov0vaag88t7s.png)

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.**

## Finally result

After reviewing all issues in the project, communicating with the community and a long development, we released [version 3.0.0](https://github.com/Frezyx/talker) of the package

![Talker](https://github.com/Frezyx/talker/raw/dev/docs/assets/v3/talker_flutter/talker.jpg?raw=true)

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.

### ✅ Lightweight 
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

![Code count](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gyagajbbbfwwb5v5fuue.jpg)

### ✅ New TalkerFlutter UI/UX

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

![New UI/UX](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k70e4n8eto9sz7vx7p8z.jpg)

### ✅ Remove overhead logic

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

### ✅ Fixes

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.

![Talker wrapper](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wm79tkesqdzzqf3q4uad.jpg)

## The future of the package

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 😌

GitHub: https://github.com/Frezyx/talker
Preview: https://frezyx.github.io/talker/
Pub: https://pub.dev/packages/talker