Covid-19 Tracker – Flutter Android App

Covid-19 Tracker- Flutter Android AppAbstract

The “COVID19 TRACKER APP” is the mobile-based system, designed in advantage for individuals and companies, travelers which gives information related to the real time Covid19 cases and vaccines of the world and country historical stats with respect to its timeseries. This product develops a system that can be used by the multinational companies health management either individual persons to keep track of the pandemic. In the existing method of tracking the covid data of all the details is tedious and time consuming. With Covid-19 Tracker application, persons will be aware of the pandemic situation in real time. Observe the number of infected and cured, vaccines data in your country and in the rest of the world. Get desired push notifications every day by countries. The tracker system fulfills the requirements of people. The specific purpose of the system is to automate the information between data and user of the organization. Thanks to Flutter framework of Dart programming language, which is used when writing the application, it is possible to work on both Android and iOS and Web.

It presents Covid19 data in a user-friendly interface with graphical displays by combining data from different sources under a single roof, saving time in the shortest way.

The contribution of this application to the environment and making our life easier, saves you from tiring and searching a lot, and allows you to easily access summary and detailed visual Covid19 information which sets this app apart from others. The application combines the scattered data in many places under a single concept and presents it as informative, saves time in research. If new diseases, pandemic emerge in the future, it can be integrated and displayed in the charts, when provided by APIs. In this respect, it is a sustainable practice.

The “COVID19 TRACKER APP” is the mobile-based system, written with Flutter (Dart) in Android Studio with MVCS architecture designed in advantage for individuals and companies, travelers which gives information related to the real time Covid19 cases of the world and country historical stats with respect to its timeseries and delivering daily notifications. The specific purpose of the system is to automate the information between data and user with easy to use UI & charts.

Background

The COVID-19 outbreak, which first occurred in China, has spread worldwide. On March 11, 2020, the World Health Organization (WHO) declared COVID-19 as a pandemic. The disease has affected global trade, employment, and travel, and many governments must adopt severe steps to prevent the spread of the virus and minimize the impact of sickness and mortality so that health care systems stay functional. With its alarming surge of affected cases throughout the world, lockdown, and awareness (social distancing, use of masks etc.) among people are found. In several nations around the world, citizens have been encouraged to stay at home and adopt social separation as a major strategy of limiting the spread of COVID-19. Although mobile apps are successfully utilized for controlling chronic conditions, the ongoing COVID-19 pandemic has pushed the demand for mobile app solutions at the forefront to limit the danger of cross-contamination induced by close contact. Mobile technology has been exploited in several ways to control the spread of COVID-19. Mobile apps are accessible, acceptable, and quickly adopted, and could help social distancing attempts. Despite an increased dependence on mobile health (mHealth) solutions as part of COVID-19–related response plans, there are significant knowledge gaps about their utility and efficacy during the current pandemic for both health professionals, general community. This systematic review intends to shed light on studies identified in the scientific literature on the use and evaluation of mobile apps for COVID-19 prevention, management, treatment, or follow-up. Most countries use mobile apps to track for data and break the Covid19 virus infection chain. There are official private government apps that only shows their country’s Covid19 data information. Apps shows world data with limited open source Covid19 API (sources are Disease.sh, JHU CSSE, Worldometers, NYTimes) which my app uses too. The Android/iOS app tracks the data and informs the user by push notification by desired country and desired data like cases, vaccines which can be useful for companies that have employees in different countries and travelers.

Objective

In this project, the goal is to develop a Covid19 tracker software in which communication between the data and user of the organization. This project maintains to tracking the Covid19 data information related to employees with respect to its time series. COVID-19 Tracker visualizes Global COVID-19 data. It provides real-time tally of COVID-19 patients in Global. It covers global level, country level cases. It is aimed to combine data from various sources under a single roof, to save time in the shortest way and to present Covid19 data in a user-friendly interface with graphic screens to tries to solve problems in this regard.

Benefit for the society and environment:

Although similar works have been done, this application aims to complete the shortcomings and provide a better experience to the end-user to make their life easier. People who install the application have the opportunity to access various Covid data without the need for multiple web searches as a being timesaver.

