Whats Done 2.7.5

After many weeks we had to release a new version of Whats Done. We had some ideas and people comments about app like store data in Firebase to be able to manage tasks in web and many platforms. Whats Done can be install in both Android and iOS platform but the thing is you can’t store data in local. That’s why we created this application. To store data localized. Let’s get to the point of this paper, whats new in Whats Done 2.7.5.

This paper is going to be too long. We will cover every thing because I want to be simple for Flutter beginners and talk more. Lets start with Firebase.


Firebase is a service from Google that provide Cloud NoSQL database, Authentication and many things more. We used Firebase in our application to analyse our users, analyse crashes and performance with Firebase services. Let’s first talk about authentication.

Authentication with Firebase

Authentication with Firebase is so simple. You can use Anonymous authentication if your app can provide guest users or you don’t want to collect any data from user.

We used Google authentication because Google account is the most common account that we all have. In other authentication ways we can point to Apple, Facebook and Twitter authentication. By having an authentication, app had to have a sign in page. In this case we designed a simple page.

Firebase Crashlytics

The most powerful, yet lightest weight crash reporting solution. With Crashlytics we can see a log that tell us we app had crashed and things like this. You can setup Crashlytics by covering this documentation below:

Firebase Performance

Firebase Performance Monitoring is a service that helps you to gain insight into the performance characteristics of your Apple, Android, and web apps.

You use the Performance Monitoring SDK to collect performance data from your app, then review and analyze that data in the Firebase console. Performance Monitoring helps you to understand in real time where the performance of your app can be improved so that you can use that information to fix performance issues.

Localizing data

Whats Done save your data in your device. In this case you can access to them offline, insert data, read them and also change them. Database structure is simple.

It is pretty showing what is happening inside the app. Task status can be change and in this case, task page will also be changed.

All of them is happening with SQFlite. SQFlite is a simple, fast and easy to learn localize database. As it is shown in name, this database manager is a SQL database,

User Interface

After back-ends authentication and data storing we can talk about UI. We had many new things and updated parts. Material PopUp dialog, Toasts and Drawer changes. We are going to talk about them so specific.

Material PopUp dialog

In previous version, there was no dialog. People use dialog to show something on screen. Most of them have two buttons like Cancel, Try again, Quit and others. Places that PopUp used in application is for checking internet, whats new, errors, checking null fields and sure to logout. Here are some examples.


Toasts are kind of widgets that we can use them after an action to say status. Like saying this action is done or something is changed. You can see some of them below.


Drawer widget is a menu that you can open it from a side of your screen. In previous version was so simple. This version has a header that show user data. This data is from your Google account. Like name, Gmail and user profile image.

What’s new dialog

From now on, each version has a dialog to present updates and references to the current version. We call them What’s new dialog. In the bottom of the dialog, there is a button that by tapping on it, you will be route to Medium article that show every thing about the version.


Task is update too. I mean there is something added to task. You can now add a note of your tasks. It is kind of a detail of your task.

How to access to the task

If you want to see task details and its status, just have a long press and then you can see the page that tell you data of your task.

Project structure

I think most important step of creating a project is how to structure it. Structures are different in projects. Developing a Python lib project structure is different from developing a simple Python project. Flutter projects has some directories that each one contains a service or widget.

It last version there wasn’t a good structure and things like this. Let’s have a look of current structure.

Ok, it’s time to talk specific about each one.

  • Lib dir is the root of Flutter project. Lib is inside another dir. By saying root, I mean the Dart codes are there.
  • App. App is the directory for widgets, screens and services.
  • main.dart is the file that has main void and MaterialApp class.
  • Models. Here are user and task model. Inside a model file we have toJson and fromJson and constructor.
  • Screens. Screens contains authentication page, home page and a landing file. Landing route user to home or authentication page.
  • Services. In services there are database service and authentication service.
  • Widgets. Widgets directory has custom widgets like list time, text fields and buttons.


Done. This was all details about Whats Done 2.7.5. I tried to say many details about this update and even things that you don’t need.

You can download Whats Done directly from Whats Done web page. Whats Done will be release soon in Google Play Store.

By the way, Flutter is an easy framework. You can learn it fast to build fast apps :) .


Last words

Tell us any issues that you figured out with comments, Github issues and even sending by email. You can use this email to get in touch:

Amirhossein Mohammadi | Dec 24 2021




Web and Mobile full stack developer.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Free online courses for mobile app development

Controlling Lights with a Raspberry Pi

Skeptics Who Recommend Cross Browser Testing

Fourth week as a software developer intern

Agile Philippines Meetup 2017.11

How to host your websockets on AWS EC2 using Nginx

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Amirhossein Mohamadi

Amirhossein Mohamadi

Web and Mobile full stack developer.

More from Medium

Why should we not use the helper method for widgets in flutter? And used then how should it be.

Flutter: Enable Web support for an existing app

A Tale of Three (Flutter) Trees

Difference between hot reload and hot restart in flutter?