Dart packages I use for ShareBook — Flutter

Rina Andria
4 min readMar 4, 2021

As promised in my previous article folks, here are the packages I use for ShareBook (iOS and Android) and what I use them for.

It’s going to be a long list but I think it’s worth to go through them because they (communities) helped a lot.

Photo by Scott Webb from Pexels

1 — badges: an indicator for the user of what changes in the current context. To pinpoint something that needs to be taking into account. To display additional information without taking all the intention.

2 — country_codes: get the list of country ISO codes. It contains much more information than that, but this time I only needed the codes.

3— crypto: used for hashing credentials in addition to encrypt. Yes, the credentials you use with this App is encrypted and secure. Even I do not know what you enter in those text fields.

4 — currency_picker: I did not use the picker itself because of the look and feel (I did not like it, just personal :). I just needed the list of possible currencies.

5 — device_info: it provides many insights about the user’s device. That information helped me to investigate, to reproduce, and to fix bugs.

6 — easy_localization: a simple and easy to use package to localize labels. It has some other interesting features like pluralization, templating, and much more.

7 — email_validator: light email validation package.

8 — encrypt: I coupled it with the crypto package to encrypt the credentials.

9 — firebase_messaging: awesome package to send notifications. I found it hard to configure for the first time (like every first time). But once you get the concept and the mechanism, it’s easy to reproduce. I might create a separate article for this one ;)

10 — flutter_barcode_scanner: wonderful package including single or continuous scan functionality

11 — flutter_image_compress: like every Webapp or App project :), as soon as there is a use of images, a resize/compress of those images are necessary, otherwise your database will be soon dead.

12 — flutter_libphonenumber: wow, this one was a big help for providing the phone numbers format to the users. The numbers are more readable and more meaningful.

13— flutter_statusbar[color/_text_color]: to change the colors of the status bar elements. Depending on the theme, I needed to switch the colours to have great contrast.

14— flutter_spinkit: package with a wide range of loading indicators. The choice is yours!

15— flutter_svg: I use it a lot to display SVG icons from assets, so you are not restricted to Cupertino or Material icons. No need to say how the resolution of the images is.

16 — get: Oh yes, this one is really interesting as well. So far, I only used the snackbar functionalities it has which is much easier to use than the material one. And it’s without carrying about the context people :). In its gut, it has more than that though, so I am just waiting for a free timeslot in my BUSY agenda to explore the unknown world.

17 — geolocator: today almost every App uses geolocation. This one is widely used. It has quite straight forward usage and clear documentation.

18 — google_maps_flutter: to display the city where a book can be found.

19 — image_picker: to select from the photo gallery or to take a picture from the camera, for the profile picture or the book’s additional pictures.

20 — intl: I am sure you all know this one :), Internalization! A bit similar to what we have in the web ecosystem. I mostly used it for formatting dates and money.

21— shared_preferences: locally (proper to the device) store key-value pairs. It’s similar to cookies and localStorage in web jargon.

22 — tuple: I would expect Dart to have this kind of data structure, but it seems not. I am a bit disappointed :(

It’s a long list of packages that I am not used to having, compared to the javascript Frontend world. Of course, it depends on the size of the web projects but I would say from my case it’s usually up to 15 the maximum number of npm packages I had in a frontend project. We only add new packages unless it’s really needed (complex features), and we can’t do it ourselves without too much effort.

But I wouldn’t even think I could achieve to build this App without those. Or maybe I could but not the 1 month time period I had for ShareBook. Here I am just talking about the Frontend part. The backend part is another story I would need to write down.

So I am really grateful for the communities behind those packages, working days and nights to provide us with a panel of ready to use tools and system. And again thank you Flutter to make this happens.

--

--