Final Presentation

Methodology

App data comes from: Disease.sh API provides this data as JSON with the General Public License. You can see some sample JSONs in this screenshot. The Covid information resources of the site are JHU and Worldometers. Which are updated every 10 minutes.

App Features & Screens (Results)

In practice, I have achieved most of the goals I stated at the beginning. I couldn’t add some of them, but I added the ones I didn’t mention. Advanced filters were not added due to various restrictions. While adding a feature, I used the Flutter libraries on pub.dev, watched some videos, implemented the documents.

Home (User’s Country) Screen (Summary)

When the application is opened for the first time, a promotion appears, and you are asked to choose your country for once (can change the country later in settings). When you open the application for the first time, your selected country and its Covid19 summary information of total and today’s confirmed, recovered, deaths displayed in pie chart. You can see the active, critical, test data information in detail by clicking View More. Historical data shows the entire 2-year timeline with source from JHU of all countries + total number of vaccinations. In the countries section you can see the data of each country sorted by the number of cases. By pressing the Map button, you can navigate the data of the countries on the map. /v3/covid-19/countries/{country} Get COVID-19 totals for a specific country Parameters https://disease.sh/v3/covid-19/countries/turkey

Country Screen (Detailed)

In addition to the home screen, detailed data of the country is shared on this screen. The data shown in the Pie Chart includes the today’s date’s total case, death, recovered; active, critical, test done, population numbers, flag, and a 30-day scrollable chart. Also on this page, a scrollable Bezier line chart with last 30 days of Covid19 data, travel alert showing the country’s risk score are existing. Video: https://vimeo.com/709288120/9c445fc216 Historical data taken from COVID-19: JHUCSSE (COVID-19 data sourced from Johns Hopkins University, updated every 10 minutes) /v3/covid-19/historical Get COVID-19 time series data for all countries and their provinces Disease API: https://disease.sh/v3/covid-19/historical/turkey?lastdays=30 Travel Advisory API: https://www.travel-advisory.info/api?countrycode=TR https://www.travel-advisory.info/data-api

Global Screen

On the Worldwide screen, you can easily see the total and today’s Covid19 information in the world. On this screen, there are Historical Data and Worldometer screens where you can access detailed information. On the historical data screen, you can see the 2-year Covid timeline from disease.sh API. https://disease.sh/v3/covid-19/all Video: https://vimeo.com/720434642

Country Selector Screen

You can see the detailed Covid statistics of that country by pressing the country you want on the Countries screen. Countries are sorted by the number of cases. Search feature is available. https://disease.sh/v3/covid-19/countries/turkey?yesterday=true /v3/covid-19/countries/{country} Get COVID-19 totals for a specific country

Worldometers Screen – Line Charts

When you leave here and go to the worldometer screen, you can see the Covid19 data of the world and all countries on the graphical FL line charts for 2 years, either daily or in total. The numbers of the time period you want by selecting the desired data-range, such as the last 1-week, the last 1-month, custom dates are shown. This was the first version of the app, then I integrated it into the other part to improve. The logic as follows: There is a parser as a controller gets the latest daily or desired dates Covid19 data statistics from Worldometers website, parsing global or country’s numbers according to labels on the page one by one then returns to user interface to show the info in FL datacharts visually. In these two examples, you see the annual aggregate data for global and Italy. Data Source: https://www.worldometers.info/coronavirus/

28 Days Example of a Country

By data range selector, you can set the data to be displayed on the chart according to the last 7 days, the last 28 days, everything since 2020 or the desired date ranges like 3 February 2021-25 January 2022. Screenshots shows last 28 days of USA data. On this screen, you can access the daily numbers by swiping your fingers on the graph. You can see the total increase or the daily increase with the Total, Daily options in the lower corners of the graphs. Video: https://vimeo.com/709289792/ec16585ae1

Full Timeline View

