When it comes to building complex features in any software application, it often boils down to two options:
- Building each feature from scratch, thoroughly testing and integrating it into your application
- Using an existing library that has already taken care of the preceding point
Each option has its own trade-offs. If we decide to implement a feature and build it from scratch, we will have full control over what happens, and can customize it the way we like without any dependency. However, we must also take into consideration the time and effort that we will have to spend in building it. Even after spending months, there may still be scenarios and optimizations that we did not think of. These will, of course, be fixed as time passes, but this is time that could be spent elsewhere.
In contrast, we have numerous libraries available...