Book sharing App made with Flutter
Flutter is something that always piqued my interest, due to the good things I’ve heard about it, and what people around me muttered: Flutter this, Flutter that, it makes me Flutter.
So I started to do some experiments with it and write a few dummy Apps in both iOS and Android (same codebase), to see what can be done with it. Since we are already flooded with tons and tons of Apps of any kind, I did not know what exactly to build with it. Until ONE DAY (for those who are impatient, you can download the App here Apple Store / Play Store),
I saw the interesting “Boîtes d’échanges” in the city of Geneva — Switzerland (and probably in other Swiss towns/villages) that inspired me. It’s just a GENIUS idea: a way of sharing whatever without throwing them away, but reusing.
So I was thinking this idea could be great for books as an App. Not only the books are not thrown away, nor cluttered, nor just staying on the shelves left in the dust, nor there is the need of printing a new one (for the sake of the ENVIRONMENT!!! — I found a reason that is dear to the hearts of many). Other people can benefit/can gain knowledge from those unused, lonely, and abandoned books. It gives the books many lives.
When we talk about books though, today it is hard to imagine that people won’t ask for money. First because of its value, plus the fact they are (quite) a budget, and we need still to support/to give respect to the writer who was invigorated into putting up for us those wonderful, sometimes unusual, stories. Therefore people will also have the ability to sell their book within this App. It’s still reusing.
Hence, here is how I envisioned the App:
It’s a place where you can see and get the books that are available and close to the place you live in. As such, you do not need to open another Maps App (still you can if you want) to check where it is, and how far it is. It’s ALL IN there!!!
Whenever someone around your city shares a book, you will get notified about it (there are few criteria when the notification should be sent to avoid overloading the user with notifications).
It is possible to directly discuss with the book owner through the App; for instance to get the book details, or the address where to get it, or whatever… You will be notified of every message.
You must be wondering now, where the hell is he getting those books’ information? It’s simply Google Books API which is one of the best book repositories we have today. From the small experience I have with it, the two things I did not really like with Google books API are the pagination system which is not reliable, and the fact ISBN search is not working sometimes. But apart from that, it is just marvellous how much information and insights can we get from it.
With the help of Flutter and its package ecosystem, it was enjoyable and fast to write such a simple App: widget composition to build the pages with hot reload mechanism, the flexible design which helps to build a layout like a lego, support and documentation from the Flutter communities, various video tutorials, and the abundance of Dart documentation. As a Frontend developer coming from React ecosystem, what I don’t like with Flutter are:
- the Widget structure tends to be deeply indented very fast and can be hard to understand and maintain. You may split them but then you end up with loads of Widgets
- the common functionalities like search input, input clearing, dropdown, autocomplete, and many others that need to be handled
That’s all folks! In the next article, I’ll tell you more about the different packages I used in this App and to which functionality I use them for. I thought it can be useful.
Until then enjoy the ShareBook App on Apple Store and in the Play Store. Share the books and spread the word to your family and friends!!! Any feedback or ideas are welcome.
N.B.: No brainer here, it is just a simple App to share books. Flutter made it easy to have (almost) the same codebase for both platforms. By the way, THANK YOU FLUTTER, I LOVE YOU :)! Looking forward to the next App ride!