A todo list app created with Dart and Flutter.

Overview

Todo List App

A cross-platform Todo List App created using Dart and Flutter. I followed the tutorials by Johannes Mike for personal learning. Then started tinkering with the app to customize it and learn more about Flutter.


Flutter Setup

Steps

Follow the instructions on offical website, depending on your operating system. In my case I am using Windows.

  • Download and install JDK from the link
  • Install Git
  • Download the latest stable release of the Flutter SDK
  • Extract the zip file and place the contained flutter in the desired installation location for the Flutter SDK.
  • Warning: Do not install Flutter in a directory like C:\Program Files\ that requires elevated privileges.
  • Add flutter\bin to your PATH environment variable
  • Download and install Android Studio and VS Code
  • Install Android SDK Tools and Google usb driver from Android Studo's SDK Mnagaer
  • Install FLutter and Dart extensions in VS Code.
  • Setup an emulator in AVD Manager inside Android Studio to run your apps in a virtual device. Alternatively, you can also use a real device.

Firebase Setup


App functionality

  • Add, Edit and Delete tasks
  • Colorful widgets
  • Local plus cloud storage using firebase

Resolving Issues

In case you run into some build issues after copying your project among different devices or after some package updates, try the following steps before anything else. Run following command in root directory.

flutter clean
flutter pub get
flutter run

Unsound safety check

Some packages give unsound safety check issue if you have older versions of firebase plugins. Reolve this by adding
--no-sound-safety-check argument to your run command.

flutter run --no-sound-safety-check

Running on iOS

  • iOS run needs Podile. It will be generated automatically after Flutter run.
  • If xcode doesn't work (in general or in copied project), remove ios/Podfile (lockfile and pods as well)

Then run in the root project directory.

flutter clean
flutter pub get
flutter run

IO.GRPC Error

If you see the error "issue: I/Process ( 5084): Sending signal. PID: 5084 SIG: 9", then do the following to resolve it.

  • Open android/app/build.gradle
  • Inside dependies list, add implementation "io.grpc:grpc-okhttp:1.32.2"
dependencies {
    .
    .
    implementation "io.grpc:grpc-okhttp:1.32.2"
}

Version Issue

'IPHONEOS_DEPLOYMENT_TARGET' version error

  • ADD to Podfile:
post_install do |installer|
  installer.pods_project.targets.each do |target|
      flutter_additional_ios_build_settings(target)
      target.build_configurations.each do |config|
         if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < 10.0
           config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '10.0'
         end
      end
  end
end

MigratMigration to cloud_firestore 2.0.0

  • The migration involves adding a <Map<String, dynamic>> in numerous places
  • Do it only if you use newer versions of firebase_core and cloud_firestore

Example