On the Timeline screen, you can see all the Covid19 data history since 2020 day by day and examine it with your finger. The difference of this screen is that it contains ALL data (really large) as opposed to 30 days on the country screen. That’s why it loads later than usual, I didn’t want to put it on the home screen and slow it down there. Apart from this, it is possible to reach the total and daily vaccinations and other case data of that country. This data is being pulled from the disease.sh API. This screen is provided separately for both World and country. The reason why there is no timeline for the vaccine is that data is missing in some countries on some days. https://disease.sh/v3/covid-19/historical/turkey?lastdays=all /v3/covid-19/historical/{country} Get COVID-19 time series data for all countries and their provinces Vaccine: https://disease.sh/v3/covid-19/vaccine/coverage/countries/turkey?fullData=true&lastdays=1

World Map

It’s also possible to see Covid19 data on the map. This map is provided by the free and open source OpenStreetMap with the Mapbox API the mapping platform provider for coordinates. When you allow location access permission, it starts by showing your country via GPS. All countries have a marker on this map. When you press the marker of the country you want on the map, it shows you the total Covid data of related country. When you touch the view more button below, it opens the country screen. Video: https://vimeo.com/709290051/0a21766b3e

The application is multilingual. Localization is easily integrated with the easy_localization Flutter package. Attached languages: English, Turkish, Arabic.

Covid-19 Advices Screen

   

On the advice screen, there are images & official Covid19 recommendations in grid cards taken from CDC (U.S. Centers for Disease Control and Prevention) to show how to protect yourself and others. These information cards include how to be protected when going out, how to isolate yourself, symptoms, vaccination, wearing a mask, being in well-ventilated environments, maintaining disinfection & hygiene, self-testing, prevent getting sick. Video: https://vimeo.com/709531849/344da75e58

Image & Text Sources:

  • https://www.cdc.gov/coronavirus/2019-ncov/downloads/Young_Mitigation_recommendations_and_resources_toolkit_01.pdf
  • https://www.cdc.gov/coronavirus/2019-ncov/prevent-getting-sick/prevention.html
  •  https://www.cdc.gov/coronavirus/2019-ncov/prevent-getting-sick/prevention-H.pdf
  • https://www.cdc.gov/coronavirus/2019-ncov/communication/print-resources.html?Sort=Date%3A%3Adesc

Push Notification

Another feature of the application is local push notifications that delivers daily Covid19 info including cases, deaths, recovered of the user’s country in the background. I have added a part in the photo where this feature can be tested as simulation, it shows how this feature works. There are two types of notifications:

  • Push Notifications
  • Local Notifications

Local notifications originate from the application itself, as opposed to Push notifications which are triggered from a remote server. The local one is used in the application. Send and schedule Local Push Notifications in Flutter in background when app is closed. Video: https://vimeo.com/709286623/e9d8ea9c94

Dark Mode

Settings & Welcome Country Selector

Conclusion

Technical difficulties & Efficiency

The hardest part of this project was processing, parsing & mapping the complex JSON datas and route to the charts. The reason why the screens are fragmented and disjointed is because there is a loading time when pulling the data, which slows down the user experience. Some screens are capturing very large data. For example, timeline data contains 2 years of data. That’s why separate screens are necessary. It works fast as this. API Problems: The “recovered” part is no longer published on the historical data obtained from disease.sh. However, this data is available in a single day display (missing in some countries) Vaccine data cannot be published historically because there is no data for some days, and it shows as 0. Turkey has stopped publishing daily data as of this month, data is published weekly. So, no daily data for Turkey anymore. I used 2 free to use API sources with different features in order to have variety in the data source.

Future Usage of The App on New Pandemic

In the event of a new endemic, epidemic or pandemic in the global world, these data can be quickly entered and integrated. Covid may be over, but new diseases will inevitably emerge. THE PANDEMIC IS NOT OVER, IT JUST LOSE SPEED! Thanks to the vaccines applied around the world, the rate of transmission of Covid 19 has decreased. Nowadays, the rapidly spreading Monkeypox Virus has spread to another continent. Should we be worried about the monkeypox virus or just ignore it? You may not be ready to hear the word virus again while you are just leaving Covid behind, but unfortunately that is the case. Monkeypox virus and 80 cases have been detected in 11 countries, including England, by May 2022. Should we need to worry about or are we worrying too much while we’re just getting past Covid? This is not a new Covid, and quarantine measures are not planned yet. Someone wandering through the rainforests of West or Central Africa came into contact with an infected animal and contracted the virus. Fluid-filled blisters form on the infected person’s skin, which then crust over. Few cases have been identified before. It was immediately determined that these people also caught the virus from the person from which country they came from. But that is no longer the case. For the first time, the virus was detected in people not associated with West or Central Africa. We know it’s a different epidemic, but we don’t know why. Two options stand out here; The virus has changed or found an environment in the right place to spread at the right time. It is thought to have spread to Europe from Antwerp: Festival-induced monkeypox virus cases increase in Belgium. The fact that the virus is seen in so many people who are not related to each other brings to mind the possibility that too many people have been carrying the virus for a while without realizing it. Regardless of the explanation, we can expect to see more cases in the coming period. But this is an unusual and unprecedented epidemic of monkeypox. What happened to people who specialize in this disease was also a surprise. It’s always a concern when a virus changes the way it behaves.

Integration (Sustainability)

Just as Covid19 data can be retrieved via APIs and displayed on charts, it can be easily integrated into the application if APIs provide data in future pandemics and diseases, in the same way. App is flexible.

About Flutter

Flutter is an open-source framework by Google for building beautiful, natively compiled, multi-platform applications from a single codebase.

Flutter transforms the app development process. Build, test, and deploy beautiful mobile, web, desktop, and embedded apps from a single codebase. Flutter code compiles to ARM or Intel machine code as well as JavaScript, for fast performance on any device.

Flutter allows you to build apps for mobile, web, desktop, and embedded devices all from a single codebase.

Flutter is powered by Dart, a language optimized for fast apps on any platform.

Libraries

  • ·       https://pub.dev/packages/fl_chart FL Chart is a highly customizable Flutter chart library that supports Line Chart, Bar Chart, Pie Chart, Scatter Chart, and Radar Chart.
  • ·       https://pub.dev/packages/json_serializable Dart Build System builders for handling JSON.
  • ·       https://pub.dev/packages/bezier_chart Bezier line chart widget, interactive and configurable.
  • ·       https://pub.dev/packages/shared_preferences Wraps platform-specific persistent storage for simple data may be persisted to disk asynchronously.
  • ·       https://pub.dev/packages/bottom_navy_bar A beautiful and animated bottom navigation.
  • ·       https://pub.dev/packages/dio A powerful Http client for Dart
  • ·       https://pub.dev/packages/intl Provides internationalization, localization facilities, message translation, plurals and genders, date/number formatting and parsing, and bidirectional text.
  • ·       https://pub.dev/packages/hooks_riverpod state-management library
  • ·       https://pub.dev/packages/provider State management
  • ·       https://pub.dev/packages/cached_network_image show images from the internet + cache.
  • ·       https://pub.dev/packages/flutter_local_notifications for displaying local notifications.
  • ·       https://pub.dev/packages/adaptive_theme Add support for light and dark theme in your Flutter app. Manually set light or dark theme. Persists the theme modes changes across app restarts.
  • ·       https://pub.dev/packages/liquid_pull_to_refresh custom refresh indicator
  • ·       https://pub.dev/packages/flutter_icons https://pub.dev/packages/cupertino_icons Icons
  • ·       https://pub.dev/packages/flare_flutter Flutter runtime for Flare, depends on flare_dart
  • ·       https://pub.dev/packages/latlong library for common latitude and longitude calculation.
  • ·       https://pub.dev/packages/geolocator A Flutter geolocation plugin which provides easy access to platform specific location services
  • ·       https://pub.dev/packages/flutter_map A versatile mapping package for Flutter, based off of ‘leaflet.js’. Simple and easy to learn, yet completely customizable and configurable
  • ·       https://pub.dev/packages/auto_size_text Auto resizes text to fit perfectly within its bounds.
  • ·       https://pub.dev/packages/avatar_glow Avatar Glow Widget background glowing animation
  • ·       https://pub.dev/packages/easy_localization Easy translations for many languages
You must be logged in to post a comment.
Menu