- StreamBuilder<DocumentSnapshot>(
+ StreamBuilder<DocumentSnapshot<Map<String, dynamic>>>(
  stream: FirebaseFirestore.instance.collection('movies').doc('star-wars').snapshots(),
-  builder: (BuildContext context, AsyncSnapshot<DocumentSnapshot> snapshot) {
+  builder: (BuildContext context, AsyncSnapshot<DocumentSnapshot<Map<String, dynamic>>> snapshot) {
    // ...
  }
)

My Case

  • Change tranbsformer in utils.dart from
static StreamTransformer<QuerySnapshot, List<T>> transformer<T>(
      T Function(Map<String, dynamic> json) fromJson) =>
  StreamTransformer<QuerySnapshot, List<T>>.fromHandlers(
    handleData: (QuerySnapshot data, EventSink<List<T>> sink) {
      final snaps = data.docs.map((doc) => doc.data()).toList();
      final users = snaps.map((json) => fromJson(json)).toList();

      sink.add(users);
    },
  );

to

  static StreamTransformer<QuerySnapshot<Map<String, dynamic>>, List<T>>
      transformer<T>(T Function(Map<String, dynamic> json) fromJson) =>
          StreamTransformer<QuerySnapshot<Map<String, dynamic>>,
              List<T>>.fromHandlers(
            handleData: (QuerySnapshot data, EventSink<List<T>> sink) {
              final snaps = data.docs.map((doc) => doc.data()).toList();
              final users = snaps
                  .map((json) => fromJson(json as Map<String, dynamic>))
                  .toList();

              sink.add(users);
            },
          );

Debug mode issue on <= iOS 14

While debugging/running on devices with iOS 14 or less, the app stopped working as soon as the program is terminated in the IDE. To resolve it, add --release to your flutter run command.

flutter run --release --no-sound-null-safety

Acknowledgement

Special thanks to Johannes Mike for his amazing youtube tutorial and repository.

Johannes's Youtube Tutorials:

You might also like...

Flutter list view - An unofficial list view for flutter

Flutter list view - An unofficial list view for flutter

Flutter List View I don't like official list view. There are some features don't

Dec 15, 2022

Csv to list for web - Convert a CSV into a list in order to populate a firebase database

Csv to list for web - Convert a CSV into a list in order to populate a firebase database

My goal is to convert a CSV into a list in order to populate a firebase database

Jan 26, 2022

Horizontal list - A horizontal list widget to use in mainly for web or desktop application

Horizontal list - A horizontal list widget to use in mainly for web or desktop application

horizontal_list A horizontal list widget with buttons next and previous. You can

Feb 2, 2022

Todo is an Simple Task Management App coded using Dart which is a peogramming language for Flutter SDK(2.5) supports Null Safety ๐Ÿ“‘๐Ÿšฉ

Todo ๐Ÿ“‘ ๐Ÿšฉ ๐Ÿ“Œ Introduction Todo is an Simple Task Management App coded using Dart which is a peogramming language for Flutter SDK(2.5) supports Null S

Nov 5, 2022

A Todo app with full fledge functionality and Awesome Look and feel.

to_do A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this is

Aug 5, 2022

A todo app using firebase and flutter as part of youtube series

A todo app using firebase and flutter as part of youtube series

Welcome to flutter-with-firebase ๐Ÿ‘‹ This project made for those whowanted to learn about the firebase and thier Auth, Cloud Storage and Cloud function

Jan 6, 2023

Todo app - contains same UI and different state management techniques (without using StatefulWidget)

Todo app - contains same UI and different state management techniques (without using StatefulWidget)

This repo contains same UI and different state management techniques (without using StatefulWidget) to compare and prefer based on your coding style.

May 19, 2022

Time do - A Flutter Todo Application Using GetX And Sqlite

Time do - A Flutter Todo Application Using GetX And Sqlite

time_do A TODO Flutter project. Getting Started Flutter application -Design Patt

Oct 11, 2022

Basic todo mobile application built on top of the ETH blockchain with Flutter, Truffle and Ganache.

Basic todo mobile application built on top of the ETH blockchain with Flutter, Truffle and Ganache.

Todo-DAPP This project is a basic mobile Todo App build with Flutter. The backend consist in a Solidity contract running on the Ethereum Blockchain. C

Sep 28, 2022
Owner
Raja Haseeb
Machine Learning Engineer / AI Developer at SKIA, Korea.
Raja Haseeb
Flutter ToDo App - A simple ToDo App made with Flutter and Hive

Flutter ToDo App A simple ToDo App made with Flutter and Hive. โœจ Features Create,Delete,Update tasks. Create Subtasks. Star important Tasks. ?? Screen

null 3 Aug 4, 2022
Todo app codelab - A simple UI for todo app to showcase Flutter features and core concepts

Codelab Todo App A simple todo app UI for to showcase Flutter and Dart core conc

Junior Medehou 3 May 12, 2022
Flutter todo - Simple To-do application created with Flutter and Hive

To-do app Simple To-do application created with Flutter and Hive. Description Fi

Gints V 0 Jan 24, 2022
Do more - A good looking glorified todo list built with flutter.

do_more (DO>) A glorified todo list with a beautiful ui. Login with Google Events Organize your tasks by events, visualize them in their page and add

Mariano Uvalle 28 Nov 22, 2022
Responsive Scaffold - On mobile it shows a list and pushes to details and on tablet it shows the List and the selected item. Maintainer: @rodydavis

responsive_scaffold View the online demo here! On mobile it shows a list and pushes to details and on tablet it shows the List and the selected item.

Flutter Community 346 Dec 2, 2022
Ali Tรผrkay AVCI 1 Jan 20, 2022
A To-Do List app created using Flutter and GetX.

Flutter Todo App with GetX Building a List to do App with Flutter Screenshots Homescreen Add Todo Edit Todo Why flutter? Installation To run this proj

Vivian Lobo 7 Nov 6, 2022
A Flutter based to do list app (yes, another to do list... but... this time based on a beautiful design)

โœ”๏ธ Flutter to do App "To Do List" A Flutter app based on the design of the To Do App, created by Rudi Hartono, see more on: Uplabs. Getting Started ??

Johan 561 Dec 31, 2022
Product List Digikala - A List Of Product Digikala App With Flutter

Product List Digikala This is a Mini-Project For Digikala App With Flutter By Mi

Dively_HP 4 Jan 7, 2023
๐Ÿ“ one day list app created by flutter!

Language:็ฎ€ไฝ“ไธญๆ–‡|English Introduction Source of inspiration โ€œOne Day list โ€ is a small, simple and beautiful app๏ผŒ It can help you keep track of your dail

Xiao Li 1.8k Jan 4, 2023